R136A1

[ctf-d] 플래그를 찾아라! :: memory 본문

FORENSIC/ctf-d

[ctf-d] 플래그를 찾아라! :: memory

r136a1x27 2021. 11. 17. 01:38

계속 미뤄왔던 PIL(이전 포스팅)과 Memory, Disk를 다뤄보려 한다.

파일의 확장자는 lzma로, 데이터 압축에 쓰이는 알고리즘이다.

일반적인 압축 해제 프로그램으로 해제 가능하다.

압축을 풀면 raw파일이 나온다.

주로 이미지 파일로 많이 접했겠지만, 깨져서 보이지 않는다.

파일을 까보면, ELF 파일(리눅스 실행 파일)이다.

실행되지 않는다.


책의 오탈자 수정인지, 힌트가 되었다.

이미지 파일 뿐만 아니라 메모리 덤프 파일도 raw 형태로 추출된다고 한다.

 

Volatility 사용법: https://r136a1x27.tistory.com/372 을 참고한다.

1. 프로필을 찾는다 => Win10x64

2. 프로세스 정보를 파악한다

문제에 적힌 Pid 4092는 mspaint.exe이고, 윈도우에서 기본적으로 제공하는 그림판의 프로세스명이다.

memdump까지 동일하게 쳐준다.

(프로세스 목록이 많은 편은 아니며, 사실 하나씩 다 분석해봐야한다.

윈도우 기본 프로세스는 제쳐두고, 사용자가 직접 실행했을 것으로 보이는 프로세스를 분석한다.

본 문제는 volatility의 기본 중 기본 문제이므로 notepad.exe 또는 mspaint.exe에 있을 것이라 추측할 수 있다.

이미 답을 알았으므로 이 이상으로 생각을 전개할 수 없었다)

좀 더 자세히 들여다보면, 당연히 메모리 덤프 파일이므로 깔끔하게 이미지만 떨어지지 않는다. (300MB)

일반적인 파일 포맷도 아니고, 많은 정보 중에 이미지가 파일 형태로 존재할 리도 없다.

GIMP2는 일반적으로 잘 사용되지는 않지만, "Offset"을 조절할 수 있어

포렌식에서 스테가노그래피 문제를 풀 때, 메모리 덤프 속의 이미지를 확인하고 싶을 때 활용된다.

dmp 확장자를 data로 바꾼다.

뭐, 오프셋과 너비를 잘 조절해가며 찾으면 된다고 한다...는데

오프셋이 0부터 314785792까지 있는데

플래그는 4666876 쯤에 있고, 너비를 잘 조절하지 않으면 아래와 같이 뜬다.

 

따라서 아래와 같은 삽질을 거쳐야 하는데...

솔직히 처음 찾아낸 사람에게 존경심을 표한다

너비가 300쯤으로 맞춰져있으면 평생 찾아낼 수 있었을까 싶다.

패턴을 알면 아래와 같은 화면도 찾아낼 수 있다

신기하긴 하다.. 어떻게 메모리인데 화면이 찍혀져있는건지

Comments