事件描述:阿里雲報警 ——檢測該異常事件意味着您服務器上開啟了"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 :111 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1953/portmap tcp 0 0 112.124.53.48:111 60.191.29.20:44964 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 139.196.13.106:30808 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:54912 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:38893 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 120.26.55.211:36599 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:39363 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:46023 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:57406 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:41479 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:39008 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 122.224.153.109:51125 ESTABLISHED 1953/portmap tcp 0 0 112.124.53.48:111 123.59.52.206:44366 ESTABLISHED 1953/portmap udp 0 0 0.0.0.0:111 0.0.0.0:* 1953/portmap
[root@AY1310231051059094d8Z server]# kill -9 1953
[root@*****server]# netstat -anp|grep :111
以上只是臨時解決辦法,實際生產還需要通過指定防火牆規則來過濾才行,畢竟直接停服務就太暴力了,有時候可能會影響服務器正常業務。
如果業務需要啟動該UDP服務,可以啟動並指定防火牆規則來過濾,添加禁止所有規則,添加允許信任源IP
iptables -I INPUT -p udp -m multiport --dport 19,161,111,123,1900 -j DROP iptables -I INPUT -p udp -m multiport --sport 19,161,111,123,1900 -j DROP iptables -I OUTPUT -p udp -m multiport --dport 19,161,111,123,1900 -j DROP iptables -I OUTPUT -p udp -m multiport --sport 19,161,111,123,1900 -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 -9