RAW_SOCKET Programming: Sniffer(dump) program

1. Sniffer(덤프) 프로그램을 이용하여 NIC(Network Interface Card)로 드나드는 패킷을 sniffing (가로채다) 을 하여 패킷을 분석해보겠다.

먼저 패킷을 가로채기 위해 sniffer(덤프) 프로그램을 만들어보자. 그림(Figure 1.1)과 같이 파이썬으로 작성을 하면 된다.

Figure 1.1 Sniffer.py

스니퍼 작성이 끝나면 전에 작성한 UDP 클라이언트 파일과 서버 파일을 이용하여 단어를 전송하고, 스니퍼를 이용하여 서버와 클라이언트의 통신을 가로채 보겠다. 
Figure 1.2 UDP Client.py

Figure 1.3 UDP Server.py
서버와 클라이언트가 통신하기 전에 작성한 스니퍼 프로그램을 작동을 시키면 그림(Figure 1.4) 과 같이 현재 통신이 이루어지고 있는 내용을 볼 수 있다. 
Figure 1.4 스니퍼 작동
아주 빠른속도로 많은양의 로우데이터를 보여주기에 python3 sniffer.py > log.txt 라는 명령어를 입력 스니퍼의 출력 내용이 log.txt파일로 저장되게 한 후 vi 에디터를 이용해 log.txt파일을 열고 test라는 문자열을 검색하면 다음과 같이 쉽게 찾을 수 있다.

Figure 1.5 Log.txt
스니퍼를 이용하면 그림 (Figure 1.5) 과 같이 서버와 클라이언트가 주고 받은 통신의 내용을 볼 수 있다. 다음에는 가로챈 로우데이터가 어떠한 정보를 담고 있는지 분석해보겠다.

댓글

이 블로그의 인기 게시물

UDP 헤더의 구조와 스니퍼를 이용한 UDP통신 가로채기

UDP 소켓을 이용하여 에코서버와 통신하기.

파이썬을 이용한 TCP 소켓 프로그래밍.