티스토리 뷰

69번째 글.

 

 

Skill Assessement 페이지에서 시나리오가 있었는데 여기서 언급하지 않는 문제들은 이 모듈을 잘 따라왔으면 쉽게 풀 수 있는 문제들이었다. 여기서는 푸는데 조금 헤맨 마지막 문제만 다루도록 하겠다.

1. 문제

쉽게 말해서 NTDS.dit파일 내에있는  NTLM password hash들 중에서 가장 많이 사용된 것을 크랙 하면 된다.

또한 Hashcat_NTDS.zip 파일을 하나 던져준다.

하지만 이 모듈에서 NTDS.dit에 대한 설명은 없다. 빠르게 힌트를 확인하자.

 

 

주저리주저리..

대충 NtdsAudit 이나 DPAT를 사용해 보라고 한다.

나는 DPAT를 사용하였다.

 

 

2. What is NTDS.dit?

간략하게 설명하면 Domain Controller의 NTDS.dit은 Active Directory의 모든 정보를 저장하는 파일이다.

사용자의 이름, 전화번호, 이메일 주소, 비밀번호의 NT hash들도 이 파일에 저장된다.

 

 

3. Cracking Hash

나는 여기서 DPAT라는 툴을 사용하였는데 NTDS.dit과 같은 파일을 분석해주고 크래킹을 해주는 파이썬 스크립트이다.

 

 

먼저 -n 플래그로 문제에서 던 저준 ntds 파일을 설정을 하고 -c 크래킹의 결과를 담을 파일을 설정한다.

수행이 끝나고 나면 위처럼 브라우저에서 바로 볼 것이냐고 물어본다.

 

 

이렇게 보기 좋게 나온다.

하지만 패스워드가 전부 비어있다.

문제에서 가장 많이 사용된 해시를 크랙 해서 얻어진 패스워드를 입력하라고 했으니

NT HASH 칼럼의 데이터들을 정제할 필요성이 있다.

 

툴을 이용할 때 -w 플래그를 사용하면 디폴트 네임으로 pass_audit인 db파일이 생성된다.

생성된 db파일을 이용해서 가장 많이  사용된 패스워드를 뽑으면 될 것 같다.

 

 

위의 명령줄에서 -w 플래그만을 추가하여 pass_audit.db 파일을 생성하였다.

이것을 더블클릭하여 DB 브라우저를 실행하였다.

 

 

그러면 이렇게 디비 구조를 볼 수 있고 쿼리를 실행할 수 있다.

 

 

select nt_hash,count(nt_hash)as coun from hash_infos group by nt_hash order by coun desc;

위의 쿼리를 실행하여 다음과 같은 결과를 얻을 수 있었다.

 

 

db3a9af5e74be03220d213b47ef25b53 값이 가장 많이 나왔다.

따라서 이 값을 hashcat을 통해 크랙하면 될 것이다.

 

 

NTLM의 모드 번호인 1000을 입력하고 Dictionary attack을 진행한다.

 

 

정상적으로 크랙된 값인 freight1이 나왔다.

 

 

 

 

 

Reference

https://github.com/clr2of8/DPAT //DPAT

https://xeph.blog/2020/08/16/extract-nt-hash-password-from-active-directory-ntds-dit/ // NTDS.dit