All Projects → blechschmidt → fakeroute

blechschmidt / fakeroute

Licence: MIT license
IPv4 and IPv6 traceroute fake hop generator through IP spoofing

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to fakeroute

ipv6calc
ipv6calc
Stars: ✭ 33 (-56%)
Mutual labels:  ipv6, ipv4, ipv6-address
ipv6
IPv6-adresse.dk source & data
Stars: ✭ 27 (-64%)
Mutual labels:  ipv6, ipv4, ipv6-address
PHP-IPAddress
IP Address utility classes for PHP
Stars: ✭ 63 (-16%)
Mutual labels:  ipv6, ipv4, ipv6-address
tracetrout
A magical reverse traceroute HTTP(S) server
Stars: ✭ 48 (-36%)
Mutual labels:  ipv6, ipv4, traceroute
Geolocate-IP-Browser-Extension
A browser extension, which shows you the origin of your IP address.
Stars: ✭ 21 (-72%)
Mutual labels:  ipv6, ipv4, ipv6-address
geoip
🌚 🌍 🌝 GeoIP 规则文件加强版,同时支持定制 V2Ray dat 格式路由规则文件 geoip.dat 和 MaxMind mmdb 格式文件 Country.mmdb。Enhanced edition of GeoIP files for V2Ray, Xray-core, Trojan-Go, Clash and Leaf, with replaced CN IPv4 CIDR available from ipip.net, appended CIDR lists and more.
Stars: ✭ 524 (+598.67%)
Mutual labels:  ipv6, ipv4, ipv6-address
freebind
IPv4 and IPv6 address rate limiting evasion tool
Stars: ✭ 88 (+17.33%)
Mutual labels:  ipv6, ipv4, ipv6-address
Icmplib
Easily forge ICMP packets and make your own ping and traceroute.
Stars: ✭ 58 (-22.67%)
Mutual labels:  ipv6, ipv4, traceroute
Minidyndns
A simple DynDNS server with an build in HTTP interface to update IPs
Stars: ✭ 101 (+34.67%)
Mutual labels:  ipv6, ipv4
Cidrchk
CLI tool for CIDR range operations (check, generate)
Stars: ✭ 103 (+37.33%)
Mutual labels:  ipv6, ipv4
Jool
SIIT and NAT64 for Linux
Stars: ✭ 172 (+129.33%)
Mutual labels:  ipv6, ipv4
Ddns
🚩 自动更新域名解析到本机IP(支持dnspod,阿里DNS,CloudFlare,华为云,DNSCOM...)
Stars: ✭ 2,582 (+3342.67%)
Mutual labels:  ipv6, ipv4
Packetsender
Network utility for sending / receiving TCP, UDP, SSL
Stars: ✭ 1,349 (+1698.67%)
Mutual labels:  ipv6, ipv4
Firewall
ASP.NET Core middleware for IP address filtering.
Stars: ✭ 159 (+112%)
Mutual labels:  ipv6, ipv4
The Bits And Bytes Of Computer Networking
Networking , N/W layer, Transport and Application Layer, Networking Service, Internet, Troubleshooting , N/W future
Stars: ✭ 87 (+16%)
Mutual labels:  ipv6, ipv4
Exabgp
The BGP swiss army knife of networking
Stars: ✭ 1,713 (+2184%)
Mutual labels:  ipv6, ipv4
Php Ip Tools
Useful tools for IP manipulations
Stars: ✭ 152 (+102.67%)
Mutual labels:  ipv6, ipv4
Iptables semantics
Verified iptables Firewall Ruleset Analysis
Stars: ✭ 85 (+13.33%)
Mutual labels:  ipv6, ipv4
Ip Num
A TypeScript/JavaScript library for working with ASN, IPv4, and IPv6 numbers. It provides representations of these internet protocol numbers with the ability to perform various IP related operations like parsing, validating etc. on them
Stars: ✭ 113 (+50.67%)
Mutual labels:  ipv6, ipv4
Aliddns
aliyun ddns for golang【阿里云DDNS服务,用来将自己的动态IP同步到自己的域名解析服务器,安装方便,配置简单,默认支持Linux和MacOS以后台服务方式持续运行】
Stars: ✭ 136 (+81.33%)
Mutual labels:  ipv6, ipv4

fakeroute

Fakeroute allows you to insert fake IPv4 and IPv6 hops between the last real hop and your Linux server by making use of IP address spoofing.

Setup

Install the dependencies using pip install -r requirements.txt. Run sudo python fakeroute.py on the machine for which you want to spoof the traceroute.

You can supply the path to a text file with custom IP addresses to be spoofed using --hops. The file can contain IPv4 and IPv6 addresses, one per line.

To test the script, you can set up a virtual machine with a bridged network interface, such that it obtains its own IP via DHCP, and traceroute the IP of the host.

Most ISPs will not allow you to spoof IP addresses nowadays. You can still make use of fakeroute by externalizing the spoofing process. To this end, start fakeroute with the --spoofer option, which expects IP:port to listen on, in a data center that allows spoofing. Then, on the machine for which you want to fake the traceroute, supply fakeroute with the remote endpoint (IP:port) of the spoofer using --remote. You can add an HMAC --key to not allow everyone to use your spoofing service.

usage: fakeroute.py [-h] [--hops HOPS] [--remote REMOTE] [--spoofer SPOOFER] [--key KEY]

Fake traceroute generator

options:
  -h, --help         show this help message and exit
  --hops HOPS        Path to file containing IPv4 and IPv6 addresses
  --remote REMOTE    IP:port of remote spoofing service
  --spoofer SPOOFER  IP:port to launch a spoofing service locally
  --key KEY          HMAC-SHA256 signing key for remote spoofing authentication in hex format

How does it work?

IP packet headers contain a one byte time to live (TTL, IPv4) or hop limit (HL, IPv6) field which is supposed to be decreased by every router on the packet's path to prevent infinite circulations. Initially, the sender populates the packet with a sufficiently large value. Most routers signal the expiry of the TTL by replying with an ICMP "TTL expired" packet to the packet sender. Tracerouting works by sending out packets with increasing TTL. The first router will drop the packet with TTL 1 and send an ICMP reply, the second router will drop the packet with TTL 2 and so on. By simply dropping all packets with a TTL below a certain threshold N at the last hop, it will appear as if N hops, that do not reply with ICMP packets, had been inserted. The fakeroute.py script uses a raw socket to capture packets with low TTL and either relays them to a server in a data center without egress filtering (i.e. where packets with spoofed source IP address are not filtered) or generates ICMP replies for them from fake source IP addresses directly.

Where does it work?

Most providers will filter packets with forged IP addresses. An incomplete list of server providers without egress filtering is available here:

Provider Product Date
njal.la VPS 15 September 2, 2022

If you know more server providers, please submit a pull request with the details (provider name, product name, date, and, if possible, a CAIDA Spoofer report).

Screenshot

Screenshot

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].