首先放上漏扫结果中对于这两个漏洞的描述及修复建议。
两个漏洞其实都是NFS共享目录信息泄露的漏洞。showmout -e 这个检查的是rpc.mountd 这个NFS的守护进程,rpc.mountd可以访问文件系统,当客户端顺利地通过rpc.nfsd登录NFS服务器后,在使用NFS服务器所提供的文件前,还必须通过文件使用权限的验证,rpc.mountd会读取NFS的配置文件/etc/exports来对比客户端的权限。通过类似showmount -e 这个过程展示nfs的挂载列表;第二个漏洞NFS这个漏洞,是从协议的角度进行检查的,检查是否对nfs端口服务的访问进行了限制。
通过showmount -e漏洞可以获取的信息如下,显示出了目标机nfs的挂载列表:
通过NFS共享目录信息泄露漏洞可以获取的信息如下,同样显示出了目标机nfs的共享目录及共享IP:
shared dir:/app,shared ip:10.xx.xx.xx/24
漏洞修复:
一、除非必要,关闭NFS服务 rpc.mountd进程。
二、如果必须使用NFS服务,可采用以下3种方式避免信息泄露漏洞:
1.登录NFS服务器端所在的机器,修改hosts配置文件,vim /etc/hosts.allow设置允许查询NFS共享目录的IP。
可添加多个(以下假设允许查询的IP为192.168.100.1等)
mountd:192.168.100.1
mountd:192.168.100.2
mountd:192.168.100.3
rpcbind:192.168.100.1
rpcbind:192.168.100.2
rpcbind:192.168.100.3
然后vim /etc/hosts.deny设置拒绝除hosts.allow以外其他所有IP查询共享目录
mountd:all
rpcbind:all
2.在NFS服务器端 iptables防火墙配置规则允许特定的IP访问nfs服务端口,其他全部禁止,vim /etc/sysconfig/iptables。
可添加多个(假设允许nfs客户端192.168.100.1访问本机nfs服务端的相关nfs端口2049,20048等)
#下面是要添加的规则
#允许nfs客户端192.168.100.1访问本机nfs服务端的相关nfs端口
-A INPUT -p tcp -s 192.168.100.1 --dport 2049 -j ACCEPT
-A INPUT -p udp -s 192.168.100.1 --dport 2049 -j ACCEPT
-A INPUT -p tcp -s 192.168.100.1 --dport 20048 -j ACCEPT
-A INPUT -p udp -s 192.168.100.1 --dport 20048 -j ACCEPT
#禁止其他主机访问本机nfs服务端的相关nfs端口
-A INPUT -p tcp --dport 2049 -j DROP
-A INPUT -p udp --dport 2049 -j DROP
-A INPUT -p tcp --dport 20048 -j DROP
-A INPUT -p udp --dport 20048 -j DROP
COMMIT
3.在NFS的配置文件/etc/exports中进行设置,可以定义NFS系统的输出目录(即共享目录)、访问权限和允许访问的主机等参数,该文件默认为空。然后启动NFS服务即可。
发现一位大佬写的关于NFS的配置与应用博客实在是太详细了,自认为写不到那么全面深刻,所以放上链接:
https://www.cnblogs.com/nufangrensheng/p/3486839.html
目标主机showmount -e信息泄露(CVE-1999-0554)与NFS 共享目录未授权访问(CVE-1999-0554)修复与验证过程记录
原文:https://www.cnblogs.com/zcg-cpdd/p/14505731.html