HDCON 2017 (예선) October (400 pts.)

주어진 패킷을 분석하여 플래그를 획득하시오.

문제 파일 (bighead_ha.zip)

pcap파일을 열어보면 DNS패킷만 가득하다. (203197개)

하지만 잘 살펴보면 url[데이터].arkham.gothamcity.org형태로 만들어서 DNS패킷으로 위장, 데이터를 통신하고 있다.

일단 긴것들만 base64 decode해봤더니 HTTP request정보가 나왔다.

그리고 DNS response에 있는 Answers부분의 데이터를 base64 decode해보니 HTTP resposne의 데이터를 얻을 수 있었다.

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
31
import os
import base64

def decode_base64(data):
missing_padding = len(data) % 4
if missing_padding != 0:
data += b'='* (4 - missing_padding)
return base64.decodestring(data)

os.system("""tshark -r bighead_ha.pcap -Y 'dns.qry.name matches "^zd"' -V > zd.txt""")

data = open('zd.txt').read()
datas = data.split('\n')

arr = []

d = ''
for data in datas:
if 'TXT:' in data:
d += data[17:]
if len(data) < 30:
arr.append(d[1:])
d = ''

result = ''
for a in arr:
result += decode_base64(a)[7:]

f = open('rar.rar', 'w')
f.write(result)
f.close()

의미 있는 데이터는 2개 정도 있었다. rar과 txt파일

Batman_The_Killing_Joke.rar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GET http://arkham.gothamcity.org/Batman_The_Killing_Joke.rar HTTP/1.1
Host: arkham.gothamcity.org
User-Agent: Mozillaj<B9>!j/5.0 (X11; Ubuntu; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://arkham.gotham

HTTP/1.1 200 OK
Date: Thu, 14 Sep 2017 10:59:02 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Thu, 07 Sep 2017 02:39:03 GMT
ETag: "193c384-558905d11a2e3"
Accept-Ranges: bytes
Content-Length: 26461060
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/rar

Rar!

smile.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GET http://arkham.gothamcity.org/smile.txt HTTP/1.1
Host: arkham.gothamcity.org
User-Agent: Mozilla/5.0 (X11; Ubuntu;j�!j Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;j�!jq=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://arkham.gothamcity.org/
Connection: Keep-Alive

HTTP/1.1 200 OK
Date: Thu, 14 Sep 2017 10:59:29 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Thu, 14 Sep 2017 06:39:00 GMT
ETag: "34-5592088187f6b"
Accept-Ranges: bytes
Content-Length: 52
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain

rar password is six lowercase alphabet
good luck ;)

rar 비밀번호가 영어 소문자 6자리라고한다.
비밀번호는 CUDA를 사용하는 cRaRk라는 툴을 사용해 batcar인걸 알아낼 수 있었다.

rar파일의 압축을 푸니 저작권이 의심되는 배트맨 만화 총 63장 이 존재했다.

이미지 이름도 수상하고 이미지 갯수도 많아서 뭘 어떻게 해야하는지 몰랐다.

결론은 저걸 하나하나 다 봐야 했다.

아무튼 저 63개의 이미지중 하나에 flag가 작게 적혀있었다.

Flag : J0ker_is_no7_R3dH00d!!

Share