mulingealex/kenobi-tryhackme-writeup

GitHub: mulingealex/kenobi-tryhackme-writeup

TryHackMe Kenobi房间的完整渗透测试演练文档,覆盖从侦察枚举到权限提升的全流程攻击链路。

Stars: 0 | Forks: 0

## 概述 本项目记录了 **TryHackMe Kenobi room** 的完整渗透测试演练过程。 目标是通过识别漏洞、获取访问权限并提升权限,来模拟真实世界的攻击。 ## 目标 - 执行侦察和枚举 - 识别易受攻击的服务 - 获取初始访问权限 - 将权限提升至 root - 捕获 user 和 root flag ## 使用的工具 - Nmap - Netcat - SMB 工具 - FTP - 漏洞利用脚本 - Linux 命令 ## 1. 侦察与扫描 ### 使用的命令:nmap -sC -sV -oN nmap_initial.txt ![Nmap 扫描](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/46a6689dcb030012.png) ### 关键发现: - **FTP (21)** → ProFTPD - **SMB (139, 445)** - **NFS (2049)** 这表明存在多个攻击面。 ## 2. SMB 枚举 ### 命令: smbclient -L // -N ![SMB 枚举](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/aa3e2c899f030013.png) - 发现 **启用了匿名访问** - 发现了共享目录 这是一个配置错误 → 潜在的数据泄露风险。 使用本机访问了该机器的网络共享。 使用的命令:smbclient //target ip/anonymous ![SMB 匿名登录](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d0a69d1596030015.png) - 枚举了 SMB 共享 - 连接到 `anonymous` - 发现一个文件:`log.txt` 使用 `grep` 过滤日志文件以提取相关的服务信息,发现目标在端口 21 上运行着 ProFTPD 1.3.5。 使用的命令:grep -Ei "ftp|proftpd|open" log.txt ![过滤后的搜索](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b123f163b9030016.png) ## 3. NFS 枚举 命令:showmount -e 显示了导出的目录 ![NFS Showmount 输出](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/958353c7e4030017.png) 这意味着我们可以在本地挂载远程文件 ## 4. 挂载共享 这样做是为了远程访问 `/VAR` 中的文件 ![挂载 NFS 共享](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a4d992cce0030018.png) ## 5. 漏洞利用 ProFTPD (mod_copy) -你**无法直接访问** `/home/kenobi/.ssh/id_rsa` 但是 FTP 漏洞允许你**将其复制到 `/var/tmp` 中** -/var 已经挂载 使用 netcat 连接到 ftp 并复制密钥 ![ProFTPD 漏洞利用](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b5999d28ac030019.png) 检查挂载文件夹,rsa 密钥已成功复制 ![获取 SSH 私钥](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/842728ab5d030021.png) ## 6. 复制密钥 将密钥复制到当前目录,更改权限并获取了一个 shell 作为初始访问 ![在本地复制 SSH 密钥](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/673b97e34d030022.png) 在利用了 ProFTPD `mod_copy` 漏洞后,SSH 私钥 (`id_rsa`) 被成功复制到 `/var/tmp`,这是一个可以通过挂载的 NFS 共享访问的位置。 ### 检索密钥 密钥从挂载目录复制到了本地机器: ``` cp kenobi/mount/tmp/id_rsa . ``` 这会将私钥移动到当前工作目录以供本地使用。 ### 设置正确的权限 ``` chmod 600 id_rsa ``` - `600` 表示: - 所有者 → 读和写 - 其他人 → 无权访问 出于安全原因,SSH **拒绝使用**其他用户可以访问的私钥。 如果权限过于开放,你将会收到错误提示 ## 获取初始访问权限 ``` ssh -i id_rsa kenobi@ ``` ### 结果: - 成功登录 ## 7. 权限提升 以 `kenobi` 身份获取访问权限后,我们搜索设置了 **SUID 位** 的二进制文件: find / -perm -u=s -type f 2>/dev/null ![SUID 二进制文件枚举](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a6b1d9c8fd030023.png) 运行该二进制文件后 ![SUID 二进制文件选项](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0dc4303241030025.png) 以 `kenobi` 用户获得访问权限后,识别出了一个 SUID 二进制文件 `/usr/bin/menu`。分析表明它执行像 `ifconfig` 这样的系统命令时**没有使用绝对路径**,这使得它容易受到 **PATH 劫持** 的攻击。 ![通过 PATH 劫持进行权限提升](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/56064dd80e030026.png) 选择运行 `ifconfig` 的选项会导致该二进制文件执行恶意脚本,从而生成一个 root shell。 ## 结论 ## 识别出的关键漏洞 - 匿名 SMB 共享暴露了敏感日志 - 过时的 **ProFTPD 1.3.5** 易受 `mod_copy` 漏洞利用攻击 - 系统上存储了敏感的 SSH 私钥 - NFS 共享暴露了 `/var` 目录 - SUID 二进制文件 (`/usr/bin/menu`) 易受 PATH 劫持攻击 ## 建议 - 禁用匿名 SMB 访问或限制其权限 - 将 ProFTPD 更新或修补到安全版本 - 限制对 SSH 密钥等敏感文件的访问 - 限制 NFS 导出并实施适当的访问控制 - 避免在 SUID 二进制文件中使用相对路径(使用绝对路径) - 实施适当的日志记录和监控
标签:CTF Writeup, CTI, FTP漏洞, mod_copy漏洞, Netcat, NFS枚举, Nmap, ProFTPD, SMB, SMB枚举, SSH密钥, TryHackMe, Walkthrough, Web安全, 内存分配, 协议分析, 反取证, 安全评估, 提权, 插件系统, 数据展示, 权限提升, 漏洞复现, 红队, 网络安全, 网络安全审计, 网络安全靶机, 蓝队分析, 虚拟驱动器, 错误配置检测, 隐私保护