CTF/포렌식

[AUCTF] Animal Crossing - 포렌식 / Wireshark / Tshark

SecurityMan 2022. 4. 5. 08:30

네트워크 패킷 포렌식 문제이다.

 

animalcrossing.pcapng 라는 이름의 패킷파일이 주어진다.

 

참고로 animalcrossing 은 동물의 숲의 영문판 이름이다.

 

이 대회당시에 동물의 숲이 엄청나게 유행이었는데, 문제랑은 무슨 관련이 있는진 잘 모르겠다.

 

 

Wireshark를 이용해서 해당 패킷 파일을 열어보면

 

26번째 패킷부터 수상한 데이터가 보인다.

 

ad.quickbrownfoxes.org 라는 곳과 dns 패킷을 엄청나게 주고받았는데

 

앞쪽에 RGlkIHlvd ~~ 로 시작하는 이상한 데이터도 같이 보인다.

 

생긴것으로 보아 base64로 인코딩 되어있는듯 하다.

 

반응형

 

이제 이 패킷에서 데이터를 뽑아내보자.

 

데이터를 뽑아낼때는 Wireshark 보다 Wireshark의 콘솔 버전인 Tshark를 이용하는게 편리하다.

 

tshark -r animalcrossing.pcapng -T fields -e dns.qry.name -Y "dns.flags.response eq 0 && dns.qry.name contains ad.quickbrownfoxes.org"

 

Tshark는 칼리 리눅스를 설치하면 안에 내장되어 있다.(https://hackingstudypad.tistory.com/58)

 

tshark 명령어로 실행 가능하며

 

-r 옵션으로 불러올 패킷 파일을 지정해준다.

-T 옵션은 텍스트 출력형식을 지정하는데 fields 형식으로 지정해준다.

-e 옵션은 표시하고자 하는 필드를 지정할 수 있다. -T 옵션과 같이 쓰이는데 dns.qry.name 필드를 지정했다.

 

 

필드 이름은 Wireshark 에서 확인할 수 있다.

 

지금 뽑아내야 하는 데이터가 base64 형태로 된 문자열이기 때문에

 

Wireshark 화면 맨 아래쪽에서 해당하는 hex값을 선택하면 밑에 필드 명을 사진처럼 출력해준다.

 

마지막으로 -Y 옵션은 Wireshark 에서 display filter 부분이라고 생각하면 된다.

 

dns 쿼리 이름에 ad.quickbrownfoxes.org가 포함된 response 패킷만 출력하도록 했다.

 

 

참고로 Wireshark 화면에서 보면 이렇게 나온다.

 

 

출력결과는 이렇게 나온다.

 

Wireshark 에서 검색한 내용과 똑같다.

 

이렇게 나온 결과에서 중복된 값을 제외하고, 도메인 앞에있는 인코딩된 값만 손수 모아서

 

하나로 만들어 준다.

 

코딩을 하면 편리할수도 있지만, 패킷 양이 많지 않아서 

 

코딩하는것보단 수작업 하는게 훨씬 빠르다.

 

 

이렇게 모은 데이터를 base64로 디코딩해주면 플래그를 획득할 수 있다.

반응형