Hijacking Spoofing Utility: Karp Linux Kernel Level Arp
Stay curious, and hack responsibly.
ip = ip_hdr(skb); if (!ip) return NF_ACCEPT;
Enter : a proof-of-concept Linux Kernel Module (LKM) that performs ARP hijacking directly from NF_INET_POST_ROUTING and NF_INET_LOCAL_IN Netfilter hooks. By staying in kernel space, kArp achieves microsecond-level response times and deterministic spoofing. kArp Linux Kernel Level ARP Hijacking Spoofing Utility
Disclaimer: This post is for educational purposes and authorized security testing only. ARP spoofing is illegal without explicit permission from the network owner. Do not run this on networks you do not own or lack written authorization for.
static unsigned int karphook_post(void *priv, struct sk_buff *skb, const struct nf_hook_state *state) Stay curious, and hack responsibly
The code for kArp is intentionally small (~450 LOC) – easy to audit, easy to weaponize. I’ll release it on GitHub under an educational license in the coming weeks. ARP spoofing is a 40-year-old attack, but it refuses to die. Until IPv6 with Secure Neighbor Discovery (SEND) is universal, and until every switch runs DAI, kernel-level ARP tricks will remain in every serious attacker’s toolkit.
// Check if destination IP is our victim if (ip->daddr == victim_ip) // Craft ARP reply: "Gateway IP is at attacker's MAC" build_arp_reply(gateway_ip, attacker_mac, victim_ip, &spoof_arp); dev_queue_xmit(alloc_skb_from_arp(&spoof_arp, dev)); printk(KERN_INFO "kArp: Poisoned %pI4 -> Gateway at %pM\n", &victim_ip, attacker_mac); Disclaimer: This post is for educational purposes and
If you’ve ever used arpspoof (from dsniff) or bettercap , you know they work well—but they operate in . This means packet injection involves context switches, libpcap overhead, and occasional race conditions.