Forensics

Attaaaaack1

Description :
One of our employees at the company complained about suspicious behavior on the machine, our IR team took a memory dump from the machine and we need to investigate it.

Q1. What is the best profile for the the machine?

회사 직원 중 한 명이 시스템의 의심스러운 동작에 대해 불평했고, IR 팀이 시스템에서 메모리 덤프를 가져와 조사해야 했습니다.

Q1. 기계에 가장 적합한 프로파일은 무엇입니까?

Attached file : [memdump.raw]

문제 풀이

메모리 덤프 파일이 주어졌다. 노트북에 설치되어있던 volatility(메모리 분석 tool)을 사용하여 메모리 덤프 파일의 이미지 정보를 확인했다.

vol_2.6.exe imageinfo -f ./memdump.raw

Attaaaaack1

  • 문제에서 요구하는 profile 정보를 찾을 수 있었다.
  • flag -> crew{Win7SP1x86_23418}

Attaaaaack2

Description :
Q2. How many processes were running ? (number)

( doesnt follow format)

Q2. 얼마나 많은 프로세스가 실행되고 있었습니까? (숫자)

(형식을 따르지 않음)

문제 풀이

volatility의 pslist 명령어를 통해 덤프된 메모리의 실행중인 프로세스 정보를 확인할 수 있다.

vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 pslit

Attaaaaack2

Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64
0x8419c020 System                    4      0     89      536 ------      0
0x962f2020 smss.exe                268      4      2       29 ------      0
0x860a8c78 csrss.exe               352    344      9      462      0      0
0x855dfd20 wininit.exe             404    344      3       76      0      0
0x8550b030 csrss.exe               416    396      9      268      1      0
0x85ea2368 services.exe            480    404      8      220      0      0
0x85ea8610 lsass.exe               488    404      6      568      0      0
0x85eab718 lsm.exe                 496    404     10      151      0      0
0x85eacb80 winlogon.exe            508    396      5      115      1      0
0x85f4d030 svchost.exe             632    480     10      357      0      0
0x85ef0a90 svchost.exe             700    480      8      280      0      0
0x919e2958 svchost.exe             752    480     22      507      0      0
0x85f9c3a8 svchost.exe             868    480     13      309      0      0
0x85fae030 svchost.exe             908    480     18      715      0      0
0x85fb7670 svchost.exe             952    480     34      995      0      0
0x85ff1380 svchost.exe            1104    480     18      391      0      0
0x8603a030 spoolsv.exe            1236    480     13      270      0      0
0x86071818 svchost.exe            1280    480     19      312      0      0
0x860b73c8 svchost.exe            1420    480     10      146      0      0
0x860ba030 taskhost.exe           1428    480      9      205      1      0
0x861321c8 dwm.exe                1576    868      5      114      1      0
0x8613c030 explorer.exe           1596   1540     29      842      1      0
0x841d7500 VGAuthService.         1636    480      3       84      0      0
0x86189d20 vmtoolsd.exe           1736   1596      8      179      1      0
0x8619dd20 vm3dservice.ex         1848    480      4       60      0      0
0x861a9030 vmtoolsd.exe           1884    480     13      290      0      0
0x861b5360 vm3dservice.ex         1908   1848      2       44      1      0
0x861fc700 svchost.exe             580    480      6       91      0      0
0x86261030 WmiPrvSE.exe           1748    632     10      204      0      0
0x86251bf0 dllhost.exe             400    480     15      196      0      0
0x8629e518 msdtc.exe              2168    480     14      158      0      0
0x8629e188 SearchIndexer.         2276    480     12      581      0      0
0x8630b228 wmpnetwk.exe           2404    480      9      212      0      0
0x862cca38 svchost.exe            2576    480     15      232      0      0
0x85351030 WmiPrvSE.exe           3020    632     11      242      0      0
0x853faac8 ProcessHacker.         3236   1596      9      416      1      0
0x843068f8 sppsvc.exe             2248    480      4      146      0      0
0x85f89640 svchost.exe            2476    480     13      369      0      0
0x843658d0 cmd.exe                2112   2876      1       20      1      0
0x84368798 cmd.exe                2928   2876      1       20      1      0
0x84365c90 conhost.exe            1952    416      2       49      1      0
0x84384d20 conhost.exe            2924    416      2       49      1      0
0x84398998 runddl32.exe            300   2876     10     2314      1      0
0x84390030 notepad.exe            2556    300      2       58      1      0
0x84df2458 audiodg.exe            1556    752      6      129      0      0
0x84f1caf8 DumpIt.exe             2724   1596      2       38      1      0
0x84f3d878 conhost.exe            3664    416      2       51      1      0
  • 출력된 프로세스 정보, 블로그에서 이쁘게 보일지 Test

  • flag -> crew{47}

Attaaaaack3

Q3. i think the user left note on the machine. can you find it ?

flag format : crew{}

Q3. 사용자가 기계에 메모를 남겼다고 생각합니다. 당신은 그것을 찾을 수 있습니까?

플래그 형식: 크루{}

문제 풀이

사용자가 기계에 메모를 남겼다고 해서 엄청 삽질을 했다;; 프로세스에 실행중인 notepad.exe를 추출하여 입력된 정보가 없는지 찾아보기도 하고 .txt, .doc, docx로 되어있는 저장된 파일이 있는지 확인해보았다.

하지만 정답은 클립보드 였다.

volatility에서 덤프된 메모리의 클립보드 내용을 확인할 수 있는 명령어가 있다.

vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 clipboard

Attaaaaack3

  • flag -> crew{1_l0v3_M3m0ry_F0r3ns1cs_S0_muchhhhhhhhh}

Attaaaaack4~5

Description :
Q4. What is the name and PID of the suspicious process ?
example : crew{abcd.exe_111}

Q5. What is the another process that is related to this process and it's strange ?
example : crew{spotify.exe}

Q4. 의심스러운 프로세스의 이름과 PID는 무엇입니까?
예: crew{abcd.exe_111}

Q5. 이 프로세스와 관련된 다른 프로세스는 무엇이며 이상합니까?
예: crew{spotify.exe}

문제 풀이

volatility에서 위에서 확인 했던 pslist 명령어를 사용하여 프로세스 리스트를 확인 할 수도 있지만, volatility에선 pstree라는 명령어도 있다. 프로세스를 트리 구조의 형태로 확인할 수 있는 명령어로 의심스러운 프로세스를 확인할 때 사용하기 좋은 명령어이다.

vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 pstree

Attaaaaack4

Attaaaaack5

  • 시스템과 관련된 프로세스는 상단에 묶여있던거 같고… 상위 프로세스도 표시가 되지 않아 의심하던 중 구글에 검색해보고선 프로세스명이 dll이 아니고 ddl인 것을 확인했다.

Attaaaaack6

  • 낚일뻔;;

  • flag -> crew{runddl32.exe_300}
  • flag -> crew{notepad.exe}

Attaaaaack6

Description :
Q6. What is the full path (including executable name) of the hidden executable?

example : crew{C:\Windows\System32\abc.exe}

Q6. 숨겨진 실행 파일의 전체 경로(실행 파일 이름 포함)는 무엇입니까?

예: crew{C:\Windows\System32\abc.exe}

문제 풀이

위에서 의심되던 notepad.exe 파일의 pid를 확인한 뒤, memdump 명령어를 사용하여 해당 프로세스의 메모리를 덤프했다.

vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 pslist | findstr notepad
vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 memdump -p 2556 -D ./

Attaaaaack7

이후 string 툴을 사용하여 추출한 notepad.exe에 string 정보만 추출하였다.

string.exe ../2556.dmp >> 2556.txt

Attaaaaack9

추출된 string 파일 안에서 이전에 찾은 의심 프로세스의 파일 경로를 확인할 수 있었다.

Attaaaaack8

  • flag -> crew{C:\Users\0XSH3R~1\AppData\Local\Temp\MSDCSC\runddl32.exe}

Attaaaaack7~8

Description :
Q7. What is the API used by the malware to retrieve the status of a specified virtual key on the keyboard ?

flag format : crew{AbcDef}

Q8. What is the Attacker's C2 domain name and port number ? (domain name:port number)

example : crew{abcd.com:8080}

Q7. 키보드에서 지정된 가상 키의 상태를 검색하기 위해 멀웨어가 사용하는 API는 무엇입니까?

플래그 형식 : crew{AbcDef}

Q8. 공격자의 C2 도메인 이름과 포트 번호는 무엇입니까? (도메인 이름: 포트 번호)

예: crew{abcd.com:8080}

문제 풀이

이번에는 악성 파일을 추출해보았다.

vol_2.6.exe -f ./memdump.raw --profile=Win7SP1x86_23418 procdump -p 300 -D ./

Attaaaaack10

  • 악성 파일 추출

Attaaaaack12

  • 추출된 파일을 바이러스토탈에 업로드

추출한 파일을 바이러스토탈에 올려 분석된 결과를 확인했다.

Attaaaaack11

  • API 정보 확인

바이러스토탈에서 확인된 API 중 Key 입력과 관련된 것은 GetKeyboardState, GetKeyState 두 가지 인거 같았다.

Attaaaaack13

  • 접속 정보 확인

또한, 다음 문제인 C2서버 관련 정보들도 확인할 수 있었다.

  • flag -> crew{GetKeyState} crew{test213.no-ip.info:1604}

Attaaaaack9

Description :
Q9. Seems that there is Keylogger, can you find it's path ?

example : crew{C:\Windows\System32\abc.def}

Q9. Keylogger가 있는 것 같은데 경로를 찾을 수 있습니까?

예: 크루{C:\Windows\System32\abc.def}

문제 풀이

여기까지 진행하면서 마구 추출했던 파일들을 분석하던 중, 문제에서 이야기하는 keylogger의 이름으로 보이는 파일과 디렉토리를 찾았다.

Attaaaaack14

  • 파일을 어떻게 추출했었는지는 잘 기억이 안남;;

그리고 Attaaaaack6번과 동일한 과정으로 runddl32.exe 파일의 string 정보를 추출하여 분석을 진행하였고, 위에서 의심했던 파일의 경로를 확인할 수 있었다.

Attaaaaack15

  • flag -> crew{C:\Users\0xSh3rl0ck\AppData\Roaming\dclogs\2023-02-20-2.dc}

후기

문제를 풀고 최근에 올라온 WriteUp을 확인해보니, 이 문제에 사용된 바이러스를 분석한 블로그가 있었던 모양이다… 만약 대회 당일 그 블로그를 찾았더라면… 이후 13번까지 다 풀 수 있지 않았을까…??

  • 문제 풀 때 참고한 URL https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet#discover-profile

  • 이후 확인한 WriteUp https://siunam321.github.io/ctf/CrewCTF-2023/Forensics/Attaaaaack1-13/#attaaaaack9