Forest
문제: Forest
난이도: Easy
OS: Windows
목차
- 01 — Reconnaissance (Full Port Scan & Domain Controller Identification)
- 02 — DNS & SMB Enumeration (Null Session)
- 03 — RPC Null Session User Enumeration (enumdomusers)
- 04 — AS-REP Roasting (svc-alfresco — No Kerberos Pre-Auth)
- 05 — Hash Cracking & User Flag (Evil-WinRM as svc-alfresco)
- 06 — ACL Abuse (Account Operators → Exchange Windows Permissions: GenericAll & WriteDacl) → DCSync Attack & Administrator Hash Dump
- 07 — Privilege Escalation to Root (Pass-the-Hash as Administrator)
01 — Reconnaissance (Full Port Scan & Domain Controller Identification)
포트 스캔을 통해 대상이 Windows 시스템임을 식별

주요 포트 스캔을 통해 서버 버전 win2016, 도메인 네임, RPC 등을 확인

02 — DNS & SMB Enumeration (Null Session)
53포트의 DNS를 열거. 그 결과 DC(Domain Controller)가 도메인과 zone transfer를 실행 하는 것으로 확인

SMBMAP 스캔 결과 특별한 credential은 식별되지 않음

03 — RPC Null Session User Enumeration (enumdomusers)
null session을 통해 RPC 열거실행 -> DC가 MS-RPC credential 없이 도메인 유저를 가져 옴. SM-*, Admin, Guest, Sebastian, Lucinda, svc-alfresco 유저를 식별

04 — AS-REP Roasting (svc-alfresco — No Kerberos Pre-Auth)
다음 단계는 AS-REP Roasting 만약 이 계정들 중 하나라도 “Do not require Kerberos pre-authentication(사전 인증 필요 없음)” 옵션이 설정되어 있다면, DC는 우리에게 해당 사용자의 암호화된 AS-REP 응답을 자격 증명(아이디/비밀번호) 없이 제공하게 된다. 그 리고 우리는 그 응답을 가져와 오프라인에서 비밀번호 크래킹을 시도할 수 있다.

05 — Hash Cracking & User Flag (Evil-WinRM as svc-alfresco)
svc-alfresco 계정만 사전 인증(Pre-Authentication)이 비활성화되어 있으므로, AS-REP Roasting을 수행할 수 있는 유일한 계정이다.
저 $krb5asrep$23$... 형태의 데이터는 오프라인으로 크래킹할 수 있는 AS-REP 해시다.
다음 단계는 Hashcat을 사용해 이를 크래킹
먼저 해시를 파일에 저장한 뒤, Hashcat의 18200 모드(Kerberos 5 AS-REP, etype 23) 를 사용하여 rockyou 사전으로 공격을 수행

크래킹한 비밀번호 s3rvice

크래킹한 비밀번호로 winrm으로 접근하여 user flag획득

06 — ACL Abuse (Account Operators → Exchange Windows Permissions: GenericAll & WriteDacl) → DCSync Attack & Administrator Hash Dump
BloodHound로 확인한 권한 상승 체인은 다음과 같다.
svc-alfresco → Service Accounts → Privileged IT Accounts → Account Operators
Account Operators는Exchange Windows Permissions그룹에 대해GenericAll권한을 가진다.Exchange Windows Permissions그룹은 도메인 객체에 대해WriteDacl권한을 가진다.- 따라서 자신에게 DCSync 권한을 부여하고, Administrator의 비밀번호 해시를 복제(DCSync)한 뒤, 그 해시로 Administrator로 로그인할 수 있다.
- 이후
root.txt를 읽으면 된다.
bloodyAD를 설치한다.
svc-alfresco를 Exchange Windows Permissions 그룹에 추가해 WriteDacl 권한을 상속받고, 자신에게 DCSync 권한을 부여한 뒤, impacket-secretsdump로 Administrator 해시를 덤프하는 과정을 체인으로 실행했다.

07 — Privilege Escalation to Root (Pass-the-Hash as Administrator)
덤프한 Administrator 해시로 Pass-the-Hash 공격을 수행해 Evil-WinRM에 접속하고 root flag를 획득했다.
