• 请不要在回答技术问题时复制粘贴 AI 生成的内容
burnsby
V2EX  ›  程序员

记录一次被入侵然后通过 AI 解决的经过

  •  
  •   burnsby · 31 mins ago · 236 views

    网络安全事件报告 — 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 即入侵执行链的入口。
    • 次要暴露面(当时并存,攻击者可能利用其一获取初始权限):
      1. x-ui / s-ui 代理面板( 0.0.0.0:5002 、0.0.0.0:2096 全网监听,2025-10 旧版,有未授权访问漏洞历史)
      2. root SSH 密码登录开启( PasswordAuthentication yes ),存在被爆破的历史记录
      3. 主机无任何防火墙( 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.confssh.service.d/guard-restart.conf ✅ 已删
    密钥后门配置 sshd_config.d/60-cloudimg-settings.conf99-local-users.conf70-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 遗漏的残留

    1. /etc/systemd/system/ssh.service.d/guard-restart.conf( Birth 2026-07-27 03:02 ,Restart=always 自愈 drop-in )
    2. /etc/ssh/sshd_config.d/60-cloudimg-settings.conf(伪装 cloudimg 的密钥后门配置,与 useradd ops 同一分钟写入)
    3. 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.shwrapper.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 无法代劳)

    1. 吊销 Anthropic token sk-gyDPfq...(泄露窗口自 2025-09-28 起,虽无盗用痕迹但必须吊销)
    2. QQ 开放平台:重置/禁用 appId 1903352658 的 AppSecret ,或直接删除该机器人(已泄露)
    3. 轮换 ikun 中转 apiKey 、openclaw gateway token (原值已泄露并随备份删除)
    4. 腾讯云控制台收紧安全组:22 端口仅限管理员 IP ;核对 188.253.126.62/.63/.64 与 112.47.200.247/.201.137 在云监控/VPC 流量日志中的其他活动

    7.2 主机暴露面(高危,需管理员决策)

    1. 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 )。
    2. SSH 爆破持续存在:今日仍有互联网 IP ( 43.167.157.240 、154.211.13.102 、34.77.6.20 )尝试 root/admin 密码登录(均失败,因已 prohibit-password )。建议安装 fail2ban 或安全组限制 22 端口源 IP 。
    3. frps 容器为 host 网络,端口 5009/6009 未在 firewalld 放行(当前公网不可达)——如 frps 仍需对外服务请显式放行并做好 frp token 防护; frp 本身也可被用作攻击者内网跳板,请核实其客户端清单。

    7.3 容器安全

    1. openlist 容器挂载了宿主机 /root/opt/1panel/apps/openlist/openlist/data/files:/root:rw,可写)——该容器一旦被攻破即可读写宿主机 root 目录。强烈建议移除该挂载。
    2. 定期审计其他容器镜像与 volume 是否被投毒( penpot 已下线、bitwarden/openlist/certd/frps/rustdesk 在跑)。

    7.4 本机运维项

    1. /root/.ssh/authorized_keys 仍被 chattr +i 冻结——管理员添加自己公钥前需先执行 chattr -i /root/.ssh/authorized_keys,加完可再冻结。
    2. 若仍需 openclaw 类能力:重装后禁止公网机器人通道( QQ/微信),仅保留本机交互; token 存权限 600 文件,不写入 .bash_profile 。
    3. reasonix agent 应急配置未收回:~/secure/reasonix.tomlbash="off" + allow_write=["/"] 是入侵处置期间为获得全盘写权限而放宽的,处置已结束,建议恢复默认沙箱( allow_write 收窄、bash 恢复 enforce )以降低 agent 通道被滥用时的风险。

    8. 证据留存说明

    • 本轮起,所有备份与恶意二进制样本已按管理员要求全部移除(原取证副本 openclaw-backup 、xui-sui-backup 、residual-evidence 、guard/bootstrap 样本及含 token 的 .bash_profile 备份)。
    • 文字记录保留:
    • 攻击日志证据仍在系统日志中:/var/log/secure 保留了攻击者全部登录记录(密钥指纹、来源 IP 、时间),可随时提取佐证。
    4 replies    2026-08-13 14:18:27 +08:00
    46fo
        1
    46fo  
       25 mins ago
    所以 你的 QQ appId 的 AppSecret 是怎么泄漏的
    burnsby
        2
    burnsby  
    OP
       24 mins ago
    这是我自己用的一个小服务器, 经常换密码还被入侵了, openclaw 安装在那边已经 5 个月没用过了, 我都已经忘记这回事儿了, 没有 AI 真不知道咋搞...
    burnsby
        3
    burnsby  
    OP
       22 mins ago
    @46fo 我使用的是社区的网关插件, 有可能是插件的问题, 或者插件的上游被投毒了
    Roinyu
        4
    Roinyu  
       6 mins ago
    可以分享下这个安全处置 agent 吗?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5534 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 06:24 · PVG 14:24 · LAX 23:24 · JFK 02:24
    ♥ Do have faith in what you're doing.