admin管理员组

文章数量:1794759

记一个真实的应急响应案例(4)algo挖矿病毒事件

1、恶意程序排查

1.1、文件排查

1.1.1、告警文件排查

01、文件

使用命令stat /usr/bin/dhpcdfile /usr/bin/dhpcd确认存在告警中的恶意文件/usr/bin/dhpcd

这个环节如果定位不到告警文件,可能是被恶意程序自身删除了,此时可以基于告警时间排查其他落地文件。如果还是没有,那可能要进行内存马查杀了。

使用微步沙箱进行交叉验证,dhpcd分析报告[1]的结论也是恶意样本,同时还是首次提交,看来中挖矿病毒这事咱也是敢为人先勇立潮头呀。

02、进程

使用命令lsof /usr/bin/dhpcd发现该恶意文件正被ID是14213的进程使用。

使用命令pstree -asp 14213发现该进程的所有子进程,后续需要全部终止。

03、网络

使用命令netstat -tunlap | grep 14213发现该恶意进程外联了93.240.52.232的3389端口和139.99.125.38的443端口,查询威胁情报,猜测分别是远控服务器和矿池服务器。

使用命令tcpdump -i eth0 \(host 93.240.52.232 and port 3389\) or \(host 139.99.125.38 and port 443\) -w dhpcd.pcap捕获通信流量包,并下载到本地分析。

分析发现远控服务器93.240.52.232:3389每隔10秒会给受害服务器下发algo币的挖矿任务,但由于矿池139.99.124.170:443没有响应,无法确认受害服务器的挖矿任务,因此受害服务器并未真正开始挖矿工作。

后续需要在边界防火墙封堵对恶意IP地址93.240.52.232和139.99.125.38的访问请求,并在流量侧安全设备中查询最近7日是否存在相关访问请求,若存在,还需排查请求源设备是否中了挖矿病毒。

1.1.2、时间文件排查

使用命令find / -newerct '2024-01-24 08:10:00' ! -newerct '2024-01-24 09:10:00' ! -path '/proc/*' ! -path /'sys/*' ! -path '/run/*' -type f -exec ls -lctr --full-time {} \+ 2>/dev/null排查恶意程序落地前后相继落地的其它文件,发现一些可疑文件。

01、/etc/shadow

/etc/shadow中并未发现后门账号,攻击者应该只是修改了root用户的弱口令,让这台服务器更安全,可以避免其他挖矿和勒索病毒的攻击导致的自身挖矿进程被kill掉。看来,挖矿病毒的攻击者也饱受挖矿病毒攻击的困扰呀。因此后续需要修改root帐户的SSH密码。
02、/root/.ssh/authorized_keys
是攻击者创建的SSH后门公钥文件,用于登陆SSH服务,后续需要备份后删除。

03、/usr/bin/dhpcd

1.1.1告警文件排查发现的恶意程序。

04、/etc/rc.d/rc.local

攻击者创建了执行恶意程序/bin/dhpcd的开机自启服务,后续需要删除该自启服务、删除该恶意程序。

05、/var/spool/cron/root

攻击者创建了每小时的第7分钟执行一次恶意程序/bin/dhpcd的计划任务,后续需要删除该计划任务、删除该恶意程序。

06、可疑但正常的文件

/etc/crontab的ctime虽然与恶意程序/bin/dhpcd的落地时间相近,但文件本身并未发现异常内容,因此属于正常情况。

1.1.3、敏感目录排查

使用命令find /tmp ! -type d -exec ls -lctr --full-time {} \+ 2>/dev/null排查临时目录,未发现新的可疑文件。

使用find $HOME ! -type d -exec ls -lctr --full-time {} \+ 2>/dev/null命令排查家目录,未发现新的可疑文件。

1.1.4、特权文件排查

使用命令find / -perm -u=s 2 -type f -ls >/dev/null命令排查特权文件,未发现可疑文件。

1.2、网络排查

使用命令netstat -tunlap除了发现1.1.1告警文件排查分析过的dhpcd进程外,还发现115.79.35.110连接22端口。查询微步情况确认是恶意IP,使用命令cat /var/log/secure* | grep 115.79.35.110发现只是暴力破解,并未登陆成功,因此可忽略。

1.3、进程排查

1.3.1、网络进程排查

网络排查环节并未发现新的恶意进程,所以该环节跳过。

1.2.2、所有进程排查

使用命令pstree -as排查所有进程,通过进程名称和进程启动命令,并未发现其他可疑进程。

1.2.3、隐藏进程排查

使用命令ps -ef | awk '{print}' | sort | uniq > 1ps -ef | awk '{print}' | sort | uniq > 2diff 1 2排查隐藏进程,除了已知的恶意进程/bin/dhpcd和SSH服务被爆破外,没有新的收获。

1.2.4、进程资源排查

使用命令top排查所有进程消耗资源的情况,除了已知的恶意进程dhpcd把CPU干到了200%之外,没有新的收获。

2、后门排查

2.1、账号后门排查

2.1.1、SSH账户

使用命令cat /etc/passwd | grep -v 'nologin\|false'排查可以登录SSH的账户,发现只有root和lighthouse账户的/bin/bash可以登录,未发现异常。

使用命令cat /etc/passwd | awk -F: '3==0 {print 1}'排查UID是0的超级权限账户,发现只有root账户,未发现异常。

使用命令cat /etc/shadow | awk -F: 'length(2)>2 {print

使用命令cat /etc/shadow | awk -F: 'length(2)==0 {print 1}'排查空口令的SSH账户,未发现异常。

2.1.2、SSH密钥

特权用户的/root/.ssh/authorized_keys文件已在1.1.2.2分析过,普通用户未发现SSH密钥文件。

2.2、条件后门排查

2.2.1、计划任务

使用命令find /var/spool/cron/ -type f -exec ls -lctr --full-time {} \+ 2>/dev/null排查计划任务,发现/var/spool/cron/root文件于2024-01-24 08:14:16被攻击者篡改,已在1.1.2.5进行分析。

使用命令find /etc/*cron* -type f -exec ls -lctr --full-time {} \+ 2>/dev/null排查计划任务,发现/etc/crontab文件于2024-01-24 08:11:09被修改,但无异常,已在1.1.2.9进行分析。

2.2.2、启动项

使用命令find /etc/rc.d/ -type f -exec ls -lctr --full-time {} \+ 2>/dev/null排查启动项,发现/etc/rc.d/rc.local文件于2024-01-24 08:14:08被攻击者篡改,已在1.1.2.4进行分析。

2.2.3、自启服务

使用命令chkconfig --listservice --status-all命令排查自启服务,未发现异常。

2.2.4、命令别名

使用命令alias排查命令别名,未发现异常。

使用命令find / -name *bashrc* -type f -exec ls -lctr --full-time {} \+ 2>/dev/null排查可以配置命令别名的配置文件,未发现异常。

3、溯源排查

3.1、日志分析

3.1.1、系统日志

01、安全日志secure

使用命令cat /var/log/secure* | grep Accepted | awk '{print $11}' | sort | uniq -c | sort -nr发现5个恶意的未知IP地址各成功登录过一次SSH。

微步情报确认222.186.16.196是北京的恶意IP。使用命令cat /var/log/secure* | grep 222.186.16.196 | grep Failed | wc -l发现有4次登录失败记录,使用命令cat /var/log/secure* | grep 222.186.16.196 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.186.16.196查看登录时间,于2024-01-24 04:07:11开始爆破,6秒钟后爆破成功,但与本次挖矿事件的攻击时间不吻合,可能与本次挖矿事件无关。

微步情报确认222.186.16.186是北京的恶意IP。使用命令cat /var/log/secure* | grep 222.186.16.186 | grep Failed | wc -l发现有4次登录失败记录,使用命令cat /var/log/secure* | grep 222.186.16.186 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.186.16.186查看登录时间,于2024-01-24 05:48:58开始爆破,6秒钟后爆破成功,但与本次挖矿事件的攻击时间不吻合,可能与本次挖矿事件无关。

微步情报确认222.103.98.36是韩国的IP。使用命令cat /var/log/secure* | grep 222.103.98.36 | grep Failed | wc -l发现没有登录失败记录,使用命令cat /var/log/secure* | grep 222.103.98.36 | grep Accepted | wc -l发现有1次登陆成功记录,看来是爆破成功了。

使用命令cat /var/log/secure* | grep 222.103.98.36查看登录时间,于2024-01-24 08:10:27登陆成功,与本次挖矿事件的攻击时间吻合,是本次挖矿事件的始作俑者。

02、登录日志last系列

使用命令lastlog查看用户最后登录系统的信息(/var/log/lastlog),使用命令w查看用户正在登录系统的信息(/var/run/utmp),均未发现异常。

03、命令日志history

使用history(/root/.bash_history)命令查看历史命令,未发现攻击者使用过的命令。

3.1.2、中间件日志

没有运行中间件服务,不涉及中间件日志排查。

3.1.3、数据库日志

没有运行数据库服务,不涉及数据库日志排查。

3.1.4、安全设备日志

没有部署安全设备,不涉及安全产品日志排查。

3.2、流量分析

没有部署流量采集产品,不涉及流量排查。

3.3、内存分析

服务器在重置SSH密码时被重启过,内存已丢失,没有分析价值。

3.4、溯源结论

01、2024-01-24 08:10:27

来自韩国的攻击源IP地址222.103.98.36登录SSH服务的root账号,没有登录失败记录,只有一次成功登录记录。

02、2024-01-24 08:11:09至08:14:16

1分钟后,攻击者上传并执行恶意程序/usr/bin/dhpcd,修改后门配置/etc/shadow/root/.ssh/authorized_keys/etc/rc.d/rc.local/var/spool/cron/root,整个过程持续3分钟。

值得一提的是,/etc/crontab文件的修改时间也在攻击者活动的时间窗口内,但确实未发现异常。

03、2024-01-24 08:13:21

恶意程序/usr/bin/dhpcd2024-01-24 08:13:19被攻击者上传,2秒钟后的08:13:21腾讯主机安全就完成了威胁检测与告警通知,不得不说这实力杠杠的。

4、后续待办

4.1、终止恶意进程

序号

待办

原因

方法

1

终止恶意进程dhpcd

外联远控服务器93.240.52.232:3389获取algo币的挖矿任务,并进程挖矿,然后外联矿池服务器139.99.124.170:443提交挖矿成果。

kill -9 14213kill -9 14214kill -9 14215kill -9 14216kill -9 14217kill -9 14218kill -9 14855kill -9 14856

4.2、备份后删除恶意程序

序号

待办

原因

方法

1

备份后删除/usr/bin/dhpcd

外联远控服务器93.240.52.232:3389获取algo币的挖矿任务,并进程挖矿,然后外联矿池服务器139.99.124.170:443提交挖矿成果。

scp root@10.0.8.7:/usr/bin/dhpcd ./ rm -rf /usr/bin/dhpcd

4.3、修复漏洞和后门

序号

待办

原因

方法

1

修改root用户密码

弱口令漏洞被攻击者获取服务器权限

passwd root

2

备份后删除/root/.ssh/authorized_keys

攻击者的后门SSH密钥

scp root@10.0.8.7:/root/.ssh/authorized_keys ./rm -rf /root/.ssh/authorized_keys

3

备份后修改/var/spool/cron/root

攻击者的后门定时任务

1、打开文件:vim /var/spool/cron/root2、移动位置:上下箭头移动到恶意代码行3、删除代码:输入dd删除恶意代码4、退出文件::wq

4

备份后修改/etc/rc.d/rc.local

攻击者的后门启动项

同上。

4.4、攻击回溯与防护

序号

待办

原因

方法

1

防护:在边界防火墙封堵对恶意IP地址93.240.52.232和139.99.125.38的访问请求。

93.240.52.232是外联远控服务器,139.99.125.38是矿池服务器。

查询边界防火墙的操作手册。

2

回溯:在流量侧安全设备中查询最近7日是否存在相关访问请求,若存在,还需排查请求源设备是否中了挖矿病毒。

同上。

查询流量侧安全设备的操作手册。

参考资料

[1]

dhpcd分析报告:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-01-27,如有侵权请联系 cloudcommunity@tencent 删除服务服务器进程事件登录

本文标签: 记一个真实的应急响应案例(4)algo挖矿病毒事件