今天机房管理人员反馈公司的某台服务器在防火墙上的连接数超限,登陆服务器时发现非常卡顿,远程登录后查看,CPU持续100%,且有一长度为10的随机字符串进程,kill掉,会重新生成另外长度为10的字符串进程。删除文件也会重复生成,非常痛苦。查阅crontab,并没有发现相关定时任务,整个排查思路如下:

1、查看主机负载,确认可疑进程

  1. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  2. 13784 root 20 0 31652 548 204 S 101.9 0.0 39:57.21 fknnknlajk
  3. 1 root 20 0 19364 812 616 S 2.0 0.0 4:35.69 init
  4. 10060 root 20 0 2739m 162m 9320 S 2.0 4.1 288:20.81 asterisk
  5. 11105 oracle 20 0 1931m 17m 16m S 2.0 0.4 4:01.23 ora_gen0_orcl
  6. 29775 root 20 0 1352 884 160 S 2.0 0.0 0:00.02 camrgawfg

2、确认可疑进程尝试杀掉,但是发现一会儿就会出现新的10位随机字符串进程,怀疑有定时任务

3、排查定时任务

  1. no crontab for root

  每个用户都查了,都是上面的提示,没有定时任务,什么鬼?

4、尝试查找最近3天内更新的文件

  1. find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -mtime -3
  2. /bin
  3. /bin/wfukohsuk
  4. /bin/wfukohsuk.sh
  5. /bin/kushokufw
  6. /usr/bin
  7. /usr/bin/fknnknlajk
  8. /usr/sbin

  发现可以文件,其中/bin/wfukohsuk.sh的内容如下:

  1. #!/bin/sh
  2. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
  3. cp "/bin/wfukohsuk" "/bin/pqzllxphin"
  4. "/bin/pqzllxphin"

  看脚本的样子,也不像是问题的源头,手动删除这些文件也还是会生成。

5、因为现象是肯定有一个任务定时的检查生成,后来抱着怀疑的态度去看了crontab的日志

  1. tail -f /var/log/cron
  2. Jun 21 12:01:01 localhost run-parts(/etc/cron.hourly)[14504]: finished gcc.sh
  3. Jun 21 12:01:01 localhost run-parts(/etc/cron.hourly)[14479]: starting wfukohsuk.sh
  4. Jun 21 12:01:01 localhost run-parts(/etc/cron.hourly)[14516]: finished wfukohsuk.sh
  5. Jun 21 12:03:01 localhost CROND[15290]: (root) CMD (/etc/cron.hourly/gcc.sh)
  6. Jun 21 12:06:01 localhost CROND[16444]: (root) CMD (/etc/cron.hourly/gcc.sh)
  7. Jun 21 12:09:01 localhost CROND[17615]: (root) CMD (/etc/cron.hourly/gcc.sh)
  8. Jun 21 12:10:01 localhost CROND[18013]: (root) CMD (/usr/lib64/sa/sa1 1 1)
  9. Jun 21 12:12:01 localhost CROND[18806]: (root) CMD (/etc/cron.hourly/gcc.sh)
  10. Jun 21 12:15:01 localhost CROND[19962]: (root) CMD (/etc/cron.hourly/gcc.sh)

  竟然发现有定时任务在执行,这是什么情况?crontab -l中明明没有。后来才发现原来:

    •  crontab -l 检查的是  /var/spool/cron
    • 定时任务不规范的路径还有一个 /etc/crontab

6、查看/etc/crontab文件,发现可疑定时任务

  1. # tail /etc/crontab
  2. */3 * * * * root /etc/cron.hourly/gcc.sh

7、看到定时任务我就放心了,终于找到问题所在了

  1. cat /etc/cron.hourly/gcc.sh
  2. #!/bin/sh
  3. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
  4. for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
  5. cp /lib/libudev.so /lib/libudev.so.6
  6. /lib/libudev.so.6

  发现是一个叫libudev.so.6的病毒,我做了如下处理

8、杀毒

  1. #删除定时任务,给crontab加锁
  2. rm -f /etc/cron.hourly/gcc.sh ; chattr +i /etc/crontab
  3.  
  4. #删除找到的启动脚本
  5. find /etc -name 'fknnknlajk'
  6. /etc/rc.d/init.d/fknnknlajk
  7. find /etc -name 'fknnknlajk' | xargs rm -f
  8.  
  9. #找到可能的病毒文件,并删除
  10. find /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -mtime -3

  以为已经杀了毒了,但是删完一查,病毒文件有出来了,在cron.hourly/下产生了其他的病毒文件

  1. # ls
  2. 0anacron dcyeuoisnrumrj.sh
  3. # tail -f dcyeuoisnrumrj.sh
  4. #!/bin/sh
  5. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
  6. cp "/bin/dcyeuoisnrumrj" "/bin/mlucxcxfda"
  7. "/bin/mlucxcxfda"

  才发现并没有那么简单。

9、反查

  • 病毒母文件已经删除
  • 定时任务已经清理
  • 感染的文件/etc/init.d,/bin,/usr/bin 已经清理干净了

  然后下意识用ps查了下进程发现没有异常进程了,top看了下负载,哦? 出现了可疑进程,怀疑是没有停掉的进程新创建了新文件

  1. #停止病毒进程,确认病毒PID
  2. kill -STOP 16452
  3.  
  4. #查找启动脚本,删除文件(发现病毒的启动文件为S90/K90)
  5. find /etc -name '*90*' | xargs rm -f
  6.  
  7. #删除病毒文件
  8. rm -rf /etc/cron.hourly/itfitufnyqsvg.sh
  9.  
  10. #删除病毒文件
  11. find /bin -mtime -1 | xargs rm -f
  12.  
  13. #杀掉进程
  14. pkill 16452

10、总结

  1、首先肯定是root密码过弱,因为是用来测试的,就没注意。

  2、处理的过程中还是有一些思路不是特别清晰,还需要梳理

Linux服务器中毒事件(libudev.so)的更多相关文章

  1. Linux服务器应急事件溯源报告

    Linux服务器应急事件溯源报告 小博博 · 2016/02/18 17:43 Author:Inn0team 0x00 目录 关于目标环境的中间进度检测报告 一:情况概述 二:取证情况 2.1 目标 ...

  2. linux服务器中毒可疑进程sfewfesfs CPU80%

    我用的是wdlinux, 难免会有漏洞,不知怎么就被莫名其妙地给入侵了,而且还频繁发包.下面是我查看攻击机器的整个过程. 首先跟客户要了root密码登录看,第一个命令是就top cd /proc/25 ...

  3. (分享)Linux服务器如何防止中木马

    大家的windows机器可能经常装一些杀毒软件或者什么的来防止中毒,然而在Linux上我们应该怎么防止这些呢? 在面试过程中我们也经常遇到该类问题,那么我们应该怎么回答才显得既有逻辑又有深度呢? 首先 ...

  4. 记一次Linux服务器上查杀木马经历

    开篇前言 Linux服务器一直给我们的印象是安全.稳定.可靠,性能卓越.由于一来Linux本身的安全机制,Linux上的病毒.木马较少,二则由于宣称Linux是最安全的操作系统,导致很多人对Linux ...

  5. Linux服务器的那些性能参数指标

    Linux服务器的那些性能参数指标 一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息.通常来说运维人员.系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要, ...

  6. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  7. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

  8. jboss漏洞导致服务器中毒

    中毒现象 1. 网络出现拥塞,访问延迟增加. 2. 系统定时任务表中出现异常的定时任务. 3. 出现异常进程. 4. $JBOSS_HOME/bin或/root目录下出现大量的异常文件.     现象 ...

  9. Linux服务器集群技术的概述

    目前,越来越多的网站采用Linux操作系统,提供邮件.Web.文件存储.数据库等服务.也有非常多的公司在企业内部网中利用Linux服务器提供这些服务.随着人们对Linux服务器依赖的加深,对其可靠性. ...

随机推荐

  1. 「日常训练」The Intriguing Obsession(CodeForces Round #439 Div.2 C)

    2018年11月30日更新,补充了一些思考. 题意(CodeForces 869C) 三堆点,每堆一种颜色:连接的要求是同色不能相邻或距离必须至少3.问对整个图有几种连接方法,对一个数取模. 解析 要 ...

  2. SSH公钥认证(码云)

    开发者向码云版本库写入最常用到的协议是 SSH 协议,因为 SSH 协议使用公钥认证,可以实现无口令访问,而若使用 HTTPS 协议每次身份认证时都需要提供口令.使用 SSH 公钥认证,就涉及到公钥的 ...

  3. python正则-字符串处理,主要用于处理请求参数格式为application/x-www-form-urlencoded的表单数据

    #当提交的表单数据格式为application/x-www-form-urlencoded,直接从浏览器复制出来的格式是str_lin(chrome,也是最常见的)或者str_in2(火狐)这两种格式 ...

  4. 重写selenium 的 click()操作,使其变成隐式等待

    selenium 页面常会因为页面加载慢而出现element 不能被点击到的情况,比如加载过程中出现遮罩,导致element 可见不可点.以下方法重写click(),用隐式等待解决这个问题. 基本思路 ...

  5. Django数据模型--字段整理

    一.字段 1.CharField: 字段数据类型为字符串 2.IntegerField: 字段数据类型为整形 3.BooleanField: 布尔类型 4.NullBooleanField: 允许为空 ...

  6. Python全栈 正则表达式(概念、、语法、元字符、re模块)

    前言:        普通人有三件东西看不懂:医生的处方,道士的鬼符,程序员得正则表达式       什么是正则表达式? 正则表达式,又称规则表达式,英文名为Regular Expression,在代 ...

  7. 数据挖掘算法:DBSCAN算法的C++实现

    (期末考试快到了,所以比较粗糙,请各位读者理解..) 一.    概念 DBSCAN是一种产生划分聚类的基于密度的聚类算法,簇的个数由算法自动地确定.低密度区域中的点被视为噪声而忽略,因此DBSCAN ...

  8. 从零开始配置Jenkins(一)——基本配置

    [背景] 由于项目变动,需要重新搭建jenkins环境,并在新搭建的平台下进行配置.之前,小编只是照猫画虎的用jenkins手动构建,虽然也维护过一段时间,但对于其中的原理并不是很了解.这下可好了,学 ...

  9. 【历史】- Unix时代的开创者Ken Thompson

    自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师 ...

  10. javaScript运算符学习笔记

    1.赋值运算符 javaScript运算符可以分为简单赋值和复合赋值运算.简单赋值运算是将赋值运算符(=)右边的表达式的值保存到赋值运算符左边的变量中,复合赋值运算则是混合了其他操作(算术运算操作,位 ...