抓住Linux木马的小尾巴并且清除它


Linux木马越来越常见,而Linux系统常常运行着重要的业务,所以一旦被植入木马,对业务的影响会很大。不久前,某 客户被安全机构检测出流量异常,客户寻找了许久都没有发现问题出在什么地方,没办法的情况找到我们寻求帮助。该木马也的确非常麻烦,无论你怎么删除它一会 又会出现。其实当时在客户寻求我们帮助的时候已经发现了被感染的机器是那台。只是迫于自己无法删除所以没有对我们坦诚而已。态度就是一问三不知啊!没辙只 好自己开始想办法想办法。

过程介绍

这么多台设备总不能一台台上机检测吧!那我会疯的。逼于无奈只好,架设上设备’铁穹’在网络出口处对流量进行分析,还是这玩意管用啊。很快的就发现了一台主机对外流量发送异常。原本以为发现就好办了删除就是了撒!(大功告成回家洗白白)可是现实总是会让你恶心后才罢手。

很 快的找到了木马所在的文件删除掉。重启计算机检测流量。尼玛什么情况还在对外发包,逼于无奈的情况下只好利用铁穹对流量强大的还原功能,将流量还原进行详 细分析,看是否是发的同样报文。哎一看既然还是同样的报文。再次上到服务器,无语啊!进程又在了。没辙只好把木马拿出来进行分析。

使用设备

整个清除木马过程中所使用的的硬件设备是铁穹高级持续性威胁预警系统和ida、gdb、edb、等分析软件,详情如下:

该木马运行之后会向远程IP的19150端口发送SYN报文,平均每秒发送三万多条数据包,是典型的SYN FLOOD攻击。分析后发现感染的木马是会主动发起DDos攻击,属于XorDDos家族。

木马行为分析

文件扫描信息

文件逆向分析【主要行为】

1) 解密字符串

木马通过解密钥匙:”BB2FA36AAA9541F0″,对字符串进行XOR解密,解密出的字符串包括:



Default



/boot/

/var/run/sftp.pid

/lib/udev/udev

/lib/udev/

http://info.3000uc.com/config.rar

/var/run/



解密出以下系统命令:



Default



cat resolv.conf

sh

bash

su

ps -ef

ls

top

netstat -an

netstat -antop

grep "A"

sleep 1

cd /etc

echo "find"

ifconfig eth0

ifconfig

route -n

gnome-terminal

id

who

whoami

pwd

uptime



这次字符串在后续的操作中,会被用于文件拷贝和系统命令的执行。

1) 拷贝文件

在清除过程中可说是九曲十三弯,木马的自我保护机制做的非常到位。拥有自复制、重命名等恶心功能。

木马会将原始文件拷贝两份到不同的目录下,

将文件拷贝到/lib/udev/目录下,并将文件名伪装成udev。

将文件拷贝到/boot/目录下,命名随机。

2) 运行子进程并删除原始文件

木马通过fork函数将父进程结束,并删除父进程的文件,同时运行boot下的木马程序,继续进行系统感染。

3) 创建计划任务

木马通过创建时间计划任务来实现启动,并每3分钟检测程序是否运行,如果不存在,会继续通过拷贝副本运行。

关键脚本文件

/etc/crontab,内容如下



Default



# m h dom mon dow user command

#

*/3 * * * * root /etc/cron.hourly/cron.sh



/etc/cron.hourly/cron.sh,内容如下



Default



#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin

for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done

cp /lib/udev/udev /lib/udev/debug

/lib/udev/debug



4) 进行网络通讯

木马会起多线程进行网络操作,利用下载文件、更新文件、进行DDos攻击等。XorDdos木马来自中国,攻击的对象也同样来自中国。

5) 其他功能

从静态分析来看,木马还具有rootkit的功能,首先它会通过CheckLKM函数决定是否进行rootkit感染,前提是能打开 /proc /rs_dev,功能包括:hide_file, hide_proc, hide_tcp4_ports, hide_tcp6_ports, hide_udp4_ports, hide_udp6_ports; firewall_acceptip, firewall_dropip。

同时具有绕过iptables的功能。

木马清除

找到 /lib/udev/udev /etc/cron.hourly/cron.sh 以及 /boot下的文件,并删除,然后重启。

【via@ 南京东巽】