관리 메뉴

Jsecurity

ASIS Quals CTF 2015 : Broken Heart 본문

포렌식/CTF

ASIS Quals CTF 2015 : Broken Heart

Great king 2019. 6. 28. 00:21

문제: 파일에서 플래그를 찾아라

 

※ 문제파일

myheart_7cb6daec0c45b566b9584f98642a7123
2.31MB


※ 풀이

①. 어떤 유형의 파일인지 확인하기

    [root@localhost Desktop]$ file myheart_7cb6daec0c45b566b9584f98642a7123

 

②. 파일명 변경하기

    [root@localhost Desktop]$ mv myheart_7cb6daec0c45b566b9584f98642a7123 

myheart_7cb6daec0c45b566b9584f98642a7123.xz

 

③. xz파일 압축 풀기

    [root@localhost Desktop]$ unxz myheart_7cb6daec0c45b566b9584f98642a7123.xz

 

짠! 하고 압축이 풀렸다!

이거또한 파일의 종류를 알 수 없기때문에 찾아보자

 

파일 확장자는 패킷파일인 pcap 이다.

 

패킷중 11번째 패킷을 보면 LoiRLUoq 파일을 요청한 흔적이 있다.

해당 패킷을 클릭하고 [마우스 우클릭]-[Follow TCP Stream] 을 선택해서 헤더 정보를 분석한다.

 

TCP Stream

- TCP Stream 0번을 보면 클라이언트가 서버에 GET 방식으로 LoiRLUoq 파일을 요청하는데 서버의 응답을 확인하면 HTTP 상태 코드가 206 - Partial Content이다. 이 코드는 요청한 파일의 일부분만을 보낼 때 사용된다. 

 

- 어떠한 파일을 요청할 때 한 번에 데이터를 다 보내는 것이 아니라 조금씩 너눠서 전송하게 되고 (단편화) 그것들을 카빙하면 요청했던 파일이 될 것이다.

 

- 헤더 중 Content-Range 항목이 존재하는데 이는 요청받은 파일의 오프셋 범위를 나타낸다. 나눠진 파일들은 파일의 첫 부분부터 순차적으로 요청 되는 것이 아니라 랜덤하게 요청되기 때문에 파일을 합칠때 오프셋 범위를 기준으로 순차적 정렬 후 합쳐야 한다.

 

 

# HTTP 요청을 보면 이름 LoiRLUoq이 지정된 파일 이 요청되어 여러 부분으로 전송 된 것을 볼 수 있습니다.

명령: tshark -r myheart_7cb6daec0c45b566b9584f98642a7123 'http'

 

# tcpflow 명령어를 이용해서 추출하기

# Content-Range는 각 HTTP Response  필드를보고 전송 된 파일의 크기와 전송 된 범위를 확인

명령어: for i in 087.107.124.013.00080-192.168.221.128.54*; do strings -a "$i" | grep "Content-Range"; done | tr '/-' ' ' | sort -nk4

 

# 데이터 카빙을 위한 파이썬 reassembler.py 만들기

 

# 데이터 카빙 

명령어: for i in 087.107.124.013.00080-192.168.221.128.54*; do python2.7 reassembler.py "$i" tcpstream; done

 

# 카빙된 파일 tcpstream 파일 HxD로 불러오기

-복구된 파일을 보면 특이하게 헤더 시그니처가 HDR로 시작한다. 파일 중에 헤더 시그니처가 HDR 문자열을 갖는 경우는 없다.

 

- 위의 내용을 보면 첫 번째 오프셋부터 13Byte가 잘렸단 사실을 알 수 있다. 그렇기 때문에 파일의 헤더에 시그니처를 추가하고 확장자를 추가 한다.

 

시그니처: 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49

최종적으로 생성된 tcpstream 파일헤더에 아래 13바이트 헤더 추가 후 확장자 jsp 추가


# Flag ! 

Flag: ASIS{8bffe21e084db147b32aa850bc65eb16}


 

[풀이자료]

https://github.com/ctfs/write-ups-2015/tree/master/asis-quals-ctf-2015/forensic/broken-heart

 

ctfs/write-ups-2015

Wiki-like CTF write-ups repository, maintained by the community. 2015 - ctfs/write-ups-2015

github.com

https://xmgv.wordpress.com/2015/05/11/asis-ctf-quals-2015-broken-heart/

 

ASIS CTF Quals 2015: Broken Heart

This is a write up for the first ASIS CTF 2015 Quals forensics challenge. It was worth 100 points and consisted in recovering a broken image. We start by uncompressing the XZ compressed file. The r…

xmgv.wordpress.com

http://iwasi.hatenablog.jp/entry/2015/05/13/021126

 

ASIS CTF Quals 2015 writeup - iwasiblog

先日のasis ctfに参加したので、1問だけですがwriteupを。

iwasi.hatenablog.jp

 

Comments