메모리 분석 데프콘 2019 챌린지 문제 풀이를 위해
- Triage-Memory.mem 파일 다운로드
[1] get your volatility on
triage-memory.mem 파일의 SHA-1 해시값을 물어봄


터미널에서 volatility를 사용해서 imageinfo를 해줌 --> 이 파일의 정보들을 알아보기

일단 문제 풀기 전에 간단하게 정리만 해보면
(1) KDBG: process 정보 추적하기 용이
(2) profile: win7, win2008
(3) Image data and time: 2019-03-22 경
무튼 그래서 첫 번째 문제인 파일의 SHA-1 해시값을 알아보려고 함
도구: SHA1Sum.exe(강의와 똑같은 툴을 발견하지 못해서..다른 툴로 대체함)

해당 도구가 있는 파일 안에 메모리 파일을 넣어서 설명해주는 option에 따라
.\SHA1Sum.exe compute '.\Adam Ferrante - Triage-Memory.mem' 를 해서 해시값을 얻음
flag<c95e8cc8c946f95a109ea8e47a6800de10a27abd>
[2] profile


아까 잠깐 확인했던건데..!
suggested profile을 보면 다양한 machine정보들이 나옴 --> 가장 적절한 profile = 제일 앞에 있는 것
flag<Win7SP1x64>
[3] hey, write this down

notepad.exe의 프로세스 ID를 구해보시오

volatility로 돌아가서 -f 옵션을 주고 pslist를 살펴보기로 함
0xfffffa80054f9060 notepad.exe 3032 1432 1 60 1 0 2019-03-22 05:32:22 UTC+0000
오프셋 파일명 PID PPID THDS HNDS SESS WOw64 START
즉, PID는 3032이다
flag<3032>
쉽게 볼 수 있는 법: pslist | finstr notdpad.exe
notpad만 따로 뽑아서 보여줌
[4] wscript can haz children


이번에는 wscript의 자식 프로세스의 이름을 알아야하니, pslist보다는 pstree로 보는 것이 낫다고 판단함

pstree로 보니까 부모-자식 관계가 잘 보임
hfs.exe --> wscript.exe --> UWkpjFjDzM.exeImage date and time : 2019-03-22 05:46:00 UTC+0000 --> cmd.exe
flag< UWkpjFjDzM.exe >
[5] tcpip settings

RAM덤프(이미지파일)가 만들어졌었던 시간에 machine의 IP주소는 무엇인가?
아까 봤던 ImageInfo에서 봤던 생성 시간: Image date and time : 2019-03-22 05:46:00 UTC+0000
--> 이 정보를 가지고 확인하면 될 것 같음

IP주소니까 connections를 해야하나? 싶어서 해봤더니 profile이 winXP나 2003년 버전만 가능한 것 같음
그 밑에 connscan이라고 tcp 연결에 대한 정보를 알려주는 것이 있는 것 같음
근데 얘도 안된다고 나온네...
강의에서 netscan을 이용해보자고 하심

한번 살펴보면 제대로된 local address 정보는 10.0.0.101 정도로 확인할 수 있다.
flag<10.0.0.101>
[6] intel

감염된 PID에 의해서, 공격자의 IP주소를 찾아라

estabilished: 연결되어있는 상태 --> 의심
| findstr ESTABLISHED 를 통해서 자세히 확인해보면

아까봤던 .exe파일이랑, OUTLOOK.EXE 파일이 서로 연결되어 있다.
outlook.exe는 Microsoft Outlook 애플리케이션의 실행 파일이기 때문에 악성일 확률이 낮음
즉, UWkpjFjDzM.exe 의 10.0.0.106이 공격자 IP주소라고 봄
+ 4444포트: 임의적으로 생성된 포트(의심해야 함)
flag<10.0.0.106>
[7] i <3 windows dependencies

VCRUNTIME140.dll과 관련있는 프로세스 이름은 무엇인가?
dll: 동적 링크 라이브러리
여러 파일들은 기능에 맞게끔 dll파일들을 공유해서 사용하게 됨
dll과 관련된 plugin을 살펴보니
dlldump Dump DLLs from a process address space
dlllist Print list of loaded dlls for each process (유력)
ldrmodules Detect unlinked DLLs
dlllist부터 해봐야겠다.
아니ㅋㅋㅋㅋㅋ....너무 많아서 이번에도 | findstr VCRUNTIME140.dll을 해주니까

DLL의 경로, 사이즈, offset 등 나옴
근데 이 정보는 관련있는 프로세스를 알기는 어려우니까 dlldump를 해보려고 함
dlldump는 따로 옵션을 줘야하는데 이렇게 찾아서 해주니까 하나가 딱 뜸
vol.exe -f [메모리_덤프_파일] --profile=[프로필_이름] dlldump -D [저장할_디렉토리] -p [PID]
주요 옵션 설명:
-f: 분석할 메모리 덤프 이미지 파일 경로를 지정합니다.
--profile: 해당 메모리 이미지가 생성된 운영체제 정보(예: Win10x64)를 지정합니다.
-D: 추출된 DLL 파일을 저장할 폴더 경로를 지정합니다.
-p: 특정 프로세스의 DLL만 뽑고 싶을 때 해당 프로세스의 ID를 입력합니다. (지정하지 않으면 모든 프로세스의 DLL을 시도합니다.)
-r: (선택) 정규 표현식을 사용하여 특정 이름을 가진 DLL만 필터링하여 추출할 수 있습니다.

이 VCRUNTIME140.dll과 관련있는 프로세스의 이름은 OfficeClickToR인 것 같음
인 줄 알았는데.. ClickToR이라고 하네..?
굳이 dump파일을 할 필요가 없었던 것 같음...
flag<ClickToR>
**추가: dlllist > dllist.txt로 저장해서 보기 쉽게 찾아볼 수 있음
[8] mal-ware-are-you

가능성있는 malware의 MD5해시값이 무엇인가?
--> 계속 유의깊에 살펴봤던 malware파일은 UWkpjFjDzM.exe였음
---> 이 파일을 덤프를 떠야한다고 함
procdump: Dump a process to an executable file sample

프로세스의 PID: 3496

덤프하고 MD5해시 프로그램 찾으려고 잠깜 눈돌린 사이..악성파일이라서 바로 사라져버림..
실시간검사를 끄고 다시 해봣음
근데 MD5 tool 다운받기 살짝 귀찮아서ㅎㅎ 어차피 악성코드고 virustotal에 던져봤음(원래 이렇게 하면,,안되지만..)

MD5: 690ea20bc3bdfb328e23005d9a80c290
flag< 690ea20bc3bdfb328e23005d9a80c290 >
[9] lm-get bobs hash

bobs의 계좌의 LM hash값이 무엇인가?
plugin: hashdump - Dumps passwords hashes (LM/NTLM) from memory
윈도우의 사용자 계정 비밀번호 해시 정보는 레지스트리 하이브 파일(SAM, SYSTEM)에 저장되어 있는데, 이 명령어가 그 정보를 파싱해줌

Bob이란 사용자가 보임!
LM 해시값: aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
flag <aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 >
[10] vad the impaler

VAD: vitrtual address descriptor(가상 주소 관리자)
해당 오프셋에 대한 VAD의 protections를 구하시오
0xfffffa800577ba10
plugin을 찾아보면 다양한 vad plugin이 있음 --> vadinfo 먼저 해보록 하겠음

txt파일로 저장해주고

해당 오프셋을 찾아주니 다양한 정보가 보임
protection: PAGE_READONLY
flag< PAGE_READONLY >
[11] vad the impaler

starting at 0x00000000033c0000, ending at 0x00000000033dffff

protection: PAGE_NOACCESS
flag< PAGE_NOACCESS >
[12] vacation bible school

VBS script는 무엇인가?(파일 확장자없이 제출해라)
- 용도: 윈도우에서 단순 작업 자동화, 파일 시스템 조작, GUI 조작 등에 사용되는 경량 스크립트 언어입니다.
- 특징:.vbs 확장자를 사용하며 별도 설치 없이 윈도우에서 작동하지만, 악성 스크립트(랜섬웨어, 정보 유출)로 악용되기도 합니다.

wscript pid: 5116
cmdline: Display process command-line arguments

경로가 보이고, vbs파일을 가지고 있음을 알 수 있음(vhjReUDeuumrX.vbs)
flag< vhjReUDeuumrX >
[13] thx microsoft

2019-03-07 23:06:58 UTC시각에 작동한 어플리케이션의 이름은?
pslist로 다시 확인을 해봤는데..! 시각이 3/22만 있을 뿐, 그 전 시각은 보이지 않음
이렇게 바로 보이는 것은 아닌 것 같고

application을 쳤을 때 보이는 shimcache를 해봐야겠음

경로: C:\Program Files (x86)\Microsoft\Skype for Desktop\Skype.exe
오 skype, 메세지 플랫폼인데
flag< Skype.exe >
[14] lightbulb moment

메모리가 덤프되었던 시간에 notepad.exe에 쓰여진 것이 무엇인가?
메모리 덤프 시간: 2019-03-22 05:46:00 UTC+0000
- memdump: 특정 프로세스의 메모리 영역을 덤프하여 파일로 저장합니다. 저장된 덤프 파일 내에서 문자열 검색 등을 통해 구체적인 데이터를 확인할 수 있습니다.
notepad.exe정보: 0xfffffa80054f9060 notepad.exe 3032 1432 1 60 1 0 2019-03-22 05:32:22 UTC+0000
pid: 3032

--> 파일을 notepad로 열기보다는! strings 명령어를 사용해서 확인할 수 있음


flag쳐서 찾아줬음
[15] 8675309

record 59045 파일의 shortname이 무엇인가?
file recod 59045: MFT를 알고 있는 것인가를 물어보는 것



flag<EMPLOY~1.XLS>
[16] whats - a - metasploit?

meterpreter: 메타스플로잇(Metasploit) 프레임워크에서 사용하는 고급 다기능 페이로드(Payload)이다.
시스템 침투가 되면 meterpreter 형태로 침투가 된다고 함
아까 의심됐던 UXkpjFjDzM.exe를 덤프해주도록 하겠음(실시간 모드 끄기!)

virustotal에서 하는게 맞는거고, 악성코드임을 확신하게 됨
UXkpjFjDzM.exe의 PID는 3456
0xfffffa8005a1d9e0 UWkpjFjDzM.exe 3496 5116 5 109 1 1 2019-03-22 05:35:33 UTC+0000
flag<3456>
문제 끝.......
'SWUFORCE > 윈도우 포렌식' 카테고리의 다른 글
| File Carving(+method) (0) | 2026.05.16 |
|---|---|
| 디지털 포렌식 전문가 과정 - 섹션5(사진 및 영상/오디오/3D파일분석) (0) | 2026.05.05 |
| 디지털 포렌식 전문가 과정 - 섹션5(개요/문서 분석) (0) | 2026.05.05 |
| 디지털 포렌식 전문가 과정 - 섹션4(레지스트리/파일다운/암호 및 메일 분석) (1) | 2026.04.28 |
| 디지털 포렌식 전문가 과정 - 섹션4(개요) (0) | 2026.04.28 |