Como fazer um script de flood

Escrito por joy prescott | Traduzido por franciele gobi
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como fazer um script de flood
Existem mais de 21.000 módulos em Perl de código aberto (Thinkstock Images/Comstock/Getty Images)

Floods, ou ataques de negação de serviço, tentam sobrecarregar recursos de um computador e torná-lo indisponível para usuários. Geralmente, ataques bombardeiam os recursos alvo com requerimentos de comunicação para que estes não possam responder ao tráfego autêntico ou respondam tão lentamente de forma que pareçam indisponíveis. No entanto, pode-se desejar criar um script em Perl gere um flood para testar recursos sob stress. É possível criar um flood em uma porta UDP (User Datagram Protocol) específica em um recurso alvo tanto com tamanhos de pacote fixos como variados. É possível também gerar um flood constante controlado indicando uma largura de banda alvo ou atraso entre pacotes.

Nível de dificuldade:
Moderadamente desafiante

Outras pessoas estão lendo

O que você precisa?

  • Editor de texto

Lista completaMinimizar

Instruções

    Sessão 1

  1. 1

    Defina os parâmetros da linha de comando que deseja utilizar. Por exemplo, pode-se utilizar um parâmetro de tempo para especificar a duração do flood. Se o parâmetro é omitido, o flood pode ser contínuo. Um exemplo de uso do script em Perl na linha de comando é mostrado a seguir:

    flood.pl --port port --size bytes --time seconds --bandwidth kbps --delay msec

  2. 2

    Inclua os módulos em Perl “Socket,” “Getopt::Long” e “Time::HiRes” no script. O módulo "Socket" carrega o C socket.h para definir e estruturar os manipuladores. O módulo “Getopt::Long” implementa a função GetOptions(). A função lê a linha de comando do programa, procura por argumentos compatíveis, e caso encontre, configura a variável da opção correspondente como verdadeira. O módulo “Time::HiRes” fornece tempo de alta resolução e temporizadores, assim como o chamado de sistema “gettimeofday”. Por exemplo:

    use Getopt::Long; use Socket; use Time::HiRes;

  3. 3

    Declare as variáveis. Por exemplo:

    our $port = 0; our $size = 0; our $time = 0; our $bw = 0; our $delay= 0;

  4. 4

    Defina o tipo para as variáveis declaradas. Por exemplo:

    GetOptions( "port=i" => \$port, # UDP port to use "size=i" => \$size, # packet size "bandwidth=i" => \$bw, # how much bandwidth to consume "time=i" => \$time, # running time "delay=f"=> \$delay, # inter-packet delay

  5. 5

    Coloquem no código os padrões dos parâmetros da linha de comando. Por exemplo, pode-se configurar o tamanho do pacote para 256 bytes se o parâmetro "bandwidth" for usado sem o parâmetro "size":

    $size = 256 if $bw && !$size;

  6. 6

    Inclua a amostragem de informações na tela para mostrar o que o script está fazendo. Por exemplo:

    print "Flooding $ip " . ($port ? $port : "random") . " port with " . ($size ? "$size-byte" : "random size") . " packets" . ($time ? " for $time seconds" : "") . "\n";

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível