viernes, 7 de febrero de 2014

Script PERL para generar tráfico en UDP



Siempre que tenemos que probar algún firewall o alguna política de calidad de servicio nos encontramos con el problema de que necesitamos tráfico para ver si las cosas están bien configuradas, para ayudar a este proceso  les dejo un script de {es:Perl|PERL} que les va a generar tráfico en forma de datagramas UDP.



El código del mismo no es mio, sino que lo encontré en la página de 
Ivan Pepelnjak y me tomé el trabajo de traducirlo.


#!/usr/bin/perl
use Socket;
use strict;

if ($#ARGV !=
3) {
  print "\n$0    \n";
  print "Puerto = 0: usar puertos aleatorios\n";
  print "Tamanio = 0: usar tamanios aleatorios entre 64 y 1024\n";
  print "Duracion = 0: flood que no para nunca\n";
  print "Se deben escribir todos los parametros aunque sea en 0\n\n";
  exit(1);
}

my ($ip,$port,$size,$time) = @ARGV;
my ($iaddr,$endtime,$psize,$pport);

$iaddr = inet_aton("$ip") or die "No puedo resolver el hostname $ip\n";
$endtime = time() + ($time ?
$time : 1000000);

socket(flood, PF_INET, SOCK_DGRAM, 17);

print "Floodeando $ip:" .
($port ? $port : "puerto-aleatorio") . " con " .
  ($size ? "$size bytes" : "datagramas de tamanio aleatorio")
  .
 
($time ? " por $time segundos" : "") . "\n";
print "Parar con Ctrl-C\n" unless $time;

for (;time() <= $endtime;) {
  $psize = $size ? $size : int(rand(1024-64)+64) ;
  $pport = $port ? $port : int(rand(65500))+1;
  send(flood, pack("a$psize","flood"), 0, pack_sockaddr_in($pport, $iaddr));}


Obviamente voy a recomendar usar esto sólo para actividades legales que no involucren atacar algún equipo que no sea nuestro.

Nos vemos en el próximo post.

No hay comentarios:

Publicar un comentario