본문 바로가기

[+] Hacking/[-] Challenge Report

Codegate 2012 Network 200 풀이

이번에는 Network 200점 문제를 풀어보도록 하겠습니다.

개인적으로 시간이 제일 많이 걸렸던 문제네요 ㅠㅠ..

일단 지문부터 읽어보도록 하죠!

To whom it may concern to DoS attack.

What is the different between attack and normal traffic? 
Attached PCAP file is from suspicious client PC which may be infected.
If you find TOP 4 targeting address, let me know exactly information such as below.

Answer: COUNTRY_NAME_TOP1(3)COUNTRY_NAME_TOP2(13)COUNTRY_NAME_TOP3(2)COUNTRY_NAME_TOP4(5)_1.1.1.1_2.2.2.2_3.3.3.3_4.4.4.4

EX)
kind_1.1.1.1_2.2.2.2_3.3.3.3_4.4.4.4
TOP1 1.1.1.1 __k___
TOP2 2.2.2.2 ____________i___
TOP3 3.3.3.3 _n___
TOP4 4.4.4.4 ____d____


간단하게 문제의 요지는 DoS 공격을 제일 많이 당한 TOP4 호스트들을 찾아 달라는 것 입니다.

그리고 그 찾은 호스트 IP를 문제에서 요구하는 답의 형태로 바꾸어 달라는 거네요

일단 문제를 보면 정상적인 패킷입니다. 그런데!!!! 패킷수가 ㅡㅡ

 [그림 1 - 문제의 pcap 파일 속 패킷 수]

이런 패킷량은 처음 접해봅니다.. 일단 이 문제 파일에 존재하는 패킷의 목적지 IP들을 count 해야 합니다.

처음에는 코딩으로 할려고 했는데 정규식이 의외로 복잡해 지더군요.. Broadcast도 예외를 해줘야 하니까요 :0

그래서 처음에는 wireshark로 count를 했으나 정렬이 되지 않아 다른 방법을 강구 해 봤습니다.

그래서 어느정도 생각 한 끝에 NetworkMinor 라는 프로그램을 떠 올렸습니다.

이 프로그램 소개는 용기백배님 블로그(http://ykei.egloos.com/5604712)에서 봤는데요. 포터블이면서 막강한 프로그램이라 소개글을 보고 감탄한 적이 있어서 기억에 남았던 것 같네요

해당 프로그램으로 패킷을 불러와 분석을 수행 하였더니 OS와 패킷에서 오고간 파일, 키워드 등을 뽑아주더라구요.

(하지만 분석 할 때 꽤 걸렸답니다.. ㅠㅠ)

[그림 2 - NetworkMinor 프로그램으로 문제 분석한 결과]

분석이 끝나고 목적지 IP를 기준으로 봐야 하니 얼마나 많은 패킷 량을 받았는지에 대해서 정렬을 시도 하였습니다.

정렬을 시도하고 맨 위 IP부터 wireshark에서 필터를 걸어 패킷에 자세한 내용을 보았습니다.(이제부터는 문제와 관련된 IP만 언급 하겠습니다.)

[TOP1]
TOP1 은 받은 패킷량이 52620개나 되는 111.221.70.11이 먹었습니다.
wireshark로 보니 [그림 3] 처럼 SYN 패킷을 무수히 받은 것을 알 수 있었습니다.

 [그림 3 - 111.221.70.11 패킷]

패킷을 보면 충분히 SYN Flood 공격을 당한 것을 알 수 있습니다. 문제에서는 TOP4 들의 국가까지 알아내라고 했으니 whois를 통하여 알아보면 아래와 같습니다.

 [그림 4 - whois 검색 결과]

정리를 해보면 아래와 같습니다.
싱가폴에 있는 111.221.70.11는 여러 호스트에게 SYN Flood 공격을 당했다.
추가적으로 111.221.70.11를 공격한 여러 호스트들은 스푸핑으로 인해 생성된 허위 IP일 것으로 보입니다.
IP가 너무 다양할 뿐만 아니라 111.221.70.11 에서 정상적으로 보낸 패킷이 하나도 없기 때문 입니다.


[TOP2]
TOP2는 2960 개 패킷을 받은 109.123.118.42이 먹었습니다.
wireshark로 패킷을 자세히 분석하면 뭔가 이상한 점이 있습니다. 유독 HTTP 200 OK라는 글자가 많이 보입니다.
해당 패킷들의 TCP Stream을 보면 [그림 5] 처럼 우리가 잘 알고 있는 문자를 발견 할 수 있습니다.

[그림 5 - TCP Stream]

별 내용은 없고 refresh 라는 글자가 보이는군요. 아무래도 브라우저 새로고침으로 인해 발생한 패킷 같습니다.
해당 호스트는 이러한 패킷을 엄청나게 받은 걸 패킷 분석을 통해 알 수 있습니다.
새로고침으로 인한 DoS 공격을 당한 것을 이것을 통해 알 수 있겠네요.

109.123.118.42 는 whois로 검색하면 영국에 위치한 것을 알 수 있습니다.

정리해보면 아래와 같습니다.

영국(United Kingdom)에 있는 109.123.118.42는 새로고침 패킷으로 인해 DoS 공격을 당했다.


[TOP3]
TOP3는 311개의 패킷을 받은 199.7.48.190 가 먹었습니다.
이번에도 Wireshark를 보죠!

[그림 6 - 199.7.48.190 패킷]

세그먼트 어쩌고 하면서 뭔가 이상하게 보이는군요. 이럴땐 TCP Stream을 한번 봐줘야 합니다.

[그림 7 - 199.7.48.190 패킷의 TCP stream]

http 패킷을 보니 뭔가 엄청나게 큰 데이터를 받은 것을 볼 수 있는데요. 이러한 패킷이 한두개가 아니니 서버가 당연히 과부하를 일으킬만 합니다.

해당 아이피의 소재지는 whois 검색결과 United States Of America로 나왔습니다.

정리를 해보면 아래와 같습니다.

미국(United States Of America)에 있는 199.7.48.190 은 엄청나게 큰 데이터를 누군가가 많이 보내 DoS 공격을 받았다.


[TOP4]
TOP의 마지막을 차지한 호스트는 99개의 패킷을 받은 66.150.14.48가 먹었습니다.
wireshark로 패킷을 보면 뭔가 비정상적으로 연결이 끊긴 것을 알 수 있는데 이는 RST 패킷이 많기 때문 입니다.

 [그림 8 - 66.150.14.48 패킷]

다시 NetworkMinor로 돌아와서 해당 아이피의 정보를 보면 inbound 한 패킷이 보이는데 이 패킷들을 보면 확실하게 알아 차릴 수 있습니다.

 [그림 9 - NetworkMinor에서 66.150.14.48 정보]

inbound 된 정보를 보면 80 port로 세션 시작 시간과 세션 끝나는 시간이 동일 한 것을 볼 수 있습니다.
정리해보면 세션이 연결되지마자 RST 패킷에 의해 강제적으로 끊겼다는 뜻이 되는겁니다. 이로인해 서버는 계속 연결 됐다가 끊어졌다가를 반복하여 DoS 공격을 당한 것 입니다.

해당 아이피는 TOP3와 동일하게 United States Of America에 위치하고 있습니다. 


이제 문제의 답을 문제에서 원하는 형태로 만들어 본다면...

COUNTRY_NAME_TOP1(3) : Singapore    -> n
COUNTRY_NAME_TOP1(13) : United Kingdom -> o 
COUNTRY_NAME_TOP1(2) : United States Of America -> n
COUNTRY_NAME_TOP1(5) : United States Of America -> e


 - none_111.221.70.11_109.123.118.42_199.7.48.190_66.150.14.48


'[+] Hacking > [-] Challenge Report' 카테고리의 다른 글

Codegate 2012 Forensic 500 풀이  (2) 2012.02.29
Codegate 2012 Forensic 400 풀이  (4) 2012.02.28
Codegate 2012 Forensic 300 풀이  (0) 2012.02.27
Codegate 2012 Network 100 풀이  (0) 2012.02.27