记一次手动清理Linux挖矿病毒

时间:2018年5月16日

起因:某公司的运维人员在绿盟的IPS上监测到有挖"门罗币"的恶意事件,受影响的机器为公司的大数据服务器以及其他Linux服务器。

我也是赶鸭子上架第一次解决运行在Linux上的挖矿病毒事件,由于当时自己没有专门的Linux挖矿的清理工具,便开始分析IPS上提供的信息。

由于当时的部门对数据的保护比较敏感,并没有对当时操作进行拍照截图,我也只能根据当时我记录的笔记和依稀的记忆来梳理整个事件。

IPS提供的信息:

1:受到影响的IP

2:受影响主机连接的地址(158.69.133.18)

3:事件名称(具体的名称忘记了,大概的意思就是,挖门罗币的恶意事件),后面跟着发生的时间

根据这些信息,并结合当时没有Linux的杀毒软件这种情况,我整理了一下自己的工作思路

1:找到挖矿的进程

2:查找相关进程

3:清理

4:整理文档

想清了思路,便开始干活

由于当时太注重“挖矿”这个词了,上来我就在那个命令行下输入top命令,准备找找那些可疑的占内存特大的进程,看着哗哗的进程不断在眼前流动,自己心里有些慌了,好多进程占用的资源都挺高的。由于那是一台云计算的服务器,上面有好多进程自己也不清楚,结果自己就在那些正常的进程上废了好多时间也没找到有问题的进程。

然后我转变入手的关键,从那个外联的地址(158.69.133.18)入手。

输入命令:netstat -anp | grep "158.69.133.18"

当时自己真的挺幸运的,还真找到了那条连接 百度上是加拿大地址的IP(158.69.133.18)。之所以说自己是幸运的,是因为后面发生了一个“奇怪”的现象。

当自己找到那个恶意进程后,身旁的那个运维人员也特高兴了,赶紧将我的那条命令发给其他出问题的部门,让他们也找一下。

就是因为她的积极也引出了接下来的“奇怪”事件。

其他部门的运维人员,用了那条命令(netstat -anp | grep "158.69.133.18")后,有的反应说找到了,有的却说没有。

当说没有的时候,我还以为他们输入错了,结果自己重新输入那条命令时,返回来的竟然是空白。

“难道说那个病毒制作的人,发现我们在找他的恶意程序了?”,我当时自己乱想着,边翻看着IPS上的告警信息。

我忽然想到了这些×××事件上的时间,利用IPS的条件过滤,将我分析的那台Linux服务器IP地址输上去,并选择这条事件编号,回车。

看着重新刷新出来的数据,我看到了自己想知道的那条信息,受影响的主机并不是实时连接那个IP(158.69.133.18),每次的连接间隔大约是半小时。

“总不能等半个小时后再分析这个问题啊”,心里这样想着,我又在命令行下输入netstat -anp。看着大量的进程出来了,没思路看着大量的数据就困。闲着往上翻这些数据,我也在幻想着如果自己拿到一台服务器,自己要做什么,留后门!赶紧在netstat -anp 后加一条grep语句,这次grep bash。完整的命令是netstat -anp | grep bash。

果然,自己还是那么幸运,一条过滤后的结果出来了。过滤出的结果,我谨慎的百度了一下那个IP,依稀记得是美国的一个地址。让其他运维人员过滤 bash这个关键词,也都找到了那条异常的进程。

顺藤摸瓜,继续深入,免得一会这个进程又消失,输入命令:ps -ef | grep PID(那条异常的进程IP,我当时也没记录这个ID号)

然后出来了一个文件路径,当时的笔记是/tmp/.lsb/路径下的一个文件

这是当时那个文件里的文件,当时里面还存在两个文件夹(h32和h64),当时拷到电脑上结果直接被win10的windows defender给杀了。当时指向的是h32下的一个文件。

保留病毒样本后,就将这个进程kill了,然后把这个文件夹删除。

最后在计划任务里找到一个异常的计划任务,删除掉。

最后观察了四个小时,IPS上没有这台服务器的告警信息了,在服务器上也没有找到其他异常的进程了。

自己整理了一下,清理步骤,也就是那几条命令,转发给其他中这个挖矿的病毒的运维人员了。让他们自己一起处理。

当然在这期间,还发现其他的挖矿病毒,有的真的很厉(jiao)害(hua),通过检测cpu,只要达到25%就kill掉自己。

付一张在其他服务器上发现的不同的文件

其中那两个后缀为jpg的文件其实是两个脚本,用文本编辑器查看(部分截图如下)

如果不是IPS上有告警,还真的不知道自己的服务器已经沦为别人的挖矿肉鸡了。

总结:日常的运维要经常看看有没有异常登录,要看看管理的服务器的日志。该架设的安全设备可以和老板提提,不然自己就多看看自己负责的服务器要经常看看日志,看看有没有新的进程。不然出了事情,解决不了,就准备背锅吧。

原文地址:http://blog.51cto.com/11789213/2141042

时间: 2024-11-09 05:04:22

记一次手动清理Linux挖矿病毒的相关文章

手动清理linux缓存,释放内存

free -m 这个命令大家应该很熟悉 系统真正用的内存我们需要看第二行,因为有一部分缓存还没有被释放 linux内存可使用的计算方法:可用内存=free+buffers+cached 手动释放linux缓存: free -m sync (一定要在第三部之前) echo 3>/proc/sys/vm/drop_caches fee -m echo 0>/proc/sys/vm/drop_caches

Linux应急响应(三):挖矿病毒

0x00 前言 ? 随着虚拟货币的疯狂炒作,利用挖矿脚本来实现流量变现,使得挖矿病毒成为不法分子利用最为频繁的攻击方式.新的挖矿攻击展现出了类似蠕虫的行为,并结合了高级攻击技术,以增加对目标服务器感染的成功率,通过利用永恒之蓝(EternalBlue).web攻击多种漏洞(如Tomcat弱口令攻击.Weblogic WLS组件漏洞.Jboss反序列化漏洞.Struts2远程命令执行等),导致大量服务器被感染挖矿程序的现象 . 0x01 应急场景 ? 某天,安全管理员在登录安全设备巡检时,发现某台

解决挖矿病毒占用cpu以及误删 ld-linux-x86-64.so.2 文件的问题

上次已经被抓去挖矿了当了一次旷工了,本以为解决了,没想到竟然死灰复燃. 这次占用cpu的依然是一个ld-linux的进程,kill掉之后同样就查了关于test用户的进程,果然,test用户的进程有100+个,比不上上次,还是用上次的脚本,将test的进程也kill掉.为防止恶意添加用户,将/etc/passwd 文件里的test用户删除后,给该文件添加了隐藏权限 i ,具体功能不知道的可以查下,此处不多介绍.再把主进程ld-linux干掉之后cpu直接降下来. 这已经是第二次了,为了防止还有第三

挖矿病毒DDG的清除

注:以下所有操作均在CentOS 7.2 x86_64位系统下完成. 今天突然收到“阿里云”的告警短信: 尊敬的****:云盾云安全中心检测到您的服务器:*.*.*.*(app)出现了紧急安全事件:挖矿程序,建议您立即登录云安全中心控制台-安全告警查看事件详情,并根据事件建议的方案进行处理. 于是登上“云盾云安全中心”查看,发现安全提示: 点进去查看详细信息: 网上查了下,发现这是一款在Linux/Windows双平台的挖矿病毒木马,该木马是通过Redis漏洞传播的挖矿木马DDG的变种,使用Go

基于Linux平台病毒BlackHole病毒解析

今天遇到了一个病毒,代码量不多,但是利用了一个函数的小空子,杀伤力确实挺惊人的. 转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^ 这个病毒前面就是常规的: socket->bind->listen这个过程大家都 下面我想详细说一下它的攻击方式: while ( 1 ) { nsock = accept(sock, (struct sockaddr *)&v10, (socklen_t *)&v9);// wait to link if

基于Linux平台病毒Wirenet.c解析

在分析Wirenet.c时,感觉自己学到了很多很赞的思想,希望跟大家一同交流. 转载请注明出处:http://blog.csdn.net/u010484477谢谢^_^ 这次并不想通篇的进行分析了,我想写出两块病毒的恶意代码,觉得思想挺好的. 一.删除某目录下的所有文件 pathpoint = opendir(path);  //打开一个目录 dirent = readdir(pathpoint);//读取目录,返回dirent结构体指针 fdname = dirent->d_name;//得到

手动清理Oracle审计记录

Oracle 数据库审计功能非常强大,通常包括标准审计(包括用户级审计和系统级审计)和细粒度审计.尽管如此,一不小心就容易造成性能问题.同时会把系统表空间给撑爆.下面的内容描述的是如何将审计从系统表空间剥离以及清理Oracle审计记录,供大家参考. 一.审计的相关配置 --环境 SQL> select * from v$version where rownum=1; BANNER ----------------------------------------------------------

手动释放linux的缓存

To free pagecache: echo 1 > /proc/sys/vm/drop_caches;to free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches;to free pagecache, dentries and inodes: echo 3 >/proc/sys/vm/drop_caches. 手动释放linux的缓存

java 手动清理缓存的方法

有时候会感觉代码如何也查不出问题,可是缓存就是清好几遍了 这个时候就试试手动清理缓存 到你的编译路径下面 E:\java-workspace\wem\work\org\apache\jsp 手动删除你的文件目录下面的运行的文件就行了 ,系统再次运行会再次编译的