标签归档:windows

WebshellAutoCheck 1.0 Webshell自动检查工具 for windows

WebshellAutoCheck 1.0 Webshell自动检查工具 for windows

主要功能说明:

1.webshell检查,支持任意后缀的脚本检查,包括asp/php/jsp/***等;

2.敏感文件检查, 如bak/sql/log/***文件;

3.白名单功能,排除误报,报告处理的最大问题;

4.自动定时扫描,支持window定时任务和服务形式启动;

5.邮件自动通知,扫描完成自动邮件提醒;

使用说明:

1.文件说明:

WebshellAutoCheck.exe 主程序

config.xml 配置文件

2.主要参数:

D:\>WebshellAutoCheck /?

WebshellAutoCheck 1.0 By:Neeao

http://neeao.com

WebshellAutoCheck /install      Install services.

WebshellAutoCheck /uninstall    Uninstall services

WebshellAutoCheck /start        Start services

WebshellAutoCheck /stop Stop services

WebshellAutoCheck /scan Only scan once.

/install 安装为服务形式,默认为自启动服务.

/uninstall 卸载服务(有个小bug,卸载完毕不能立即从服务管理里消失,等会就好了,不影响使用)

/start 启动服务自动检查(启动前请跟进config.xml文件中说明进行相关配置再启动)

/stop 关闭服务

/scan 仅仅进行扫描

3.config.xml文件说明:

<?xml version="1.0" encoding="gb2312"?>
<root>
  <server>
	<!--scan_dirs节点需要扫描的目录,多个目录使用;分割-->
	<scan_dirs>d:\wwwroot</scan_dirs>
	<!-- speed,数值越大扫描越快,占用资源也越多 -->
    <speed>8</speed>
	<!--cycle节点自动扫描间隔,单位秒,修改后需重启服务-->
	<cycle>60</cycle>
  </server>
  <!-- 自动邮件通知 发送send=1,不发留空-->
  <mail is_send="1">
	<username>testmail</username><!--邮件发送帐户名-->
	<password>testmail</password><!--邮件发送密码-->
	<stmp>smtp.neeao.com</stmp><!--邮件服务器地址-->
	<sender_name>Check</sender_name><!--邮件发送者名称-->
	<sender_address>neeao@neeao.com</sender_address><!--邮件发送者邮箱地址-->
	<receiver_name>Neeao</receiver_name><!--邮件接收者名称,多个接收者名称用;分割-->
	<receiver_address>neeao@neeao.com</receiver_address><!--邮件接收者邮箱地址,多个用;分割,顺序和接收者对应-->
	<subject>WebShell检查通知邮件</subject><!--邮件通知的标题-->
  </mail>
<!-- 扫描规则,lang节点为标记扫描规则名称,filetype为扫描的文件类型,支持windows通配符,多个用;分割-->
<!-- 特殊文件扫描,主要通过is_file节点值区分,为1则是仅扫描文件名 -->
<!-- webshell扫描,is_file为空-->
<!-- 扫描规则设置,关键词采用tr1正则表达式,regexp为匹配规则, exclude为排除规则,desc为对此条规则的通知描述-->
  <language>
    <list lang="bak" filetype="*bak*" is_file="1"/>
	<list lang="asp" filetype="*.asp;*.asa;*.cer" is_file="">
      <keyword regexp="(WScript\.Shell|72C24DD5-D70A-438B-8A42-98424B88AFB8|F935DC22-1CF0-11D0-ADB9-00C04FD58A0B)+" exclude="1" desc="发现WScript.Shell组件"/>
      <keyword regexp="(Wscript\.Network|093FF999-1EA0-4079-9525-9614C3504B74)+" exclude="Wscript.Network" desc="发现Wscript.Network组件调用"/>
      <keyword regexp="(Shell\.Application|13709620-C279-11CE-A49E-444553540000)+" exclude="" desc="发现Shell.Application组件"/>
      <keyword regexp="(Scripting\.FileSystemObject|0D43FE01-F093-11CF-8940-00A0C9054228)+" exclude="" desc="发现FSO组件调用"/>
      <keyword regexp="(adodb\.stream|00000566-0000-0010-8000-00AA006D2EA4)+" exclude="" desc="发现adodb.stream组件调用"/>
      <keyword regexp="(MSXML2.XMLHTTP|Microsoft.XmlHttp|88D969C5-F192-11D4-A65F-0040963251E5|88D969EA-F192-11D4-A65F-0040963251E5)+" exclude="" desc="发现Microsoft.XmlHttp组件调用"/>
      <keyword regexp="LANGUAGE\s*=\s*(vbscript|jscript|javascript).encode" exclude="" desc="发现脚本加密函数encode1"/>
      <keyword regexp="[^\.](Eval|Execute|ExecuteGlobal)\s*[\(]?\s*(request|session)" exclude="" desc="发现Eval|Execute函数书写的一句话webshell."/>
    </list>
    <list lang="jsp" filetype="*.jsp" is_file="">
      <keyword regexp="Runtime\.getRuntime\(\)\.exec" exclude="" desc="发现jsp命令执行方法"/>
      <keyword regexp="java\.io\.FileOutputStream\(application\.getRealPath\(" exclude="" desc="发现jsp一句话webshell"/>
    </list>
    <list lang="aspx" filetype="*.aspx" is_file="">
      <keyword regexp="Environment\.(OSVersion|MachineName|GetEnvironmentVariables)" exclude="" desc="发现Environment对象调用"/>
    </list>
  </language>
  <!-- 白名单设置,添加白名单:在white中添加新的list节点,如下,path节点为白名单路径,md5借点为文件的md5值-->
  <white>
   <list path="d:\wwwroot\2006.asp" md5="a6c21f051e354846b3080e9c0549b89d"/>
  </white>
</root>

4.debug模式

在程序当前目录创建一个debug.log的空文件,重启服务,debug信息将写入此文件。

注意使用完删除此文件。

附件:webshellautocheck.20121124.rar(211323 Byte)

TR1正则表达式:http://msdn.microsoft.com/zh-cn/library/bb982727.aspx