#About


President's cat was kidnapped by separatists. A suspect carring a USB key has been arrested. Berthier, once again, up to you to analyze this key and find out in which city the cat is retained!


The md5sum of the archive is edf2f1aaef605c308561888079e7f7f7. Input the city name in lowercase.




#Solution


[그림 1] - 문제 파일 확인


문제로부터 제공받은 파일은 128MB이며 아래와 같이 디스크 파일임을 알 수 있고 이는, 지문에서도 USB라고 언급되어 있다 


[그림 2] - 파일 확인


디스크 파일을 분석하기 위해 아래와 같이 FTK Imager로 chall9 파일을 아래와 같이 열어주었다


[그림 3] - FTK Imager를 통한 디스크 파일 오픈


FTK Imager를 통해 디스크 파일을 열람한 결과, 해당 USB는 파일시스템으로 FAT32를 가지고 있었고, 


디렉터리 확인 결과 몇개의 pdf와 doc, hwp 파일을 확인했지만 문제에서 요구하는 키 값을 확인할 수 없었고


비할당역에서의 파일을 살펴보던 중 아래와 같이 50 4B 03 04 즉, 압축 파일을 의미하는 시그니처를 확인할 수 있었다


[그림 4] - 비할당영역에서의 압축 파일 확인


그 후, FTK Imager로부터 해당 파일을 추출 했고 확장자를 zip으로 설정해준 뒤 폴더들을 살펴 보았더니 아래와 같은 사진을 확인할 수 있었다


[그림 5] - Pictures 폴더 내 의심스러운 jpg 확인


고양이가 주인을 쳐다보는 눈빛에서도 알 수 있듯 매우 심상찮은 파일임을 느끼고 메타 데이터가 기록되어있나 확인 해보았다


[그림 6] - 메타 데이터 확인


확인 결과 해당 jpg 파일은 I-PHONE 4S 기종에서 생성 된 파일이며 파일이 생성 될 당시의 GPS 정보를 확인할 수 있었다


하지만 윈도우에서 제공하는 정보를 해석에 어려움이 있어 jpg 파일의 메타데이터를 분석해주는 사이트를 이용, 아래와 같은 결과를 얻을 수 있었다 


[그림 7] - JPG 분석 온라인 웹 사이트를 통한 보다 자세한 메타 데이터 확인


카메라 기종, 파일 생성 시간 등 이외에도 보다 많은 정보를 확인할 수 있었고, 가장 중요한 GPS 정보 또한 올바른 값으로 확인할 수 있었다


주어진 위도와 경도 값을 기반으로 위치를 확인해보았더니 문제에서 요구하는 도시의 이름을 확인할 수 있었다


[그림 8] - 문제에서 요구하는 city name 확인


인증키 = helfrantzkirch



#About


Berthier, befroe denying any traffic on the firewall, in order to be sure to drop all communications and perhaps find out other infected computers. We wnat to be sure that we knows all C&C.


The validation password is a fully qualified domain name : host.domaine.tld


Here we are, reverse this malware !


The uncompressed memory dump md5 hash is e3a902d4d44e0f7bd9cb29865e0a15de

NB : This challenge require the clearance of the level 3.




#Solution


[그림 1] - 문제 파일 확인


주어진 메모리 덤프 파일은 512MB이며 이를 분석하기 위해 먼저 운영체제 정보를 확인해 보았다.


[그림 2] - 운영체제 정보 확인


Suggested Profile 필드를 통해 인자로 전달할 값을 확인했고, 가장 먼저 아래와 같이 프로세스를 살펴보았다


[그림 3] - 악성 프로세스 확인


살펴 본 결과, explorer.exe 하위에서 동작해야 할 cmd.exe가 iexplore.exe의 하위로 동작하고 있음을 통해 iexplore.exe가 


악성프로세스일 가능성이 높을 거라 판단, 메모리로부터 PID 값 2772를 가지는 해당 프로세스를 아래와 같이 추출해냈다


[그림 4] - 메모리로에 상주하던 악성 프로세스 추출


추출 후, 악성의 유무를 확인하기 위하여 바이러스 토탈을 이용, 49개의 백신사에서 악성임을 나타냈다


[그림 5] - 바이러스토탈을 이용한 프로그램의 악성 유무 확인


또한 비교 분석을 위해 HYBRID-ANALYSIS로 분석 결과, 아래와 같이 문제에서 요구하는 해커의 C&C서버를 확인할 수 있었다


[그림 6] - DNS Request Query 확인


인증키 = th1sis.l1k3aK3y.org


실제로, 악성코드 실행 후 와이어샤크를 통해 DNS 요청 쿼리를 확인하면 위와 같이 해커의 C&C 서버의 도메인을 확인할 수 있다.



'Wargame' 카테고리의 다른 글

[FEDORA CORE 3] Gate > Iron_golem  (0) 2017.12.17
[DISK] Root Me > Find the cat  (0) 2017.12.14
[REV] 2017 TUCTF > Funmail  (0) 2017.12.14
[MEMORY] Root Me > Command & Control level 5  (0) 2017.12.13
[MEMORY] Root Me > Command & Control level 4  (0) 2017.12.13

#About


One of our employees has locked himself out of his account. can you help 'john galt' recover his password? And no snooping around his emails you hear.




#Solution


[그림 1] - 문제 파일 확인


문제로부터 받은 파일이며, 아래에서 확인할 수 있듯 ELF 32bit 바이너리 파일이였다


[그림 2] - ELF 32-bit 확인


IDA로 디컴파일 한 후 아래와 같이 메인함수를 살펴 보았으나 별 다른 특징을 가지는 코드를 찾을 수 없었다


[그림 3] - 디컴파일을 통한 main 함수 확인


하지만 함수 목록 주변에 위에서 찾아 볼 수 있듯 printFlag라는 함수가 있었고 해당 함수를 이루는 코드는 아래와 같다


[그림 4] - printFlag 함수 확인


위 함수는 주어진 "z2vb7m223dX4v7wvb3rX0f7v|T@WO@"라는 스트링 값을 단순히 7과 xor 연산 및 rot13 과정을 거쳐 배열에 담기게 되며 


그 후, 반복문을 통해 배열에 담긴 값의 순서를 뒤집는다. 


# -*- coding:utf-8 -*-
import codecs

ciphertext = "z2vb7m223dX4v7wvb3rX0f7v|T@WO@"
plaintext = ''
arr = ''

for i in range(len(ciphertext)):
arr += chr(ord(ciphertext[i]) ^ 7)

arr = codecs.encode(arr, 'rot_13')

for i in range(len(arr)):
plaintext +=arr[len(arr) -i -1]

print "\nFLAG = {}".format(plaintext)

간단한 파이썬 스크립트이며 실행시 아래와 같이 FLAG 값을 확인할 수 있다


[그림 5] - FLAG 값 확인




+ Recent posts