清除随机进程名称的木马 libudev.so

前天遇到求助,说某服务器大量对外发包,怀疑是中病毒了,已经把网络断开,但是相关的服务也就不可用了。

于是进机房,登录到该服务器上,CentOS 系统,root 弱密码,呵呵呵~理想的“肉鸡”。

先执行 top 看看有什么进程,果然看到有好几个进程,随机名称,而且还过几秒就变一次。好玩~

首先查看定时任务 crontab -l,有 2 条定时从某 IP 上下载 shell 脚本的任务,干掉。

再到 /etc/init.d 下查看,好几个随机名称的启动项。干不掉,删了又生成新的。一时没了主意。

回到工位,打开 bing,搜索 "process random name virus",找到这个回答,描述的现象很相似。是一个用于发起 DDoS 攻击的木马。
Unknown linux process with random command

I have some experiences about this random 10bit string *, It will send lots of packets for SYN flood.

    Cut down your network

The * has raw file coming from /lib/libudev.so, it will copy and fork again. It will also add cron.hourly job named gcc.sh, then it will add initial script in your /etc/rc*.d (Debian, CentOS may be /etc/rc.d/{init,rc{1,2,3,4,5}}.d)

    Use root to run the script below to change the folder privileges: chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/

    Delete all /etc/rc{0,1,2,3,4,5,6,S}.d files which were created today, The name looks like S01????????.

    Edit your crontab, delete the gcc.sh script in your /etc/cron.hourly, delete the gcc.sh file (/etc/cron.hourly/gcc.sh) then add privileges for your crontab: sed '/gcc.sh/d' /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab

    Use this command to check the latest file changes: ls -lrt

If you find any suspicious files named S01xxxxxxxx (or K8xxxxxxxx), delete it.

    Then you should reboot without network.

Then the * should be cleaned and you can modify the folder privileges to the original values(chattr -i /lib /etc/crontab).

于是按照所说的方法,确认服务器的确存在相关的文件,逐步删除,重启服务器,清除完毕。

  1. chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/,把 /lib/libudev.so 的访问权限去掉,把 /lib/ 目录设为不可修改。
  2. /etc/init.d 目录下,名字是随机的软链或文件都删掉。原文是说 /etc/rc{0,1,2,3,4,5,6,S}.d 这些目录,但其实里面都是软链,都指向 /etc/init.d 目录里的真实文件。软链可以之后有空慢慢清理。
  3. 删掉 /etc/crontab/gcc.sh
  4. sed '/gcc.sh/d' /etc/crontab && chmod 0000 /etc/crontab && chattr +i /etc/crontab 清掉相关定时任务,并把 /etc/crontab 访问权限全部去掉,设为不可修改。
  5. 重启服务器,确认没有可疑进程,以及再出现可疑的启动脚本。就可以恢复 2 个目录的可修改属性,chattr -i /lib /etc/crontab
上一篇:分析型数据库+数据传输,构建企业级实时数仓


下一篇:时空数据库实践(含 纽约TAXI数据透视分析) - PostGIS + TimescaleDB => PostgreSQL