[HackThisSite.org] Forensic 2 문제풀이

사진 1 : 기계번역(bing) 전문

문제 내용을 정리하자면 어떤 의뢰인이 다른 사람과 바람을 피운 혐의로 기소가 되었다고 한다.

다른 여성과 같이 찍은 사진이 증거로 제출되었는데 의뢰인은 해당사진은 셀카였으며 해당 사진이 합성되었다고 주장하는 중이다.

해당사진이 합성사진인 것을 증명하면 되는 문제로 추정된다.

문제에는 저렇게 쓰여 있어도 스테가노그래피일 가능성이 있어서 우선 스테가노그래피인지 확인해보았다.

사진 2 : gimp 색감,레벨 기타 등 변형 사진

gimp를 이용하여 색상 레벨도 바꿔보고 채도도 바꾸어 봤는데 플래그는 보이지 않았다.

푸터 뒤에 문자로 존재하는 경우도 종종 있기에 winhex로 바이너리 값을 보기로 하였다.

사진 3 : 포토샵 사용흔적

숨겨진 메시지는 발견하지 못하였으나 해당 사진이 어도비 포토샵을 사용한 흔적은 발견 할 수 있었다.

하지만 저 문자열만으로는 해당 사진이 포토샵으로 단순 보정을 했는지, 합성을 했는지 할 수는 없다.

어떻게 하면 합성 사진으로 증명 할 수 있을지 구글링을 하던 중 jpg와 같은 손실 압축 사진 파일들은 ELA(Error Level Analysis) 분석을 통하여 사진의 합성 유무를 확인 할 수 있다는 것을 알게 되었다.

ELA(Error Level Analysis) 분석으로 압축수준이 다른 정도를 확인 할 수 있는데 압축수준이 특정 한곳만 지나치게 다른 경우에는 합성 사진일 가능성이 높다.

ELA 분석을 해주는 소프트웨어도 있고 웹사이트도 있는데 필자는 https://29a.ch/photo-forensics/#error-level-analysis 에서 진행하였다.

사진 4 : ELA 분석 사진

ELA 분석을 한 결과 여성쪽만 균일하지 않게 노이즈가 발생하는 것을 확인 할 수 있다.

이것으로 해당 사진이 합성 사진임을 증명 할 수 있게 되었고 좌상단에 flag로 추정되는 문자열도 얻을 수 있다.

사진 5 : 클리어!

플래그 값이 ELA4LIFE!! 인지 ELAALIFE!! 인지 해상도가 낮아 구별이 안되는 작은 이슈가 있는데, 그냥 둘다 제출해보니 ELA4LIFE!!가 플래그였다.

[HackThisSite.org] Forensic 1 문제풀이

사진 1 : 문제전문(bing기계번역 버전)

기계번역 된 문장들을 정리해보자면 최근에 전 직원과 마찰이 있었는데 그가 USB에 있는 파일을 날려버렸고 파일 복구를 하기 위해 USB 이미징을 진행한듯 하다.

이미징 파일을 받아서 USB안에 있는 암호파일을 구하면 되는 문제인 것으로 추정된다.

첨부파일을 받고 본격적으로 문제를 풀기전에 이미지 파일이 제대로 받아졌는지 무결성 검사를 진행한다.

사진 2: 무결성 검사

해쉬값이 문제에 적힌 값과 같아서 바로 문제 풀이에 들어갔다.

압축을 풀면 image.dd 파일이 나오는데 해당 파일을 ftk imager로 불러와준다.

사진3 : Trash-1000 폴더

.Trash-1000 폴더(휴지통 폴더) 안으로 들어간 후 expunged 폴더로 들어가면 삭제된 파일 리스트들이 나온다.

파일을 둘러보면 고양이 사진, 산맥 사진 등등 평범한 사진들이 대부분인데 딱 한폴더가 수상하게 선정성(?)이 높은 사진 한장과 압축파일 들어 있다.

사진4 : 수상한(?) 폴더

해당 폴더에 있는 압축파일을 풀면 flag가 나올 것 같았으나… 압축파일이 암호로 잠겨있다…

사진 5 : 암호화된 압축파일

어디에 암호가 숨겨져 있는지 폴더를 이리저리 뒤져가며 확인하던 중 음성 파일과 pdf문서, docx 문서들을 발견했다.

사진 6 : 문서&음성 파일 리스트

voicemail 1.wav 파일을 실행시켜서 소리를 들어보면 8초 정도의 짧은 대화가 나온다.

대화 내용을 해석하자면 핸드폰 번호로 어떤 파일의 암호를 해제 할 수 있는다는 내용 같았다.

여러 문서들을 살펴보던 중 Termination – Allen Smith.docx 해당 파일에서 핸드폰 번호를 찾을 수 있었다.

사진 7 : 휴대폰 번호

핸드폰 번호를 압축파일에 넣었는데 압축이 안풀렸다…. 혹시나 싶어서 -를 빼고 다시 해보니 압축이 풀렸다!

압축을 풀면 flag값이 적힌 docx파일을 확인 할 수 있다! 플래그를 제출하면 끝!

사진 8 : flag
사진 9 : 클리어!

윈도우 계열 OS에서 디스크 쓰기 방지 설정(레지스트리)

디지털 포렌식 5대 원칙 중 하나인 무결성을 유지하면서 디지털 포렌식을 진행하려면 디스크 쓰기 방지 조치를 해야한다.

이번 글에서는 레지스트리를 편집하여 논리적으로 디스크 쓰기 방지 설정하는 방법을 작성하였다.

레지스트리 편집

Win + r -> regedit 입력 후 엔터

아래 레지스트리 주소로 들어간다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

만약 해당 경로가 존재 하지 않을 경우 Control에서 우클릭 -> 새로만들기 -> 키 -> StorageDevicePolicies 입력을 하여 경로를 만들어 준다.

해당 주소에 들어온 후 우클릭 -> 새로만들기 -> DWORD(32비트) 값 -> WriteProtect 생성

단위는 16진수로 설정 , 값 데이터가 0일 경우 쓰기 가능, 1일 경우 쓰기 불가

위 설정을 1로 변경하고 평범한 방식으로 증거 매체를 수정 하려면 쓰기 금지가 되어 무결성 확보 할 수 있다.

다만, winhex 등 16진수 편집기를 이용하여 수정을 시도 할 경우는 수정이 가능하기에 논리적인 쓰기 방지 기능은 증거 매체 이미징용 으로만 사용할 것을 권장한다.

만약 불가피하게 원본으로 작업을 해야하는 상황에서는 쓰기 방지 장치 하드웨어를 사용하여야 무결성을 보장 할 수 있다.

MP4 파일 구조 정리 (1)

MP4(MPEG-4 part 14)

비디오 및 오디오 스트림을 저장하는 동영상 포맷이며, ISOBMFF(ISO Base Media File Format)으로 정의된다.

ISOBMFF

  • ISO가 개발
  • 포맷 종류 : Media Container
  • QuickTime(.Mov)로 부터 확장
  • ISOBMFF의 대표적인 확장 포맷 (mp4, 3gp, 3g2, mj2, dub, dcf …..)

MP4 파일은 3가지의 구조적인 특징을 가진다.

logical structure (논리적 구조) : 시간과 관련된 병렬적인 트랙(audio, video)로 구성됨

time structure (시간적 구조): 각 track은 시간에 따른 sample sequence로 이루어짐

physical structure (물리적 구조) : 모든 데이터는 box라 불리는 형태로 저장됨


MP4 파일 아키텍쳐 구조

사진 1 : 대략적인 mp4 파일 구조

file

  • moive 트랙에 시간 데이터를 저장
  • time과 관련 없는 데이터를 저장
  • 간혹 위 두 가지 모두를 저장 할 때도 있다
  • 동기와를 위한 common timeline을 정의

Track

  • 특정 미디어 유형(코덱)에 해당
  • 단일 디코더에 연결되어 있음 (확장 가능 한 코덱 제외)
  • 다른 트랙에 연결 하거나 그룹화 또는 다른 트랙으로 대체 가능
  • item에 있는 untimed data와 관련이 있을 수 있음
  • 암호화 될 수 있음
  • sample로 분해됨

Sample

  • 지정된 시간 (DTS, CTS)에 디코더가 사용하는 연속데이터를 나타냄
  • 속성(크기,위치,랜덤 엑세스, 디코더 configuration)가 저장되어 있다.
  • Sub-Sample의 관점에서 표현 될 수도 있다.
  • Sample Group 내의 다른 비슷한 Sample과 연관이 있을 수도 있다.
  • 샘플별 보조 정보가 존재 할 수도 있다.

Item

  • Movie 전체에 대해 사용되는 Data를 나타냄
  • Type, Position, size 등과 같은 속성을 가짐
  • 암호화 되어있거나, 압축화 되어있어서 확인이 어려울 수 있음

physical structure (물리적 구조)

MP4 파일에서 모든 데이터는 Box(박스)라고 불리는 구조로 저장되어 있다. 각 박스는 length, type(4바이트), Version, flag, data를 저장한다.

사진 2. 박스 구조도

Extensible format(확장 형식)

  • 잘 알려지지 않은 Box는 생략 할 수 있다.
  • Header 정보는 Box의 계층 구조이다.
  • Media data는 Header와 동일한 파일 Box(주로 ‘mdat’ 또는 ‘idat’)에 구조화되지 않고 저장되거나 별도의 파일에 저장 될 수 있다.

MP4 파일의 일반적인 구조

위에서 소개한 여러 Box들이 모여 MP4 파일은 계층적 구조를 가진다.

사진 3. mp4 Box tree

FTYP

  • filetype의 약자로, i per file, File type, File version, 다른 ISO file 과의 호환성을 알려주는 박스

Moov(moive)

  • Presentaion(표현)과 관련된 MetaDate를 위한 Unique Container (고유 컨테이너)

mvhd(moive Hedear) : movie에 대한 일반적인 정보를 가진 박스

trak(track) : 하나의 steam과 연관된 metadata container

tkhd(track header) : track에 대한 전반적인 정보를 가지고 있는 박스

mdia(media information) : track안의 media imformation에 대한 container

mdhd(media header) : media에 대한 전반적인 정보를 가지고 있음

minf(media information container) : 미디어 정보 컨테이너

vmhd(video media header) : 비디오 미디어 헤더 박스

dinf/dref(Data information/Data Reference) : data의 위치를 나타내는 박스

stbl(Sample Table) : Sample과 관련된 Meta 데이터를 가짐

stsd(sample Description) : Sample Decoder configuration 정보

stts(time to sample) : 샘플의 시간 정보

ctts(composition time to sample) : 샘플링 시간

stsc(sample to chkunk) : partial data-offset information (파티션 데이터 오프셋 정보)

hdlr(Handler) : stream의 타입을 의미

tref(track reference container) : 추적 참조 컨테이너

mdat(media Data) : media data를 가지는 박스


아래에 첨부된 온라인 mp4 parser 도구를 이용하면 위에서 설명한 것과 유사한 파일 구조를 볼 수 있다.

사진4. 분석 사진

다음 2편에서는 각 박스들의 16진수 값들에 대해 작성해보기로 마음 먹으며 글을 마친다.

참고문헌 :

MPEG-4 파일의 구조 개괄 :: 개똥이야기 (tistory.com)

[MP4] 분석 하기 | MPEG-4 파트 14 | MP4Box 설치 (tistory.com)

MP4 파일 구조 – Studying Programming (revol300.github.io)

mp4파일 시스템 구조, mp4파일 구조 : 네이버 블로그 (naver.com)

mp4파일 시스템 구조, mp4파일 구조 : 네이버 블로그 (naver.com)

비디오 – Digital Forensic Wikipedia (korea.ac.kr)

MP4 file format – Wikipedia

사용된 도구

Online Mp4 Parser

첨부파일

X-ways imager 구매 후기 (25-05-29 내용 추가)

분석해야하는 장비가 여러 이유로 포렌식 연구실이 아닌 다른 장소에서 디스크 이미지를 만들어야하는 상황이 종종 있다. 예를 들면 천장이나 벽 등에 매립되어있는 PC나 운송이 불가능 할 정도로 큰 서버를 분석해야하는 경우가 종종 발생한다.

이런 상황에서 이미지 하나를 만들기 위해 분실 위험을 감수하면서 약 600만원의 X-Ways Forensics을 들고 가기에는 많이 부담된다.

X-Ways imager는 이러한 상황에서 연구실 외 장소에서 부담없이 이미지를 할 수 있도록 이미징외 모든 기능을 빼고 제작한 도구이다

사진 1. 실행 화면

X-Ways imager는 1년 이용버전 12만원, 영구이용버전은 30만원에 구매 할 수 있다.

개인적인 평가를 하자면 같은 회사에서 나온 X-Ways Forensics, WinHex와는 달리 X-Ways Imager는 별로 였다.

X-Ways imager는 무료 도구인 FTK imager에도 있는 간단한 이미지 파일 분석이나 브라우징 기능,삭제된 파일 확인 등 부가적인 기능이 전무하고 딱 이미지 생성 기능만 존재하였다.

장점을 뽑으라 한다면 FTK imager(130MB) 이미징 툴은 몇 백메가의 용량을 자랑하는 방면, X-Ways imager는 47MB의 가벼운 용량을 가졌고, 램과 cpu도 다른 툴에 비해 적게 먹었다.

또 프로그램 자체가 가벼워서 다른 이미징 프로그램보다 약간 더 빠르게 이미징이 가능했다.

정리하자면 X-Ways imager는 이미징 말고는 아무런 기능이 없으므로 연구실 이외의 장소에서 이미징을 해야하는 사람이 아닌 디지털 포렌식을 공부하려는 학생들은 구매하는 것을 비추천한다.

학생들은 괜한 모험심이 들어서 돈 낭비 하지 말고 무료 도구인 FTK imager를 이용하는 것을 권장한다.

WinHex personal 구매 방법 & 후기

디지털 포렌식을 공부 할 때 파일을 Hex로 보기 위해 무료 도구인 HxD를 주로 사용하였다.

HxD로도 만족하였으나, 편리한 기능이 적어서 CTF 등 시간이 제한된 특수한 상황에서 여러가지 삽질들을(스테가노그래피, 파일시스템 복구 등등) 100% 수동으로 해야 해서 시간을 많이 잡아먹는 단점이 있었다.

이러한 단점을 해소하고자 큰 마음을 먹고 WinHex를 구매하게 되었다.

구매하는 방법은 (https://www.x-ways.net/order.html)에 방문해서 해외직구로 쇼핑 하듯 자신이 원하는 라이센스를 고르고 주소와 카드번호를 넣고 결제하면 된다.

필자는 personal license, perpetual 53,000원 라이센스를 구매하였다(카드 수수료 등이 포함되어 실구매가는 6만원이였다.)

그럼 약 5분 뒤 6줄로 되어있는 라이센스 키가 메일로 온다.

winhex를 다운 받은 뒤 Help -> register -> 6줄 라이센스 키 입력-> OK 순서대로하면 정품 인증이 완료된다.

winhex는 프로그램에 제 이름과 집주소도 적어주는게 마음에 들었다.

당분간 여러 기능들을 이리저리 써보면서 CTF에서 어떻게 활용할지 연구해봐야겠다