• 博客访问: 1755573
  • 博文数量: 1459
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-05 08:39
个人简介

暂无介绍

ITPUB论坛APP

ITPUB论坛APP



APP发帖 享双倍积分

文章分类

全部博文(1459)

文章存档

2018年(1)

2017年(20)

2016年(7)

2013年(7)

2012年(2)

2011年(3)

2010年(6)

2009年(23)

2008年(134)

2007年(306)

2006年(713)

2005年(237)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

分类: Linux

一、现象

Linux服务器被黑, 向外疯狂发包,造成网络瘫痪。nload显示100Mbit/s。(nload统计流量软件)

二、木马扫描

1、ClamAV介绍

ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是无法清除,至多删除文件。ClamAV可以工作很多的平台上,但是有少数无法支持,这就要取决您所使用的平台的流行程度了。另外它主要是来防护一些WINDOWS病毒和木马程序。另外,这是一个面向服务端的软件。

ClamAV的官方下载地址为http://www.clamav.net/download.html 我直接使用wget下载源码安装文件。

相关使用参考http://wiki.ubuntu.org.cn/ClamAV

2、安装ClamAV

sudo apt-get install clamav


3、升级病毒库:

sudo  freshclam

4、clamscan.扫描病毒

这里附带一些例子

  • 扫描所有用户的主目录就使用 clamscan -r /home
  • 扫描您计算机上的所有文件并且显示所有的文件的扫描结果,就使用 clamscan -r /
  • 扫描您计算机上的所有文件并且显示有问题的文件的扫描结果, 就使用 clamscan -r --bell -i /

如果不知道木马可能的位置就全盘扫吧,时间较长,可以放在晚上扫

clamscan -r --bell -i /
/lib/libudev.so: Unix.Trojan.DDoS_XOR-1 FOUND
/lib/lib3.so.1: Linux.Trojan.Agent FOUND
/usr/bin/jjhltwoxvs: Unix.Trojan.DDoS_XOR-1 FOUND

----------- SCAN SUMMARY -----------
Known viruses: 4059163
Engine version: 0.98.7
Scanned directories: 1300819
Scanned files: 13315360
Infected files: 4
Total errors: 14433
Data scanned: 401706.34 MB
Data read: 788612.48 MB (ratio 0.51:1)
Time: 52742.298 sec (879 m 2 s)

以上标红的就是发现的病毒文件。

使用file /lib/libudev.so查看可以看到,都是可执行文件。


三、木马linux.BackDoor.Gates.5介绍


Linux.BackDoor.Gates.5,此恶意软件结合了传统后门程序和DDoS攻击木马的功能,用于感染32位Linux版本,根据其特征可以断定,是与Linux.DnsAmp和Linux.DDoS家族木马同出于一个病毒编写者之手。新木马由两个功能模块构成:基本模块是能够执行不法分子所发指令的后门程序,第二个模块在安装过程中保存到硬盘,用于进行DDoS攻击。Linux.BackDoor.Gates.5在运行过程中收集并向不法分子转发受感染电脑的以下信息:

  1. CPU核数(从/proc/cpuinfo读取)。
  2. CPU速度(从/proc/cpuinfo读取)。
  3. CPU使用(从/proc/stat读取)。
  4. Gate'a的 IP(从/proc/net/route读取)。
  5. Gate'a的MAC地址(从/proc/net/arp读取)。
  6. 网络接口信息(从/proc/net/dev读取)。
  7. 网络设备的MAC地址。
  8. 内存(使用/proc/meminfo中的MemTotal参数)。
  9. 发送和接收的数据量(从/proc/net/dev读取)。
  10. 操作系统名称和版本(通过调用uname命令)。

启动后,Linux.BackDoor.Gates.5会检查其启动文件夹的路径,根据检查得到的结果实现四种行为模式。

如果后门程序的可执行文件的路径与netstat、lsof、ps工具的路径不一致,木马会伪装成守护程序在系统中启动,然后进行初始化,在初始化过程中解压配置文件。配置文件包含木马运行所必须的各种数据,如管理服务器IP地址和端口、后门程序安装参数等。

根据配置文件中的g_iGatsIsFx参数值,木马或主动连接管理服务器,或等待连接:成功安装后,后门程序会检测与其连接的站点的IP地址,之后将站点作为命令服务器。

木马在安装过程中检查文件/tmp/moni.lock,如果该文件不为空,则读取其中的数据(PID进程)并“干掉”该ID进程。然后Linux.BackDoor.Gates.5会检查系统中是否启动了DDoS模块和后门程序自有进程(如果已启动,这些进程同样会被“干掉”)。如果配置文件中设置有专门的标志g_iIsService,木马通过在文件/etc/init.d/中写入命令行#!/bin/bash\n<path_to_backdoor>将自己设为自启动,然后Linux.BackDoor.Gates.5创建下列符号链接:

ln -s /etc/init.d/DbSecuritySpt /etc/rc1.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc2.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc3.d/S97DbSecuritySpt
ln -s /etc/init.d/DbSecuritySpt /etc/rc4.d/S97DbSecuritySpt

如果在配置文件中设置有标志g_bDoBackdoor,木马同样会试图打开/root/.profile文件,检查其进程是否有root权限。然后后门程序将自己复制到/usr/bin/bsd-port/getty中并启动。在安装的最后阶段,Linux.BackDoor.Gates.5在文件夹/usr/bin/再次创建一个副本,命名为配置文件中设置的相应名称,并取代下列工具:

/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps

木马以此完成安装,并开始调用基本功能。

执行另外两种算法时木马同样会伪装成守护进程在被感染电脑启动,检查其组件是否通过读取相应的.lock文件启动(如果未启动,则启动组件),但在保存文件和注册自启动时使用不同的名称。

与命令服务器设置连接后,Linux.BackDoor.Gates.5接收来自服务器的配置数据和僵尸电脑需完成的命令。按照不法分子的指令,木马能够实现自动更新,对指定IP地址和端口的远程站点发起或停止DDoS攻击,执行配置数据所包含的命令或通过与指定IP地址的远程站点建立连接来执行其他命令。


四、木马清理

1、简单判断有无该中木马

有无下列文件,有说明中了Linux.BackDoor.Gates.5木马

cat /etc/rc.d/init.d/selinux

cat /etc/rc.d/init.d/DbSecuritySpt

ls /usr/bin/bsd-port 

ls /usr/bin/dpkgd

查看大小是否正常(与一正常系统对比),我服务器上发现大小都是1.1Mbyte,明显不正常

ls -lh /bin/netstat

ls -lh /bin/netstat

ls -lh /usr/sbin/lsof

2、删除/bin/netstat、/bin/netstat、/usr/sbin/lsof,从正常系统拷贝该三条命令到/root目录供使用,再木马清理完毕再将其拷到对应bin目录。

3、删除以下文件

rm -rf /usr/bin/bsd-port  (木马程序)
m -rf /usr/bin/dpkgd
rm -f /usr/bin/.sshd 
rm -f /tmp/gates.lock 进程号

rm /etc/cron.hourly/gcc.sh

rm /etc/init.d/selinux (木马)

rm /etc/init.d/DbSecuritySpt (木马)

rm /etc/rc1.d/S97DbSecuritySpt

rm /etc/rc2.d/S97DbSecuritySpt

rm /etc/rc3.d/S97DbSecuritySpt

rm /etc/rc4.d/S97DbSecuritySpt

rm /etc/rc5.d/S97DbSecuritySpt

以上文件删除了可能立马就又重新生成了。/etc/rc.d/init.d/selinux、/etc/rc.d/init.d/DbSecuritySpt、/usr/bin/bsd-port 、/usr/bin/dpkgd、/tmp/gates.lock 、 /etc/cron.hourly/gcc.sh都删不掉,会被重新创建

解决:可以删除后立马自己创建一个并设置不允许修改。

如:

rm /etc/cron.hourly/gcc.sh
touch /etc/cron.hourly/gcc.sh
chattr +i /etc/cron.hourly/gcc.sh

注:chattr +i :设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容

若以上也不行,那么就破坏掉木马文件,木马的监控进程发现文件存在应该不会重新创建,故可以破坏掉:

echo xxxxxxxx > /etc/rc.d/init.d/DbSecuritySpt


4、杀死可疑进程

①使用top查看到有可以进程

kill -9 9490,杀死后几秒后就会重新随机创建一个新的木马进程。该进程是随机10字符病毒。那么说明有个启动脚本或进程,在发现进程不再时就立马重启该木马。

我们首先查看自启动脚本。


②ps 查看上述进程的父进程号为1是init进程,所以应该和init有关,说明系统启动时创建了该木马进程,有一个启动脚本创建了该进程,然后该进程监控病毒文件,当病毒文件被删除了就会立马创建。所以查看/etc/init.d


③在crontab的log里面,总显示执行了一个gcc.sh

打开vi /etc/crontab

内容如下:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
20 04 * * * root /usr/lib/lm/scon.sh
09 18 * * * root /usr/lib/lm/scon.sh
*/3 * * * * root /etc/cron.hourly/gcc.sh //每3分钟重启一次
对比发现最后三行是多的。

打开这三个脚本发现这三个文件都是病毒脚本

④vi /etc/cron.hourly/gcc.sh
#!/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/libudev.so /lib/libudev.so.6
/lib/libudev.so.6

从这个地方可以看到病毒本体:/lib/libudev.so,这个文件看起来应该是一个库文件,但是用file查看,这个文件则为一个可执行文件

删除该/lib/libudev.so会立马重新生成,应该是上述top查到的可疑进程监控的。

既然删不掉,那么破坏掉:

echo slkfhrl,kfhs > /lib/libudev.so
rm /lib/libudev.so

touch /lib/libudev.so
chattr +i /lib/libudev.so

再kill掉上述木马进程,发现进程被杀死没有重新创建。

⑤vi /usr/lib/lm/scon.sh

打开该文件发现拷贝了木马文件,删除脚本中创建的目录及文件。


[cpp] view plain copy
 print?
  1. <span style="font-family:SimSun;font-size:14px;">。。。。。。。。。。。。。。  
  2. <span style="color:#ff0000;">mkdir /var/opt/lm  
  3. cd /var/opt/lm  
  4. myFile="/var/opt/lm/pstart"  
  5. if [ ! -f "$myFile" ]; then  
  6. mkdir /var/opt  
  7. <span style="color:#ff0000;">mkdir /var/opt/lm  
  8. cp /lib/lib19.so.1 /var/opt/lm/pstart  
  9. sleep 1s  
  10. chmod 755 /var/opt/lm/pstart  
  11. sleep 2s  
  12. kill -s 9 `pgrep freeBSD`  
  13. sleep 1s  
  14. pkill -9 freeBSD  
  15. else  
  16. sleep 1s  
  17. fi  
  18.   
  19.   
  20. myFile="/var/opt/lm/https"  
  21. if [ ! -f "$myFile" ]; then  
  22. mkdir /var/opt  
  23. mkdir /var/opt/lm  
  24. cp /lib/lib17.so.1 /var/opt/lm/https  
  25. sleep 1s  
  26. chmod 755 /var/opt/lm/https  
  27. sleep 2s  
  28.   
  29.   
  30. 。。。。。。。。。。。。。。。  

rm /lib/lib19.so.1
rm /lib/lib17.so.1
rm /lib/lib3.so.1


⑥查找scon.sh文件从哪生成的

grep -r scon.sh /etc/

下图可以看到/etc/init.d/iislog中创建了scon.sh文件,cp /bin/.iptab3 /usr/lib/lm/scon.sh,到这里算是找到了病毒的源头:

⑦梳理下:

/bin/.iptab3是病毒源

/etc/init.d/iislog是开机启动脚本。并创建相应的病毒文件/usr/lib/lm/scon.sh ,将该文件追加到/etc/crontab来定时自启动。

/etc/crontab中的 /etc/cron.hourly/gcc.sh //每3分钟重启一次

cp /lib/libudev.so /lib/libudev.so.6  /lib/libudev.so.6执行病毒体,监控进程发现/lib/libudev.so 背删就会重新生成。

解决:

将源头/bin/.iptab3、/etc/init.d/iislog删掉保证init不会主动启动病毒;

清理/etc/crontab保证不自启动;

将病毒脚本中创建的目录及文件都一一删掉。重启系统,发现病毒已经清理掉。

杀掉主进程,删除病毒体/lib/libudev.so

重启后再次检查一下步骤3中要删除的文件是否没有被重新创建。

OK,清理完毕!




注:

查找清理病毒期间用到的工具:

1、nload统计网络流量

2、chattr +i限制文件修改

3、lsof(list open files)是一个列出当前系统打开文件的工具。

4、inotifywait -m /etc/:实时监控文件变动

阅读(72) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册