{"id":16805704,"url":"https://github.com/gcarq/arp-spoof","last_synced_at":"2025-03-22T02:31:29.871Z","repository":{"id":148726618,"uuid":"49088072","full_name":"gcarq/arp-spoof","owner":"gcarq","description":"Minimal ARP-Spoofing tool written in Rust","archived":false,"fork":false,"pushed_at":"2023-09-18T01:45:40.000Z","size":19,"stargazers_count":49,"open_issues_count":1,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-18T07:12:09.548Z","etag":null,"topics":["arp","arp-spoofing","linux","network","pcap","rust","security"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gcarq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-05T19:34:01.000Z","updated_at":"2024-12-21T15:11:55.000Z","dependencies_parsed_at":"2024-10-28T12:41:44.694Z","dependency_job_id":null,"html_url":"https://github.com/gcarq/arp-spoof","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Farp-spoof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Farp-spoof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Farp-spoof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gcarq%2Farp-spoof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gcarq","download_url":"https://codeload.github.com/gcarq/arp-spoof/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244898103,"owners_count":20528331,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arp","arp-spoofing","linux","network","pcap","rust","security"],"created_at":"2024-10-13T09:49:04.115Z","updated_at":"2025-03-22T02:31:29.865Z","avatar_url":"https://github.com/gcarq.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# arp-spoof\n\n\nThis is a minimal ARP-Spoofing tool written in **Rust language** using pcap.\n\nThis tool allows intercepting Ipv4 traffic between two hosts on the same network.\nTypically, between one machine and the internet gateway.\n\nPlease note, this tool was created to get comfortable with Rust, so the code isn't necessarily optimal nor idiomatic.\n\n**This tool is for educational purposes only.**\n\n## Features:\n\n* 1 to 1 route poisoning\n* save intercepted traffic as pcap file\n* automatic Ipv4 forwarding\n\n# Usage\n```\nUsage:\n    ./arp-spoof [OPTIONS]\n\nMinimal ARP spoofing tool written in Rust.\n\noptional arguments:\n  -h,--help             show this help message and exit\n  -i,--interface INTERFACE\n                        interface name\n  --target TARGET       target ipv4 address\n  --gateway GATEWAY     gateway ipv4 address\n  --log-traffic         logs all target traffic to `save.pcap`\n  -n,--no-forward       leave `/proc/sys/net/ipv4/ip_forward` untouched\n  -V,--version          show version\n```\nA typical invocation would look like this. The arguments are pretty self-describing.\n```\n# ./arp-spoof --interface eth0 --target 192.168.0.16 --gateway 192.168.0.1 --log-traffic\n[*] Using device eth0 ...\n -\u003e ip address: 192.168.0.100\n -\u003e mac address: 95:8F:6F:17:36:71\n -\u003e connection_status: Connected\n[+] forwarding ipv4 traffic: true\n[*] Resolving hosts (this can take a bit) ...\n -\u003e found 7E:FA:8B:B2:F5:8A at 192.168.0.16\n -\u003e found 7C:0B:B6:94:11:6B at 192.168.0.1\n[*] Saving captured packets as save.pcap ...\n[+] Poisoning traffic between 192.168.0.16 \u003c==\u003e 192.168.0.1\n[*] Received: 274, dropped: 0, if_dropped: 0\n[*] Received: 518, dropped: 0, if_dropped: 0\n```\n# Building\n\n```\n# cargo build --release\n# ./target/release/arp-spoof --help\n```\nTested with rust 1.68.0.\n\n\n## Linux\n\nOn Arch based Linux, install `community/rust`, `community/cargo` and `core/libpcap`. If not running as root, you need to set capabilities like so: ```sudo setcap cap_net_raw,cap_net_admin=eip path/to/bin```\n\n# TODO:\n\n* implement `n` to `m` route poisoning\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcarq%2Farp-spoof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgcarq%2Farp-spoof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgcarq%2Farp-spoof/lists"}