手工清理挖矿病毒案例

发布时间 2023-04-26 13:45:49作者: 皇帽讲绿帽带法技巧

第三代亡命徒(Outlaw)木马样本分析

挖矿木马的危害

通常情况下,受害者会认为挖矿木马只是会让操作系统反应迟钝,并不会对自身造成太大的影响,但是挖矿木马除了会让系统卡顿之外,还会降低计算机设备性能和使用寿命,危害企业运营,浪费能源消耗,不仅如此,最重要的是现在的挖矿木马普遍会留置后门,变成攻击者的僵尸网络,以此作为跳板,攻击其他计算机等。所以现在的挖矿木马已经不单单是挖矿这么简单的操作,已经逐步开始利用挖矿木马谋取更多利益。

网络概述

其主要传播途径是SSH暴力破解攻击目标系统写入SSH公钥,以达到长期控制目标系统的目的,同时下载基于Perl脚本语言编写的后门和开源门罗币挖矿木马。采用Perl语言的后门组件可以发动DDoS攻击,利用僵尸网络通过DDoS服务和挖矿程序来获利。例如,2021年7月[7],Outlaw挖矿僵尸网络对大量云主机发起攻击并植入僵尸网络程序,被感染主机中存在大量SSH暴力破解记录,且被植入挖矿程序、写入SSH公钥。

1、查看安全日志信息,

1、查看安装账号

[root@p-96b7-rpde ~]# awk '/$1|$6/{print $1}' /etc/shadow
root:\(1\)VUEK6/jy$isuvoZcZn1TxErsGo96LN1:19468:0:99999:7:::
admin:\(1\)httOLgOt\(sBTmu1Z2ZVCYyTIEhBkJN1:19470:0:99999:7::: [root@p-96b7-rpde ~]# cat /etc/sudoers | grep -v "^#\|^\)" | grep "ALL=(ALL)"
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
admin ALL=(ALL) NOPASSWD: ALL
[root@p-96b7-rpde ~]#

2、查看历史命令

[root@p-96b7-rpde ~]# cat .bash_history >>/tmp/historylog.log

3、检查端口

[root@p-96b7-rpde ~]# netstat -antlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:9050          0.0.0.0:*               LISTEN      6298/./bin/tor
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      11571/sshd
tcp        0      0 10.0.2.175:35192        169.254.169.254:16463   ESTABLISHED 1600/ctcss-agentd
tcp        0      0 10.0.2.175:15213        45.9.148.234:80         ESTABLISHED 31522/./kswapd0
tcp        0      0 10.0.2.175:43485        169.254.169.254:5661    ESTABLISHED 1600/ctcss-agentd
tcp        0      1 10.0.2.175:3509         45.9.148.99:443         SYN_SENT    4182/rsync
tcp        0     36 10.0.2.175:22           124.112.76.243:56266    ESTABLISHED 7777/sshd: admin [p
tcp6       0      0 :::3306                 :::*                    LISTEN      18524/mysqld
[root@p-96b7-rpde ~]#

image.png

4、检查进程信息

[root@p-96b7-rpde ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  43548  3804 ?        Ss   Feb24   1:06 /usr/lib/systemd/systemd --system --des
root         2  0.0  0.0      0     0 ?        S    Feb24   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    Feb24   0:10 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    Feb24   0:05 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Feb24   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    Feb24   4:28 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   Feb24   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S    Feb24   0:16 [watchdog/0]
root        12  0.0  0.0      0     0 ?        S    Feb24   0:14 [watchdog/1]
root        13  0.0  0.0      0     0 ?        S    Feb24   0:05 [migration/1]
root        14  0.0  0.0      0     0 ?        S    Feb24   0:10 [ksoftirqd/1]
root        16  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kworker/1:0H]
root        17  0.0  0.0      0     0 ?        S    Feb24   0:14 [watchdog/2]
root        18  0.0  0.0      0     0 ?        S    Feb24   0:06 [migration/2]
root        19  0.0  0.0      0     0 ?        S    Feb24   0:09 [ksoftirqd/2]
root        21  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kworker/2:0H]
root        22  0.0  0.0      0     0 ?        S    Feb24   0:13 [watchdog/3]
root        23  0.0  0.0      0     0 ?        S    Feb24   0:06 [migration/3]
root        24  0.0  0.0      0     0 ?        S    Feb24   0:13 [ksoftirqd/3]
root        26  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kworker/3:0H]
root        28  0.0  0.0      0     0 ?        S    Feb24   0:00 [kdevtmpfs]
root        29  0.0  0.0      0     0 ?        S<   Feb24   0:00 [netns]
root        30  0.0  0.0      0     0 ?        S    Feb24   0:03 [khungtaskd]
root        31  0.0  0.0      0     0 ?        S<   Feb24   0:00 [writeback]
root        32  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kintegrityd]
root        33  0.0  0.0      0     0 ?        S<   Feb24   0:00 [bioset]
root        34  0.0  0.0      0     0 ?        S<   Feb24   0:00 [bioset]
root        35  0.0  0.0      0     0 ?        S<   Feb24   0:00 [bioset]
root        36  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kblockd]
root        37  0.0  0.0      0     0 ?        S<   Feb24   0:00 [md]
root        38  0.0  0.0      0     0 ?        S<   Feb24   0:00 [edac-poller]
root        39  0.0  0.0      0     0 ?        S<   Feb24   0:00 [watchdogd]
root        46  0.0  0.0      0     0 ?        S    Feb24   0:01 [kswapd0]
root        47  0.0  0.0      0     0 ?        SN   Feb24   0:00 [ksmd]
root        49  0.0  0.0      0     0 ?        S<   Feb24   0:00 [crypto]
root        57  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kthrotld]
root        59  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kmpath_rdacd]
root        60  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kaluad]
root        61  0.0  0.0      0     0 ?        S<   Feb24   0:00 [kpsmoused]
root        63  0.0  0.0      0     0 ?        S<   Feb24   0:00 [ipv6_addrconf]
root        77  0.0  0.0      0     0 ?        S<   Feb24   0:00 [deferwq]
root       122  0.0  0.0      0     0 ?        S    Feb24   0:27 [kauditd]
root       247  0.0  0.0      0     0 ?        S<   Feb24   0:00 [ata_sff]
root       264  0.0  0.0      0     0 ?        S    Feb24   0:00 [scsi_eh_0]
root       265  0.0  0.0      0     0 ?        S<   Feb24   0:00 [scsi_tmf_0]
root       266  0.0  0.0      0     0 ?        S<   Feb24   0:59 [kworker/2:1H]
root       267  0.0  0.0      0     0 ?        S    Feb24   0:00 [scsi_eh_1]
root       268  0.0  0.0      0     0 ?        S<   Feb24   0:00 [scsi_tmf_1]
root       269  0.0  0.0      0     0 ?        S<   Feb24   0:00 [ttm_swap]
root       291  0.0  0.0      0     0 ?        S<   Feb24   0:00 [bioset]
root       292  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfsalloc]
root       293  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs_mru_cache]
root       294  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-buf/vda1]
root       295  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-data/vda1]
root       296  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-conv/vda1]
root       297  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-cil/vda1]
root       298  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-reclaim/vda]
root       299  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-log/vda1]
root       300  0.0  0.0      0     0 ?        S<   Feb24   0:00 [xfs-eofblocks/v]
root       301  0.0  0.0      0     0 ?        S    Feb24  21:17 [xfsaild/vda1]
root       302  0.0  0.0      0     0 ?        S<   Feb24   0:58 [kworker/3:1H]
root       388  0.0  0.4  75964 34552 ?        Ss   Feb24   7:19 /usr/lib/systemd/systemd-journald
root       430  0.0  0.0      0     0 ?        S<   Feb24   0:44 [kworker/0:1H]
root       450  0.0  0.0  55532  1080 ?        S<sl Feb24   1:29 /sbin/auditd
root       536  0.0  0.0  26668  2128 ?        Ss   Feb24   0:14 /usr/lib/systemd/systemd-logind
polkitd    537  0.0  0.1 612356 11364 ?        Ssl  Feb24   0:09 /usr/lib/polkit-1/polkitd --no-debug
root       538  0.0  0.0      0     0 ?        S<   Feb24   0:00 [nfit]
root       552  0.0  0.0  19908  1452 ?        Ss   Feb24   0:00 /usr/bin/qemu-ga --method=virtio-serial
dbus       553  0.0  0.0  58336  2568 ?        Ss   Feb24   0:26 /usr/bin/dbus-daemon --system --address
root       562  0.0  0.0   4388   552 ?        Ss   Feb24   0:00 /usr/sbin/acpid
chrony     564  0.0  0.0 120408  2084 ?        S    Feb24   0:03 /usr/sbin/chronyd
root       633  0.0  0.0      0     0 ?        S<   Feb24   0:55 [kworker/1:1H]
root       694  0.0  0.1 476308  8240 ?        Ssl  Feb24   1:00 /usr/sbin/NetworkManager --no-daemon
root      1073  0.0  0.2 574300 19284 ?        Ssl  Feb24   6:49 /usr/bin/python2 -Es /usr/sbin/tuned -l
root      1088  0.0  0.9 230208 78536 ?        Sl   Feb24  59:41 /usr/sbin/ctcm_agentd -c /etc/ctcm/ctcm
root      1318  0.0  0.0 110208   864 ttyS0    Ss+  Feb24   0:00 /sbin/agetty --keep-baud 115200,38400,9
root      1320  0.0  0.0  99208  2696 ?        Ss   Feb24   0:00 login -- root
root      1600  0.0  0.0 411104  5132 ?        Sl   Apr14   2:10 /var/ctcss/bin/ctcss-agentd
root      1606  0.0  0.1 181272 13904 ?        Sl   Apr14   0:30 /var/ctcss/bin/eShield-modulesd
root      1666  0.0  0.0 115660  2152 tty1     Ss+  Feb24   0:00 -bash
root      3963  0.0  0.0      0     0 ?        S    Apr21   0:00 [kworker/u8:0]
root      4182  0.0  0.0 136620  4024 ?        S    08:05   0:00 rsync
root      4187  0.0  0.0 112324   676 ?        S    08:05   0:00 timeout 6h ./blitz -t 515 -f 1 -s 12 -S
root      4188  0.0  0.0 113284  1368 ?        S    08:05   0:00 /bin/bash ./blitz -t 515 -f 1 -s 12 -S
root      4193  0.0  0.0  85172  4944 ?        Sl   08:05   0:00 /tmp/.X291-unix/.rsync/c/blitz64 -t 515
root      6298  0.0  0.3  37444 30972 ?        S    Apr21   0:27 ./bin/tor -f etctor/tor/torrc1 --RunAsD
root      7777  0.0  0.0 154816  5460 ?        Ss   09:19   0:00 sshd: admin [priv]
admin     7779  0.0  0.0 155756  3564 ?        R    09:19   0:00 sshd: admin@pts/0
admin     7780  0.0  0.0 115512  2116 pts/0    Ss   09:19   0:00 -bash
root      7914  0.0  0.0 214428  4176 pts/0    S    09:20   0:00 sudo su -
root      7915  0.0  0.0 193944  2360 pts/0    S    09:20   0:00 su -
root      7916  0.0  0.0 115548  2152 pts/0    S    09:20   0:00 -bash
root      8502  0.0  0.0      0     0 ?        S    09:27   0:00 [kworker/3:1]
root      8545  0.0  0.0      0     0 ?        S    09:29   0:00 [kworker/0:2]
root      9155  0.0  0.0      0     0 ?        S    09:33   0:00 [kworker/3:0]
root      9281  0.0  0.0      0     0 ?        S    09:34   0:00 [kworker/0:0]
root      9573  0.0  0.0      0     0 ?        S    09:39   0:00 [kworker/0:1]
root      9903  0.0  0.0 155476  1868 pts/0    R+   09:43   0:00 ps aux
root     11571  0.0  0.0 112924  4360 ?        Ss   Feb24   2:24 /usr/sbin/sshd -D
root     12036  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-buf/vdb]
root     12037  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-data/vdb]
root     12038  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-conv/vdb]
root     12039  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-cil/vdb]
root     12040  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-reclaim/vdb]
root     12041  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-log/vdb]
root     12042  0.0  0.0      0     0 ?        S<   Feb28   0:00 [xfs-eofblocks/v]
root     12043  0.0  0.0      0     0 ?        S    Feb28   0:38 [xfsaild/vdb]
root     15502  0.0  0.0 113288  1584 ?        S    Apr22   0:00 /bin/bash ./go
mysql    18524  0.5  6.7 2665100 543032 ?      Sl   Mar03 405:58 /usr/sbin/mysqld --daemonize --pid-file
root     22012  0.0  0.0      0     0 ?        S    02:40   0:00 [kworker/1:1]
root     23354  0.0  0.0      0     0 ?        S    03:10   0:00 [kworker/1:0]
root     24180  0.4  0.3 229572 25236 ?        Ss   03:28   1:51 /usr/bin/python2 /usr/bin/denyhosts.py
root     24209  0.0  0.0      0     0 ?        S    03:28   0:00 [kworker/2:2]
root     25463  0.0  0.0      0     0 ?        S    Apr21   0:00 [kworker/u8:2]
root     28456  0.0  0.0  44876  1768 ?        Ss   Feb24   0:00 /usr/lib/systemd/systemd-udevd
root     28555  0.0  0.2 544096 23180 ?        Ssl  Feb24   6:01 /usr/sbin/rsyslogd -n
root     30722  0.0  0.0      0     0 ?        S    06:01   0:00 [kworker/2:0]
root     31522  398  0.0 2493840 7492 ?        Ssl  06:05 868:51 ./kswapd0
root     31564  0.0  0.0 126388  1604 ?        Ss   06:05   0:00 /usr/sbin/crond -n
[root@p-96b7-rpde ~]#


5、查了启动项目

[root@p-96b7-rpde ~]# more /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
/usr/local/bin/nic_set_mq.sh > /tmp/nic_set_mq.log 2>&1
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
/data/efacego/tomcat/bin/startup.sh
/data/efacego/activemq/bin/activemq start
/data/efacego/nginx/sbin/nginx
[root@p-96b7-rpde ~]#

6、检查系统日志

日志默认存放位置:/var/log
日志分析技巧

1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr

2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 
3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure 
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo:    good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now

f39624fdd701de79332041a55d92693c.png

7、成功登陆系统IP





Apr 21 20:01:34 root 128.199.141.33
Apr 23 09:19:12 admin 124.112.76.243
Apr 23 10:04:38 admin 124.112.76.243
[root@p-96b7-rpde ~]#

查看日志信息
 tailf  -n3000 /var/log/messages| grep  20:00

image.png
image.png
image.png

image.png

被暴力破解的IP
image.png

image.png

8、云平台监控查看

image.png
image.png

手工清理部分:

9.自查和清除

9.1 自查方法

1.检查/root/.configrc/中是否存在病毒样本;
2.检查/root/.ssh/中的公钥与报告中是否一致;
3.检查/tmp/.X25-unix/.rsync/
中病毒运行的缓存文件;
4.检查/tmp/.X25-unix/dota3.tar.gz中是否存在病毒母体文件;
5.检查/root/.configrc/a/kswapd0是否存在病毒主程序;
6.检查计划任务是否存在以上文件的定时执行。

9.2 清除方案

1.删除以下文件,结束相应进程
/tmp/-unix/.rsync/a/kswapd0
/.configrc/a/kswapd0
/tmp/
-unix/.rsync/c/tsm64
/tmp/
-unix/.rsync/c/tsm32
/tmp/*-unix/.rsync/b/run(rsync)
*/.configrc/
2.检查cron.d中是否存在包含以下内容的定时任务,如有进行删除:
/a/upd
/b/sync
/c/aptitude

系统杀毒

#安装
yum install -y clamav
#更新病毒库
freshclam
#扫描方法
clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log
clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log
clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log
#扫描并杀毒
clamscan -r  --remove  /usr/bin/bsd-port
clamscan -r  --remove  /usr/bin/
clamscan -r --remove  /usr/local/zabbix/sbin
#查看日志发现
cat /root/usrclamav.log |grep FOUND


查杀 /etc/目录和/tmp




安装部署

1、安装epel仓库源,yum下载clamav

yum -y install epel-release

yum install –y clamav clamavd clamav-update

2、更新病毒库

freshclam

3、扫描病毒

clamscan -r -i /usr/bin -l /var/log/clamscan.log --remove
 

 这里递归扫描根目录 /usr/bin ,发现感染文件立即删除

 -r 递归扫面子文件

 –i 只显示被感染的文件

 -l 指定日志文件

 --remove 删除被感染文件

 --move隔离被感染文件

https://blog.csdn.net/carefree2005/article/details/122705554 查杀系统
查看文档:
https://www.freebuf.com/articles/paper/348860.html
https://mp.weixin.qq.com/s/4_E6kPuodxb3_inVCq2fqg

1、病毒进程查询
kill 进程
2、定时任务清理
crontab -e

[root@p-96b7-rpde b]# cd  /var/spool/cron/
[root@p-96b7-rpde cron]# ls
root
[root@p-96b7-rpde cron]# cat root
5 6 * * 0 /root/.configrc5/a/upd>/dev/null 2>&1
@reboot /root/.configrc5/a/upd>/dev/null 2>&1
5 8 * * 0 /root/.configrc5/b/sync>/dev/null 2>&1
@reboot /root/.configrc5/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X291-unix/.rsync/c/aptitude>/dev/null 2>&1
[root@p-96b7-rpde cron]#

3、删除相关后门ssh key内容
vi /root/.ssh/authorized_keys
4、删除缓存文件
/tmp目录下
5、删除病毒目录和文件
rm -rf /root/.configrc5

3、自启动清理
4、服务清理
5、kill进程
6、删除环境变量、删除后门文件

病毒结构图

病毒结构(经过网上查证,该病毒种类繁多,文件位置基本不一样)

/root/.configrc/*			病毒所在目录
/root/.ssh/					病毒公钥
/tmp/.X25-unix/.rsync/*		病毒运行缓存文件
/tmp/.X25-unix/dota3.tar.gz	病毒压缩包
/root/.configrc/a/kswapd0  	病毒主程序
==========病毒相关计划任务==========
1 1 */2 * * /root/.configrc/a/upd>/dev/null 2>&1
@reboot /root/.configrc/a/upd>/dev/null 2>&1
5 8 * * 0 /root/.configrc/b/sync>/dev/null 2>&1
@reboot /root/.configrc/b/sync>/dev/null 2>&1
0 0 */3 * * /tmp/.X25-unix/.rsync/c/aptitude>/dev/null 2>&1
====================================

样本分析?


Outlaw通过SSH**攻击,访问目标系统并下载带有shell脚本、挖矿木马、后门木马的TAR压缩包文件dota3.tar.gz。解压后的文件目录可以看到,根目录rsync下存放初始化脚本,a目录下存放shellbot后门,b目录下存放挖矿木马,c目录下存放SSH**攻击程序。以下内容参考腾讯云安全,后期会自己做一期专门拆解的,本来是今天想做,但是发现已经有现成的了。

如何防御

修改 我们的账号密码,加强复杂度,不要使用口令
公有云添加白名单 策略,业务端口只允许 公司出口IP访问