Python
sniff()함수를 이용한 패킷 스니퍼 구현하기.
웹하는빡통
2020. 2. 6. 21:37
지난 시간때 scapy를 이용하여 간단한 스니퍼를 구현해보았다.
이번 시간에는 scapy에서 제공하는 sniff()함수를 이용하여 패킷 스니퍼를 구현해보자.
소스코드.
※ 부가 설명.
sniff()가 캡처한 패킷을 MAC 주소 계층인 데이터링크 계층부터 TCP/DUP 계층까지 보여준다.
1. packet : sniff()가 캡처한 패킷임 prn 인자로 지정된 함수의 인자로 전달함.
2. packet[0][0] : MAC 주소 계층임.
3. packet[0][1]: IP 계층임. packet[IP]로도 접근 가능함.
4. packet[0][2]: TCP, UDP, ICMP 계층임. 각각 packet[TCP], packet[UDP], packet[ICMP]로 접근이 가능함.
IP 계층의 src,dst의 값을 얻고자 한다면 위와 같이 접근하면 된다.
처음 부분이 version이고 마지막 부분이 src,dst이다.
실행 결과.
scapy에서 제공하는 sniff()를 이용하면 보다 강력한 패킷 스니퍼를 구현 할 수 있다.