본문 바로가기

Wargame/GrrCON 2015

GrrCON 2015 #1, #2, #3, #4, #5, #6

http://www.ctf-d.com/challenges

 

저기서 파일을 다운받는거라던데 열리지 않아서 문제를 어디서 구해야할까 걱정했는데,

Target1-1dd8701f.vmss 파일로 #1 ~ #16 문제를 전부 푸는거라고 하더라.

 

vmss는 가상 머신에서 일시 중지(suspend) 상태일 때 운영체제 상태를 저장한 파일 확장자이다.

 

풀어보자.

 

#1

프런트 데스크 직원들은 보안 업데이트라고 생각하고 이상한 이메일을 클릭한 것을 당신에게 보고했다. 프런트 데스크 사용자의 메일주소로 이메일을 보낸 전자 주소는 무엇인가?

 

volatility 라는 오픈 소스 기반으로 CLI 인터페이스 제공하는 메모리 분석 도구를 사용한다.

 

 

-h : 플러그인 옵션 확인

 

 

-f 분석 대상 파일 imageinfo : profile 확인

Volatility의 다른 플러그인을 사용하기 위해 필요하다.

 

저기 INFO 두번째 줄의 Suggested profile(s) : 옆에 있는 Win7SP1X86_23418, Win7SP0x86, Win7SP1x86 이 프로필들이다.

 

 

-f 분석 대상 파일 --profile=profile정보 psscan : 프로세스 리스트 출력

 

psscan, pstree, pslist : 은닉 프로세스 확인

 

pslist : 프로세스 리스트 출력, 리스트 워킹 (가상 주소)

psscan : 프로세스 리스트 출력, 패턴 매칭 (물리적 주소)

pstree : 프로세스를 트리구조로 출력

 

플러그인 실행 결과를 보면 OUTLOOK.EXE 프로그램이 실행 중인 것을 확인할 수 있다.

이 프로그램을 사용하여 이메일을 받았다면 파일 내 이메일 주소가 존재할 것이다.

파일 분석을 위해서 memdump 플러그인을 사용하여 메모리 파일에 존재하는 OUTLOOK.EXE 파일을 복구한다.

 

 

-f 분석 대상 파일 --profile=profile정보 memdump

-p 해당 프로세스 PID -D 저장 경로 : 해당 프로세스 메모리 덤프

 

volatility.exe -f [파일 이름] --profile=[운영체제명] memdump -p [해당 프로세스 PID] -D ./(해당 폴더에 저장한다는 뜻)

 

파일이 저장된 것을 확인하면 strings 프로그램으로 dmp 파일을 txt 파일로 변환시킨다.

strings 은 프로그램 안에서 사용된 문자열 출력 프로그램이다.

 

 

strings.exe [변경하고 싶은 파일] > [변경할 파일]

 

txt 파일에서 flag를 찾아주자.

 

 

메일 주소를 찾아야하니까 Ctrl + F 로 gmail을 찾아주었다.

 

th3wh1t3r0s3@gmail.com

 

 

#2

공격자가 프런트 데스크 직원들의 이메일로 첨부해서 보낸 파일의 이름은 무엇인가?
KEY Format: xxx.exe

 

 

메모장에서 열었는데 이 모양으로 깨지길래...

코드로 열어야 안 깨진다던데 Sublime Text 랑 Visual Studio 다 깨지는거다.

 

 

어쩌다 Visual Studio 에서 다시 저장하고 Sublime Text 에서 열었더니 제대로 된 파일명을 찾을 수 있었다.

 

 

아까 그 메일 바로 아래 쪽에 exe 이름이 있다.

 

AnyConnectInstaller.exe

 

#3

공격자는 AllSafeCyberSec 사용자들을 피싱한 것으로 보인다. 사용된 악성 코드의 이름은 무엇인가?
KEY Format: zeus

 

volatility_2.6_win64_standalone.exe -f 

Target1-1dd8701f.vmss --profile=Win7SP0x86 filescan | findstr "AnyConnectInstaller"

 

filescan | findstr "검색 문자열" : 해당 문자열의 파일 검색

-> Offset 주소 외우거나 복사 & 붙여넣기

 

 

volatility_2.6_win64_standalone.exe -f Target1-1dd8701f.vmss --profile=Win7SP0x86 dumpfiles -Q 0x000000003df1cf00 -D ./

 

dumpfiles -Q 파일의 Offset -D 저장경로 : 메모리에서 추출 가능한 파일 추출

 

https://www.virustotal.com/gui/home/upload

 

VirusTotal

Analyse suspicious files and URLs to detect types of malware, automatically share them with the security community

www.virustotal.com

 

위 사이트에 덤프된 파일을 넣고 발견된 바이러스 이름을 찾으면 된다... 고 하는데 바이러스가 있어서인지 덤프된 파일을 찾을 수가 없다...

 

일단 플래그는

XtremeRAT

 

 

#4

공격자의 악성코드는 프로세스 인젝션을 사용하는 것으로 보인다. 악성코드에 인젝션된 프로세스의 PID는 무엇인가?
KEY Format: 100

 

프로세스 인젝션은 공격자가 신뢰할 수 없는 프로세스를 프로그램에 주입하는 공격이다.

 

 

아까 imageinfo 플러그인으로 얻은 프로필과 pstree 플러그인을 이용해 프로세스를 확인한다.

 

원래 iexplore.exe 와 같은 사용자 응용 프로그램은 explore.exe 밑으로 실행되는데 독자적인 explore.exe 프로세스가 발견되는 것이 수상하다.

 

저기 아래에서 세번째 pid, ppid, thds 가 각각 2996, 2984, 6 인 녀석 말이다.

 

pid는 2996.

 

 

#5

재부팅 후에도 지속성을 유지하기 위해 멀웨어가 사용하고 있는 레지스트리 Key의 이름은 무엇인가?

 

재부팅 후에도 지속성을 유지하는 레지스트리 키는 Microsoft\Windows\CurrentVersion\Run 레지스트리이다.

Volatility의 printkey 플러그인을 이용하면 Microsoft\Windows\CurrentVersion\Run 레지스트리 하위에 존재하는 레지스트리 Key가 나온다.

 

 

VMware User Process, MrRobot 2개의 레지스트리 키가 나오는데, 멀웨어가 사용하는 key는 MrRobot 이다.

 

MrRobot

 

 

#6

멀웨어가 C&C 서버에 재인증시 사용하는 비밀번호는 무엇인가?
KEY Format: Password1234

 

 

#5번에서 찾은 pid가 2996인 프로세스를 memdump 플러그인으로 덤프해보겠다.

-p 옵션으로 pid를 지정해주고, -D 옵션으로 저장할 위치를 설정해준다.

 

 

strings로 dmp를 txt로 변환해주고 txt 파일을 열어준다.

 

 

다행히 이번엔 깨지지 않았다.

#5에서의 레지스트리 키인 MrRobot을 Ctrl + F를 이용해 검색했다.

Password1234 형식의 문자열인 GrrCon2015가 나온다.

 

GrrCon2015