워게임/Root Me

[Root Me] Active Directory - GPO - 포렌식 / Wireshark / PowerShell

SecurityMan 2022. 4. 27. 11:00

 

Active Directroy 관련된 포렌식 문제

 

Active Directory는 마이크로소프트가 윈도우 환경에서 사용하기 위해 개발한 기능이다.

 

윈도우 기반 시스템들을 네트워크 기반으로 연결해서 이들을 위한 인증 서비스를 제공한다.

 

반응형

 

문제 제목에 있는 GPO는 Group Policy Object의 약자로 

 

Active Directory에서 사용자 및 컴퓨터 계정의 작업 환경을 제어하는데 사용할 수 있는

 

다양한 고급 설정을 용이하게 하는 기능이다.

 

문제파일로 pcap 파일이 주어지는데

 

이 네트워크 캡처 파일을 분석해서 관리자의 암호를 찾으라고 한다.

 

 

주어진 c12.pcap 파일은 Wireshark를 이용해서 열어볼 수 있다.

 

패킷이 653개로 그렇게 많은편은 아니다.

 

이 패킷파일에서 관리자의 암호를 어떻게 찾아야하나 고민하다가

 

구글에 검색해보니 Active Directory에서

 

자격 증명 데이터를 SYSVOL을 마이닝함으로써 찾을 수 있다는 내용을 봤다.

 

SYSVOL은 Active Directory에서 사용하는 폴더인데

 

여기에 그룹 정책이나 로그온 스크립트 같은것들이 저장된다고 한다.

 

 \\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\

 

보통 이런 경로로 되어 있다고 한다.

 

주어진 패킷에서 해당 경로가 보이는지 찾아보았다.

 

 

SYSVOL 이라는 단어를 검색해봤더니

 

401번째 패킷에서 SYSVOL 이라는 경로가 있는걸 확인했다.

 

아래쪽에는 Policies 경로도 눈에 띈다.

 

 

조금 더 자세히 보기 위해 해당 패킷에서

 

우클릭 - Follow - TCP Stream 을 눌러줬다.

 

 

조금 내리다 보니 xml 형태로 된 데이터가 보였고,

 

xml 내용에는 Administrateur의 비밀번호(cpassword)로 추정되는 인코딩된 문자도 같이 보였다.

 

 

단순히 base64로 인코딩된건줄 알고

 

처음엔 base64 디코딩을 시도했으나 아니었다.

 

 

github에 검색해보니 역시나 cpassword를 디코딩할 수 있는 PowerShell 코드를 찾을 수 있었다.

(https://github.com/obscuresec/PowerShell/blob/master/Get-DecryptedCpassword)

 

 

PowerShell 을 실행시킨 후에 해당 코드를 복사 붙여넣기 해준다.

 

코드를 보니 base64가 아닌 aes로 암호화된 데이터였다.

 

 

PowerShell 스크립트에 있는 AesKey는 마이크로소프트 Docs에서도 찾을 수 있다.

 

 

다시 PowerShell에서 

 

Get-DecryptedCpassword 'LjFWQMzS3GWDeav7+0Q0oSoOM43VwD30YZDVaItj8e0'

 

라고 입력해주면 비밀번호를 알아낼 수 있다.

반응형