故障表现:某天晚上突然收到某项目一台web服务器CPU报警,SSH连接困难卡顿,登陆后发现CPU使用率飙升到700%,第一感觉是被黑了,来事了。

故障处理:

1.登陆上后发现有好多莫名的命令(who/whoami/cat resolv.conf等,可见木马脚本还未被杀禁)kill -9后发现木马进程过段时间还会启动,所以肯定是有计划任务,去查看crontab果然有,删除后,chattr +i /etc/crontab禁止再被修改;

cat /etc/cron.hourly/gcc.sh(也可能是gcc4.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/libudev4.so /lib/libudev.so.6
/lib/libudev4.so

可以确定/lib/libudev4.so就是木马本体,可是删除后又会产生,用chmod 000 /lib/libudev4.so && chattr +i /lib/libudev4.so 去除执行权限并且锁住,一会再处理掉;

2.再检查别的启动项,/etc/rc.local文件中也被添加了启动脚本,/etc/init.d/中添加了启动项,删除掉并chattr +i  /etc/rc.local && chattr +i  /etc/init.d/

3.怕黑客还连在服务器上,用who命令看看连接的用户没有异常。检查秘钥,果然看到authorized_keys文件被添加了1个公钥,删除掉并chattr +i  /root/.ssh/authorized_keys; 
至此,登陆的后门和木马的计划任务已经清理结束,开始清理现有木马进程;
 

4.先使用lsof -R | grep "/usr/bin" 查看/usr/bin/下运行的程序,然后使用ls -lt /usr/bin | head 查看/usr/bin下最近修改的文件,pkill掉相关进程,rm -fr /usr/bin/klxgfnwgpc && chattr +i /usr/bin/ 删除并锁定;

/bin下也有,可见这病毒复制之多,同4一样处理掉;

5./etc/rc0.d中也有 删除之 从rc0.d-rc6.d中都有!

!!!至此 木马病毒清理完毕  观察一段时间后没有新的木马生成启动,再把之前锁掉的目录文件用chattr -i解锁掉!!!
 
后记:病毒是因为此台机器上面跑着tomcat,因为struts2漏洞导致的,具体可参考http://www.codesec.net/view/546457.html
 
总结:1.防范最重要,有漏洞一定要重视不要抱着侥幸的心态,即使中招了也不要慌,一步步分析(譬如病毒会杀掉后还会启动,这里就要一定怀疑是有计划任务!);
         2.病毒程序可能会替换掉一些程序,譬如ps/lsof/netstat/ss这4个命令,要跟别的服务器中相关命令比较下大小就能看出区别,然后拿过来替换掉;
         3.最重要的一点:liunx的时间不会骗人!善用 ls -lt 查看最近修改过的东西就能发现病毒的马脚;
         4.chattr +i加锁;
 
 
 

linux服务器随机10字符病毒/libudev4.so病毒清理的过程的更多相关文章

  1. 转:Linux下随机10字符病毒的清除

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

  2. 高性能Linux服务器 第10章 基于Linux服务器的性能分析与优化

    高性能Linux服务器 第10章    基于Linux服务器的性能分析与优化 作为一名Linux系统管理员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.但硬件问题.软件问题.网络环境等 ...

  3. linux服务器报No space left on device错误的解决过程记录

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  4. 1分钟内检查Linux服务器性能的10条命令

    如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?Netflix性能工程团队的Brendan Gregg写下了这篇博文,来看他们是怎样通过十条命 ...

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

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

  6. linux服务器开发三(网络编程)

    网络基础 协议的概念 什么是协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名 ...

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

    http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折 ...

  8. 【微学堂】线上Linux服务器运维安全策略经验分享

      技术转载:https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&sn=6d403ab4 ...

  9. Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

随机推荐

  1. WebGPU图形编程(1):建立开发环境 <学习引自徐博士教程>

    首先感谢徐博士提供的视频教程,我的博客记录也是学习徐博士进行的自我总结,老徐B站学习视频链接网址:WebGPU图形编程 - 免费视频教程(1):建立开发环境_哔哩哔哩_bilibili 创建之前你需要 ...

  2. golang中goroutine

    1. 概念 goroutine 奉行通过通信来共享内存,而不是共享内存来通信 goroutine 是由go的运行时(runtime)调度和管理的 go程序会智能的将goroutine中的任务合理的分配 ...

  3. 网络支持IPV6地址测试校验与思考

    概述 大背景:随着移动端的快速扩张,互联网的规模越来越广阔,早于2011年耗尽的IPV4地址越来越无法满足互联网的网络地址需求,IPV6地址推广进入快车道.实际情况:近期公司应上级部门邀请对公司的主域 ...

  4. JVM之Java内存区域

    JVM之Java内存区域 世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程. 一.JAVA内存区域 谈及JAVA虚拟机运行时数据区域就不得不祭出这张经典的图了: ...

  5. IDEA导入建立图标类型的包失败

    开发安卓app时当我导入下面的包时,显示包名变红,并且包不可用,这可能与你建立的项目类型有关. MPAndroidChart包是建立图标类型的包,需要自己下载并添加进libs目录 解决方案是在libs ...

  6. 新年好 takoyaki,期待再次与你相见

    一.序 今天是中国农历一年的最后一天,往年都叫年三十,今年没有三十,最后一天是二十九.厨房的柴火味.窗外的鞭炮声还有不远处传来的说笑声,一切都是熟悉味道,新年到了,家乡热闹起来了.平常左邻右舍都是看不 ...

  7. HowToDoInJava 其它教程 1 &#183; 翻译完成

    原文:HowToDoInJava 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. ApacheCN 学习资源 目录 Maven 教程 如何在 ...

  8. IDE中集成widfly

    第一步:添加JBOss服务器,Tomcat同理添加 第二步:选择刚刚部署好的服务器 第三步:启动服务: 注意:与Tomcat略有不同的是,启动的根目录可能不相同,导致一直404 查看启动的根目录: 注 ...

  9. VC 创建快捷方式

    转载请注明来源:https://www.cnblogs.com/hookjc/ VC6下测试时使用的是绝对地址BOOL CFGDlg::CreateLink (        LPSTR szPath ...

  10. Java中的输入流与输出流

    一.流的概念 在Java中,流是从源到目的地的字节的有序序列.Java中有两种基本的流--输入流(InputStream)和输出流(OutputStream). 根据流相对于程序的另一个端点的不同,分 ...