SH1R0_HACKER
우리의 제일 귀여운... (난이도 : ★★★☆☆) 본문
[ 문제 ]
[ 풀이 ]
stego.pcap 파일을 와이어샤크로 열었습니다.
패킷들을 보면 클라이언트가 message.png 파일을 서버로 요청한 기록이 있습니다.
Follow TCP Stream 을 이용하여 데이터를 보면 message.png를 다운로드 한 기록이 있다는것을 확인할 수 있습니다.
해당 png파일을 다운로드하기 위해 Show data as 를 Raw로 변경해주고
하단에 있는 Save as... 버튼을 클릭하여 png 파일로 저장해줍니다.
그러나 사진을 열 수 없었습니다.
스트림을 저장할 때 PNG 파일에 필요한 정보 이외에
위와 같은 것이 함께 저장되어서 이미지 파일을 열 수 없습니다.
헥스에디터로 파일을 열어서 PNG 헤더 시그니처인
89 50 4E 47 0D 0A 1A 0A
부분을 제외하고 위에 쓸데없는 부분을 모두 삭제합니다.
수락 버튼을 클릭하면 다음과 같이 수정됩니다.
저장한 후 파일을 보면
정상적으로 복구된 파일을 볼 수 있습니다.
하지만 이 파일에서도 특별한 정보는 찾을 수 없었습니다.
스테가노그래피, 이미지 포렌식 (히든픽셀 등) 다양한 방법을 시도해 보았으나 별다른 성과가 없었습니다.
이렇게 삽질을 하던 도중 Urgent Pointer 라는 것을 알게 되었고
tshark 를 이용하여 Urgent Pointer 값들 중에서 0을 제외한 값들을 추출했습니다.
이 값들을 아스키코드에 매칭되는 문자열로 변환해주면
플래그를 찾을 수 있습니다.
KEY : CTF{And_You_Thought_It_Was_In_The_Picture}
[ Urgent Pointer ]
Urgent Pointer을 알기 위해서는 먼저 TCP 헤더구조에 대해 알아야 합니다.
[tshark]
Urgent Pointer 값들 중에서 0을 제외한 값들을 추출할 때 사용한 명령어 입니다.
tshark -r stego.pcap -T fields -e tcp.urgent_pointer | egrep -vi "^0$"
Usage : tshark [options] ...
RPCAP options (Input file) :
-r <infile>
set the filename to read from (-to read from stdin)
output :
-T pdml|ps|psml|text|fields
format of text output (def: text)
-e <field>
field to print if -Tfields selected (e.g. tcp.port, _ws.col.Info)
this option can be repeated to print multiple fields
[ grep 명령어 ]
egrep : grep의 확장판으로, 추가 정규표현식 메타문자들을 지원한다.
옵션 :
정규표현식 메타문자 :
'Capture the flag > Network Forensic' 카테고리의 다른 글
Sans Network Forensic [Puzzle 3] #1 (0) | 2021.02.09 |
---|---|
당신이 플래그를 찾을 수 있을까? (난이도 : ★☆☆☆☆) (0) | 2021.02.07 |
woodstock-1 (난이도 : ★☆☆☆☆) (0) | 2020.10.22 |