Hvordan lage en flom Script

Hvordan lage en flom Script


Flom, eller denial-of-service angrep, forsøk på å overvelde datamaskinen ressurser og gjøre dem utilgjengelige for brukerne. Vanligvis angrep bombardere mål ressurser med kommunikasjon forespørsler, slik at de ikke kan svare på autentisk trafikk eller svare så sakte at de synes utilgjengelig. Imidlertid kan det være lurt å lage et Perl skript som genererer en flom for å teste ressurser under stress. Du kan oversvømme en bestemt bruker port Datagram Protocol (UDP) på et mål ressurs med enten fast eller varierende pakkestørrelser. Du kan også generere en kontrollert konstant flom ved å angi et mål båndbredde eller inter-pakke forsinkelse.

Bruksanvisning

1 Definer kommandolinjeparametere som du ønsker å bruke. For eksempel kan du bruke en tid parameter for å angi varigheten av flommen. Hvis parameteren er utelatt, kan det flom være kontinuerlig. Et eksempel bruk av Perl-skript på kommandolinjen kan være som følger:

flood.pl --port port --size bytes --time sekunder --bandwidth kbps --delay msek

2 Inkludere "Socket", "getopt :: lange" og "Tid :: ansetter" Perl-moduler i skriptet. Den "Socket" modul laster C socket.h definerer og struktur manipulatorer. Den "getopt :: Long" modulen implementerer GetOptions () -funksjonen. Funksjonen leser programmet kommandolinjen, ser for samsvarende argumenter, og hvis det blir funnet, setter det korresponderende alternativ variabelen til true. Den "Tid :: HiRes" modulen gir høy oppløsning tid og timere, slik som "gettimeofday" systemkall. For eksempel:

bruke getopt :: Long;

bruke Socket;

Bruk Time :: HiRes;

3 Erklærer variablene. For eksempel:

vår $ port = 0;

vår $ size = 0;

vår $ time = 0;

vår $ bw = 0;

vår $ forsinkelse = 0;

4 Definere typen for variablene dine erklært. For eksempel:

GetOptions (

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

"Size = i" => \ $ størrelse, # pakkestørrelsen

"Båndbredde = i" => \ $ kroppsvekt, # hvor mye båndbredde å konsumere

"Time = i" => \ $ tid, # driftstid

"Forsinkelse = f" => \ $ forsinkelse, # inter-pakke forsinkelse

5 Kode kommandolinje parameter mislighold og bruk. For eksempel kan du angi at pakkestørrelsen til 256 bytes hvis "båndbredde" parameter brukes uten "size" parameter:

$ Size = 256 hvis $ bw && $ størrelse!;

6 Omfatter utskrift til skjermen hva skriptet gjør. For eksempel:

skrive "Flooding $ IP". ($ $ Port port: "tilfeldig"). "Port med".

($ Størrelse "$ size-byte": "random size"). "pakker". ($ Tid "for $ tids sekunder": ""). "\ N";