From: seantywork Date: Fri, 29 Aug 2025 04:55:48 +0000 (+0900) Subject: arp spoof X-Git-Url: https://git.feebdaed.xyz/?a=commitdiff_plain;h=a060424f7ac0aab9bd532e6fba86e0f88cfd6206;p=linuxyz.git arp spoof --- diff --git a/spoof-arp/Makefile b/spoof-arp/Makefile new file mode 100644 index 0000000..a15adae --- /dev/null +++ b/spoof-arp/Makefile @@ -0,0 +1,4 @@ +all: + gcc -g -o spoof.out main.c +clean: + rm -rf *.out *.o diff --git a/spoof-arp/README.md b/spoof-arp/README.md new file mode 100644 index 0000000..e47ebe9 --- /dev/null +++ b/spoof-arp/README.md @@ -0,0 +1 @@ +# spoof-arp \ No newline at end of file diff --git a/spoof-arp/main.c b/spoof-arp/main.c new file mode 100644 index 0000000..eb4173d --- /dev/null +++ b/spoof-arp/main.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include + +#define ITS_IP "10.168.0.1" +#define YOUR_IP "10.168.0.2" + + +void do_spoof(int fd, char* if_name, uint8_t* my_mac, uint32_t its_ip, uint8_t* your_mac, uint32_t your_ip){ + struct ether_arp resp; + struct ifreq ifr; + //set_ifr_name(&ifr, if_name); + + struct sockaddr_ll addr = {0}; + addr.sll_family = AF_PACKET; + //addr.sll_ifindex = get_ifr_ifindex(fd, &ifr); + addr.sll_halen = ETHER_ADDR_LEN; + addr.sll_protocol = htons(ETH_P_ARP); + memcpy(addr.sll_addr, your_mac, ETHER_ADDR_LEN); + + resp.arp_hrd = htons(ARPHRD_ETHER); + resp.arp_pro = htons(ETH_P_IP); + resp.arp_hln = ETHER_ADDR_LEN; + resp.arp_pln = sizeof(in_addr_t); + resp.arp_op = htons(ARPOP_REPLY); + + memcpy(&resp.arp_sha, my_mac, sizeof(resp.arp_sha)); + memcpy(&resp.arp_spa, &its_ip, sizeof(resp.arp_spa)); + memcpy(&resp.arp_tha, your_mac, sizeof(resp.arp_tha)); + memcpy(&resp.arp_tpa, &your_ip, sizeof(resp.arp_tpa)); + + if (sendto(fd, &resp, sizeof(resp), 0, (struct sockaddr *) &addr, sizeof(addr)) == -1) { + printf("spoof: error\n"); + } +} + + +int main(){ + + return 0; +} \ No newline at end of file diff --git a/spoof-arp/setup.sh b/spoof-arp/setup.sh new file mode 100755 index 0000000..24e9c67 --- /dev/null +++ b/spoof-arp/setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +sudo ip link add br0 type bridge + +sudo ip link set br0 type bridge stp_state 1 + + +sudo ip netns add vnet0 + +sudo ip link add dev veth01 type veth peer name veth02 netns vnet0 + +sudo ip link set up veth01 + +sudo ip netns exec vnet0 ip link set up veth02 + +sudo ip netns exec vnet0 ip addr add 10.168.0.1/24 dev veth02 + +sudo ip netns add vnet1 + +sudo ip link add dev veth11 type veth peer name veth12 netns vnet1 + +sudo ip link set up veth11 + +sudo ip netns exec vnet1 ip link set up veth12 + +sudo ip netns exec vnet1 ip addr add 10.168.0.2/24 dev veth12 + +sudo ip netns add vnet2 + +sudo ip link add dev veth21 type veth peer name veth22 netns vnet2 + +sudo ip link set up veth21 + +sudo ip netns exec vnet2 ip link set up veth22 + +sudo ip netns exec vnet2 ip addr add 10.168.0.200/24 dev veth22 + + +sudo ip link set veth01 master br0 + +sudo ip link set veth11 master br0 + +sudo ip link set veth21 master br0 + +sudo ip link set br0 up \ No newline at end of file