I’m working on a project where I am a hacker and I need to make a Man in the middle attack.
I have a python code for getting MAC addresse for an IP and send request through a VLAN :
from scapy.all import *
# Variables
ip_target = '192.168.20.60' # Target IP
interface = 'eth0' # Target interface
vlan_id = 20 # Target VLAN
def send_arp_request_vlan(ip, iface, vlan):
# ARP request with 802.1Q
arp_request = ARP(pdst=ip)
broadcast = Ether(dst='ff:ff:ff:ff:ff:ff') / Dot1Q(vlan=vlan)
arp_request_broadcast = broadcast / arp_request
# Send request and receive responses
answered_list = srp(arp_request_broadcast, timeout=5, iface=iface, verbose=False)[0]
if answered_list:
return True # If response
else:
return False # If no response
def get_mac_address_vlan(ip, iface, vlan):
# ARP request with 802.1Q
arp_request = ARP(pdst=ip)
broadcast = Ether(dst='ff:ff:ff:ff:ff:ff') / Dot1Q(vlan=vlan_id)
arp_request_broadcast = broadcast / arp_request
# Send request and receive responses
answered_list = srp(arp_request_broadcast, timeout=5, iface=iface, verbose=False)[0]
if answered_list:
return answered_list[0][1].hwsrc
else:
return None
# Send ARP request and check for response
response_received = send_arp_request_vlan(ip_target, interface, vlan_id)
# Get MAC addr
mac_address = get_mac_address_vlan(ip_target, interface, vlan_id)
if response_received and mac_address:
print(f'Received response from {ip_target} in VLAN {vlan_id}')
print(f'IP: {ip_target}')
print(f'MAC: {mac_address}')
print(f'VLAN: {vlan_id}')
else:
print(f'No response from {ip_target} in VLAN {vlan_id}')
I’m looking for how I could code a Gratuitous ARP request
New contributor
jean is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.