Linux下随机10字符病毒的清除

病毒表现: 网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首。杀死该进程后,会再随机产生一个新的进程。

查找步骤: 一、/proc/_pid/cmdline里面都是伪造的信息,ps显示的内容也一样,基本上为下面一些常见的命令,混淆管理员眼光查询线索,核验这一个,可以尝试把who等不常见的命令禁用执行权限,但随后却会发现该命令不停地出现在ps -Af里面:

gnome-terminal ls -a route -n netstat -antop ifconfig sh cd /etc bash who cat resolv.conf ps -ef cat resolv.conf

由于大量的流量,先用iptables封住该IP,tcp连接不上后,它会改用udp向外发送,发送不出去后会进入监听状态,端口可以见下面的lsof结果。

二、ps -AfH,显示为以上的命令,但是ppid(父id)为1,则为init,所以这个应该是跟某个服务相关的。

ps -AfH root     17796     1  0 11:54 ?        00:00:00   route -n root     18008     1  0 11:55 ?        00:00:00   netstat -antop root     18011     1  0 11:55 ?        00:00:00   ifconfig root     18014     1  0 11:55 ?        00:00:00   sh root     18015     1  0 11:55 ?        00:00:00   cd /etc root     18016     1  0 11:55 ?        00:00:00   bash root     18028     1  0 11:55 ?        00:00:00   who root     18031     1  0 11:55 ?        00:00:00   cat resolv.conf root     18033     1  0 11:55 ?        00:00:00   ps -ef

用pstree可以看到真实的名字:

|-irqbalance –pid=/var/run/irqbalance.pid |-jbguikdekd |-jbguikdekd |-jbguikdekd |-jbguikdekd |-mingetty /dev/tty2 |-mingetty /dev/tty3 |-mingetty /dev/tty4 |-mingetty /dev/tty5 |-mingetty /dev/tty6

lsof 也可以持到具体的信息,同时还可以看到一个到103.240.141.54的tcp连接。

三、在crontab的log里面,总显示执行了一个gcc.sh,经查找,是在/etc/cron.hourly/里面:

# cat /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查看,这个文件则为一个可执行文件,请注意下面的两个文件,一个为executable(可执行的),另一个则为正常的共享库(shared object):

# file libudev.so libudev.so: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped

正常的库文件应该为:

# file libutil-2.12.so libutil-2.12.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

把这个文件取消可执行权限,但是病毒故障依旧。

四、因为这个病毒不断自我启动,并且父进程号为1,所以应该和init有关,所以查看/etc/init.d,发现里面果然有启动项,删除之。在/etc/rc.d/rc3.d/里面,也有类似的好几个启动项,一并删除。 删除后,发现仍然不能杀死,杀死后马上重建一个新的,用lsof 查看:

# lsof -R  | grep “/usr/bin” top        9512  9478      root  txt       REG      253,0    63856     421158 /usr/bin/top fhmlrqtqv 17161     1      root  txt       REG      253,0   625729     393335 /usr/bin/fhmlrqtqvz fgqnvqzzc 17226     1      root  txt       REG      253,0   625740     393427 /usr/bin/fgqnvqzzck (deleted) fgqnvqzzc 17229     1      root  txt       REG      253,0   625740     393427 /usr/bin/fgqnvqzzck (deleted) fgqnvqzzc 17232     1      root  txt       REG      253,0   625740     393427 /usr/bin/fgqnvqzzck (deleted) fgqnvqzzc 17233     1      root  txt       REG      253,0   625740     393427 /usr/bin/fgqnvqzzck (deleted) fgqnvqzzc 17234     1      root  txt       REG      253,0   625740     393427 /usr/bin/fgqnvqzzck (deleted) # lsof -R fhmlrqtqv 17161     1      root  cwd       DIR      253,0     4096          2 / fhmlrqtqv 17161     1      root  rtd       DIR      253,0     4096          2 / fhmlrqtqv 17161     1      root  txt       REG      253,0   625729     393335 /usr/bin/fhmlrqtqvz fhmlrqtqv 17161     1      root    0u      CHR        1,3      0t0       4023 /dev/null fhmlrqtqv 17161     1      root    1u      CHR        1,3      0t0       4023 /dev/null fhmlrqtqv 17161     1      root    2u      CHR        1,3      0t0       4023 /dev/null fhmlrqtqv 17161     1      root    3u     IPv4      50163      0t0        UDP *:57331 ynmsjtlpw 17272     1      root  cwd       DIR      253,0     4096          2 / ynmsjtlpw 17272     1      root  rtd       DIR      253,0     4096          2 / ynmsjtlpw 17272     1      root  txt       REG      253,0   625751     393426 /usr/bin/ynmsjtlpwp (deleted) ynmsjtlpw 17272     1      root    0u      CHR        1,3      0t0       4023 /dev/null ynmsjtlpw 17272     1      root    1u      CHR        1,3      0t0       4023 /dev/null ynmsjtlpw 17272     1      root    2u      CHR        1,3      0t0       4023 /dev/null ynmsjtlpw 17275     1      root  cwd       DIR      253,0     4096          2 / ynmsjtlpw 17275     1      root  rtd       DIR      253,0     4096          2 /

五:再查init.d,发现在runlevel 3下有两个可疑的进程,这两个进程杀死后马上再启动,非常有嫌疑:

/usr/sbin/modem-manager /usr/sbin/wpa_supplicant

但是经过仔细的追查,却发现是由NetworkManager来启动的,在/var/log/messages里面可以看到相关的记录(话说差点远程把NetworkManager给干掉了!)

六、再战lsof: 再次快速重复查看:# lsof -R  | grep “/usr/bin”,发现主进程不变,总是产生几个辅进程,并且一直处于dedeted状态,这说明主进程会快速产生几个子进程,然后这些进程之间相互检测,一旦检测到病毒主体被删除或更改,就会再产生一个。

解决:

禁用/tmp写权限 1、先删除掉init系统的启动项目,这样保证init不会主动启动病毒,同时这些监控进程不去检测init中的项目是否被删除,否则又会加大点麻烦; 2、再禁掉crontab里面的东西,保证不自动启动; 3、执行:chmod 000 /usr/bin/xxxxxxx && chattr +i /usr/bin 这个命令是复合命令,先禁止执行,再锁定/usr/bin,这样保证新产生的病毒写不到里面去。 4、杀掉主进程,删除病毒主体。 5、检查无误后,解开/usr/bin,删除掉可能产生的其他病毒体。

总结: 1、/proc里面的东西是可以更改的; 2、lsof还比较忠诚,不直接读取/proc里面的信息,ps看到的就不一定真实,top看到的进程还是正确的。

附:find -o参数就是逻辑运算的or

另附一张网络上的sbtrace

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网杂技

HTTP,HTTP2.0,SPDY,HTTPS你应该知道的一些事

作为一个经常和web打交道的程序员,了解这些协议是必须的,本文就向大家介绍一下这些协议的区别和基本概念,文中可能不局限于前端知识,还包括一些运维,协议方面的知识...

592110
来自专栏小狼的世界

HP-UX培训学习笔记

HP-UX操作系统全称为Hewlett Packard UniX,是惠普服务器上所有的操作系统。其发源自 AT & T SRV4系统,可以支持HP的PA-RIS...

17320
来自专栏晨星先生的自留地

黑客技能训练:攻破MrRobot

19540
来自专栏Android干货园

Android开发之路--(2)--Android四大组件

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/47...

11720
来自专栏FreeBuf

看我如何在渗透测试过程中发现并利用Serv-U漏洞进行操作系统提权

最近,我在做一个外网渗透测试的过程中,发现了SolarWinds文件共享程序Serv-U的一个漏洞,通过该漏洞我获得了Serv-U的管理权限,并能以系统用户身份...

29060
来自专栏封碎

android锁屏实现思路 博客分类: Android Android

首先,得听到系统的屏幕关闭的广播,这个广播是什么呢?不知道啊。那怎么办?搜呗!搜索,可以搜到,不过我找到一个可以知道系统所有广播的办法:我的 sdk 是1.5 ...

20010
来自专栏月色的自留地

在龙芯小本上安装Debain8.10

25460
来自专栏CodingBlock

Android学习笔记(一)Android应用程序的组成部分

  Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起;应用程序Manifest描述了每一组件和它们之间的交互方式,还用于指定...

19470
来自专栏阿北的知识分享

浅谈csrf攻击以及yii2对其的防范措施

今天北哥就给大家普及下csrf是啥?如果你已经知道了可以直接拉文章到底部点个赞。:smile:

20360
来自专栏一“技”之长

将iOS项目进行子工程化 原

    在iOS项目开发中,随着项目的越来越大,工程的结构化会变差,编译的速度也会越来越慢。使用静态库或动态库的方式来构建子工程不仅可以加快项目的编译速度,从结...

16940

扫码关注云+社区

领取腾讯云代金券