ARPSPOOF_DETECTOR
ARP 테이블에 게이트웨이 맥에 대한 값을보기
니스와 간단하지만 것 없는 도구가 공격을 실행하면 공격을 감지합니다.
분석 "입니다-에서" ARP 응답 :
IP 게이트웨이의 IP인지 확인합니다.
소스 맥 실제로 게이트웨이의 MAC 있는지 확인합니다.
공격 도구의 실행 전에 실행 된 경우에도이 방법은 공격을 감지합니다.
# !는 / usr / 빈 / ENV 파이썬 수입 scapy 에서 scapy.layers.l2의 수입 ARP 에서 scapy.sendrecv의 수입 니프 데프 냄새 (인터페이스) : scapy.sendrecv.sniff (IFACE = 인터페이스, 저장 = 거짓, PRN = process_sniffed_packet) DEF process_sniffed_packet (패킷) 의 경우 packet.haslayer (ARP) 과 패킷 [ARP] .op == 2 : 인쇄 (packet.show ()) 니프 ( " eth0를 " )
실제 공격을 감지하기 위해 파이썬 코드를 업데이트!
# !는 / usr / 빈 / ENV 파이썬 수입 scapy 에서 scapy.layers.l2의 수입 ARP, 에테르 에서 scapy.sendrecv의 수입 냄새, SRP 데프 get_mac (IP) : arp_request = ARP (pdst = IP) 방송 = 에테르 (DST = " FF : FF : FF : FF : FF : FF ' ) arp_request_broadcast = 브로드 캐스트 / arp_request answered_list = SRP (arp_request_broadcast이 제한 = 1, 장황 = 거짓) [0] 복귀 answered_list [0] [1 ] .hwsrc의 데프 니프 (인터페이스) : scapy.sendrecv.sniff (IFACE = 인터페이스, 저장 = 거짓, PRN = process_sniffed_packet) DEF process_sniffed_packet (패킷) 시도 : real_mac = get_mac (패킷 [ARP] .psrc) response_mac = 패킷 [ARP] .hwsrc 경우 ! = real_mac response_mac : 인쇄 ( " [+] 당신은 공격을 받고있다! " ) 을 제외하고 IndexError : 패스 냄새 ( " eth0를 " )