All Projects → irai → arp

irai / arp

Licence: MIT license
A go package to monitor ARP changes and notify when mac is online or offline. Also allow forced IP address change (IP spoofing).

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to arp

elmocut
Eye candy ARP spoofer for Windows
Stars: ✭ 85 (+157.58%)
Mutual labels:  arp, spoofing
spoofgo
An Application for Spoofing Movement written in Golang
Stars: ✭ 15 (-54.55%)
Mutual labels:  spoofing
Dasshio
Hass.io add-on to easily use Amazon Dash Buttons with Home Assistant
Stars: ✭ 140 (+324.24%)
Mutual labels:  arp
NativePayload ARP
C# code for Transferring Backdoor Payloads by ARP Traffic and Bypassing Anti-viruses (Slow)
Stars: ✭ 44 (+33.33%)
Mutual labels:  arp
Neighbourhood
Layer 2 network neighbourhood discovery tool that uses scapy
Stars: ✭ 156 (+372.73%)
Mutual labels:  arp
sx
🖖 Fast, modern, easy-to-use network scanner
Stars: ✭ 1,267 (+3739.39%)
Mutual labels:  arp
Freeradius Server
FreeRADIUS - A multi-protocol policy server.
Stars: ✭ 1,379 (+4078.79%)
Mutual labels:  arp
wipri
(Network Metadata Privacy) MAC Address spoofer with bonus combo (options): hostname + signal spoofer - *no disconnects!* Privacy Changing w/Brand Mimics: run as command or optional new randomized identity each boot; includes flags for continually changing random times/changing valid OUI addresses + Hostname randomizer + Device/Signal/location an…
Stars: ✭ 26 (-21.21%)
Mutual labels:  spoofing
aev
Android library to verify the safety of user devices. Make sure that API calls from your app can be trusted. Instantly detect rooted devices, emulators, cloned apps, and other risk factors.
Stars: ✭ 64 (+93.94%)
Mutual labels:  spoofing
fakeroute
IPv4 and IPv6 traceroute fake hop generator through IP spoofing
Stars: ✭ 75 (+127.27%)
Mutual labels:  spoofing
Kickthemout
💣 Kick devices off your network by performing an ARP Spoof attack with Node.js.
Stars: ✭ 241 (+630.3%)
Mutual labels:  arp
Computer Networking
Free resources for a self-taught education in Computer Networking
Stars: ✭ 201 (+509.09%)
Mutual labels:  arp
MockSMS
Android application to create/craft fake sms.
Stars: ✭ 63 (+90.91%)
Mutual labels:  spoofing
Raw Packet
Raw-packet Project
Stars: ✭ 144 (+336.36%)
Mutual labels:  arp
okhoxi-serac
冰塔协议-传输层协议
Stars: ✭ 33 (+0%)
Mutual labels:  arp
Net guard
A command line tool to detect new unknown device in your network using ARP protocol
Stars: ✭ 103 (+212.12%)
Mutual labels:  arp
Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (+554.55%)
Mutual labels:  arp
SpooferBT
Relay torrent tracker communication via TCP to bypass a blocked UDP network.
Stars: ✭ 18 (-45.45%)
Mutual labels:  spoofing
FaceLivenessDetection-SDK
3D Passive Face Liveness Detection (Anti-Spoofing) & Deepfake detection. A single image is needed to compute liveness score. 99,67% accuracy on our dataset and perfect scores on multiple public datasets (NUAA, CASIA FASD, MSU...).
Stars: ✭ 85 (+157.58%)
Mutual labels:  spoofing
lapdog
Take actions when specific devices appear/disappear from your LAN
Stars: ✭ 17 (-48.48%)
Mutual labels:  arp

arp golang

The package implements a user level arp table management in golang that monitor the local network for ARP changes and provide notifications when a MAC switch between online and offline.

NOTE: A new package packet has better arp spoofing support
This package is functional and useful for experimentation but all efforts going forward focus on packet which addresses many issues and in addition to arp spoofing it also support general packet mangling and dhcp4 and icmp6 spoofing.

Force IP address change (IP spoofing)

The most useful function is to force an IP address change by claiming the IP of a target MAC. It achieves this by persistently claiming the IP address using ARP request/reply and activelly hunting the target MAC until it gives up its IP. This is very effective against mobile devices using DHCP however it does not work when client is using static address.

The package uses low level arp packets to enable:

  • network discovery by polling 254 addresses
  • notification when a MAC switch between online and offline
  • forced IP address change

See the arplistener example for how to use it.

Limitations

  • Tested on linux (Raspberry PI arm). Should work on Windows with tiny changes.
  • IPv4 only

Getting started

	$ go get github.com/irai/arp
	$ cd $GOPATH/src/github.com/irai/arp/arplistener
	$ go install
	$ sudo $GOPATH/bin/arplistener -i eth0

Create your own listener in a goroutine

Simply create a new handler and run ListenAndServe in a goroutine. The goroutine will listen for ARP changes and generate a notification each time a mac changes between online/offline.

	HomeRouterIP := net.ParseIP("192.168.0.1").To4()
	HomeLAN := net.IPNet{IP: net.ParseIP("192.168.0.0").To4(), Mask: net.CIDRMask(25, 32)}
	NIC := "eth0"
	HostMAC, _ := net.ParseMAC("xx:xx:xx:xx:xx:xx")
	HostIP := net.ParseIP("192.168.1.2").To4()

	c, err := arp.New(arp.Config{
		NIC:                     NIC,
		HostMAC:                 HostMAC,
		HostIP:                  HostIP,
		RouterIP:                HomeRouterIP,
		HomeLAN:                 HomeLAN,
		ProbeInterval:           time.Minute,
		FullNetworkScanInterval: 0,
	})
	if err != nil {
		log.Fatal("error ", err)
	}
	defer c.Close()

	go c.ListenAndServe(context.Background())

	c.printTable()

Listen to changes to mac table

New a message broker function

func arpNotification(arpChannel chan arp.MACEntry) {
	for {
		select {
		case MACEntry := <-arpChannel:
			log.Warnf("notification got ARP MACEntry for %s", MACEntry.MAC)

		}
	}
}
arpChannel := make(chan arp.MACEntry, 16)
c.AddNotificationChannel(arpChannel)

go arpNotification(arpChannel)

To force an IP change simply invoke ForceIPChange with the current mac and ip value.

MACEntry := c.findByMAC("xx:xx:xx:xx:xx:xx")
c.ForceIPChange(MACEntry.MAC, MACEntry.IP)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].