网络安全事件报告 — VM-8-9-opencloudos
报告时间: 2026-08-13 13:00 (UTC+8) · 主机: OpenCloudOS 9.4 (Tencent Cloud CVM) · 报告人: 自动化安全处置 agent (配合管理员操作)
1. 结论摘要
该服务器曾于 2026-07-27 被入侵,攻击者植入了多层自愈型 SSH 后门/rootkit(五副本 + XOR 伪装 bootstrap + 10 秒级 systemd 定时器 + cron 看门狗),并通过泄露的 openclaw 凭据实现远程操控。经过 2026-08-13 一轮排查与处置和两轮复核,恶意组件已 100% 清除,服务器重启后无自愈复活,攻击者自 8-12 23:39 后未再出现。当前系统处于"恶意残留清零"状态,但仍存在若干暴露面风险(非恶意残留),需按第 7 节逐项加固。
2. 被入侵的源头(已定位)
入侵入口: openclaw-gateway 的 QQ 机器人通道。
openclaw-gateway( v2026.3.8 ,root 用户 systemd user 服务)通过 QQ 机器人通道( wss://api.sgroup.qq.com, appId 1903352658 )暴露了 operator 权限的 agent 执行能力——任何人能通过该机器人向服务器下达执行命令,等效于远程命令执行( RCE )。- 其
clientSecret/gateway token/ikun apiKey以明文存放在/root/.openclaw/openclaw.json中;/root/.bash_profile中还有明文ANTHROPIC_AUTH_TOKEN。 - 证据链:2026-07-27 03:02 服务器在无任何前置 SSH 登录的情况下执行
useradd ops并重启 sshd —— 与 openclaw 通道可静默执行命令的能力完全吻合,且该通道不需要 SSH 会话。openclaw 即入侵执行链的入口。 -
次要暴露面(当时并存,攻击者可能利用其一获取初始权限):
- x-ui / s-ui 代理面板( 0.0.0.0:5002 、0.0.0.0:2096 全网监听,2025-10 旧版,有未授权访问漏洞历史)
- root SSH 密码登录开启( PasswordAuthentication yes ),存在被爆破的历史记录
- 主机无任何防火墙( firewalld 未启用)
3. 入侵时间线(依据 /var/log/secure 、cron 日志、文件时间戳)
| 时间 (UTC+8) | 事件 |
|---|---|
| 2026-07-27 03:02 | 入侵首现:无前置 SSH 登录情况下执行 useradd ops(UID 1001)、写入 sshd 恶意配置、sshd 重启。攻击者此时已持有 root 权限(经 openclaw 通道) |
| 2026-07-27 03:02 起 | 恶意组件上线:ssh-healthcheck.timer 每 2 分钟探测 22 端口;五副本 guard 二进制 + XOR bootstrap + 10 秒级 systemd-session-cleanup.timer 自愈环 |
| 2026-07-27 03:04 起 | 恶意 cron */2 * * * * /usr/lib/systemd/systemd-session-helper 每 2 分钟执行(产生 219MB cron 日志) |
| 2026-07-27 03:11 | 攻击者密钥首次 SSH 登录 root ,来源 112.47.200.247 |
| 2026-07-27 14:41–15:44 | 同密钥从 112.47.200.247 密集登录(数十会话) |
| 2026-07-28 04:42–05:12 | 同密钥从 188.253.126.64 登录 |
| 2026-07-28 21:04 | 同密钥从 112.47.201.137 登录 |
| 2026-08-07 17:18 / 17:31 | 同密钥从 188.253.126.62 登录 |
| 2026-08-12 23:39 | 同密钥从 188.253.126.63 登录 —— 攻击者最后一次活动 |
| 2026-08-13 11:37–12:08 | 管理员与处置 agent 联合清理:删 ops 账户、改 root 密码、执行 cleanup.sh 、删除全部恶意文件、12:08 重启服务器 |
| 2026-08-13 12:10–12:45 | 深度复查:清除 3 处遗漏残留;定位入侵源头 openclaw 并彻底移除其组件与明文凭据 |
| 2026-08-13 12:55–13:00 | 终检复查:移除全部备份/样本;全系统风险复查通过(本报告) |
攻击者密钥指纹: ED25519 SHA256:JfUkBNTLQgu+LM2ya/ZHxEGuH2Qq1UY3/0OkzT0/WPo
攻击者 IP: 112.47.200.247 / 112.47.201.137 (国内跳板)、188.253.126.62/.63/.64 (境外 VPS 段)
4. 恶意组件清单(已全部清除)
| 类别 | 路径 | 状态 |
|---|---|---|
| 主后门二进制 | /usr/lib/systemd/systemd-session-helper |
✅ 已删 |
| 副本 2–5 | /usr/lib/.sessiond、/usr/share/doc/base-files/.helper、/usr/share/locale/.lang-data、/var/lib/guard/.guard-self |
✅ 已删 |
| XOR 伪装 bootstrap | /usr/lib/locale/.locale-archive.bak |
✅ 已删 |
| 自愈 wrapper | /usr/lib/.systemd-cgroup-helpers.sh |
✅ 已删 |
| 伪装健康检查 | /usr/local/sbin/ssh-healthcheck.sh |
✅ 已删 |
| 恶意定时器/服务 | systemd-session-cleanup.{service,timer}、ssh-healthcheck.{service,timer} |
✅ 已删 |
| 自愈 drop-in | sshd.service.d/guard-restart.conf、ssh.service.d/guard-restart.conf |
✅ 已删 |
| 密钥后门配置 | sshd_config.d/60-cloudimg-settings.conf、99-local-users.conf、70-guard-hardening.conf |
✅ 已删 |
| SSH 后门 | /root/.ssh/rc、/root/.ssh/authorized_keys(攻击者公钥)、/usr/share/doc/base-files/.c、.ops、/home/ops/.ssh/authorized_keys |
✅ 已删( authorized_keys 现为空且 chattr +i 冻结) |
| 后门账户 | ops(UID 1001) 及 /etc/sudoers.d/ops |
✅ 已删 |
| cron 看门狗 | root crontab 中 systemd-session-helper 行 |
✅ 已删 |
| 状态目录 | /var/lib/guard/ |
✅ 已删 |
| 入侵源头 | openclaw-gateway 服务、/root/.openclaw/(含明文凭据)、/tmp/openclaw*、fnm 下 openclaw 包 |
✅ 已删 |
5. 解决方案(处置全过程,已完成)
5.1 第一轮:一键清理( cleanup.sh ,12:05 执行,ALL CLEAR )
按"先断触发器 → 杀进程 → 清文件 → 删单元 → 删后门 → 删账户 → SSH 加固 → 复查"的顺序执行:
- 停止并 disable 两个恶意 timer 与 cron 看门狗(切断自愈触发器)
pkill -9终止 guard 进程与 wrapper- 破坏五个 guard 副本 + XOR bootstrap + wrapper + healthcheck (写 0 字节 + chmod 000 )
- 删除全部恶意 systemd 单元与 sshd 恶意配置
- 删除攻击者 SSH 密钥后门( authorized_keys 重建为空并
chattr +i冻结) - 删除 ops 后门账户及 sudoers 残留
- 注释
/root/.bash_profile中泄露的 ANTHROPIC_AUTH_TOKEN - SSH 加固:
PermitRootLogin prohibit-password( sshd -t 通过并重启) - 复查输出:ALL CLEAR
5.2 服务器重启( 12:08 )
彻底终止可能在内存中的 guard 进程,验证自愈机制是否复活 → 无复活迹象。
5.3 第二轮:深度复查( 12:10–12:40 )
逐面排查 20+ 项(账户/认证、cron 、systemd 单元、rc.local/profile/ld 、SSH 配置、SUID/隐藏文件、/tmp 、进程、网络连接、内核模块、登录日志、Docker 、面板),发现并清除 3 处 cleanup.sh 遗漏的残留:
/etc/systemd/system/ssh.service.d/guard-restart.conf( Birth 2026-07-27 03:02 ,Restart=always 自愈 drop-in )/etc/ssh/sshd_config.d/60-cloudimg-settings.conf(伪装 cloudimg 的密钥后门配置,与 useradd ops 同一分钟写入)- 7 个被清零的恶意文件( 0 字节 000 权限残留),全部彻底删除
5.4 第三轮:入侵源头清除( 12:35–12:45 )
- 停止/移除 openclaw-gateway 服务( systemd user unit )
- 删除
/root/.openclaw(含 openclaw.json 明文凭据及 5 个 .bak )、/tmp/openclaw*、fnm 下 openclaw 包 - 清理 ~/.bashrc 与 ~/.bash_profile 中相关残留
- 复查:无进程 / 18789 等端口不再监听 / 无自启 unit / 无外连
5.5 本轮( 12:55–13:00 ):备份移除与终检
- 移除全部备份与恶意样本:forensics/ 下 bootstrap_sample.bin 、guard_sample.bin 、ssh_rc.sh 、wrapper.sh 、openclaw-backup/、xui-sui-backup/、residual-evidence/,以及宿主上含泄露 token 的
/root/.bash_profile.bak.leaked。仅保留文字报告。 - 终检复查(见第 6 节)全部通过。
6. 本轮终检复查结果( 2026-08-13 12:55–13:00 实测)
| 排查面 | 结果 |
|---|---|
| 恶意进程 | ✅ 无( pgrep 精确复查通过) |
| 恶意文件/目录 | ✅ 全部 GONE (含 /var/lib/guard 、/root/guard_new ) |
| systemd 定时器/单元 | ✅ 无恶意项; enabled 列表均为发行版/腾讯云/用户服务 |
| cron | ✅ root crontab 仅剩腾讯云 stargate 行; cron.d 均为标准项 |
| SSH 后门 | ✅ /root/.ssh/rc GONE ; authorized_keys 空( chattr +i 冻结); sshd_config.d 仅剩发行版标准文件; ssh.service.d GONE |
| SSH 配置 | ✅ PermitRootLogin prohibit-password |
| 账户/sudo | ✅ ops 不存在; sudoers.d 仅 cloud-init 标准项;唯一 UID0 为 root |
| 攻击者活动 | ✅ 8-13 全天无攻击者 IP ( 112.47.x / 188.253.126.x )任何登录或尝试 |
| 今日成功登录 | ✅ 仅 root 系统会话与管理员 lighthouse 会话 |
| openclaw 残留 | ✅ 无进程 / 端口未监听 / 文件 GONE |
| 防火墙 | ✅ firewalld 已启用( public zone 管理 eth0 ) |
| x-ui / s-ui | ✅ 均已停用,5002/2096 不再监听 |
| Docker 容器 | ✅ 6 容器均无 privileged/危险 capability (存在挂载问题,见 §7.3 ) |
| 泄露 token 盗用痕迹 | ✅ 系统日志中无任何使用痕迹(仍须外部吊销,见 §7.1 ) |
7. 残余风险与后续建议(按优先级)
7.1 需立即在外部系统完成( agent 无法代劳)
- 吊销 Anthropic token
sk-gyDPfq...(泄露窗口自 2025-09-28 起,虽无盗用痕迹但必须吊销) - QQ 开放平台:重置/禁用 appId 1903352658 的 AppSecret ,或直接删除该机器人(已泄露)
- 轮换 ikun 中转 apiKey 、openclaw gateway token (原值已泄露并随备份删除)
- 腾讯云控制台收紧安全组:22 端口仅限管理员 IP ;核对 188.253.126.62/.63/.64 与 112.47.200.247/.201.137 在云监控/VPC 流量日志中的其他活动
7.2 主机暴露面(高危,需管理员决策)
-
PostgreSQL 公网直通:容器
1Panel-postgresql映射0.0.0.0:5432,docker 的 DNAT/FORWARD 链绕过 firewalld public zone ( DOCKER-USER 链为全放行),5432 很可能公网可达。建议改为127.0.0.1:5432或加防火墙规则。- 同理需核对:certd ( 0.0.0.0:7002/5004 )、rustdesk ( 0.0.0.0:21115-21119 )。
- SSH 爆破持续存在:今日仍有互联网 IP ( 43.167.157.240 、154.211.13.102 、34.77.6.20 )尝试 root/admin 密码登录(均失败,因已 prohibit-password )。建议安装 fail2ban 或安全组限制 22 端口源 IP 。
- frps 容器为 host 网络,端口 5009/6009 未在 firewalld 放行(当前公网不可达)——如 frps 仍需对外服务请显式放行并做好 frp token 防护; frp 本身也可被用作攻击者内网跳板,请核实其客户端清单。
7.3 容器安全
- openlist 容器挂载了宿主机 /root(
/opt/1panel/apps/openlist/openlist/data/files:/root:rw,可写)——该容器一旦被攻破即可读写宿主机 root 目录。强烈建议移除该挂载。 - 定期审计其他容器镜像与 volume 是否被投毒( penpot 已下线、bitwarden/openlist/certd/frps/rustdesk 在跑)。
7.4 本机运维项
/root/.ssh/authorized_keys仍被chattr +i冻结——管理员添加自己公钥前需先执行chattr -i /root/.ssh/authorized_keys,加完可再冻结。- 若仍需 openclaw 类能力:重装后禁止公网机器人通道( QQ/微信),仅保留本机交互; token 存权限 600 文件,不写入 .bash_profile 。
- reasonix agent 应急配置未收回:
~/secure/reasonix.toml中bash="off"+allow_write=["/"]是入侵处置期间为获得全盘写权限而放宽的,处置已结束,建议恢复默认沙箱( allow_write 收窄、bash 恢复 enforce )以降低 agent 通道被滥用时的风险。
8. 证据留存说明
- 本轮起,所有备份与恶意二进制样本已按管理员要求全部移除(原取证副本 openclaw-backup 、xui-sui-backup 、residual-evidence 、guard/bootstrap 样本及含 token 的 .bash_profile 备份)。
-
文字记录保留:
/root/secure/INCIDENT_REPORT.md(首轮入侵调查报告)/root/secure/forensics/deep-audit-2026-08-13.md(深度复查报告)/root/secure/forensics/openclaw-cleanup-20260813.md(源头清理记录)/root/secure/cleanup.sh与/root/secure/cleanup-run-1.log(清理脚本及执行日志)- 本报告
/root/secure/FINAL_SECURITY_REPORT.md
- 攻击日志证据仍在系统日志中:
/var/log/secure保留了攻击者全部登录记录(密钥指纹、来源 IP 、时间),可随时提取佐证。