检材3 - 服务器取证 Writeup
- 作者:yagami
- 任务目录:/mnt/d/文档/hermes-work/jiancai3-server-q1-to-q20/
- 生成时间:2026-06-14
- 生成模式:完整 writeup
- 工具:Hermes Agent
- 模型:Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf
- 运行方式:本地
任务信息
- 题目范围:Q1-Q20(检材3 - 服务器取证)
- 服务器:192.168.100.119:22 root/123456 (CentOS 7)
- 状态文件:state.md, answers.md, findings.md, commands.md, errors.md, verification.md
- 验证策略:远程命令执行 + 源码分析 + 数据库查询 + 彩虹表字典爆破 + 后台登录实际验证
工具与模型
| 项目 |
内容 |
| 工具 |
Hermes Agent |
| 模型 |
Qwen3.6-27B-Uncensored-HauhauCS-Aggressive-Q4_K_P.gguf |
| 运行方式 |
本地 |
答案汇总
| 题号 |
答案 |
答案状态 |
验证等级 |
关键证据摘要 |
| Q1 |
3.10.0 |
已验证 |
L1 |
uname -r 远程执行确认内核版本 |
| Q2 |
ahao |
已验证 |
L1 |
getfacl /etc/shadow 显示 user:ahao:r-- ACL权限 |
| Q3 |
nginx/1.20 |
已验证 |
L1 |
nginx -v 确认为 nginx/1.20.1 |
| Q4 |
5 |
已验证 |
L1 |
network-check.py 中 KICK_DELAY="5 minutes" |
| Q5 |
FF8180 |
已验证 |
L1 |
sha256sum faka_backup.sql 后6位大写 |
| Q6 |
Root@123456 |
已验证 |
L2 |
config.php源码 + MySQL登录测试双证据 |
| Q7 |
8081 |
已验证 |
L2 |
ss -tlnp + nginx.conf 双证据确认监听端口 |
| Q8 |
60M |
已验证 |
L1 |
php.ini upload_max_filesize = 60M |
| Q9 |
8.208.44.202 |
已验证 |
L1 |
autobackup.sh REMOTE_SERVER="8.208.44.202" |
| Q10 |
/fk/static/ |
已验证 |
L2 |
nginx日志33次访问 + login.php独立密码盐双证据 |
| Q11 |
192.168.203.135 |
已验证 |
L1 |
nginx日志该IP访问login.php共15次最多 |
| Q12 |
abc123456 |
已验证 |
L3 |
源码算法 + SQL备份哈希 + hashcat彩虹表爆破 + 后台登录验证四源交叉 |
| Q13 |
无忧支付 |
已验证 |
L2 |
faka_backup.sql payapi=13 + set.php解码双证据 |
| Q14 |
2018/12/14 |
已验证 |
L3 |
在线DB + SQL备份 + 源码页脚三源交叉验证 |
| Q15 |
ZhangSan_Sec |
已验证 |
L3 |
bash_history追踪 + 隐藏备份文件 + 解码链三层验证 |
| Q16 |
24073 |
已验证 |
L2 |
faka/faka_original双数据库交叉验证 + 源码确认status枚举 |
| Q17 |
5442 |
已验证 |
L2 |
faka/faka_original双数据库按日统计交叉验证 |
| Q18 |
无畏契约自动扳机+透视+准星辅助 |
已验证 |
L2 |
faka/faka_original双数据库JOIN统计交叉验证 |
| Q19 |
guoqi |
已验证 |
L2 |
数据库统计 + shua_site用户名映射双证据 |
| Q20 |
_tmp_z5m1w8 |
已验证 |
L2 |
mysql.user表 + SHOW GRANTS双查询交叉验证 |
解题过程
Q1 服务器内核版本号
题目:请分析检材3:服务器的内核版本号是多少?【答案格式:4.25.0】
答案:3.10.0
答案状态:已验证
验证等级:L1
解题思路:SSH连接服务器后执行 uname -r 获取完整内核版本,按答案格式取主.次.修订三段。
关键证据:
- uname -r 返回
3.10.0-1160.119.1.el7.x86_64
- 按格式提取前三段 = 3.10.0
重点命令:
ssh root@192.168.100.119 "uname -r"
关键输出:
3.10.0-1160.119.1.el7.x86_64
Q2 读取 /etc/shadow 的普通用户
题目:请分析检材3:嫌疑人将某普通用户加入特殊用户组,赋予其读取 /etc/shadow 的权限,请问该普通用户的用户名是什么?【答案格式:admin】
答案:ahao
答案状态:已验证
验证等级:L1
解题思路:/etc/shadow 默认权限为 640(root:shadow),通过 getfacl 检查 ACL 发现普通用户 ahao 被额外授予读取权限。
关键证据:
- getfacl /etc/shadow 返回
user:ahao:r--,确认 ahao (uid=1000) 被额外授予读取权限
重点命令:
getfacl /etc/shadow
关键输出:
user::rw-
user:ahao:r--
group::r--
mask::r--
other::---
Q3 Web 服务器名称及主版本号
题目:请分析检材3:分析嫌疑人所使用的 Web 服务器,其具体名称及主版本号是什么?【答案格式:apache/2.40】
答案:nginx/1.20
答案状态:已验证
验证等级:L1
解题思路:执行 nginx -v 确认 Web 服务器为 nginx/1.20.1,按格式取名称/主版本去掉修订号。
重点命令:
nginx -v 2>&1
关键输出:
nginx version: nginx/1.20.1
Q4 守卫脚本触发间隔
题目:请分析检材3:嫌疑人借助 AI 部署 "守卫" 脚本,非管理员 IP 登录时将触发定时强制登出,该服务每隔几分钟触发一次?【答案格式:10】
答案:5
答案状态:已验证
验证等级:L1
解题思路:找到守卫脚本 /usr/local/bin/network-check.py,其中 CHECK_INTERVAL=30秒(检查间隔),KICK_DELAY="5 minutes"(非管理员IP登录后5分钟强制登出)。
重点命令:
grep -E "CHECK_INTERVAL|KICK_DELAY" /usr/local/bin/network-check.py
关键输出:
CHECK_INTERVAL = 30
KICK_DELAY = "5 minutes"
Q5 数据库备份文件 SHA256 后6位
题目:请分析检材3:计算服务器内数据库备份文件,计算其SHA256哈希值,取后6位,字母大写。【答案格式:6DEF3898】
答案:FF8180
答案状态:已验证
验证等级:L1
解题思路:服务器内 /tmp/db_backup/ 下的备份文件几乎为空(20字节),真实备份是 faka_backup.sql(27MB,来源:计算机检材内BitLocker解密获取)。对其计算 SHA256,取后6位大写。
重点命令:
sha256sum /tmp/faka_backup.sql
关键输出:
8dd79df101c67fd414100e1f0645e43b1cc5f5ddcf59305741c1a4318bff8180 /tmp/faka_backup.sql
后6位 = ff8180 → 大写 = FF8180
踩坑与修正:
- 最初误用服务器内空备份文件 fk_20260614_103010.sql.gz(仅20字节),后确认真实备份为 faka_backup.sql
Q6 MySQL root 密码
题目:请分析检材3:MySQL 数据库 root 用户的登录密码是什么?【答案格式:根据实际值填写】
答案:Root@123456
答案状态:已验证
验证等级:L2
解题思路:从网站源码 config.php 中找到明文 MySQL 密码,并用 mysql 命令行登录测试确认。
关键证据:
- /usr/share/nginx/html/fk/config.php 中
"pwd" => "Root@123456"(数据库密码)
- MySQL登录测试
mysql -u root -pRoot@123456 -e "SELECT 1" 返回成功
重点命令:
grep "pwd" /usr/share/nginx/html/fk/config.php
mysql -u root -p'Root@123456' -e "SELECT 1 as mysql_test;"
关键输出:
"pwd" => "Root@123456", //数据库密码
mysql_test = 1 (登录成功)