Root Me에서 제공하는 첫번째 메모리 포렌식 문제
무슨일인지 level 1 은 없고 level 2 부터 시작한다.
내용을 보면 원래는 level 1이 있었는데 알수 없는 이유로 삭제한것 같다.
문제 설명을 읽어보면
메모리 덤프 파일에서 워크스테이션의 hostname을 찾는것이 이번 문제의 목표이다.
메모리포렌식 문제를 풀 때는 Volatility 라는 도구를 사용한다.
이 분야에서 거의 독보적인 툴이다.
https://hackingstudypad.tistory.com/188
이전에 포스팅했던 SANS SIFT Workstation 을 설치하면
그 안에 내장되어 있다.
문제에서 주어진 파일은 ch2.dmp 파일이다.
Volatility 를 사용해 분석하기 위해선 먼저 제공된 메모리 덤프의 프로필을 알아야 한다.
vol.py 로 볼라틸리티를 실행시키고,
-f 옵션을 줘서 분석할 덤프 파일을 지정해준 뒤,
imageinfo 라는 플러그인을 이용해면 프로필을 알아낼 수 있다.
분석결과 Win7SP1x86_23418, Win7SP0x86, Win7SP1x86_24000, Win7SP1x86 네 개의 프로필이 나왔는데
그냥 맨 앞에 있는걸로 쓰면 된다.
프로필을 지정할때는
--profile=<프로필> 이런식으로 옵션을 주면 된다.
문제랑 상관없지만 프로세스 목록을 출력해주는
pslist 플러그인을 실행시켜 보았다.
이제 hostname 을 알아내기 위해 레지스트리를 찾아본다.
먼저 hivelist 플러그인을 이용해 SYSTEM 하이브 파일의 Virtual 주소를 확인한다.
다음으로 printkey 플러그인을 이용해
-o 옵션을 줘서 아까 봤던 Virtual 주소를 넣어주면 SYSTEM 레지스트리를 볼 수 있다.
Subkey 로 이동하고 싶다면
-K 옵션을 줘서 이동할 Subkey의 이름을 적어주면 된다.
hostname은 ControlSet001\services\tcpip\parameters 위치에 저장되어 있다.
-K "ControlSet001\services\tcpip\parameters" 라고 옵션을 주면
아래쪽에 Value 들이 출력되는데
그중 NV Hostname 이 워크스테이션의 hostname을 저장하고 있다.
해당 값을 복사해 제출하면 점수를 획득할 수 있다.
'워게임 > Root Me' 카테고리의 다른 글
[Root Me] ELF x86 - Stack buffer overflow basic 2 - 포너블 / 버퍼오버플로우 (42) | 2022.09.11 |
---|---|
[Root Me] IP - Time To Live - 네트워크 / Wireshark (60) | 2022.09.08 |
[Root Me] ELF x86 - Stack buffer overflow basic 1 - 포너블 / 버퍼오버플로우 (36) | 2022.09.03 |
[Root Me] Local File Inclusion - Double encoding - 웹해킹 / LFI / PHP wrapper (57) | 2022.08.29 |
[Root Me] Local File Inclusion - 웹해킹 / LFI (51) | 2022.08.25 |