두번째 네트워크 포렌식 문제이다.
제목에 Netfilx가 들어가는데, 넷플릭스랑 무슨 상관이 있는지는 잘 모르겠다.
netflix-and-ctf.pcap 라는 이름의 패킷파일이 주어진다.
Wireshark로 pcap 파일을 열어볼 수 있다.
첫번째 문제와 다르게 이번 패킷파일은 패킷 수가 2802개로 조금 많다.
어쩔수 없이 코딩을 해야할 듯 하다.
패킷파일은 10.10.100.139와 10.10.100.124 간에 오고가는 웹 패킷을 보여준다.
POST 메소드를 이용해서 /search/browse 페이지와 /keypress/Lit_* 페이지를 요청한다.
keypress 요청 부분을 자세히 보면 Lit_T, Lit_r, Lit_e 이런식으로 맨 끝에있는 문자가 계속 바뀌는데,
아마도 이건 키보드에서 T, r, e를 눌렀다는 의미인듯 하다.
패킷을 자세히 보기위해서 맨 위에있는 패킷에서 마우스 오른쪽을 누르고
Follow - HTTP Stream 을 눌러본다.
그러면 이렇게 가독성 있게 패킷이 출력이된다.
빨간색은 요청 패킷, 파란색은 응답 패킷이다.
POST 메소드로 무언가를 전송했지만, 안에 실질적인 데이터는 없다.
URL(/keypress/Lit_*) 만 보고 문제를 풀어야할 듯 하다.
일단 데이터를 추출하기 위해서 tshark를 이용한다.
tshark는 Wireshark의 커맨드라인 버전이라고 생각하면 된다.
shark는 칼리 리눅스를 설치하면 안에 내장되어 있다.(https://hackingstudypad.tistory.com/58)
tshark 명령어로 실행 가능하며
-r 옵션으로 불러올 패킷 파일을 지정해준다.
-T 옵션은 텍스트 출력형식을 지정하는데 fields 형식으로 지정해준다.
-e 옵션은 표시하고자 하는 필드를 지정할 수 있다. -T 옵션과 같이 쓰이는데 text 필드를 지정했다.
필드이름은 Wireshark에서 확인할 수 있다.
추출하고 싶은 부분을 선택하면, 프로그램 맨 아래쪽에 저런식으로 필드명이 출력된다.
패킷 갯수가 2802개로 많으니 출력값을 라다이렉션을 통해 data라는 이름의 파일로 저장한다.
그러면 data파일에 이렇게 출력값들이 저장되게 된다.
이제부터 본격적으로 코딩을 해야한다.
f = open('data', 'r')
string = ''
for i in range(1,706):
line = f.readline()
if 'keypress' in line:
line = line
if '%7B' in line:
string += '{'
elif '%7D' in line:
string += '}'
else:
string += line[30:31]
print(string)
먼저 open으로 data 파일을 읽기속성(r)로 읽어준다.
f.readline()으로 한줄씩 읽어서 line 변수에 저장한다.
URL은 /search/browse 와 /keypress/Lit_* 두가지 종류가 있는데
/search/browse는 필요없으므로, line 변수에 keypress가 들어있는 경우만 분석한다.
Lit_* 에서 * 부분에는 a, b, c, e 같은 알파벳만 있는게 아니라 %7B, %7D도 들어있는데
이건 URL 인코딩으로 {, } 기호를 의미한다. 적당히 기호로 바꿔 준 뒤에
마지막으로 원하는 부분(알파벳)만 출력하기 위해 line[30:31]로 글자를 잘라준다.
해당 코드를 실행시키면 이렇게 기다란 문자열이 완성되어서 출력되는데,
그 사이에 보면 플래그를 찾을 수 있다.
Time is the ultimate currency "시간은 궁극의 화폐다" 라는 뜻인데
일론 머스크가 트위터에서 언급했다고 한다.
(문제랑 무슨 관련인지는 모르겠다.)
'CTF > 포렌식' 카테고리의 다른 글
[Space Heroes CTF] Buzz's Secret Watch (Part 1) - 포렌식 / Binary (56) | 2022.04.08 |
---|---|
[Space Heroes CTF] Future Stego - 포렌식 / 스테가노그래피 / steghide (40) | 2022.04.07 |
[Space Heroes CTF] Star Pcap - 포렌식 / Wireshark (48) | 2022.04.06 |
[AUCTF] Animal Crossing - 포렌식 / Wireshark / Tshark (24) | 2022.04.05 |
[AUCTF] Zippy - 포렌식 / John the Ripper / Rock You (34) | 2022.04.02 |