Hping3: crea pacchetti TCP / IP ed esegui attacchi DoS su Linux

Quando vogliamo controllare la connettività, utilizziamo tutti il ​​comando Ping, uno strumento che invia pacchetti ICMP a un server specifico per sapere se la comunicazione è corretta o c'è un problema. Tuttavia, questo strumento è molto semplice e non consente praticamente alcuna modifica dei pacchetti, né utilizza altri protocolli per inviare informazioni. Hping3 è un'applicazione più avanzata, che ci permetterà di modificare i pacchetti che vengono inviati tramite il protocollo TCP / IP, così da poter avere un controllo molto maggiore di questi pacchetti, potendoli adattare secondo le nostre esigenze.

Caratteristiche principali

Hping3 è un'applicazione terminale per Linux che ci consentirà di analizzare e assemblare facilmente i pacchetti TCP / IP. A differenza di un ping convenzionale utilizzato per inviare pacchetti ICMP, questa applicazione consente l'invio di pacchetti TCP, UDP e RAW-IP. Oltre all'analisi dei pacchetti, questa applicazione può essere utilizzata anche per altri scopi di sicurezza, ad esempio per testare l'efficacia di un firewall attraverso diversi protocolli, il rilevamento di pacchetti sospetti o modificati e persino la protezione dagli attacchi. DoS di un sistema o un firewall.

HPing3

In passato, questo strumento è stato utilizzato per problemi di sicurezza informatica, ma possiamo anche usarlo per testare reti e host. Alcune delle principali applicazioni che possiamo fare con questo strumento sono le seguenti:

  • Verificare la sicurezza e il funzionamento dei firewall.
  • Usalo come port scan avanzato, sebbene sia meglio usare Nmap per questo compito.
  • Test di rete utilizzando diversi protocolli, ToS, frammentazione ecc.
  • Scopri manualmente l'MTU sul percorso.
  • Traceroute avanzato che utilizza tutti i protocolli supportati
  • Impronta digitale remota dal sistema operativo
  • Controlla l'ora
  • Controllo dello stack TCP / IP

A causa dell'elevato numero di possibilità di questo strumento, in questo articolo ti mostreremo gli usi principali e come farlo.

Installa Hping3

Hping3 è disponibile nei repository ufficiali di Ubuntu, Debian e anche altre distribuzioni Linux, quindi per installarlo dobbiamo semplicemente aprire un terminale (o un gestore di pacchetti come Synaptic) e digitarlo:

sudo apt install hping3

Lo strumento occuperà circa 3,600 KB che, una volta installato, potremo iniziare ad usarlo.

Elenco dei comandi Hping3

Le funzioni supportate da questo programma sono immense. Dall'esecuzione di un semplice ping all'invio di pacchetti attraverso una porta specifica nascondendo anche l'IP di origine. Se vogliamo conoscere a fondo tutti i parametri che questo programma ci offre, possiamo consultare l'help incluso nello strumento semplicemente digitando nel terminale:

hping3 --help

Utilizzo di base dello strumento:

  • v –version mostra la versione corrente di hping3
  • -c -count packet counter
  • -i –interval timeout (uX per X microsecondi, ad esempio -i u1000)
    • –Alias ​​veloci per -i u10000 (10 pacchetti al secondo)
    • –Alias ​​più veloce per -i u1000 (100 pacchetti al secondo)
    • –Flood invia i pacchetti il ​​più velocemente possibile, non visualizza le risposte.
  • -n –output numerico con numeri
  • -q –quiet silenzioso comando senza mostrarlo sullo schermo
  • -I –nome dell'interfaccia dell'interfaccia, se non è impostato nulla, di default è l'interfaccia del gate di default sopra.
  • -V –modalità verbose verbose per il debug
  • -D –debug informazioni di debug
  • -z –bind bind ctrl + za ttl (il valore predefinito è la porta di destinazione)
  • -Z –unbind scollega ctrl + z
  • –Beep beep per ogni pacchetto ricevuto che corrisponde

Modalità:

  • La modalità predefinita è TCP
  • -0 –rawip RAW modalità IP
  • -1 –icmp Modalità ICMP
  • -2 –udp Modalità UDP
  • -8 –Modalità di scansione Modalità SCAN.
  • -9 - modalità di ascolto pronto

Esempio: hping –scan 1-30,70-90 -S www.target.com

IP:

  • -a –spoof falsifica l'indirizzo IP di origine
    • –Indirizzo IP di destinazione casuale di destinazione casuale.
    • –Indirizzo IP di origine casuale di origine casuale.
  • -t –ttl ttl (predefinito 64)
  • -N –id id (predefinito casuale)
  • -W –winid usa l'ordine dei byte win * id
  • -r –rel relativizza il campo id (per stimare il traffico host)
  • -f –frag frammenta i pacchetti in più di un frammento, può attraversare ACL deboli
  • -x –morefrag frammenta di più
  • -y –dontfrag non frammenta i pacchetti.
  • -g –fragoff imposta l'offset del frammento
  • -m –mtu imposta una MTU virtuale, implica che il frammento del pacchetto è maggiore della MTU.
  • -o –tos tipo di servizio (predefinito 0x00), prova a eseguire –tos help
  • -G –rroute include l'opzione RECORD_ROUTE e mostra il buffer del percorso
    • –Lsrr instradamento della sorgente sciolto e registro delle rotte
    • –Ssrr rigoroso routing di origine e registro delle rotte
  • -H –ipproto imposta il protocollo IP, solo per la modalità RAW IP.

ICMP:

  • -C –icmptype Tipo ICMP (predefinito su richiesta Echo ICMP)
  • -K –icmpcode Codice ICMP (il valore predefinito è 0)
    • –Force-icmp invia tutti i tipi ICMP (per impostazione predefinita invia solo i tipi supportati)
    • –Icmp-gw imposta l'indirizzo gateway predefinito per il reindirizzamento ICMP (predefinito 0.0.0.0)
    • –Icmp-ts alias per –icmp –icmptype 13 (timestamp ICMP)
    • –Icmp-addr alias per –icmp –icmptype 17 (indirizzo della subnet mask ICMP)
    • –Icmp-help visualizza la guida per altre opzioni icmp.

Codici ICMP

È molto utile conoscere alcuni codici ICMP che hping3 potrebbe mostrarci, di seguito, hai tutti quelli più utilizzati:

TCP/UDP

  • -s –baseport porta di origine di base, l'impostazione predefinita è casuale
  • -p –destport [+] [+] posizione di destinazione (default 0) ctrl + z inc / dec
  • -k –keep mantiene la porta di origine
  • -w - dimensione della finestra doppia, impostazione predefinita 64
  • -O –tcpoff imposta l'offset dei dati tcp falso (invece di tcphdrlen / 4)
  • -Q –seqnum mostra solo il numero di sequenza
  • -b –badcksum (prova a) invia pacchetti con checksum IP falsificato, molti sistemi correggeranno questo checksum quando inviano il pacchetto, quindi avrai un checksum errato a livello UDP / TCP.
  • -M –setseq imposta il numero di sequenza TCP
  • -L –setack imposta TCP ack
  • -F –fin imposta il flag FIN
  • -S –syn imposta il flag SYN
  • -R –rst imposta il flag RST
  • -P –push imposta il flag PUSH
  • -A –ack imposta il flag ACK
  • -U –urg imposta il flag URG
  • -X –xmas imposta il flag X inutilizzato (0x40)
  • -Y –ymas imposta il flag Y inutilizzato (0x80)
    • –Tcpexitcode utilizza l'ultimo tcp-> th_flags come codice di uscita
    • –Tcp-mss abilita l'opzione TCP MSS con il valore specificato
    • –Tcp-timestamp abilita l'opzione timestamp TCP per indovinare il tempo di attività.

Opzioni comuni a tutti

  • d –data dimensione dei dati, il valore predefinito è 0.
  • -E –file di dati da un file.
  • -e –sign aggiunge una firma
  • -j –dump dei pacchetti di dump in esadecimale
  • -J –print scarica i caratteri stampabili
  • -B –safe abilita il protocollo "sicuro"
  • -u –end ti dice quando un file ha raggiunto la fine
  • -T –traceroute modalità traceroute (implica –bind e –ttl 1)
    • –Tr-stop Esce quando il primo pacchetto non ICMP viene ricevuto in modalità traceroute
    • –Tr-keep-ttl Mantiene fisso il TTL sorgente, utile per monitorare un solo hop
    • –Tr-no-rtt Non calcola e non visualizza le informazioni RTT in modalità traceroute
  • Descrizione del pacchetto ARS (nuovo e instabile)
    • –Apd-send Invia i pacchetti descritti con APD

Esempi di utilizzo di Hping3

Semplice test ping

Possiamo utilizzare questo strumento come il comando ping convenzionale, ottenendo praticamente gli stessi risultati. Per fare questo dobbiamo semplicemente digitare:

hping3 www.google.es

Hping3_tutorial_Linux_foto_1

E vedremo come viene eseguito questo semplice test di connessione. (Possiamo cambiare il dominio Google con qualsiasi altro o utilizzare direttamente un IP per eseguirne il ping).

Traccia il percorso di connessione

In modo simile all'opzione "tracert" in Windows o "traceroute" in Linux, con questo strumento possiamo anche seguire tutti i salti tra le reti di un pacchetto da quando lascia il nostro computer fino a quando raggiunge la sua destinazione, potendo sapere in qualsiasi momento se c'è qualche tipo di problema nel connessione.

Per fare questo dobbiamo semplicemente digitare:

hping3 redeszone.net -t 1 --traceroute

Scansione delle porte utilizzando il flag TCP SYN

Questo strumento ci permette anche di inviare pacchetti sotto il protocollo TCP, nel modo più puro Nmap stile. Per eseguire una scansione utilizzando questo metodo, digiteremo nel terminale "hping3 –S [Destination IP] –p [Port]", il risultato sarà simile al seguente:

hping3 -S www.google.es –p 80

Il risultato di questo test restituirà un file SA flag, il che significa che corrisponde a SYN/ACK , cioè, la comunicazione è stata accettata, o ciò che è lo stesso, quello il porto è aperto . Altrimenti, se il valore è RA esso corrisponde RST/ACK o che è lo stesso, che la comunicazione non è stata eseguita correttamente perché il porto è chiuso o filtrato.

Hping3_tutorial_Linux_foto_2

In questo modo potremo sapere, ad esempio, se la comunicazione è consentita a una certa porta, o se altrimenti il ​​Firewall la sta filtrando.

Firma i pacchetti con un file di testo personalizzato

È possibile utilizzare questo strumento per modificare i pacchetti che inviamo e inserire in essi un messaggio personalizzato simile a una firma. Per fare questo dobbiamo semplicemente digitare:

hping3 redeszone.net -d 50 -E firmaredeszone.txt

Questo comando introdurrà nei pacchetti Ping il contenuto del file txt indicato. Se analizzassimo questi pacchetti con un software adatto come WireShark vedremmo che al loro interno c'è il contenuto del file in questione.

Hping3_tutorial_Linux_foto_3

I parametri inseriti significano:

  • -d: La lunghezza del messaggio che stiamo per inserire, in questo caso, 50.
  • -E: File da cui prenderemo la firma del messaggio che vogliamo introdurre nei pacchetti.

Possiamo anche usare altri parametri, ad esempio, -p per indicare la porta a cui vogliamo inviare questi pacchetti o -2 per inviare i pacchetti tramite il protocollo UDP.

Genera più richieste per testare la protezione DoS e DDoS

Questo strumento ci consentirà inoltre di verificare la stabilità del nostro sistema contro attacchi di rete come DoS e DDoS, generando veri e propri test, sia verso localhost che verso un altro server interno (o esterno) alla rete.

Possiamo effettuare una serie di ping univoci modificando l'IP sorgente degli stessi nei pacchetti TCP / IP semplicemente digitando:

hping3 --rand-source 192.168.1.1

Allo stesso modo, possiamo aggiungere il parametro –flood in modo che i pacchetti vengano inviati in blocco in tempo reale. In questo modo, potremo verificare, in primo luogo, se il nostro firewall funziona e, in secondo luogo, quanto bene il nostro sistema risponde a una minaccia di attacco DDoS.

Per questo scriveremo:

hping3 --rand-source --flood 192.168.1.1

Hping3_tutorial_Linux_foto_4

In un paio di secondi abbiamo generato più di 25,000 pacchetti, quindi dobbiamo stare attenti perché la nostra rete potrebbe essere bloccata e inutilizzabile.

In questo modo inizierà a essere generato un gran numero di pacchetti con una “falsa origine” (grazie al parametro rand-source) che verranno inviati continuamente al server di destinazione (in questo caso 192.168.1.1). In questo modo possiamo verificare la robustezza del nostro sistema contro gli attacchi DDoS poiché, se il sistema smette di funzionare o va in crash, potrebbe esserci un errore di configurazione e che dobbiamo applicare le misure corrispondenti per evitare che ciò avvenga in un ambiente reale.

Questo strumento è molto utile, anche se dovrebbe essere sempre utilizzato in ambienti chiusi e controllati poiché uscendo è possibile che finiamo per effettuare un attacco di negazione del servizio a una squadra che non dovremmo, essendo illegale e potrebbe finire sanzionato per questo.

Ti consigliamo accedere alla PAGINA MANUALE hping ufficiale per scoprire tutte le tue opzioni.