靶机下载地址:https://www.vulnhub.com/entry/symfonos-52,415/
教程链接地址 1:https://readysetexploit.wordpress.com/2022/03/02/vulnhub-symfonos-5-2/
教程链接地址 2:https://github.com/aryanguenthner/Vulnhub-CTF-Writeups
# 确认攻击目标
攻击机 KALI: 192.168.31.135
靶机 SYMFONOS:桥接于 192.168.31.1 的网卡,ip 未知
- 通过 netdiscover 扫描当前网卡里边有哪些机器
sudo netdiscover -i eth0 -r 192.168.31.0/24
- 将所有已知的 ip 暂时存档,对这类 ip 地址不做端口扫描
1 | shell |
- 去除一些已知 ip 的机器,对剩余 IP 进行端口扫描,判断目标 IP
sudo nmap -PA 192.168.31.0/24 --excludefile myip.txt

-> 目标机器的 ip 地址: 192.168.31.81
# 端口扫描
sudo nmap -A -p 1-1024 192.168.31.81 -oN /tmp/symfonos.txt

# Gobuster 扫描目录
打开网站:http://192.168.31.81
- 目录扫描

http://192.168.31.81/admin.php
尝试弱口令,注入等均无效
- 加载字典,更详细的扫描
1 | gobuster dir -u http://192.168.31.81/ -w /usr/share/dirbuster/wordlists/directory-list- |
http://192.168.31.81/portraits.php
# LDAP 枚举
在 LDAP 上做一个快速枚举,看看是否有任何信息暴露给我们看
1 | ldapsearch 使用 |

-> 关键信息: dn:namingContexts, dc=symfonos, dc=local
# LDAP 注入
考虑到 ldap 在这台机器上运行,可尝试用 ldap 注入登录框
ldap 注入 poc:https://book.hacktricks.xyz/pentesting-web/ldap-injection
1 | payload |
通过 user=* 和 password=* 登陆到了该站点
发现了一个 ssrf 跨服务请求伪造:
http://192.168.31.81/home.php?url=http://192.168.31.81/portraits.php
分析在 http://192.168.31.81/admin.php 输入 user=*,pass=* 登陆成功的原因
我们必须记住,我们仍在处理 LDAP,当我们处理身份验证时,我们总是想检查页面是如何处理它的。在这种情况下,我们的目标是 admin.php 页面。
我们认为 LFI 有可能只是因为 URL 与 localhost 连接,以获取 Portraits.php 文件,利用 burpsuite 进行抓取 http://192.168.31.81/home.php?url admin.php 登陆时的数据包。
-> 用户名:admin 密码:qMDdyZh3cT6eeAWD,实际上用于连接 LDAP
$bind = ldap_bind($ldap_ch, "cn=admin,dc=symfonos,dc=local","qMDdyZh3cT6eeAWD");
1 | ldap信息枚举 |

1 | 获取到信息 |

-> admin:{SSHA}UWYxvuhA0bWsjfr2bhtxQbapr9eSgKVm
-> zeus:cetkKf4wCuHC9FET
# dpkg-shell 提权
1 | 登录靶机 |

1 | 查看相关权限设置 |
1 | 输入以下命令: |
# SSH 密钥对维权
提前准备好配对好的私钥和公钥,将公钥发到靶机
1 | scp parallels@192.168.31.135:~/.ssh/id_rsa.pub ~/.ssh/ |
-> 免密成功,下次可直接登录