Come fare uno script Flood

December 18

Come fare uno script Flood


Inondazioni, o attacchi denial-of-service, tentano di sopraffare risorse del computer e renderli disponibili per gli utenti. Di solito, gli attacchi bombardano risorse di destinazione con le richieste di comunicazione in modo che essi non possono rispondere al traffico autentico o rispondere così lentamente che sembrano disponibili. Tuttavia, è possibile creare uno script Perl che genera un flusso di testare le risorse in condizioni di stress. Si può inondare una porta specifica User Datagram Protocol (UDP) su una risorsa di destinazione sia con dimensioni dei pacchetti fissi o variabili. È inoltre possibile generare un flusso costante controllato indicando una larghezza di banda di destinazione o inter-packet ritardo.

istruzione

1 Definire i parametri della riga di comando che si desidera utilizzare. Ad esempio, è possibile utilizzare un parametro di tempo per specificare la durata del diluvio. Se il parametro viene omesso, il flusso potrebbe essere continua. Un esempio di come lo script Perl nella riga di comando potrebbe essere la seguente:

flood.pl porta --port --size byte --time secondi kbps --bandwidth msec --delay

2 Includere il "getopt :: Long" e "Time :: HiRes" moduli Perl nello script "Socket". Il modulo "Socket" carica definisce il socket.h C e manipolatori di strutture. Il modulo "Getopt :: Long" implementa la funzione () GetOptions. La funzione legge la riga di comando del programma, cerca gli argomenti di corrispondenza, e se trovato, imposta la variabile opzione corrispondente al vero. Il modulo "Time :: HiRes" fornisce il tempo ad alta risoluzione e timer, come ad esempio la chiamata di sistema "gettimeofday". Per esempio:

utilizzare Getopt :: Long;

usare Socket;

Usa Time :: HiRes;

3 Dichiarare le variabili. Per esempio:

il nostro $ port = 0;

il nostro $ size = 0;

il nostro $ time = 0;

il nostro $ bw = 0;

il nostro $ ritardo = 0;

4 Definire il tipo per le variabili dichiarate. Per esempio:

GetOptions (

"port=i" => \$port, # UDP port to use

"Size = i" => \ $ formato, dimensione dei pacchetti #

"Larghezza di banda = i" => \ $ BW, # quanta larghezza di banda di consumare

"Tempo = i" => \ $ tempo, # tempo di esecuzione

"Ritardo = f" => \ $ ritardo, ritardo # inter-packet

5 comando Codice default e l'utilizzo dei parametri di linea. Ad esempio, è possibile impostare la dimensione del pacchetto di 256 byte se il parametro "larghezza di banda" viene utilizzato senza il parametro "size":

$ Size = 256 se $ bw && $ dimensione!;

6 Includere la stampa su schermo ciò che lo script sta facendo. Per esempio:

stampare "Inondazioni $ IP". (? $ Porta $ porta: "random"). "Porta con".

($ Size "$ formato byte":? "Formato casuale"). "pacchetti". ($ Tempo "per $ tempo secondi": ""). "\ N";