외로운 Nova의 작업실

네트워크 해킹과 보안 - 1(패킷 분석) 본문

Server Penetesting/Network

네트워크 해킹과 보안 - 1(패킷 분석)

Nova_ 2023. 2. 10. 17:10

안녕하세요. 네트워크 해킹과 보안 시리즈는 네트워크 해킹과 보안 책을 통해서 공부하면서 알게된 지식들을 정리하기위해 만든 포스팅입니다. 오늘은 계층에따른 패킷 분석을 실행해보도록 하겠습니다.

 

- 와이어샤크

먼저 패킷 분석 툴인 와이어샤크를 준비해줍니다.

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

 

Wireshark · Download

Download Wireshark The current stable release of Wireshark is 4.0.3. It supersedes all previous releases.

www.wireshark.org

위 링크에 접속해주셔서 운영체제에 맞는 툴을 다운로드 해주시면됩니다.

 

- 랜 구성

저는 와이파이를 라우터로 두고 노트북은 와이파이로, 컴퓨터는 랜선으로 연결되어 두개의 컴퓨터를 연결하였습니다. 클라이언트는 노트북, 서버는 컴퓨터라고 생각하고 진행하였습니다. 먼저, 2계층의 패킷 분석은 ARP MAC주소에대해 잘 통신하고 있는지 분석하는 것입니다.

 

- 2계층 패킷분석

ARP 프로토콜은 클라이언트가 서버의 IP주소를 알때 MAC주소를 알아내는 방법으로 브로드캐스트를 통하여 IP를 가진 컴퓨터는 나에게 MAC주소를 알려줘 라고 하는 것입니다. 따라서 서버의 IP를 알아야 가능한 것으로 IP를 알아내는 방법은 ipconfig/all 명령어를 통해 IPv4 주소 부분을 확인하시면됩니다. 저의 경우에는 192.168.123.102였습니다.

 

<클라이언트에서 서버로 접속>

먼저 와이어샤크로 클라이언트이기 때문에 wifi의 패킷을 잡도록 설정해줍니다. 이제 클라이언트에서 브라우저를 켜서 192.168.123.102로 접속해줍니다.

그러면 위와 같이뜹니다. 그리고 와이어 샤크를 중단시켜줍니다.

다른 프로세스가 통신하는 것들도 잡아오기때문에 뒤죽박죽 되어있습니다. 먼저, ARP의 경우 브로드캐스트로 일어나기때문에 브로드캐스트을 사용한 패킷을 필터링을 통해 검색해보겠습니다. 위쪽 필터링 부분에 아래 명령어를 쳐줍니다.

arp

보게되면 30:52 번호로 시작하는 MAC이 노트북(클라이언트)이므로 클라이언트에서 브로드캐스트로 ARP를 요청했습니다. 그리고 그 밑에 패킷을 분석해보겠습니다.

그리고 컴퓨터(서버)가 1C:1B ~~ 가 나의 MAC 번호라고 알려주는 패킷을 클라이언트에게 보낸 것을 확인할 수 있습니다. 

 

- 3계층 패킷 분석

3계층은 네트워크 계층으로 TCP/UDP 프로토콜로 진행됩니다. 먼저 와이어샤크에서 필터링을 걸어줄건데, 대상 서버와 나눈 패킷만 보기위해 ip를 필터링해줍니다.

ip.addr == 192.168.123.102

그러면 아래와 같이 서버와 나눈 패킷만 보여지게됩니다. time을 눌러서 시간순서대로 정리하게되면

첫번째 패킷은 클라이언트가 서버로 보낸 AYN 패킷입니다. "나 접속해도돼?" 이런 패킷입니다. 두번째를 보겠습니다.

두번째는 SYN,ACK 패킷으로 서버에서 클라이언트에게 보내고있습니다. "응 접속해도돼 나도 너랑 연결해도돼?" 라는 패킷입니다. 세번째 패킷을 보겠습니다.

세번째 패킷은 클라이언트가 서버에게 ACK 패킷을 보냅니다. "응 너도 나 접속해도돼" 라는 의미의 패킷입니다. 이후 HTTP 프로토콜로 넘어갑니다. 즉 4계층인 전송계층으로 진입합니다.

 

- 4계층 패킷 분석

 

클라이언트가 서버에게 HTTP 프로토콜을 이용해서 GET 방식으로 페이지를 요청하고 있습니다. 클라이언트의 포트는 55226인것을 알  수 있고 서버는 80포트인것을 알 수 있습니다.

이후 서버는 클라이언트에게 html파일을 보내줌으로써 GET 요청을 처리하게됩니다.

이후에는 클라이언트가 html에 포함되어있는 png 파일을 요청하게되고, 서버는 TCP 프로토콜로 png에대한 데이터를 전송하게됩니다.

이후 서버는 클라이언트에게 다 보냈다고 http 프로토콜로 전송하게되며 이러한 통신을 반복하게됩니다. 통신의 결과물은 응용계층으로 넘어가서 사용자에게 전달됩니다.

Comments