手工清理挖矿病毒案例
第三代亡命徒(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 ~]#
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
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
被暴力破解的IP
8、云平台监控查看
手工清理部分:
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访问