浅谈未授权访问及批量检测

前言:


有一次工作中客户通过扫描器发现存在nfs未授权,让我给进行验证,我当时第一次遇到,结果半小时过去了,我还是没有给验证出来,留下了不学无术的泪水。我打算整理一篇文章记录我之前没遇到过的未授权访问。

nfs 共享目录未授权访问:

Network File System(NFS),是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),默认端口2049,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。nfs最初只支持UDP协议,在新版本中支持TCP和UDP协议。服务器在启用nfs服务以后,由于nfs服务未限制对外访问,导致共享目录泄漏。若运维人员未对文件访问进行控制,将导致本地文件可被任意读取。

验证过程:

# 安装nfs客户端
apt install nfs-common 

# 查看nfs服务器上的共享目录
showmount -e x.x.x.x 
# 挂载到本地
mount -t nfs x.x.x.x:/grdata /mnt 
# 卸载共享目录
umount /mnt/

msf具有一个可用于列出导出文件夹的模块:

use auxiliary/scanner/nfs/nfsmount
set rhosts x.x.x.x
run

通过fofa爬虫脚本进行批量收集,找到一个ip存在此漏洞:

补充:*为所有人都可以访问,*显示就说明存在未授权漏洞
挂载成功以后可以利用WinSCP或者Xftp进行查看

修复方案:

1、利用iptables限制端口2049和20048端口的访问,禁止外部访问。
2、在/etc/exports下对所需要共享的文件进行访问控制,如: /home export 10.x.x.x(rw,async,no_root_squash) 仅运行10.x.x.x访问该目录。

ldap未授权访问:


LDAP中文全称为:轻型目录访问协议(Lightweight Directory Access Protocol),默认使用389端口, LDAP 底层一般使用 TCP 或 UDP 作为传输协议。目录服务是一个特殊的数据库,是一种以树状结构的目录数据库为基础。未对LDAP的访问进行密码验证,导致未授权访问。

漏洞利用:

利用ldapbrowser直接连接,获取目录内容

fofa上根据关键词进行搜索随意找了一处ldap未授权:

修复方案:

1、修改ldap的acl,不允许匿名访问。
2、根据业务设置ldap访问白名单或黑名单。
3、增加强密码验证

rsync 未授权访问:

rsync是Linux下一款数据备份工具,可通过 LAN/WAN 快速同步多台主机间的文件,也可以同步本地硬盘中的不同目录,支持通过rsync协议、ssh协议进行远程文件传输。其中rsync且默认允许匿名访问,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。
rsync协议默认监听873端口。

这里我搭建好vulhub中的docker环境进行漏洞检测:

nmap -Pn -p 873 --script=rsync-list-modules 192.168.107.129

发现有一个src模块,我们尝试是否能未授权列出这个模块下的文件:

rsync rsync://192.168.107.129:873/src/

任意文件下载:

rsync -av rsync://192.168.107.129:873/src/etc/passwd ./

写入任意文件:

rsync -av book4yi rsync://192.168.107.129:873/src/book4yi

在fofa上进行随机目标测试:

修复方案:

增加用户密码认证,设置访问ip限制。
方式一:修改rsync的配置
更改rysnc默认配置文件/etc/rsyncd.conf,添加或修改参数:
访问控制;设置host allow,限制允许访问主机的IP;:hosts allow = 123.123.123.123。
权限控制;设置read only,将模块设置成只读;Read only = true
访问认证;设置auth、secrets,认证成功才能调用服务。
模块隐藏;设置list,将模块隐藏;list =false
数据加密传输:Rsync 默认没有直接支持加密传输,如果需要 Rsync 同步重要性很高的数据,可以使用 ssh。
详情可参考官方doc:https://rsync.samba.org/ftp/rsync/rsyncd.conf.html

VNC未授权访问:


使用msf进行批量检测:

auxiliary/scanner/vnc/vnx_none_auth

修复建议:

配置 VNC 客户端登录口令认证并配置符合密码强度要求的密码;
以最小权限的普通用户身份运行操作系统;

未授权访问批量化检测:


针对常见的未授权访问漏洞,通过编写python脚本进行批量检测,之前我有发过一个检测脚本,但是还不够完善,可以自行补充:浅谈端口渗透那些事

另外想补充一点就是对nmap的利用,nmap不仅仅只是作为端口扫描,它本身有丰富的script可以进行利用,也能简单地充当漏扫的角色,比如ms17-010、ms12-020、ms15-034等等,namp至少能够扫描5种常见的未授权漏洞,小伙伴们可以自行去研究:

参考如下:

26种未授权访问漏洞总结
常见未授权访问漏洞总结
NFS未授权访问 - 灰信网(软件开发博客聚合)
NFS 未授权访的原理与检测方式 – Neurohazard

你可能感兴趣的:(浅谈未授权访问及批量检测)