본문 바로가기

Security/Network

[1장] 네트워크 패킷 분석 - 툴 설명(Wireshark)


안녕하세요.

칸입니다.


이번에 다룰 주제는 네트워크 패킷 분석입니다. 이미 구글이나 네이버에 네트워크 패킷 분석법에 대한 정보들이 다양하게 존재하지만, 제가 배우고, 직접 분석해보면서 얻은 정보들을 알려드리고자합니다.


OSI 7계층이나, TCP/IP등에 관한 기본 정보들은 제가 썼던 글들을 참고해주시면 되겠습니다.


링크 

OSI 7 Layer : http://aaasssddd25.tistory.com/15?category=617816

TCP/IP      : http://aaasssddd25.tistory.com/16?category=617816

TCP 분석   : http://aaasssddd25.tistory.com/17?category=617816

HTTP 분석  : http://aaasssddd25.tistory.com/18?category=617816




※ 네트워크 패킷이란?


한번에 전송하는 정보의 단위



패킷은 쉽게 한 묶음이라고 생각하면됩니다.

즉 0101010 이런 데이터들을 일정 크기로 잘라서 묶음화 시켰다고 생각하면 됩니다.


그럼 왜 이렇게 잘라서 보낼까요? 


예컨대, 100MB크기의 데이터를 전송하고자 할때 분할된 형태가아닌 파일 통째로 보냈다고 가정해봅시다. 

100MB크기의 파일을 아무런 오류없이 전송이 되었다면 다행이겠지만, 전송도중 잘못된 데이터가 1개만 끼어도 오류가 발생하기 때문에 처음부터 다시 100MB를 전송해야 합니다. 이렇게 되면 매우 비효율적일 것입니다.

 

하지만 이 패킷을 이용해 파일을 1MB씩 나누어 전송하면, 1번 패킷 전송 - 수신 체크 2번 패킷전송 - 수신체크 이러한 과정을 100번하게 되는데 만일 중간에 오류가 나면 그 번호의 패킷만 재전송하면 되므로 전자에 비해 훨씬 효율적이라고 할 수 있습니다.


이제 이 '패킷'을 분석하기 위한 툴들을 알아보도록 하겠습니다.




※ Wireshark


01 설치


네트워크 패킷을 분석할 때 가장 많이 사용하는 툴로, 공식 홈페이지에서 무료로 다운받을 수있습니다.


링크 : https://www.wireshark.org/download.html





02 실행




실행을 하면 위와 같은 화면이 나오게 되는데, 밑에 빨간 박스에서 분석하고 싶은 네트워크를 클릭한 뒤 Start를 누르면 해당 네트워크의 패킷을 실시간으로 볼 수 있습니다.




실시간으로 생성되는 패킷을 중지하고 싶으면 위에 빨간 버튼을 




중지한 패킷을 다시 생성하고 싶으면 위에 초록 버튼을 누르시면 됩니다.





해당 영역은 Packet Details 영역으로 전송되는 패킷의 세부 정보들을 볼 수 있습니다.


※ Packet Details


Frame : 1 계층 정보

Ethernet : 2계층 정보 (MAC 주소)

Internet Protocol : 3계층 정보 (IP 주소)

Transmission~ : 4계층 정보






해당 영역은 Packet Bytes 영역으로 패킷의 내용을 16진수로 표현한 것입니다.






03 주요 기능


03-1 [File] - [Export Objects]



보통은 HTTP를 확인합니다. 참고로 SMB의 경우 파일 공유 프로토콜입니다. 







HTTP Objects list를 보면 Content Type에 무슨 파일인지 확장자가 적혀있기때문에 분석시에 유용합니다.






03-2 [Statistics] - [Conversation]







Conversation은 두 호스트 사이의 트래픽을 뜻하고, 각 탭의 프로토콜 명 옆에 있는 숫자는 Conversation의 수를 나타냅니다.


이 중 TCP, UDP의 경우 밑에 Follow Stream를 통해 더 많은 정보를 얻을 수 있습니다.





Follow TCP Stream에서는 주고 받은 문자열등을 확인할 수 있는데, Save As를 통해 해당 내용을 저장할 수도 있습니다.



이는 1이라는 이름으로 바탕화면에 저장한 그림입니다.

 



Follow Stream을 할 경우 위처럼 자동으로 필터링이 되어있어 관련 패킷들을 전부 확인할 수 있습니다.





참고로 필터를 삭제하는 법은 Clear버튼을 누르면 됩니다.




Follow Stream에서는 위처럼 서로 주고받은 데이터의 용량을 확인할 수 있습니다.

한 쪽의 데이터 용량이 너무 크면 파일을 보낸 것이라 의심할 수 있습니다. (업로드 메쏘드인 PUT등이 있을경우..)


이때 해당 주소를 클릭하고 [Save As]를 통해 바탕화면으로 저장한 뒤 열려고 하면 파일이 열리지 않을겁니다. 

그럼 HxD를 통해 시그니처를 변경해주면 Word 형식으로 파일을 열어볼 수도 있습니다.

(해당 부분은 추후에 실습 파일 분석을 통해 더 알아보도록 하겠습니다.)


그럼, 대체 Follow TCP Stream은 언제 쓰일까요?




많은 사용예시가 있겠지만, 위 사진처럼 사용자가 입력한 내용을 분석해서 패스워드를 알아 낼 수도있습니다.



※ 왜 eexxiitt처럼 2개가 연속으로 나오나요?


일종의 메아리 현상과 같다고 보면 됩니다. 주목해야할 것은 사용자가 입력한 빨간색 부분입니다.






03-3 [Telpony] - [RTP] 





RTP는 실시간 전송 프로토콜로, 네트워크를 통해 오디오와 비디오를 전달하기 위한 패킷 포맷입니다.

와이어 샤크에서는 인터넷 전화내용도 분석해주는 기능이 존재합니다.





Show All Stream을 누르면 RTP와 관련된 Stream을 전부 볼 수 있습니다. 

여기서 Analyze를 누르면


 


각 패킷에 대한 음성 내용을 선택해서 들을 수 있습니다. 




Player를 누른 후, 위에 2개 체크박스를 클릭합니다.




그러면 Play키가 활성화 되는데, 이를 누르면 실제 어떤 음성이 오갔는지 들을 수 있게됩니다.



추가적으로, [RTP] - [Stream Analysis..]를 누르면



아까와 같은 창이 나타나게 됩니다. Player를 누르면




이전과는 다르게 음성이 2개가 뜨는 것을 확인할 수 있는데, Show All Stream와 달리 주위의 음성까지 같이 들을 수 있기 때문에 통화내용을 세세한 부분까지 들을 수 있습니다.





이렇게 와이어 샤크의 주요기능들에 대해 알아보았습니다.

모든 기능을 다루지 못했지만, 이정도만 알아도 분석시에 크게 난항을 겪지 않을 것입니다.


다음장에는 Network Miner와 Captipper 사용법에 대해 알아보록 하겠습니다.