diff --git a/research/macstealer.py b/research/macstealer.py index adb64685e..deec4d6c6 100755 --- a/research/macstealer.py +++ b/research/macstealer.py @@ -110,6 +110,7 @@ def __init__(self, iface, options): self.bssid_victim=None self.mac = get_macaddress(self.nic_iface) + self.offered_ip = None self.clientip = None self.routermac = None self.routerip = None @@ -398,9 +399,14 @@ def handle_eth_dhcp(self, p): # DHCP Offer if req_type == 2: - log(STATUS, f"Received DHCP offer for {p[BOOTP].yiaddr}, sending DHCP request.") - self.send_dhcp_request(p) - self.dhcp_offer_frame = p + offered_ip = p[BOOTP].yiaddr + if self.offered_ip != None and self.offered_ip != offered_ip: + log(WARNING, f"Ignoring DHCP offer for the different IP address {offered_ip}.") + else: + log(STATUS, f"Received DHCP offer for {offered_ip}, sending DHCP request.") + self.send_dhcp_request(p) + self.dhcp_offer_frame = p + self.offered_ip = offered_ip # DHCP Ack elif req_type == 5: