说明:本报告已对域名、邮箱域名等敏感信息做脱敏处理。
一、结论摘要
基于宿主机日志、飞牛应用日志、Docker 容器层痕迹、Caddy 配置与历史日志的只读排查,当前可以确认:
banana 账号在 2026-04-26 上午被外部接管过。
- 外部来源 IP 为
20.187.151.147。
- 入口不是直接 SSH / shell 登录,而是:
- Web 侧 重置密码
- Web 侧 登录
- 通过邮件获取 2FA / 紧急验证码
- 攻击者在获得飞牛后台访问权后,继续借助
apprise 容器 作为跳板,SSH 登录宿主机,并执行 sudo -i 获得 root 权限。
- 当前没有发现新增本地用户、SSH 公钥后门、cron/systemd/sudoers 级别的常见持久化痕迹。
- 截至 2026-04-26 15:14:32 CST,没有发现新的成功入侵记录;公网 IP
20.187.151.147 在你处置后仍尝试再次登录,但均失败。
二、核心攻击链路
本次事件最可能的完整链路如下:
阶段 1:账号接管
攻击者先通过飞牛 Web 侧的找回密码 / 重置密码流程,触发向绑定邮箱发送重置邮件;随后完成密码重置,并使用新密码登录 banana。
阶段 2:验证码接管 / 2FA 完成
攻击者在登录过程中又触发了一次 2FA 登录验证码邮件,随后完成登录成功事件。这说明对方不仅改了密码,而且能够获取邮件中的验证码内容。
阶段 3:从 Web 权限升级为系统权限
攻击者并未满足于飞牛后台权限,而是利用已接管的账号与容器环境,借助 apprise 容器 从容器内部 SSH 到宿主机。
阶段 4:提权为 root
在宿主机上,攻击者通过 banana 执行 sudo -i,成功获得 root shell。
阶段 5:再次进入 / 继续操作
后续又出现第二个 banana 会话,以及一次针对容器的 docker exec /bin/bash 尝试,说明攻击者在继续试图维持或扩展控制。
三、详细时间线
2026-04-26 08:27:03
已确认事实
系统发出一封 重置密码邮件,目标用户为 banana。
证据
日志:/var/log/trim_sac/info.log
关键内容(已脱敏)
templateKey: "reset_password"
- 收件人:
******@******.**
- 邮件内包含两个重置链接:
https://5***.***/******?route=/reset-password?code=...
http://192.168.50.22:5666/reset-password?code=...
说明
这说明当时有人走了飞牛 Web 侧找回密码 / 重置密码流程。
2026-04-26 08:29:28
已确认事实
banana 的系统密码被成功修改。
证据
/var/log/syslog
/var/log/auth.log
关键内容
MAINEVENT ... "template":"ResetPassword","user":"banana"
chpasswd ... password changed for banana
说明
这不是单纯前端事件,而是系统层密码真的发生了变化。
2026-04-26 08:29:40
已确认事实
公网 IP 20.187.151.147 对 banana 登录成功,并触发 2FA / 设备相关流程。
证据
日志:/var/log/syslog
关键内容
MAINEVENT ... "template":"LoginSucc2FA1","user":"banana","IP":"20.187.151.147"
- 附近有
trim_tfa 查询 user_devices 的日志
- 设备 ID:
mof16wmi-ouxey6o18f-8numtyitsqx
- 查询结果:
record not found
说明
这说明对方是在走 Web 登录 + 设备/2FA 校验 流程,不是直接 shell 登录。
2026-04-26 08:30:23
已确认事实
系统发出一封 2FA 登录验证码邮件。
证据
日志:/var/log/trim_sac/info.log
关键内容(已脱敏)
templateKey: "2fa_login_code"
- 收件人:
******@******.**
- 用户:
banana
说明
攻击者不是简单绕过 MFA,而是大概率能够获取邮件中的验证码。
2026-04-26 08:30:44
已确认事实
公网 IP 20.187.151.147 再次对 banana 登录成功。
证据
日志:/var/log/syslog
关键内容
MAINEVENT ... "template":"LoginSucc","user":"banana","IP":"20.187.151.147"
说明
到此为止,攻击者已经完成:
- 发起重置密码
- 完成密码重置
- 使用新密码登录
- 取得并提交 2FA 验证码
- 登录成功
2026-04-26 09:07:05 ~ 09:07:14
已确认事实
当时容器 IP 172.17.0.3 对应一个 8100 -> 8000 的容器,后续比对高度吻合 apprise。
证据
日志:/var/log/syslog
关键内容
host-port 8100 -> container-ip 172.17.0.3 -> container-port 8000
说明
这说明 09:07 那个可疑来源 IP,当时极大概率就是 apprise 容器。
2026-04-26 09:07:09 ~ 09:07:14
已确认事实
apprise 容器内的 root 账户,确实主动 SSH 过宿主机 192.168.50.22。
证据
来自 apprise 容器 overlay upperdir:
/root/.ssh/known_hosts.old 时间:09:07:09
/root/.ssh/known_hosts 时间:09:07:14
并经 ssh-keygen -F 匹配确认,known_hosts 中记录的主机就是:
说明
这是强证据,说明攻击者已经从容器内部对宿主机发起了 SSH 连接。
2026-04-26 09:07:13 ~ 09:07:14
已确认事实
宿主机上 banana 用户会话被打开。
证据
/var/log/auth.log
/var/log/syslog
关键内容
session opened for user banana
Started session-2701.scope - Session 2701 of User banana
sshd[...] pam_env(sshd:session)...
对应 last 记录
banana pts/0 172.17.0.3 Sun Apr 26 09:07 - crash (03:29)
2026-04-26 09:07:43
已确认事实
banana 执行了 sudo -i 并获得 root shell。
证据
日志:/var/log/auth.log
关键内容
sudo: banana : TTY=pts/0 ; PWD=/root ; USER=root ; COMMAND=/bin/bash
pam_unix(sudo-i:session): session opened for user root
说明
此时攻击者已获得宿主机 root 权限。
2026-04-26 10:16:06
已确认事实
有人发起一次 docker exec /bin/bash,但失败。
证据
日志:/var/log/syslog
关键内容
Error running exec ...
exec: "/bin/bash": stat /bin/bash: no such file or directory
说明
这很像有人通过 Docker 管理入口尝试进入容器终端。
2026-04-26 10:17:37
已确认事实
宿主机上又打开了第二个 banana 会话。
证据
日志:/var/log/syslog
关键内容
Started session-2714.scope - Session 2714 of User banana
对应 last 记录
banana pts/2 172.17.0.3 Sun Apr 26 10:17 - crash (02:19)
说明
这表明攻击者在第一次进入后,又发起了第二次宿主机登录会话。
2026-04-26 10:25:38
已确认事实
/root/.bash_history 修改时间落在此刻。
说明
这提示 root shell 在该时段可能存在交互操作,但未提取出明确命令内容。
2026-04-26 12:37 左右
已确认事实
系统发生重启,之前两个可疑会话都被中断。
证据
last 中两条会话都以 crash 结束
- 系统日志显示启动流程重新开始
对应 last 记录
banana pts/0 172.17.0.3 Sun Apr 26 09:07 - crash (03:29)
banana pts/2 172.17.0.3 Sun Apr 26 10:17 - crash (02:19)
2026-04-26 12:54:22
已确认事实
重启后,容器 IP 172.17.0.16 对 banana 发生一次登录失败。
证据
日志:/var/log/syslog
关键内容
MAINEVENT ... "template":"LoginFail","user":"banana","IP":"172.17.0.16"
当前 172.17.0.16 对应容器:
说明
此容器在重启后仍尝试使用 banana 登录,但当前证据不足以证明 gotify 是攻击入口,只能视作弱相关线索。
2026-04-26 14:14 ~ 14:33
已确认事实
公网 IP 20.187.151.147 在你处置后,又多次尝试登录 banana,但均失败。
证据
日志:/var/log/syslog
关键内容
- 多条
LoginFail
- IP 均为
20.187.151.147
说明
这说明该 IP 不是一次性误访问,而是明确的攻击相关来源。
2026-04-26 14:38:53
已确认事实
公网 IP 20.187.151.147 访问了你 Caddy 暴露的另一个 4433 站点(已脱敏),但失败。
证据
Caddy Docker 历史日志
关键内容(已脱敏)
- Host:
k***.hz.*****.****:4433
method: GET
uri: /
- 结果:
502
- 上游:
192.168.50.22:8500 refused
说明
这表明该 IP 在你处置后仍在继续探测你 Caddy 暴露的其他站点。
2026-04-26 15:00:03
已确认事实
公网 IP 20.187.151.147 又访问了另一个 4433 站点(已脱敏),但失败。
证据
Caddy Docker 历史日志
关键内容(已脱敏)
- Host:
b**.hz.*****.****:4433
method: GET
uri: /
- 结果:
502
- 上游:
192.168.50.22:5140 refused
说明
继续印证该 IP 会对你暴露在 4433 的其他服务做探测。
2026-04-26 15:14:32
已确认事实
复查时点。
已确认状态
- 无新的
LoginSucc
- 无新的
ResetPassword
- 无新的
Accepted password/publickey
- 无新的
sudo-i 提权记录
结论
截至该时点,未发现新的成功入侵记录。
四、登录入口判断
已排除
不是直接 SSH / shell 登录
没有发现任何与 20.187.151.147 对应的:
Accepted password
Accepted publickey
sshd 登录/断开/认证成功记录
结论
20.187.151.147 不是直接 shell 登录宿主机。
高概率确认
它走的是 Web 端的“重置密码 + 登录 + 2FA 邮件验证码”流程
证据链:
- 08:27:03 发出重置密码邮件
- 08:29:28 重置密码成功
- 08:29:40
LoginSucc2FA1
- 08:30:23 发出 2FA 邮件验证码
- 08:30:44
LoginSucc
五、关于 Caddy / 4433 的判断(修正版)
已确认事实
- 当前 Caddy 历史 Docker 日志文件存在
- 当前 Caddy 配置中没有 access log 指令
- 因此现存日志主要记录:
- 启动 / 重载信息
- 反代失败 / 502 / 上游拒绝连接等错误
- 正常成功代理请求,在没有 access log 的前提下,很可能不会留下可检索记录
这意味着
虽然你后来已经手动把某个飞牛相关域名反代注释掉,但:
- 当前配置状态不能代表 2026-04-26 上午的实际暴露状态
- 现存 Caddy 日志也无法证明或排除攻击者当时是否通过该 4433 入口访问飞牛 Web
当前最严谨的结论
攻击者肯定走了 Web 侧流程,但现有 Caddy 日志无法证明,也无法排除其是否经过你当时暴露的 fn.hz.*****.****:4433 之类反代入口。
六、关于邮箱链路的判断
已确认事实
重置密码邮件与 2FA 邮件都发往:
结论
攻击者要完成这次账号接管,必须具备以下能力之一:
- 能访问该邮箱内容
- 能控制该邮箱的转发 / 规则 / 同步链路
- 能读取该邮箱收到的重置链接与验证码
当前更合理的判断
攻击者大概率不是简单“绕过 MFA”,而是已经掌控了邮件接收链路的某个环节。
七、当前未发现的持久化痕迹
截至目前,未发现以下常见后门:
- 新增本地用户
- 新增
authorized_keys
- root / banana 异常 crontab
- 新增 systemd service
- sudoers 放权后门
rc.local 启动后门
当前判断
更像是一次:
而不是已经确认落地了常见的长期持久化后门。
八、截至当前的最终判断
已经成立的历史攻击事实
banana 账号被外部接管过
- 外部入口是 Web 侧找回密码 + 登录 + 2FA 邮件流程
apprise 容器被用作跳板 SSH 宿主机
- 攻击者曾获得宿主机 root 权限
当前状态
截至 2026-04-26 15:14:32 CST:
- 没有新的成功入侵记录
20.187.151.147 在你处置后仍尝试登录,但都失败
- 该 IP 还继续探测了你 Caddy 暴露的其他 4433 服务
- 当前未见新的提权记录
风险重点
banana 账号曾被攻破
- 宿主机 root 曾被获取
- 邮箱链路极可能存在风险
- 虽未发现常见持久化后门,但不能因此断言系统已绝对安全
九、建议后续处置
-
彻查并加固邮箱链路
- 登录记录
- 转发规则
- 过滤规则
- IMAP/POP/客户端授权
- 邮箱密码与 2FA
-
保留证据
/var/log/syslog
/var/log/auth.log
/var/log/trim_sac/info.log
/var/log/trim_tfa/error.log
apprise 容器 upperdir
- Caddy Docker 历史日志
-
重建高风险容器与相关凭据
apprise 建议视为高风险源,后续若恢复应重新拉镜像、重新配置、重新生成相关凭据
-
继续核查飞牛账号恢复方式
- 绑定邮箱是否被改
- 恢复方式是否被改
- 是否新增设备 / token
-
继续收口公网暴露面
十、简版一句话总结
2026-04-26 上午,攻击者通过飞牛 Web 侧“重置密码 + 邮件验证码”链路接管了 banana,随后借助 apprise 容器 SSH 登录宿主机并提权到 root;截至 15:14,未发现新的成功入侵记录,但邮箱链路、容器安全与系统可信度已受到实质影响。
证据
日志:/var/log/trim_sac/info.log