服务器中DDOS木马(盖茨病毒)后应急处理
中DDOS病毒后的症状
服务器中了DDOS病毒后,上行流量剧增,甚至占满上行带宽,导致服务器上各种服务无法访问或访问不稳定。
如上图服务器,在中了DDOS木马甚至ping都不通了。
病毒特征
发现ping服务器延迟高的时候第一时间以为是网络问题,连接到服务器以后发现流量使用爆表,上行带宽使用率100%。
急忙抓包:
tcpdump -i any -s 0 -w 0108.pcap
抓了几秒钟以后停下来发现pcap文件已经几个G了,下载下来查看发现服务器发送大量目的端口为80和443的包,判断为DDOS病毒。
应急处理
目的端口流量过滤
知道病毒导致服务器异常的原因是因为向别的服务器80和443端口发送了大量数据包导致带宽被占满。
因此应急处理比较简单,即禁止服务器向访问外部80和443端口。
iptables -I OUTPUT -p tcp --dport 80 -j DROP iptables -I OUTPUT -p tcp --dport 443 -j DROP
执行上述命令后服务器访问80与443端口的所有流量都被丢弃,上行流量恢复正常。
白名单目的地址放开
过滤完目的端口80与443的流量之后,服务器上行恢复正常,但是服务器中本身的服务也会使用80与443端口,这部分使用80与443的服务可能是从网络上获取视频、天气等信息的,但目前也无法使用了,要想恢复使用,则需要找到这些服务访问的目的IP地址对其放开。
了解到服务从第三方域名“openapi.lechange.cn”获取了视频访问接口,那么需要将对“openapi.lechange.cn”域名的访问进行放开,首先得到该域名解析记录。
nslookup openapi.lechange.cn
可以看到域名被解析到114.55.182.52地址,那么对这个地址的流量进行放通
iptables -I OUTPUT -d 114.55.182.52 -j ACCEPT
再测试服务是否恢复正常。
为什么不急着清除病毒
本文对该中了DDOS病毒的服务器做应急处理,让服务访问恢复正常,由于一些原因,未涉及清除病毒过程,仅仅对部分访问做限制以保证原有服务正常使用。
在下文的排查中发现病毒感染了大量系统命令(如ps,netstat等),而服务器上原有服务会调用这些命令,由于原有服务程序问题,当这些命令调用失败后会无限尝试循环调用,导致内存、CPU被占满,进而引起整个服务器异常,因此选择不轻举妄动,在不修改任何系统程序的情况下尽可能恢复原有服务正常使用。
客户要求尽快恢复服务使用,一步步排查会花费大量时间。
后续处理
在与客户预约空闲时间后,尝试对病毒进行处理。
在/usr/bin/bsd-port/中发现以下程序,基本确定是盖茨病毒
BillGates在2014年被首次发现,由于其样本中多变量及函数包含字符串”gates”而得名,该病毒主要被黑客用于DDos,其特点是会替换系统正常程序(ss、netstat、ps、lsof)进行伪装。
处理方法就简单了:
在/tmp/目录下存在gates.lod、moni.lod文件。
出现病毒文件夹/usr/bin/bsd-port/。
清除/usr/bin/bsd-port/getty、.ssh等病毒进程。
清除/usr/bin/bsd-port/getty、/usr/bin/.sshd等病毒文件。
从/usr/bin/dpkgd/目录恢复原系统文件。
详见:
https://baijiahao.baidu.com/s?id=1732249476484714754&wfr=spider&for=pc