일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- PYTHON
- 안드로이드 #서비스 #안드로이스 서비스 #Android #java
- 안드로이드 #스레드 #핸들러 #예제
- 포렌식
- Forensic CTF #disk Forensic #windows file analyzer #WFA #Codegate 2012 F100
- 객체
- 코딩
- It
- snedmail #linux #정보보안기사 #정보보안산업기사 #mail protocol
- #정보보안 #어셈블리 #저급언어 #기계어 #it #정보보안
- EnCase #mount #Forensic #image mount
- forensic
- 디지털포렌식 연구회 워크샵 #디지털포렌식 #디지털포렌식챌린지 #Forensic #ctf #정보보호학회
- evm
- 디지털 포렌식
- 탈중화
- 정보보안기사 #정보보안산업기사 #2020년 정보보안기사 #시험일정
- 메소드
- Injection #Reflected #웹취약점
- Forensic #CTF #디지털포렌식 #disk forensic
- 자바
- 정보보안기사 #정보보안산업기사 #클라우드컴퓨팅 #보안 #컴퓨팅보안
- 프로그래밍
- java
- HTML Injection #bWAPP
- 디지털포렌식챌린지 #dfchallenge #디지털포렌식 #Forensic
- 파이썬
- 파일 접근 권한 #linux #chown #chmond #umask #명령어
- 비박스 #웹취약점분석 #버그바운티 #bee-box #웹 #모의해킹
- CIDR #서브넷 #Network #ip 주소고갈
- Today
- Total
Jsecurity
ASIS Quals CTF 2015 : Broken Heart 본문
문제: 파일에서 플래그를 찾아라
※ 문제파일
※ 풀이
①. 어떤 유형의 파일인지 확인하기
[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 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
https://xmgv.wordpress.com/2015/05/11/asis-ctf-quals-2015-broken-heart/
http://iwasi.hatenablog.jp/entry/2015/05/13/021126
'포렌식 > CTF' 카테고리의 다른 글
Codegate 2012 F100 : Disk Forensic (0) | 2019.11.16 |
---|---|
ASIS Quals CTF : 파일에서 플래그를 찾아라. (0) | 2019.11.11 |
ASIS Quals CTF : 하늘은 왜 푸른색입니까? (2) | 2019.10.19 |