본문 바로가기

#Digital Forensic with CTF/CTF-d_Multimedia

CTF-d_Multimedia #5 플래그를 찾아라

반응형

출처) http://ctf-d.com/

 

[DigitalForensic] with CTF

 

ctf-d.com

[그림1. 5번 문제]

  • 주어진 파일은 dump1.raw.lzma이다. 
  • 파일을 보면 확장자가 두 개임을 알 수 있다문제에서 vol.py~~~ memdump를 쓴 걸 봐서 메모리 덤프임을 알 수 있다.

 

  • volatility툴은 Python 기반의 메모리 포렌식 툴로 시스템의 장애원인을 파악하고, 이상 프로세스의 행위분석을 한다.
  • 먼저 윈도우에서 설치를 하려면 https://www.volatilityfoundation.org/26
 

Volatility 2.6 Release

Volatility 2.6 - an advanced memory forensics framework

www.volatilityfoundation.org

  • 사이트에서 Volatility 2.6 Source Code (.zip)을 다운 받아 압축해제한다.
  • 파이썬은 2.7버전에서 구동하므로 버전 3은 삭제해야 한다.
  • 환경변수에서 path를 파이썬으로 설정해야한다.
  • volatility를 사용함에 있어서 오류를 최소화 하기 위해 distorm3, PIL, pycrypto를 설치해야 한다.

 

distorm3 설치

cmd---> "pip install distorm3" 입력

 

PIL 설치

cmd--> "pip install pillow" 입력

 

pycrpyto 설치

http://www.voidspace.org.uk/python/modules.shtml#pycrypto 하단에 PyCryto 2.6 for Python2.7 64bit를 다운받는다.

 

  • 설치가 완료되면 cmd창에서 vol.py가 있는 경로에서 vol.py -h를 입력해 정상작동되는지 확인한다.

 

  • 칼리리눅스에서 설치하려면 volatility 사용하기 위해 환경을 구축해야 한다.

$ sudo apt-get install git

$ git clone https://github.com/volatilityfoundation/volatility.git

$ cd volatility/

$ sudo python setup.py install

$ sudo apt-get install yara

$ sudo apt-get install python-pip

$ sudo -H pip install --upgrade pip

$ sudo -H pip install distorm3 pycrypto openpyxl Pillow

 

  • 위의 순서대로 입력하여 설치하면 된다. 만약 칼리리눅스 sudo apt-get update 오류 났다면

sudo nano /etc/apt/sources.list에서 기존 deb~ # 주석처리

deb http://ftp.harukasan.org/kali kali-rolling main non-free contrib

deb-src http://ftp.harukasan.org/kali kali-rolling main non-free contrib 적기

 

이렇게까지 하면 5번문제를 풀기에 적합한 환경을 갖추었다.

 

[그림2. lzma압축풀기]

  • 파일 확장자가 2개이므로 unlzma로 압축을 해제한다.

  • dump1.raw이미지 파일이 생성되었다.

 

 

[그림3. 메모리 파일 정보 확인]

  • vol.py -f dump1.raw imageinfo 명령어로 메모리 파일에 대한 profile 정보(운영체제)를 확인한다.

  • profile은 Win10x64이다.

  • 이제부터 volatility를 활용하기 위한 기본 문구는 "vol.py -f dump1.raw -- profile=Win10x64"이다.

  • 기본 문구 뒤에 plugin 명령어를 입력하여 정보를 알아낸다.

 

[그림4. plist]

  • vol.py -f dump1.raw --profile=Win10x64 pslist 은닉된 정보를 확인한다.

 

 

[그림5. plist(2)]

  • 힌트에서 pid 값 2012는 notepad.exe이고, 4092은 mspaint.exe로 그림판임을 알 수 있다.

 

[그림6. 메모리 덤프]

  • 해당 프로세스에 대한 메모리 덤프를 저장한다

 

 

[그림7. 4092 dmp]
[그림8. 2012 dmp]

  • 두 파일을 HxD로 열어보니 4092.dmp파일에 zoom slider라고 적혀 있는걸 볼 수 있다.

  • 4092.dmp파일을 4092.data파일로 저장하여 gimp2프로그램에서 열어보았다.

 

 

[그림8. gimp2]

  • 알 수 없는 이미지가 나왔고, 오프셋과 너비, 높이를 조정해보았다.

 

 

[그림9. 플래그]

 

  • offset은 4857023, width는 1093, height는 1000에서 플래그를 찾을 수 있었다.

  • 플래그 : CTF{HeRe_GoEs_thE_FLaG}

 

 

 

반응형