事件描述:阿里云报警 ——检测该异常事件意味着您服务器上开启了"Chargen/DNS/NTP/SNMP/SSDP"这些UDP端口服务,黑客通过向该ECS发送伪造源IP和源端口的恶意UDP查询包,迫使该ECS向受害者发起了UDP DDOS攻击
源IP: xx.xx.xx.xx 源PORT: 111 目的PORT: 963
攻击类型: SunRPC反射攻击
扫描IP频数: 3
扫描TCP包频数: 11480
持续时间(分钟): 55
事件说明: 检测该异常事件意味着您服务器上开启了"Chargen/DNS/NTP/SNMP/SSDP"这些UDP端口服务,黑客通过向该ECS发送伪造源IP和源端口的恶意UDP查询包,迫使该ECS向受害者发起了UDP DDOS攻击。
解决方案: 自查ECS中19、53、123、161、1900 UDP端口是否处于监听状态,若开启就关闭
自查步骤:
netstat -anp|grep :19 无
netstat -anp|grep :53 无
netstat -anp|grep :123 无
netstat -anp|grep :161 无
netstat -anp|grep :1900 无
再查看111端口
netstat -anp|grep : tcp 0.0.0.0: 0.0.0.0:* LISTEN /portmap tcp 112.124.53.48: 60.191.29.20: ESTABLISHED /portmap tcp 112.124.53.48: 139.196.13.106: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 120.26.55.211: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap tcp 112.124.53.48: 122.224.153.109: ESTABLISHED /portmap tcp 112.124.53.48: 123.59.52.206: ESTABLISHED /portmap udp 0.0.0.0:111 0.0.0.0:* /portmap
[root@AY1310231051059094d8Z server]# kill -9 1953
[root@*****server]# netstat -anp|grep :111
以上只是临时解决办法,实际生产还需要通过指定防火墙规则来过滤才行,毕竟直接停服务就太暴力了,有时候可能会影响服务器正常业务。
如果业务需要启动该UDP服务,可以启动并指定防火墙规则来过滤,添加禁止所有规则,添加允许信任源IP
iptables -I INPUT -p udp -m multiport --dport ,,,, -j DROP
iptables -I INPUT -p udp -m multiport --sport ,,,, -j DROP
iptables -I OUTPUT -p udp -m multiport --dport ,,,, -j DROP
iptables -I OUTPUT -p udp -m multiport --sport ,,,, -j DROP
注:之所以没有禁止53端口,是因为我用的阿里云服务器,其中安骑士和云监控需要53端口才能连接检测,否则会失败。
附:linux系统常见木马清理命令
chattr -i /usr/bin/.sshd
rm -f /usr/bin/.sshd
chattr -i /usr/bin/.swhd
rm -f /usr/bin/.swhd
rm -f -r /usr/bin/bsd-port
cp /usr/bin/dpkgd/ps /bin/ps
cp /usr/bin/dpkgd/netstat /bin/netstat
cp /usr/bin/dpkgd/lsof /usr/sbin/lsof
cp /usr/bin/dpkgd/ss /usr/sbin/ss;rm -r -f /root/.ssh
rm -r -f /usr/bin/bsd-port
find /proc/ -name exe | xargs ls -l | grep -v task |grep deleted| awk '{print $11}' | awk -F/ '{print $NF}' | xargs kill all -9
chattr -i /usr/bin/.sshd && rm -f /usr/bin/.sshd && chattr -i /usr/bin/.swhd && rm -f /usr/bin/.swhd && rm -f -r /usr/bin/bsd-port && cp /usr/bin/dpkgd/ps /bin/ps && cp /usr/bin/dpkgd/netstat /bin/netstat && cp /usr/bin/dpkgd/lsof /usr/sbin/lsof && cp /usr/bin/dpkgd/ss /usr/sbin/ss && rm -r -f /root/.ssh && rm -r -f /usr/bin/bsd-port && find /proc/ -name exe | xargs ls -l | grep -v task |grep deleted| awk '{print $11}' | awk -F/ '{print $NF}' | xargs kill all -