网卡被攻击如何查杀木马

凌晨两点,被攻我的击何服务器报警。网卡流量飙到900Mbps,查杀而平时峰值不超过30M。木马登录上去一看,被攻进程列表里多了个叫“php-fpm7”的击何东西——但真正的php-fpm是5.6版本。那一刻我就知道,查杀网卡被当成了肉鸡的木马炮台。

查木马别急着杀。被攻先断网,击何拔掉网线或者用防火墙DROP所有外部连接。查杀这一步慢了,木马攻击者可能远程清掉痕迹。被攻我那次运气好,击何对方还在用反向shell连着,查杀没来得及销毁日志。

查进程是第一步,但别信进程名。真正的木马会伪装成系统进程,比如“kworker”或者“systemd-journald”。用ps auxf看进程树,重点找那些PPID是1(孤儿进程)但启动时间诡异的。再用lsof -i看网络连接,木马总要和外网通信。那次我抓到的木马,连接的是俄罗斯一个IP的4444端口——典型Metasploit默认端口。

查完进程查启动项。木马要持久化,必然写进crontab、rc.local或者systemd服务。cat /etc/crontab,再看/etc/systemd/system下最近修改的文件。那次木马把自己写进了/etc/rc.d/rc.local,用的还是绝对路径,挺狡猾。

文件层面,木马通常藏在/tmp、/var/tmp或者/dev/shm。用find / -mtime -3 -type f -name "*.so"找最近三天修改的库文件。那次木马还改了ld.so.preload,把恶意so注入所有进程。这招狠,不查这个文件,重装应用都没用。

日志是重灾区。攻击者一般会清掉/var/log/secure和last命令的记录。但有个地方他们常忽略——/var/log/messages里可能残留着扫描痕迹。那次我翻日志,看到攻击者从某个IP连续尝试SSH登录200多次,最后成功进入。顺着那个IP查,发现是台被控的国内服务器。

杀木马不能只删文件。先kill进程,再删文件,最后清启动项,顺序反了等于白干。那次我先把恶意进程PID记下来,用kill -9强杀,然后删掉那个伪装成php-fpm的二进制,最后把rc.local里的恶意行注释掉。重启后观察网卡流量,恢复正常。

还有个细节,查一下~/.ssh/authorized_keys。攻击者常留后门公钥。那次确实发现了,删掉之后还要检查/root/.bash_history,看看对方执行过什么命令——不过对方可能也清了。用history命令看当前shell的记录,如果被清空了,反而说明有问题。

最后说个偏方。网卡被攻击后,除了查木马,还要检查/proc/net/arp。有些木马会伪装成局域网内的其他设备,通过ARP欺骗劫持流量。那次我没注意这个,结果隔了三天又复发——原来木马还有个ARP层面的变种。

杀完木马,把系统补丁打上,密码改了,SSH端口换了。别心疼那台机器,该重装就重装。我那次图省事没重装,后来发现内核模块里还有残留,只能格式化重来。记住,网卡被攻击只是表象,真正的战场在系统深处。