GPU 服务器(8× NVIDIA A100)确认遭入侵:攻击者用 39,224 次 SSH 连接、枚举 4,774 个用户名,猜解弱口令账户密码后 3 分钟内 su 提权至 root;随后操作者账户(全 sudo 权限)部署 lolMiner,8 张 A100 全部被占用于 ETC 挖矿,并经 proxychains4 SOCKS 代理连接矿池隐藏流量。附完整取证时间线与分级修复建议。
CHART 01 // 攻击阶段时间线
attack chain · stage by stageCHART 02 // SSH 来源 · 连接次数
connection volume by source两来源合计 40,685 次 · 柱长为占 [攻击IP-A] 的比例 · [攻击IP-A] 为唯一成功来源(攻破 [弱口令账户])。
事件编号:
INC-…(已隐去)· 报告时间:2026-07-20 · 日志审计时段:2026-06-21 ~ 2026-07-20 审计级别:全面入侵取证 · 结论:已确认入侵(SSH 爆破 → 弱口令猜解 → su 提权 root → lolMiner 挖矿) 脱敏说明:主机名、真实 IP、用户名、矿池地址、SSH 指纹、口令均已隐去。
环境与系统信息
| 项目 | 信息 |
|---|---|
| 主机 | [GPU服务器](内部代号已隐去) |
| 操作系统 | Ubuntu 20.04 · Kernel 5.4.0-42 |
| 硬件 | 8× NVIDIA A100-SXM4-80GB · 6× NVSwitch · 128 核 AMD EPYC · ~1TB RAM |
| 内网地址 | [内网IP](10.x 网段,已隐去) |
| 首次入侵 | 2026-06-21 17:56([弱口令账户] 密码被猜解攻破) |
| 最新活动 | 2026-07-18 16:35(部署 lolMiner 挖矿后退出) |
事件概述
GPU 服务器(8× A100)在一次针对 SSH 的暴力破解中被入侵,并演变为密码猜解 → 提权 root → GPU 挖矿的完整攻击链:
- 攻击者先对 SSH 端口做存活性探测,随后发起 17 小时、39,224 次连接的用户名枚举(4,774 个用户名);
- 枚举中发现系统存在
[弱口令账户],猜解出弱密码后 1 秒即断开(凭证验证); - 数小时后二次登录,3 分钟内
su提权至 root; - 距首次入侵 29 天后,
[操作者账户](全 sudo 权限、自持密钥)部署 lolMiner,8 张 A100 全部被占用于 ETC 挖矿,并通过 proxychains4 SOCKS 代理连接矿池隐藏流量。
攻击时间线
阶段一:侦察扫描(06-21 14:06)
来源 [攻击IP-A]:对 SSH 端口 22 做存活性探测,连接后立即关闭(Connection closed [preauth]),确认端口开放。
阶段二:大规模用户名枚举(06-21 14:28 ~ 06-22 07:25)
| 项 | 值 |
|---|---|
| 来源 | [攻击IP-A] |
| 总连接次数 | 39,224 次 |
| 尝试用户名 | 4,774 个 |
| 失败登录 | 7,939 次 |
| 攻击持续 | 约 17 小时 |
| 手法 | 自动化枚举工具,单密码试探即切换用户名 |
日志证据(auth.log 归档):
Jun 21 14:28:04 sshd[504545]: Invalid user [用户名] from [攻击IP-A] port 44848
Jun 21 14:28:06 sshd[509048]: Invalid user [用户名] from [攻击IP-A] port 49728
Jun 21 14:28:09 sshd[531973]: Invalid user [用户名] from [攻击IP-A]
Jun 21 14:28:28 sshd[867616]: Failed password for [用户名] from [攻击IP-A]...
(共 39,224 行)
阶段三:[弱口令账户] 被攻破(06-21 17:56:03)
枚举 4,774 个用户名后发现系统存在 [弱口令账户],几次尝试后猜中密码:
17:55:45 Failed password for [弱口令账户] ← 第一次尝试
17:55:50 Failed password for [弱口令账户] ← 第二次
17:55:53 Invalid user [变体用户名] ← 变种试探
17:55:58 Invalid user [变体用户名]
17:56:03 Accepted password for [弱口令账户] ✓ ← 攻破!
17:56:03 session opened for user [弱口令账户] ← 会话建立
17:56:03 Disconnected from user [弱口令账户] ← 1 秒内退出
登录成功同一秒立即断开,这是典型的凭证验证行为——先确认密码有效,稍后回来正式操作。
阶段四:提权至 root(06-22 00:56 ~ 00:59)
二次登录后,3 分钟内完成普通用户到 root 的提权:
00:56:39 session opened for user [弱口令账户] ← 登录
00:56:50 sudo: [弱口令账户] : user NOT in sudoers ← sudo 尝试失败
00:57:46 su: (to [中转用户]) [弱口令账户] on pts/0 ← 切换到中转用户
00:59:04 su: (to root) [弱口令账户] on pts/0 ← 提权到 root 成功!!!
00:59:04 session opened for user root ← root 会话
00:59:39 sudo: session opened for root ×4 ← 连续 4 次 sudo
01:05:46 session closed for user [弱口令账户] ← 退出
阶段五:第二次攻击(失败,06-30 20:01 ~ 07-01 01:46)
来源 [攻击IP-B]:1,461 次 SSH 连接,尝试 26 个用户名(root、postgres、admin 等)全部失败。该攻击者使用较旧的 SSH 客户端(支持已废弃的 diffie-hellman-group1-sha1 算法)。
阶段六:lolMiner 挖矿部署(07-18 15:03 ~ 16:35)
来源 [内网用户IP],操作者为 [操作者账户](非 [弱口令账户],使用自己的 SSH 私钥)。这是最严重的主动攻击行为:
15:03:53 SSH 登录(公钥认证,指纹 [SSH指纹])
15:21:59 sudo mkdir -p /opt/miner
15:22:51 sudo rm -rf /opt/miner
15:25:47 sudo mkdir -p /opt/miner
15:26:05 sudo cp lolMiner /opt/miner/
15:48:31 sudo ./install.sh
15:50:06 sudo nano /etc/gpu-miner.conf
15:58:46 sudo nano /etc/gpu-miner.conf
16:00:30 sudo ./setup-proxy.sh
16:00:33 apt install -y -qq proxychains4
16:02:44 sudo /usr/local/bin/mine-on
16:06:01 sudo /usr/local/bin/mine-on
16:13:04 sudo /usr/local/bin/mine-off
16:52:26 sudo ss -lntp sport = :7891
16:18:40 再次 SSH 登录(同一密钥)
16:27:46 sudo npm install -g @openai/codex
16:35:58 SSH 断开
关键发现:
- 挖矿程序为 lolMiner(针对 Ethereum Classic / ETC 的开源 GPU 挖矿工具);
- 配置了 8 个 systemd 服务(
miner@0~miner@7),每张 GPU 一个; - 矿池地址
[矿池地址](通过 proxychains4 代理连接); - 代理配置为 SOCKS4 127.0.0.1:9050(Tor 默认端口,但 Tor 未安装);
- 同时安装
@openai/codex的目的不明; - 操作者为
[操作者账户]本人,用自己私钥登录、全程 sudo。
来源 IP 分析
| IP | 角色 | 说明 |
|---|---|---|
[攻击IP-A] |
攻击者(已攻破) | 39,224 次连接 · 枚举 4,774 用户名 · [弱口令账户] 沦陷 |
[攻击IP-B] |
攻击者(未成功) | 1,461 次连接 · 26 用户名 · 旧版 SSH 客户端 |
[用户汇聚IP] |
主要内网来源 | 13 个合法用户的汇聚点 |
[用户IP-A] 等 |
合法用户 | RSA / ED25519 密钥认证、混合认证 |
[本机地址] |
本机 | natfrp 内网穿透出口 |
所有来源均为内网 10.x 网段,未发现直接来自公网的攻击。攻击者可能已在内网中、或通过 VPN 接入、或已攻破内网其他机器作为跳板。
挖矿详情
| 项 | 值 |
|---|---|
| 挖矿程序 | lolMiner(ETC 矿工) |
| 矿池 | [矿池地址] |
| 代理方式 | proxychains4 → SOCKS4 127.0.0.1:9050 |
| GPU 占用 | 8 张 A100-SXM4-80GB 全部 |
| 部署方式 | systemd miner@0 ~ miner@7(每卡一服务) |
| 部署时间 | 2026-07-18 15:21 ~ 16:02 |
| 部署者 | [操作者账户](sudo 权限、自持 SSH 密钥) |
lolMiner 是知名开源 GPU 挖矿工具,支持 ETC 算法。8 张 A100 全速运行,ETC 算力每日收益估算可达数百美元。攻击者用 proxychains4 经 SOCKS 代理连接矿池,以隐藏真实流量来源。
弱点与攻击面分析
[弱口令账户]弱密码:仅密码认证(无 SSH 密钥)、密码强度不足,且可su到 root——最根本的漏洞;[操作者账户]权限过大:具有完整 sudo(免密),可在系统执行任意操作,为挖矿部署提供了便利;- SSH 密码认证未禁用:部分用户用密码而非密钥认证,且未安装 fail2ban 等爆破防护;
- 内网穿透服务运行中:将本机服务暴露到外网,日志显示远程管理通道曾成功连接;
- 内网段互通无隔离:多个 10.x 网段均可直接访问本机 SSH(22),无 ACL / 防火墙限制;
- 硬件故障叠加:Fabric Manager 版本不匹配导致 8/16 张 GPU 离线(4 月 28 日起)、NVSwitch 心跳丢失——系统不稳定可能掩盖了挖矿的异常表现。
影响评估
| 维度 | 评估 | 说明 |
|---|---|---|
| 机密性 | 完全泄露 | root 权限可读取所有数据与 AI 模型 |
| 完整性 | 可能被篡改 | 训练数据 / 模型可能被污染或植入后门 |
| 可用性 | 受影响 | 8/16 GPU 离线 + 挖矿占用算力 + 系统不稳定 |
| 横向渗透 | 高风险 | root 可 SSH 到其他内网主机,可成为跳板 |
距首次入侵(06-21
[弱口令账户]被攻破)已过去 29 天,距挖矿部署(07-18)已过去 2 天。此期间攻击者可能已完成数据窃取、模型投毒、后门植入。
系统用户分析
本机共 18 个用户可通过 SSH 登录:
| 认证方式 | 数量 | 状态 |
|---|---|---|
| 密钥认证 | 11 | 正常 |
| 密码 / 密码+密钥混合 | 5 | 弱认证,需整改 |
[弱口令账户] |
1 | 已沦陷(密码被猜解) |
[操作者账户] |
1 | 全 sudo,挖矿操作者 |
18 个用户中 6 个为弱认证/高风险账户,占 1/3;全部使用密码认证的账户都是潜在突破口。
取证截图(已打码)
以下为排查期间的关键终端实拍,真实 IP、用户名、主机名与 MAC 均已在图上打码:






修复建议
立即执行(紧急)
# ① 隔离主机:仅允许内网网段访问 SSH
iptables -A INPUT -p tcp --dport 22 -s [内网网段] -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
# ② 锁定弱口令账户
passwd -l [弱口令账户]
usermod -s /sbin/nologin [弱口令账户]
# ③ 更改 root 密码
passwd root
# ④ 停用内网穿透服务
systemctl stop [内网穿透服务]
systemctl disable [内网穿透服务]
# ⑤ 杀死挖矿进程、删除恶意文件
pkill -f lolMiner
systemctl stop 'miner@*.service'
rm -rf /opt/miner /etc/gpu-miner.conf /usr/local/bin/mine-on /usr/local/bin/mine-off
# ⑥ 卸载代理工具
apt-get remove --purge -y proxychains4
尽快处理(高优先级)
- 禁用 SSH 密码认证:
/etc/ssh/sshd_config设PasswordAuthentication no、PermitRootLogin prohibit-password,重启 sshd; - 限制 sudo 权限:编辑
/etc/sudoers,移除不必要的 sudo 用户; - 安装 fail2ban:
maxretry=5、bantime=3600; - 检查后门账户:
awk -F: '$3>=1000{print $1}' /etc/passwd+ 逐个核对/home/*/.ssh/authorized_keys; - 检查 crontab:root 与关键用户逐一
crontab -l; - 出口封禁矿池:
iptables -A OUTPUT -d [矿池域名] -j DROP、-p tcp --dport 1010 -j DROP; - 审查操作历史:
grep -iE "miner|lolMiner|proxy|install\.sh|setup-proxy" /home/*/.bash_history。
后续整改(持续性)
- 部署集中式日志(ELK/Splunk),日志保留 180 天以上;
- 开启
auditd记录所有命令执行; - 配置网络隔离,限制跨网段 SSH 访问;
- 安装 Rootkit 检测(rkhunter / chkrootkit);
- 建立安全基线:最小权限、定期密码轮换;
- 对受影响主机做全量文件完整性检查(
debsums -s); - 追溯
[攻击IP-A]/[攻击IP-B]的物理位置。
结论
| 项 | 结论 |
|---|---|
| 入侵确认 | ✅ 已确认——[弱口令账户] 密码被破解成功 |
| 提权确认 | ✅ 已确认——su root 成功并执行 sudo |
| 挖矿确认 | ✅ 已确认——8 张 GPU 被用于 ETC 挖矿 |
| 后门确认 | ⚠️ 内网穿透服务运行中,远程隧道可能成为后门通道 |
| 操作者确认 | ⚠️ 挖矿由 [操作者账户] 本人操作(自持 SSH 密钥) |
| 横向移动 | ⚠️ 可能性高——root 可 SSH 到其他内网主机 |
| 数据泄露 | ⚠️ 无法排除——攻击者 06-22 起已持有 root 权限 |
本报告基于服务器
/var/log/日志分析得出;由于部分压缩日志已覆盖,实际入侵范围可能更大。建议清理完成后进行全面安全检测与持续监控审计。
经验与预防
一次内网 GPU 服务器的完整入侵链路:SSH 爆破 → 弱口令猜解 → su 提权 root → lolMiner 挖矿。复盘下来,攻击链上的每一步本都可以被拦截:
- 弱口令是整条链的起点,最值得先修:
[弱口令账户]只有密码认证、无 SSH 密钥、密码强度不足,且可su到 root——爆破防护只剩"密码足够强"这一道防线,一旦失守全盘皆输。立即禁用密码认证(PasswordAuthentication no)、强制密钥,并用 fail2ban 挡住爆破; - 内网不等于安全:所有攻击来源都在内网 10.x 网段,未见公网直连——攻击者可能已在内网、或经 VPN / 已沦陷跳板入场。内网同样要按网段做 ACL 隔离、按主机收敛 SSH 来源,而不是默认全通;
- 权限越大,爆破收益越大:
[操作者账户]持有全 sudo(免密),使一次su提权就拿到系统最高权限。sudo 应收敛为最小化命令白名单,关键操作走审批留痕; - 挖矿的异常会被"本来就不稳"掩盖:8/16 张 GPU 因 Fabric Manager 版本不匹配早已离线,系统长期不稳定,正好掩盖了挖矿对算力的占用。GPU 服务器应定时采集
nvidia-smi利用率并设告警基线,任何突然满载 / 新增的陌生进程都要能察觉; - 日志是唯一的取证手段,且会被覆盖:部分压缩日志已被轮转覆盖,本次只能还原近 30 天的部分轨迹,实际入侵范围无法完全确认。日志应集中归档(ELK/Splunk)、保留 180 天以上,并开启
auditd记录命令级行为; - 长期不用的通道要关,过期的用户要清:内网穿透服务仍在运行,等于给内网留了一扇远程门;18 个可 SSH 用户中 6 个属弱认证 / 高风险。应定期盘点账号(
/etc/passwd+authorized_keys)、停用穿透、锁定不活跃账户。
一句话:密码认证 + 全量 sudo + 内网全通 + 无集中日志,四个条件凑齐,才让这条从爆破到挖矿的 29 天渗透一路畅通。