The Address Resolution Protocol (ARP) is a key TCP/IP protocol that is used to determine the physical address of the network card that corresponds to an IP address.
The ARP is a protocol used in the TCP/IP protocol suite at the internet layer.
The ARP finds the MAC address of destination computer by using the IP address of destination computer.
ARP spoofing forces the destination computer to send packets to the attacker instead of the source. An attacker
can tap into the communication by forcing source and destination computers to send packets to itself at the
same time. When it comes to this situation it is called MITM ( this attack is classified as the “man in the middle” known as MITM).
The arp command:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | C:\WINDOWS\system32>arp Displays and modifies the IP-to-Physical address translation tables used by address resolution protocol (ARP). ARP -s inet_addr eth_addr [if_addr] ARP -d inet_addr [if_addr] ARP -a [inet_addr] [-N if_addr] [-v] -a Displays current ARP entries by interrogating the current protocol data. If inet_addr is specified, the IP and Physical addresses for only the specified computer are displayed. If more than one network interface uses ARP, entries for each ARP table are displayed. -g Same as -a. -v Displays current ARP entries in verbose mode. All invalid entries and entries on the loop-back interface will be shown. inet_addr Specifies an internet address. -N if_addr Displays the ARP entries for the network interface specified by if_addr. -d Deletes the host specified by inet_addr. inet_addr may be wildcarded with * to delete all hosts. -s Adds the host and associates the Internet address inet_addr with the Physical address eth_addr. The Physical address is given as 6 hexadecimal bytes separated by hyphens. The entry is permanent. eth_addr Specifies a physical address. if_addr If present, this specifies the Internet address of the interface whose address translation table should be modified. If not present, the first applicable interface will be used. Example: > arp -s 157.55.85.212 00-aa-00-62-c6-09 .... Adds a static entry. > arp -a .... Displays the arp table. |
The ARP cache is a collection of ARP entries store by your PC and it will stay there until the ARP cache entry timeout expires.
To flush the entire arp cache use the following command:
1 | C:\WINDOWS\system32>netsh interface ip delete arpcache |
All possible issues and errors that result in cache update for ARP :
- Solicited entries: A host sends an ARP request and gets the reply.
- Unsolicited entries: A host can receive an ARP request that is not destined for it because ARP packets are
broadcast. - Static entries: These entries are entered manually and they have no life. They live until next reboot.
- Gratuitous ARP: A gratuitous ARP is a message sent by a host requesting the MAC address for its own IP
address.
NOTE: ARP Spoofing is an ARP reply, an attacker may easily change the IP and MAC association contained in a host ARP cache.
Read about ARP guard to learn more about ARP.