admin管理员组

文章数量:1487745

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

登录服务器时,发现密码错误,无法登录。

打算登录云管平台重置密码,不小心看到安全告警,原来是中了挖矿病毒。

挖矿病毒的侵入性还是蛮大的,一般都会终止掉CPU占用超过20%的进程,以免计算资源不够挖矿,这常常导致正常业务被中断。

而改掉登录密码,一般是为了避免友商(其它挖矿病毒)通过口令爆破进来抢夺计算资源,这常常导致正常运维工作无法开展,也就是本文出现的情况。

重置密码竟然需要重启服务器,看来第一案发现场没了。

事实证明第一案发现场确实没了,这病毒太不抗造了,一个重启就一蹶不振。

整体排查思路

恶意程序排查

一、网络排查

使用netstat -tunlap命令,未发现网络异常,没有预期的外联矿池行为、异常进程名称。

二、进程排查

01、 网络进程排查

由于没有发现网络异常,因此不涉及网络相关进程排查。

02、告警进程排查

使用ps -ef | grep和ps -ef | grep命令排查告警详情提到的进程ID和进程启动命令,并未发现异常进程。

03、所有进程排查

使用pstree -as命令查看所有进程的名称和启动进程的命令CMD,并未发现异常进程,没有预期的名称是随机字符或与系统进程相似的进程存在。

04、隐藏进程排查

使用ps -ef | awk '{print}' | sort | uniq > 1 && ps -ef | awk '{print}' | sort | uniq > 2 && diff 1 2命令排查隐藏进程,并未发现异常进程。

05、进程资源排查

使用top命令查看所有进程消耗资源的情况,并未发现异常进程,没有预期的CPU或MEM占用过高的进程。

三、文件排查

01、告警文件排查

使用stat命令排查告警详情提到的恶意文件,并未发现异常文件。

02、时间文件排查

使用find / -newerct命令排查告警详情提到的攻击发生时间,发现大量异常文件。

001、/tmp/2mOsaG3ceM文件于2023-11-30 08:24:58被攻击者创建,经文件沙箱检测是恶意程序,后续需备份后删除。

002、/etc/crontab文件于2023-11-30 08:25:01被攻击者篡改,添加了执行恶意程序的计划任务。后续需备份后删除计划任务/etc/crontab、备份后删除恶意程序/tmp/2mOsaG3ceM。

003、/var/spool/cron/root文件于2023-11-30 08:25:01被攻击者篡改,添加了执行恶意程序的计划任务。后续需备份后删除计划任务/var/spool/cron/root、备份后删除恶意程序/tmp/2mOsaG3ceM。

004、/root/.bash_logout文件于2023-11-30 08:25:01被攻击者篡改,植入了用户退出bash时执行恶意程序的自动任务。后续需备份后删除/root/.bash_logout、备份后删除恶意程序/tmp/2mOsaG3ceM。

005、/tmp/.opass文件于2023-11-30 08:24:58被攻击者创建,从文件名判断是密码本,一般用于解密恶意程序,后续需备份后删除。

006、/tmp/RgX48OS6BF文件于2023-11-30 10:36:40被攻击者改过,但从atime看2023-11-30 08:24:56就被创建,经文件沙箱检测是恶意程序,后续需备份后删除。

007、/root/.ssh/authorized_keys文件于2023-11-30 08:24:58被攻击者篡改,经与系统管理员(我自己)确认,该 SSH公钥是被攻击者添加的。后续需备份后删除/root/.ssh/authorized_keys。

008、/etc/ssh/sshd_config文件于2023-11-30 08:25:01被攻击者篡改,对比配置相同的其它正常服务器的sshd_config文件多了PubkeyAuthentication yes配置,是攻击者为了公钥登录而添加的。后续若无公钥登录需求,需删除该配置。

03、敏感目录排查

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

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

04、特权文件排查

使用find / -perm 2000 2>/dev/null命令排查特权文件,未发现异常文件。

后门排查

一、账户后门排查

01、SSH账户

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

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

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

排查/etc/shadow的ctime,发现是云管平台重置SSH密码并重启服务器的时间。排查/etc/passwd,发现polkitd和chrony用户都无法登录。因此推断polkitd和chrony账户的SSH口令是云管平台配置的,与攻击行为无关。

使用cat /etc/shadow | awk -F: 'length(2)==0 {print 1,

02、SSH密钥

/root/.ssh/authorized_keys文件已在“恶意程序排查 – 文件排查”时分析过,这里不再分析。

二、条件后门排查

01、 计划任务

使用find /etc/*cron* ! -type d -exec ls -lctr --full-time {} \+ 2>/dev/null命令排查计划任务,发现/etc/crontab文件于2023-11-30 08:25:01被攻击者篡改。由于已在“恶意程序排查 – 文件排查”时分析过,这里不再分析。

使用find /var/spool/cron -type f -exec ls -lctr --full-time {} \+ 2>/dev/null命令排查计划任务,发现/var/spool/cron/root文件于2023-11-30 08:25:01被攻击者篡改。由于已在“恶意程序排查 – 文件排查”时分析过,这里不再分析。

02、启动项

使用find /etc/rc.d/ -type f -exec ls -lctr --full-time {} \+ 2>/dev/null命令排查启动项,发现ctime都是2019-07-11的,未发现异常。

03、自启服务

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

04、命令别名

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

使用find / -name *bashrc* -type f -exec ls -lctr --full-time {} \+ 2>/dev/null命令排查命令别名,发现ctime都是2019-07-11的,未发现异常。

溯源排查

一、日志分析

01、系统日志

001、安全日志secure

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

使用cat /var/log/secure* | grep 8.219.176.16 | grep Failed | wc -l命令,发现恶意IP地址8.219.176.16没有一次登录失败。

使用cat /var/log/secure* | grep 8.219.176.16命令,查看恶意IP地址的登录时间,是2023-11-30 08:24:40。

002、登录日志last系列

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

003、命令日志history

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

02、中间件日志

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

03、数据库日志

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

04、安全设备日志

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

二、流量分析

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

三、内存分析

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

四、溯源结论

01、2023-11-30 08:24:40

攻击源IP地址8.219.176.16(威胁情报恶意IP、新加坡、阿里云)于2023-11-30 08:24:40登录SSH服务的root账户,没有失败登录记录,只有一次成功登录记录。

02、2023-11-30 08:24:58

18秒后,攻击者于2023-11-30 08:24:58至08:25:01,上传恶意程序/tmp/2mOsaG3ceM,并为该恶意程序添加定时任务/var/spool/cron/root和/etc/crontab、添加条件任务/root/.bash_logout。

同时创建SSH密钥/root/.ssh/authorized_keys,并修改配置/etc/ssh/sshd_config允许密钥登录。

同时上传密码文件/tmp/.opass,并上传恶意程序/tmp/RgX48OS6BF(VirusTotal提示需要密码打开)。

03、2023-11-30 08:34:25

10分钟后,攻击者执行的挖矿程序于2023-11-30 08:34:25被阿里云盾检测到。

04、2023-12-01 09:34:24

一天后,重置SSH密码时重启了服务器,恶意进程结束后不再重启。

工具排查

01、chkrootkit

1. wget .tar.gz

2. tar -zxvf chkrootkit.tar.gz

3. cd chkrootkit-<版本>

4. ./chkrootkit > result.txt

5. cat result.txt | grep -v "nothing found\|not infected\|not found\|not tested"

新发现异常文件/usr/lib/debug/usr/.dwz,但ctime是2019-07-11,且文件实际不存在。

02、rkhunter

1. yum -y install rkhunter

或者

1. 浏览器下载

2. tar -zxvf rkhunter-<版本>.tar.gz;

3. cd rkhunter-<版本>

4. ./installer.sh --install

然后

1. rkhunter -c –sk

2. cat /var/log/rkhunter/rkhunter.log | grep -C 2 Warning

逐个排查Warning,并未发现异常。

03、GScan

1. git clone .git

2. cd GScan

3. python GScan.py

工具发现攻击者上传SSH密钥,之前已处置过。

后续待办

序号

待办

原因

方法

1

备份后删除文件:/tmp/2mOsaG3ceM、/tmp/RgX48OS6BF、/tmp/.opass。

是恶意程序

scp root@8.134.112.185:/tmp/2mOsaG3ceM C:\Users\onemorethink\Desktoprm -rf /tmp/2mOsaG3ceM scp root@8.134.112.185:/tmp/RgX48OS6BF C:\Users\onemorethink\Desktoprm -rf /tmp/RgX48OS6BF scp root@8.134.112.185:/tmp/.opass C:\Users\onemorethink\Desktoprm -rf /tmp/.opass

2

备份后删除文件:/etc/crontab、/var/spool/cron/root、/root/.bash_logout。

启动恶意程序的定时任务和条件任务。

scp root@8.134.112.185:/etc/crontab C:\Users\onemorethink\Desktoprm -rf /etc/crontab scp root@8.134.112.185:/var/spool/cron/root C:\Users\onemorethink\Desktoprm -rf /var/spool/cron/root scp root@8.134.112.185:/root/.bash_logout C:\Users\onemorethink\Desktoprm -rf /root/.bash_logout

3

备份后删除文件:/root/.ssh/authorized_keys。

攻击者添加了SSH密钥后门

scp root@8.134.112.185:/root/.ssh/authorized_keys C:\Users\onemorethink\Desktoprm -rf /root/.ssh/authorized_keys

4

修改配置文件禁止SSH密钥登录:/etc/ssh/sshd_config。

是攻击者为了公钥登录而启用的配置。

sed -i 's/PubkeyAuthentication yes/PubkeyAuthentication no/g' /etc/ssh/sshd_config

5

修改SSH服务的root账号的密码

root账号被攻击者成功登录

passwd root

修改配置文件禁止SSH密钥登录时,发现/etc/ssh/sshd_config无法被修改,被添加了i属性,需要先取消i属性后才能修改。

排查发现,其它需要删除的文件也有部分被添加了i属性,需要先取消i属性后才能删除。

其它说明

1、后面如果想练习这个环境,在自己的Linux环境执行计划任务中的命令即可。建议使用Host-Only模式(仅主机模式)的虚拟机,以避免蠕虫扩散,事态不可控时可以执行如下命令终止全部恶意进程,或者断网或关机。

2、有一个存疑的点,恶意程序的计划任务是每分钟执行一次,但实际并未生效,即时重启crond也没用,但手动执行计划任务中的命令又可以成功。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2023-12-03,如有侵权请联系 cloudcommunity@tencent 删除事件备份登录进程日志

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