문제 출처 https://h4ckingga.me
소스코드, 참고 사이트 : https://lemonpoo22.tistory.com/50, https://github.com/W3rni0/RACTF_2020#dimensionless-loading
해당 문제는 (기계인간) 스터디 팀원들과 함께 풀었으며, 해당 내용은 보고서로도 작성되어 있습니다.

힌트 : 불좀 꺼줄래? 내 램좀 보게.
문제 파일 : data.mp4
주어진 힌트에서 얻을 수 있는 부분은 없는 것 같다.
주어진 문제의 파일은 mp4 확장자를 가진 파일이다.

그러나 해당 파일을 HxD 로 확인 결과 MP4 파일 확장자 시그니처인 ( 00 00 00 18 66 74 79 70) 가 없고, 해당 시그니처로 수정해 파일을 생성해도 MP4 파일로 재생 할 수 없다.
따라서, 해당 MP4 파일이 아님을 알 수 있다.

해당 파일이 MP4 확장자를 가진 파일이 아니라면, 주어진 힌트에서 RAM을 강조하는 문구와 HxD에서 “window” 문자열 검색 시, window 관련 내용을 보면, 동영상 파일이 아닌 메모리와 관련된 파일로 예상하였다.
메모리 포렌식
디지털 범죄 해결을 위해 주기억장치(RAM)을 분석하여 남아있는 휘발성 데이터 흔적 분석 기법
- Volatility 도구 사용
Volatility
- 메모리 포렌식에 사용하는 메모리 분석 도구, 파이썬 2.x에서 구동되는 오픈소스 형식의 프레임워크
- 오픈 소스 메모리 포렌식 도구이며, 다양한 운영체제에서 생성된 메모리 덤프 파일의 메모리 구조, 프로세스 및 스레드 정보, 파일 시스템 정보 등을 수집 및 분석할 수 있다.
- 기본 명령어 방식
vol.py -f [이미지 경로][플러그인]
vol.py -f [이미지 경로] --profile=[운영체제][플러그인]
-f : 파일선택 옵션
Volatility 도구를 사용해 해당 메모리를 탐색한다.

프로파일을 검색하는 명령어로 프로파일 확인
(사용 전, volatility_2.6_win64_standalone 파일로 이동 및 분석 파일을 해당 파일 내로 위치시킨다)
volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" imageinfo
C:\volatility_2.6_win64_standalone>volatility_2.6_win64_standalone.exe -f data.dd imageinfo
volatility -f <이미지 파일> imageinfo

Win7SP1x64 프로파일명 확인 (Win7SP1x64 이하 프로파일로 사용한다.)
*Profile : profiles은 볼라틸리티가 운영 시스템을 이해하는 데 사용하는 map
해당 프로파일에서 실행시키는 프로세스 목록


윈도우 파일을 덤프 파일로 생성했다는 것을 알 수 있다.
프로파일에서 중지 또는 은닉 프로세스 확인

cmd로 실행된 명령어 확인
cmdscan : 콘솔에 입력한 값들을 볼 수 있음, cmd.exe가 실행한 명령을 나열하는 명령어

filescan : 메모리 내에 존재하는 모든 파일들의 리스트 출력 , 복구하고자 하는 파일 찾기

filescan을 통해 나온 결과를 text파일로 저장

filescan 메모리에서 추출가능한 파일을 찾아 메모리 주소와 함께 출력
volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 filescan > filescan.log
메모장에서 txt파일에서 flag 검색(flag.bmp 파일 존재 확인 가능.)

0x000000007db82b30 경로에 저장되어 있었던 파일 복구
volatility -f <이미지 파일> --profile=<프로파일 명> dumpfiles -Q <메모리주소> -D <저장 할 디렉토리>


확장자를 .bmp로 변경 후 확인

플래그가 있는 이미지 파일 확인 가능.
시도한 방법들
1. 이미지 프로그램을 사용해서 플래그 적힌 파일을 두었지 않았을까? notepad.exe 또는 mspaint.exe 를 사용해서 찾기 -> 문제파일.data로 포맷 변경 후 GIMP로 파일을 열어 오프셋 값을 조절해볼수도 있다. (해당 파일은 그림판으로 만든 사진 파일이 flag.dmp라는 이름으로 존재했기 때문에 해당 방법으로는 찾을 필요가 없었다)
위 방법은 이 블로그를 참고하였다.
추가로 학습한 내용
메모리 분석 시, 사용 명령어
imageinfo는 덤프파일의 이미지 정보를 분석
volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" imageinfo
프로파일 명 확인 Win7SP1x64pslist는 현재 실행중인 시스템 프로세스들의 정보
- volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 pslist
psscan 명령어는 프로세스 구조체 스캔 후 출력, 숨겨진 프로세스 출력 가능
- volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 psscan
- volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 cmdscan > cmdscan.log
filescan 메모리에서 추출가능한 파일을 찾아 메모리 주소와 함께 출력
- volatility_2.6_win64_standalone -f "C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 filescan > filescan.log
- volatility_2.6_win64_standalone -f
filescan에서 찾은 파일을 dumpfiles(추출)
"C:\Users\USER\Desktop\volatility_2.6_win64_standalone\data.mp4" --profile=Win7SP1x64 dumpfiles -Q 0x000000007db82b30 -D ./
이로써 H4CKING GAME 사이트의 디지털 포렌식 문제는 모두 풀었다.
