Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
- from scapy.all import *
- from time import time, sleep
- conf.verb = 0
- dhcpserversinit = []
- dhcpservers = []
- init = 1
- fam, hw = get_if_raw_hwaddr(conf.iface)
- def dhcp_callback(pkt):
- if DHCP in pkt and pkt[DHCP].options[0][1] == 2:
- if init == 1:
- dhcpserversinit.append(pkt[IP].src)
- else:
- dhcpservers.append(pkt[IP].src)
- dhcp_request = (
- Ether(dst='ff:ff:ff:ff:ff:ff') /
- IP(src='0.0.0.0', dst='255.255.255.255') /
- UDP(sport=68, dport=67) /
- BOOTP(chaddr=hw) /
- DHCP(options=[('message-type', 'discover'), 'end'])
- )
- sendp(dhcp_request)
- sniff(prn=dhcp_callback, store=0, count=5)
- init = 0
- print "Servidores DHCP Encontrados:"
- print "\n".join(dhcpserversinit)
- while True:
- dhcp_request = (
- Ether(dst='ff:ff:ff:ff:ff:ff') /
- IP(src='0.0.0.0', dst='255.255.255.255') /
- UDP(sport=68, dport=67) /
- BOOTP(chaddr=hw) /
- DHCP(options=[('message-type', 'discover'), 'end'])
- )
- sendp(dhcp_request)
- sniff(prn=dhcp_callback, store=0, count=5)
- newdhcp = set(dhcpservers)
- alerts= newdhcp.difference(dhcpserversinit)
- if alerts:
- print "Nuevo servidor DHCP encontrado"
- print "\n".join(dhcpservers)
- dhcpserversinit = dhcpservers
- dhcpservers = []
- sleep(20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement