最新消息:

服务器流量异常追踪–抵抗AWVS扫描

渗透流程与思路 admin 1414浏览 0评论

上次发帖求教服务器流量异常处理,看了日志之后发现一坨扫描器留下的痕迹。

发现了WVS的扫描记录,小小的日志文件都被撑成几G大了…(服务器框架定义404页面,导致不存在的页面请求特别多)

WVS确实是好东西,用来爬爬目录啥的最开心了,但是用来扫别人是挺开心的,自己被扫就不一样了…

所以就分析了一下其发包原理,想想怎么让它无法工作…

环境:
网上随便找了一个PHP的cms下载安装,开了WVS的本地代理,burpsutie抓包分析…

分析过程:
通过分析包的格式,前期的探测脚本http头带着的关键参数如下:
GET /acunetix-wvs-test-for-some-inexistent-file HTTP/1.1
Accept: acunetix/wvs
Expect: <script>alert(12345)</script>
Cookie: acunetixCookie=AAAAAAAA…N个A…AAAAAAAA
GET /ClientAccessPolicy.xml HTTP/1.1 类似这样的查找robots.txt 各种 xml常见文件
GET /favicon.ico HTTP/1.1特别有意思的就是这个favicon.ico文件,在日志文件中发现这个文件被访问了N+1多次…
POST https://localhost:8443/enterprise/control/agent.php HTTP/1.1
ACUNETIX /9149447 HTTP/1.1
HTTP_AUTH_LOGIN: ‘
HTTP_AUTH_PASSWD: acunetix
Client-IP: SomeCustomInjectedHeader:injected_by_wvs
Referer: ‘;print(md5(acunetix_wvs_security_test));$a=’
Accept: acunetix/wvs
Acunetix-Aspect: enabled
Acunetix-Aspect-Password: 082119f75623eb7abd7bf357698ff66c
Acunetix-Aspect-Queries: filelist;aspectalerts

突然看到WVS也会检测FCK,不过就是目录检测不全…
GET /fckeditor HTTP/1.1

前期扫描一些比较奇葩的漏洞都会带以下参数
Accept: acunetix/wvs

后期的XSS和SQL扫描大概看了下特征的字符就是以下字符
Acunetix-Aspect:
Acunetix-Aspect-Password:
Acunetix-Aspect-Queries:
这三个字段

那就把来路带有关键字的都过滤掉…让你扫去!(这时候就是宁可错杀三千,不能放过一个!)

思路:
检测HTTP头中的
参数:值
任意包含acunetix中就禁止访问,顺便再返回一个500服务器错误。

禁止的方法想了好几种,网上有关这个的就看到当初oldjun和heige的两个思路。不过貌似都不太适合,有兴趣的同学可以自己看看。
因为分析发现扫描过程中一些SQL注入脚本或者其他脚本是不包含以上提到的关键字。
因此想到利用session或者cookie来判断是否恶意请求,判断成立就500,是不是简单粗暴!

看看代码(相当简陋)

if(isset($_COOKIE["PHPinfoTest"]))
  {
    header('HTTP/1.1 500 Internal Server Error');
    exit();
  }else{
  foreach ($_SERVER as $key => $value) {
    If(strpos(strtolower($key),"acunetix")!==false||strpos(strtolower($value),"acunetix")!==false){
        header('HTTP/1.1 500 Internal Server Error');
      setcookie("PHPinfoTest","IZIEMILOULOAIXNAUHIXLOAIX",time()+60);
    exit();
    }
    }
}

放在全局变量的文件里

看看效果:
20131212152401

使用脚本以后:
2013110602522274413

这里也只是粗浅的提供一种方法,如有说的不对的,请指正。

转自:http://zone.wooyun.org/content/7942

ps:上面的防护其实是简单的通过请求头来识别awvs的扫描,虽然能起到一点效果,但是也很好绕过(使用burp替换请求头中的相应关键字即可)。要使所有的扫描软件都能去掉其关键特征,绕过服务端的检测,可以参考《自制分布式漏洞扫描》

 

转载请注明:jinglingshu的博客 » 服务器流量异常追踪–抵抗AWVS扫描


Warning: Use of undefined constant PRC - assumed 'PRC' (this will throw an Error in a future version of PHP) in /usr/share/nginx/html/wp-content/themes/d8/comments.php on line 17
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址