网络安全-挖矿病毒入侵事件分析

网络安全-挖矿病毒入侵事件分析

第一次遇到,分享下我的定位过程和思路,请各位大佬指点!!! 抱拳

一、背景

云安全中心告警信息

image

二、查看相关资料

挖矿程序处理最佳实践 阿里云安全指南-阿里云帮助中心

三、根据文档一步步定位

3.1、阻断恶意网络通信

在发现主机存在挖矿行为后,由于完整地处理整个挖矿事件的周期比较长,所以为了及时控制挖矿影响,需要首先阻断挖矿木马的网络通信行为。
执行以下命令,查看当前系统网络连接状态。

netstat -antp

将以下命令中c2地址替换为正常业务不会使用的可疑远程地址(Foreign Address),然后执行下述命令添加防火墙规则,阻断服务器与该可疑地址之间的所有网络连接。

iptables -A INPUT -s c2地址 -j DROP
iptables -A OUTPUT -d c2地址 -j DROP

3.2、清除计划任务

挖矿木马常通过计划任务实现定期下载(更新)并启动挖矿木马,如果仅清理挖矿进程、挖矿木马文件,并不能根治挖矿程序,且会出现挖矿反复的情况。

排查以下计划任务文件,删除计划任务中的挖矿木马下载和启动任务。

查看当前用户或指定用户(username)的计划任务。

crontab -l
crontab -u username -l

主机所有计划任务文件:

/etc/crontab
/var/spool/cron/
/etc/anacrontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/

我这台服务器是新的裸机,vi /etc/crontab 以后只有一条定时任务命令。 这让我觉得/etc/nnt.sh这个执行脚本非常可疑

image

四、查看/etc/nnt.sh扩展属性

stat /etc/nnt.sh

这里可以看到,/etc/nnt.sh这个文件 创建时间(Birth) 是 2025-05-14,修改时间(Modify)2025-04-05,修改时间 < 创建时间,很明显是被修改过的,是恶意脚本常用的伪装手段

image

五、查看nnt.sh执行日志

sudo grep "nnt.sh" /var/log/cron

可以看出 是集中在 整点 和 50min执行

image

六、查看脚本定时任务配置

grep -r "nnt.sh" /etc/cron* /var/spool/cron/

可以看到:

在/etc/cron.d/httpgd文件中设置了每50分钟以root身份执行一次

在/etc/crontab中设置了每天凌晨1点以root身份执行一次

在root用户的个人crontab(/var/spool/cron/root)中也设置了每50分钟执行一次

这个脚本被频繁调度执行,且输出被重定向到/dev/null(即丢弃所有输出)

image

七、删除nnt.sh相关的定时任务配置

7.1、删除 /etc/cron.d/httpgd 中的任务

7.1.1、执行以下命令

sudo sed -i '/nnt\.sh/d' /etc/cron.d/httpgd

7.1.2、显示无法删除

image

7.1.3、查看文件详情 可以看到创建时间和受攻击是同一天 并且是只能追加不能删除权限

stat /etc/cron.d/httpgd
lsattr httpgd

image

7.1.4、移除ai属性并删除

sudo chattr -ia /etc/cron.d/httpgd
vi /etc/cron.d/httpgd

7.2、删除 /etc/crontab 中的任务

7.2.1、移除ai属性并删除

sudo chattr -ia /etc/crontab

这里看到 受到攻击已经把我的crontab从原本的text文件改成二进制文件

image

image

7.2.2、重新创建一个新的crontab文件 内容如下

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

7.2.3、被攻击后被改成了二进制文件(data), 重新创建的是文本文件(text)

image

7.2.4、重新赋权

chomod 644 crontabe

7.3、删除 /var/spool/cron/root中的任务

7.3.1、移除ai属性并删除

sudo chattr -ia /var/spool/cron/root
vi /var/spool/cron/root

八、/etc/nnt.sh文件

8.1、执行删除命令

sudo rm -f /etc/nnt.sh

可以看到 无法删除

image

8.2、查看文件详情

lsattr /etc/nnt.sh

文件被设置的 仅追加不能修改或删除(a -> append)不可变(i -> immutable) 扩展格式(e -> extent format)

image

8.3、移除ia属性并删除

sudo chattr -ia nnt.sh
rm -rf nnt.sh

九、封禁IP和域名

9.1、要禁止系统访问恶意域名 natalstatus.org 和 IP 45.89.52.41

# 封禁IP(立即生效)
sudo iptables -A OUTPUT -d 45.89.52.41 -j DROP
sudo iptables -A INPUT -s 45.89.52.41 -j DROP

# 封禁域名(需解析域名,可能不如IP直接)
sudo iptables -A OUTPUT -p tcp -d natalstatus.org -j DROP
sudo iptables -A INPUT -p tcp -s natalstatus.org -j DROP

# 保存规则(CentOS/RHEL)
sudo service iptables save

image

9.2、防火墙封禁IP和域名

封禁IP

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="45.89.52.41" reject'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" destination address="45.89.52.41" reject'
sudo firewall-cmd --reload

image

9.3、修改 /etc/hosts 屏蔽域名

# 将域名指向本地回环(彻底屏蔽)
echo "127.0.0.1 natalstatus.org" | sudo tee -a /etc/hosts
echo "127.0.0.1 www.natalstatus.org" | sudo tee -a /etc/hosts

9.4、验证封锁是否生效

# 测试IP是否可访问
ping 45.89.52.41  # 应显示"Network unreachable"或超时

# 测试域名解析(应返回127.0.0.1)
dig natalstatus.org
curl -v http://natalstatus.org  # 应无法连接

十、总结

种种迹象表明,这个/etc/nnt.sh文件大概率为恶意脚本,删除全部该脚本相关的定时任务,并删除了nnt.sh文件,封禁了相关的IP和域名。

posted @ 2025-05-16 09:39  skystrivegao  阅读(245)  评论(0)    收藏  举报