转:Linux下随机10字符病毒的清除
病毒表现:
网络流量暴满,疯狂地向香港的一个IP发数据,同时在top里面表现为随机的10位字母的进程,看/proc里面的信息,则为ls,cd之类常见的命令,CPU利用率也在top之首。杀死该进程后,会再随机产生一个新的进程。
查找步骤:
一、/proc/_pid/cmdline里面都是伪造的信息,ps显示的内容也一样,基本上为下面一些常见的命令,混淆管理员眼光查询线索,核验这一个,可以尝试把who等不常见的命令禁用执行权限,但随后却会发现该命令不停地出现在ps -Af里面:
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,所以这个应该是跟某个服务相关的。
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可以看到真实的名字:
|-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/里面:
#!/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):
libudev.so: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped
正常的库文件应该为:
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 查看:
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/wpa_supplicant
但是经过仔细的追查,却发现是由NetworkManager来启动的,在/var/log/messages里面可以看到相关的记录(话说差点远程把NetworkManager给干掉了!)
六、再战lsof:
再次快速重复查看:# lsof -R | grep "/usr/bin",发现主进程不变,总是产生几个辅进程,并且一直处于dedeted状态,这说明主进程会快速产生几个子进程,然后这些进程之间相互检测,一旦检测到病毒主体被删除或更改,就会再产生一个。
解决:
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
转:Linux下随机10字符病毒的清除的更多相关文章
- linux服务器随机10字符病毒/libudev4.so病毒清理的过程
故障表现:某天晚上突然收到某项目一台web服务器CPU报警,SSH连接困难卡顿,登陆后发现CPU使用率飙升到700%,第一感觉是被黑了,来事了. 故障处理: 1.登陆上后发现有好多莫名的命令(who/ ...
- Linux 下查看文件字符编码和转换编码
Linux 下查看文件字符编码和转换编码 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而Linu ...
- Linux下vi替换字符命令操作实例
在Linux下的开发中,经常涉及到对文件里的字符进行处理,当中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,具体介绍了Linux下经常使用的vi替换字符命令,为相关的开发工作提供给了參 ...
- Linux 下随机启动自己的应用 -请使用while(true) 不要Console.ReadKey()
Linux 下随机启动 自己的应用 -请使用while(true) 不要Console.ReadKey() 开机启动脚本启动,某些程序无法启动 原因 例如写了一个服务,不能停止程序运行,所以主线程成不 ...
- Linux下随机生成密码的命令总结
有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下 ...
- Linux下LCD 10分钟自动关屏的问题总结
Linux下的LCD驱动默认10分钟后会自动关闭屏幕,我们可以修改一下代码让其不自动关屏 在有一个 drivers/char/vt.c 文件其中有一个变量(blankinterval)可以设置它来修改 ...
- Linux下处理^M字符
很多时候windows环境中编辑过的文件,在Linux下经常会出现^M字符,可以通过以下方式处理该字符. vim命令打开文件,然后在vim命令模式下输入以下内容: :%s/^M//g特别注意:注意^M ...
- Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
兼容windows和linux. 分析: 在windows下路径有以下表示方式: (标准)D:\test\1.txt (不标准,参考linux)D:/test/1.txt 然后在java中,尤其使用F ...
- Windows和Linux下apache-artemis-2.10.0安装配置
window下安装配置 一.官网下载 http://activemq.apache.org/artemis/download.html 二.百度网盘下载 链接:https://pan.baidu.c ...
随机推荐
- qt study 泛型和容器
所谓泛型(generic) 能够像操作基本类型一样轻松操作对象的类和函数. qt容器类就是泛型类,基于模板的泛型类. 重载运算符overloaed operator, 托管容器 managed con ...
- 语音信号处理之(一)动态时间规整(DTW)
语音信号处理之(一)动态时间规整(DTW) zouxy09@qq.com 原文:http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要 ...
- tftp的安装、设置以及put、get传输实验
tftp安装流程如下: (1)首先挂载Linux系统镜像文件到/media/cdrom/的(cdrom为在/media/下自己创建的目录) (2)进入/media/cdrom/Server/可以找到t ...
- ObjectMapper处理从远程获取的Object对象 (http://bbs.csdn.net/topics/390337813?page=1)这个网址也有讲解
微服务中从其他服务获取过来的对象,如果从Object强转为自定义的类型会报错,利用ObjectMapper转换. ObjectMapper mapper = new ObjectMapper(); D ...
- mysql表utf-8 字符串入库编码异常
分析:http://www.myexception.cn/mysql/639943.html 解决方法:http://blog.sina.com.cn/s/blog_3f78232201011o26. ...
- web前端开发文档
- Java中try catch finally的执行顺序问题
finally 语句块是在 try 或者 catch 中的 return 语句之前执行的.更加一般的说法是,finally 语句块应该是在控制转移语句之前执行,控制转移语句除了 return 外,还有 ...
- Android酷炫加载进度动画
概述 本自定义动画进度酷炫View,是加载进度动画的自定义View,继承于ImageView来实现,主要实现蒙层加载进度的加载进度效果. 支持水平左右加载和垂直上下加载四个方向,同时也支持自定义蒙层进 ...
- 【php写日志】php将日志写入文件
php 写内容到文件,把日志写到log文件 <?php header("Content-type: text/html; charset=utf-8"); /******** ...
- Android Design与Holo Theme详解
在 国内,有个很有意思的现状.一方面,几个国内最大的公司/企业的客户端/应用依旧冥顽不灵,丝毫不愿意遵循 Android Design,以各种扯淡的理由坚持使用 iOS UI 或者 Metro UI, ...