转载

如何编写Windows安全检查脚本?(简化为批处理)

*本文原创作者:鬼魅羊羔

Linux安全检查的写了,Web日志的也写了,变态客户天天有,最近遇见的特别多。之前用C#写了个一键式的Windows服务器日常检查的程序,但是客户还是觉得麻烦。因为有的服务器没有装.NET环境,非要我写成批处理。

其实真的很想骂人,@#!%@%&省略一些不好听的话——你咋不上天呢!

抱怨归抱怨,但是客户要求还是得满足。

大家应该知道,Windows系统问题太多,要关注的地方也数不胜数,做日常检查,真的要一个命令一个命令的翻,确实麻烦,而且,重点是注册表,挨个的展开,绝对是一个闹心的活儿。我把一些常用的命令做了个整合,有些检查方法用C#写起来很方便,用批处理就有点不好写了

这个批处理主要检查的内容是:

1、系统信息检查

2、端口状态检查

3、添加/卸载记录

4、IE浏览器记录

5、用户检查

6、隐藏用户检查

7、进程检查

8、注册表启动项检查

9、通信检查

10、CMD使用记录检查

11、C盘部分文件夹捆绑文件检查

也就十几项吧。因为是批处理,大家可以自己根据需求添加。。一个批处理,没啥技术难度,就不细讲了。

有一个使用重点,如果是涉及到注册表检查的,需要给注册表赋予权限,才能通过reg query来读取,大部分注册表是不允许直接读取的。权限问题吧。。

这里用到了类似这样的操作

HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names [1 2 19]

注册表相关权限如下:

用regini,是系统自带的注册表权限工具
1 - Administrators 完全访问
2 - Administrators 只读访问
3 - Administrators 读和写入访问
4 - Administrators 读、写入、删除访问
5 - Creator 完全访问
6 - Creator 读和写入访问
7 - everyone 完全访问
8 - everyone 只读访问
9 - everyone 读和写入访问
10 - everyone 读、写入、删除访问
11 - Power Users 完全访问
12 - Power Users 读和写入访问
13 - Power Users 读、写入、删除访问
14 - System Operators 完全访问
15 - System Operators 读和写入访问
16 - System Operators 读、写入、删除访问
17 - System 完全访问
18 - System 读和写入访问
19 - System 只读访问
20 - Administrators 读、写、执行访问
21 - Interactive User 完全访问
22 - Interactive User 读和写入访问
23 - Interactive User 读、写入、删除访问

命令格式为HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run [2 9 19]

里面部分命令用到了wmic,这个工具挺好用,就是很多高级的用法,百度没有,能找到的资料真的有限。

因为实在是没太多技术含量的东西,批处理命令,大家都懂得。。

不废话了,贴出脚本命令,供大家娱乐下。

@echo off echo                                        "Windows系统安全检查脚本" if exist d:/检查结果/ (    echo  ) else ( md d:/检查结果/ ) if not exist d:/检查结果/ md d:/检查结果/  echo "系统信息检查" systeminfo >d:/检查结果/系统信息.log echo "端口信息检查" netstat -anb >d:/检查结果/端口信息.log echo "进程检查" tasklist&net start >d:/检查结果/进程检查.log echo "进程路径检查" wmic process get name,executablepath,processid >d:/检查结果/进程路径检查.log echo "默认共享检查" net share >d:/检查结果/默认共享检查.log echo "用户信息检查" net user & net localgroup administrators >d:/检查结果/用户信息检查.log echo "隐藏用户检查" echo HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names [1 2 19]>d:/regg.ini&echo HKEY_LOCAL_MACHINE/SAM/SAM/ [1 2 19] >>d:/regg.ini & regini d:/regg.ini® query HKEY_LOCAL_MACHINE/SAM/SAM/Domains/Account/Users/Names >d:/检查结果/隐藏用户检查.log&del d:/regg.ini echo "注册表启动项检查" reg query HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run & reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run >d:/检查结果/注册表启动项检查.log echo "安全策略检查" secedit /export /cfg LocalGroupPolicy&type LocalGroupPolicy >d:/检查结果/安全策略检查.log echo "IE浏览器记录检查" reg query HKEY_CURRENT_USER/Software/Microsoft/Internet" "Explorer/TypedURLs >d:/检查结果/IE浏览器记录检查.log echo "添加和卸载记录" reg query HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/UNINSTALL /s /v DisPlayname >d:/检查结果/添加和卸载记录.log echo "异常状态检查" reg query HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows" "NT/CurrentVersion/SvcHost /s /v netsvcs® query HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows" "NT/CurrentVersion/SvcHost /s /v LocalService >d:/检查结果/异常状态检查.log echo "通信检查" netstat -a >d:/检查结果/通信检查.log echo "CMD记录" reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/RunMRU >d:/检查结果/CMD记录.log echo "文件记录检查" reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/TypedPaths >d:/检查结果/文件记录检查.log echo "文件记录检查2" reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/OpenSaveMRU/* /v * >d:/检查结果/文件记录检查2.log echo "程序记录" reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/LastVisitedMRU >d:/检查结果/程序记录.log echo "程序记录" reg query HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/ComDlg32/LastVisitedMRU >d:/检查结果/程序记录.log echo "C盘捆绑文件检查" echo "正常可执行文件返回结果为1,不可执行文件结果为0,返回结果为2的,为存在捆绑内容文件。" echo "请点击回车继续!" set /p var=find /c /i "this program" c:/*  c:/Inetpub/*  C:/Users/Administrator/Desktop/* c:/temp/* >d:/检查结果/捆绑文件检查.log %var% if %ERRORLEVEL% == 0 goto yes goto no :yes exit :no find /c /i "this program" c:/*  c:/wmpub/* c:/Inetpub/* C:/Documents and Settings/Administrator/桌面/* >d:/检查结果/捆绑文件检查.log echo "鬼魅羊羔"

执行结果会保存在D:/检查结果/文件夹下

如何编写Windows安全检查脚本?(简化为批处理)

如何编写Windows安全检查脚本?(简化为批处理)

如何编写Windows安全检查脚本?(简化为批处理)

如何编写Windows安全检查脚本?(简化为批处理)

注:

1、C盘捆绑文件检查有时候会有些问题,如果检查的目录不存在,这个命令就会被丢弃。。大家根据需要自己改吧。

2、默认输出的文件夹是在D:/检查结果/中,这个也可以根据需要自己改下。

也许有的人看完会说,这么简单的批处理也拿出来发。确实这东西没什么技术含量,但是,因为我是个菜鸟,也是为了造福跟我一样的菜鸟们而已,就这么简单。

超级文件监控程序V2.0改进版(网站防挂马好手) ,这个是根据shack2的文件监控程序改的,除了监控以外,增加了对触发创建、修改、更名等文件的内容判断功能,如果内容中含有webshell特征,则会自动进行处理。被检测到的网马存活不会超过20秒。监控网站目录是个利器哟,只不过还是C#的。。。

增加了大概170多个特征和关键函数的识别,还是有一定的识别能力的。

如何编写Windows安全检查脚本?(简化为批处理)

原文  http://www.freebuf.com/sectool/108682.html
正文到此结束
Loading...