YeoPEVA

Root-me | Command & Control - level 2, 5 본문

#Wargame/root-me

Root-me | Command & Control - level 2, 5

YeoPEVA 2019. 8. 14. 20:59

Root-me | 1-Week 

 

안녕하세요!, 오랜만에, root-me에 있는 Command & Control level 2,5 문제를 한번 풀어보았습니다 :)

 

[1] Command & Control - level 2 

Command & Control level2 문제 지문 

문제 지문을 확인해보니, PC의 호스트 네임을 알아내는 문제였습니다.

vol.py imageinfo

먼저, 볼라이언티 툴을 이용해, 메모리 덤프 파일을 확인해보았습니다.

제안 프로파일을 확인해보니, 윈도우 7 계열인 것 같네요.

vol.py hivelist

볼라이언티 툴을 이용해, 레지스트리를 뽑아냈습니다.

그 이유로는, 레지스트리를 통해, 호스트 네임을 변경할 수 있고, 확인이 실제로 가능하기 때문에, 

hivelist -> printkey를 이용해, 레지스트리 키 값을 읽어, 호스트 네임을 출력하기 위해서입니다.

vol.py printkey

실제로, printkey를 이용해, \REGISTRY\MACHINE\SYSTEM의 Virtual를 인자 값으로 주고, 

'Controlset001\Control\ComputerName\ComputerName'을 통해,

ComputerName 키에 접근, 값을 확인 할 수 있었습니다.

Solve!

 

 

[2] Command & Control - level 5

Command & Control - level 5

문제 지문을 같이 확인해보니, john의 패스워드를 찾아야하며, 주어진 파일을 위와 동일하게 메모리 덤프 파일이

주어졌습니다. 바로 분석 진행해보겠습니다 :) 

vol.py imageinfo

먼저, imageinfo로 메모리 덤프 파일을 확인해보았습니다. | 앞 문제와 동일하게, 윈도우 7 계열 같네요.

vol.py hivelist

그 이후, hivelist를 뽑아내었습니다. 

앞 문제와 동일하게 hivelist를 뽑아내어, 의아해하실 수 있으실 것 같습니다.

이를 이해하기 위해서는 NTLM이라는 것을 알 필요가 있습니다.

 

NTLM 이란?

MS사에서 Windows 2000을 시작하는 Kerberos로 대체 된, Microsoft의 이전 인증 프로토콜입니다.

MS사 윈도우 컴퓨터와 서버 간에 계정을 인증하기 위해, MS 사 엔지니어가 설계 및 구현하였으며,

15년이 넘는 기간 동안 윈도우 배포에 대한 기본 설정은 아니지만, 여전히 많이 사용되고 있습니다.

 

이 NTLM은, 비교적 약한 암호화 체계를 사용하기에 [MD4 기반] 손 쉽게, 암호화를 뚫는 것이 가능하고,

volatility hashdump를 통해, NTLM을 추출하는 것이 가능합니다.

 

더 상세한 설명은 추후 다른 포스팅이나 해당 링크를 참고해주세요 :)

https://horae.tistory.com/entry/NTLM-%EC%9C%84%ED%97%98-%EC%9A%94%EC%86%8C

 

vol.py hashdump 

 앞에서 설명했듯이, hashdump를 통해, [SYSTEM 하이브 | 가상주소, SAM 하이브 가상주소 전달]

도메인 자격 증명을 얻은 다음, NTLM Cracker를 이용하면 됩니다.

NTLM 확인

John Doe | 빙고, NTLM 값을 확인하였습니다.

NTLM Cracker

NTLM Cracker를 이용해, 패스워드를 확인하고, 인증합니다.

Solve!

이걸로 2문제 풀이가 마무리 되었네요.

시간이 부족해서 설명이 엉성하긴 한데.. 추후 시간 나는대로 조금 수정해두겠습니다 ㅠㅠ

root-me에 생각보다 포렌식 문제가 많아서, 다음에도 관련 문제로 찾아뵙겠습니다.

 

PS) 티스토리 바뀌고 난 이후로, 글 쓰기가 훨씬 편해졌네요.. 좋습니다 ><