2025数证杯决赛 个人赛

2025数证杯决赛个人赛服务器hermes

围绕 2025数证杯决赛 的公开复盘与解题记录。

上传者:怪叔叔 发布日期:2026-05-22 38 次阅读

2025数证杯决赛个人赛服务器hermes

服务器信息

项目
IP 192.168.100.119
SSH 端口 22
账号/密码 root / 123456
主机名 yxtserver
本地别名 ssh yxtserver(~/.ssh/config)
私钥 ~/.ssh/id_ed25519_yxtserver
OS Ubuntu Server (内核 5.15.0-161-generic)

已答题目

题目25:AI服务的对外端口是多少?

  • 答案: 7860
  • 依据: /home/langflow/.envLANGFLOW_PORT=7860, LANGFLOW_HOST=0.0.0.0
  • 服务: LangFlow (Python venv /home/langflow)

题目26:当前AI服务共有多少普通用户?

  • 答案: 8
  • 依据: 数据库 /root/.cache/langflow/langflow.db,表 user 共 9 行
  • 1 管理员 (is_superuser=1): langflow
  • 8 普通用户 (is_superuser=0): xll, yxt, ywh, huhuhu, dl, shichao, test01, im

题目27:AI服务的管理员密码hash是多少?

  • 答案: sszb@2025 (明文密码)
  • bcrypt hash: $2b$12$B/A757s9z/N2ESVYYRKtROPvcyqmnqswWfpbeM1oCDqV1myumc9Q2

题目28:AI服务对话历史中用户上传文件的 SHA256 后八位(大写)?

  • 答案: B2D10252
  • 文件: /root/.cache/langflow/31fa8c0f-e569-4399-b8ec-5d866bbd095c/2025-11-04_11-20-38_play.png
  • 大小: 304353 字节
  • 完整 SHA256: e4daa5c47e8e3c0ae851f2176bf4e1ed9053a51681d87095a34c42b6b2d10252

题目29:黑客利用了哪个接口URI进行攻击?

  • 答案: /api/v2/mcp/servers/{server_name} (实际: /api/v2/mcp/servers/_mcp_servers)
  • 依据:
    • nohup.out 日志中 RCE 前紧邻: File _mcp_servers.json saved successfully in flow ...
    • router.py 挂载 v2 前缀 /api/v2
    • mcp.py 定义 prefix="/mcp", 路由 @router.post("/servers/{server_name}")
  • 攻击方式: POST 恶意 MCP Server 配置 (stdio 类型),Langflow 后台加载时触发命令执行,进程以 root 运行

题目30:黑客反弹shell的连接的端口是多少?

  • 答案: 7788
  • 依据: nohup.out L2945: listening on [any] 7788 ...
  • 黑客启动 nc -lvp 7788 监听,外部 IP 172.23.194.1 (端口 24192) 连接进来

题目31:黑客通过SSH登录服务器所用的IP是多少?

  • 答案: 172.23.194.1
  • 依据:
    • nohup.out L2946-2947: 反弹 shell 连接来自 172.23.194.1
    • auth.log: Nov 5 起多次 SSH 成功登录来自 172.23.194.1
    • 攻击链闭环: Langflow RCE -> 反弹 shell (172.23.194.1) -> 后续 SSH 持久化
  • 172.23.194.110: Nov 4 09:19-09:38 SSH 登录,RCE 前 ~2小时,早期探测/铺垫

题目32:黑客植入的隐藏文件全路径?

  • 答案: /usr/lib/modules/5.15.0-161-generic/extra/file_hider.ko
  • 内核模块,描述 "File Hiding Module - Educational Purpose"
  • 创建时间: Nov 14 09:28(黑客活动时间窗口内)
  • 大小: 83560 字节,当前正在运行 (lsmod 显示 file_hider 16384 0)

nohup.out 关键日志 (已下载到 ~/langflow_nohup.out)

L107: hello anybody here?
L108: HHH I am going to hack u
L2938-2941: [11/04/25 11:23:59] File _mcp_servers.json saved successfully in flow a9a80eb5...
L2942: hallo
L2943: cat: 123: No such file or directory
L2944: uid=0(root) gid=0(root) groups=0(root)
L2945: listening on [any] 7788 ...
L2946: 172.23.194.1: inverse host lookup failed: Unknown host
L2947: connect to [172.23.194.157] from (UNKNOWN) [172.23.194.1] 24192
L2948-2957: (ls, cd /, ls ... 命令执行)
L2958: invalid local port -e
L2959: listening on [any] 7788 ...
L2960-2961: connect to [172.23.194.157] from (UNKNOWN) [172.23.194.1] 5073
L2962: bash: error reading input file: Connection reset by peer

攻击时间线

时间 事件
Nov 4 09:03~08:08 172.23.194.1 多次密码登录探测 (早期)
Nov 4 09:05 172.23.194.1 尝试 mail 用户
Nov 4 09:08 172.23.194.1 尝试无效用户 yxt (Failed)
Nov 4 09:19 172.23.194.110 首次密码登录 root
Nov 4 09:25 172.23.194.110 Failed password (密码被改)
Nov 4 09:27 172.23.194.110 RSA key 登录
Nov 4 09:28 file_hider.ko 创建(后门植入)
Nov 4 11:03 Langflow 启动
Nov 4 11:07 黑客发送 "HHH I am going to hack u"
Nov 4 11:23:59 MCP server _mcp_servers.json 写入成功 -> RCE
Nov 4 11:24+ nc -lvp 7788 反弹 shell,连接来自 172.23.194.1
Nov 5 00:53+ 172.23.194.1 多次 SSH root 成功登录 (持久化)

数据库结构 (/root/.cache/langflow/langflow.db)

查询方法(服务器无 sqlite3 CLI,用 venv Python):

ssh yxtserver "cat > /tmp/q.py << 'PYEOF'
import sqlite3
conn = sqlite3.connect('/root/.cache/langflow/langflow.db')
c = conn.cursor()
# 查询语句
conn.close()
PYEOF
/home/langflow/bin/python3 /tmp/q.py"

表结构:

表名 行数 说明
user 9 用户表 (1 admin + 8 normal)
file 1 文件名 _mcp_servers,路径含 _mcp_servers.json
folder 10 -
variable 2 -
apikey 1 -
flow 31 -
vertex_build 4 -
transaction 8 -
message 8 含用户上传文件记录、对话历史

LangFlow 配置 (/home/langflow/.env)

LANGFLOW_AUTO_LOGIN=False
LANGFLOW_HOST=0.0.0.0
LANGFLOW_PORT=7860
LANGFLOW_WORKERS=3

文件系统关键发现

  • /home/Dirty-Pipe.sh — Dirty Pipe 漏洞利用脚本
  • /home/RECOVERED_FILES/ — 恢复文件目录
  • /home/yxtwl94/ — 普通用户目录 (UID 1000)
  • /recovery/audit.txt — 空文件
  • /.bash_history — 内容: mount -o remount,rw / && passwd && touch /.autorelabel && exec /sbin/init
  • /usr/lib/modules/5.15.0-161-generic/extra/file_hider.ko — 黑客植入内核模块
  • /var/mail/.Xauthority — 可疑文件 (data 类型)

运行服务

nginx (80), sshd (22), docker, containerd。Docker 已安装但无运行容器/镜像。UFW inactive,iptables 默认 ACCEPT。

待查线索

  • file 表、apikey 表、variable 表、flow 表内容未深挖
  • /home/Dirty-Pipe.sh 具体内容
  • /home/RECOVERED_FILES/ 目录内容
  • /var/mail/.Xauthority 文件内容
  • 172.23.194.157 是什么 (nohup.out 中 connect to 的目标地址)