Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti


Questa lezione descrive le tecnologie di hacking di rete basate sull'intercettazione pacchetti di rete. Gli hacker utilizzano tali tecnologie per annusare il traffico di rete per rubare informazioni preziose, per intercettare i dati ai fini di un attacco man-in-the-middle, per intercettare le connessioni TCP, consentendo, ad esempio, di falsificare i dati e per eseguire altre azioni altrettanto interessanti . Sfortunatamente, la maggior parte di questi attacchi in pratica viene implementata solo per le reti Unix, per le quali gli hacker possono utilizzare entrambi utenze speciali e strumenti di sistema Unix. Le reti Windows sembrano essere aggirate dagli hacker e siamo costretti a limitare la nostra descrizione degli strumenti di intercettazione dei dati ai programmi di sniffer progettati per lo sniffing banale dei pacchetti di rete. Tuttavia, non bisogna trascurare almeno una descrizione teorica di tali attacchi, soprattutto per gli anti-hacker, poiché la conoscenza delle tecnologie di hacking utilizzate aiuterà a prevenire molti problemi.

Sniffare la rete

Lo sniffing della rete Ethernet di solito utilizza NIC impostate in modalità di ascolto. L'ascolto di una rete Ethernet richiede la connessione di un computer che esegue un programma sniffer a un segmento di rete, dopodiché tutto il traffico di rete inviato e ricevuto dai computer in questo segmento di rete diventa disponibile per un hacker. È ancora più semplice intercettare il traffico delle reti radio utilizzando intermediari di reti wireless: in questo caso non è nemmeno necessario cercare un punto di connessione al cavo. Oppure un utente malintenzionato può connettersi alla linea telefonica che collega il computer al server Internet, trovando un posto conveniente per questo (le linee telefoniche sono solitamente posate negli scantinati e in altri luoghi non protetti).

Per dimostrare la tecnologia dello sniffing, useremo un programma sniffer molto popolare Spynet che può essere trovato su molti siti web. Sito ufficiale del programma Spynet situato in http://members.xoom.com/layrentiu2/, dove è possibile scaricare una versione demo del programma.

Programma Spynet consiste di due componenti - CaptureNet E PipeNet. Programma CaptureNet consente di intercettare i pacchetti trasmessi su una rete Ethernet a livello di rete, ovvero come frame Ethernet. Programma PipeNet consente di raccogliere i frame Ethernet in pacchetti a livello di applicazione, recuperando, ad esempio, i messaggi E-mail, messaggi del protocollo HTTP (scambio di informazioni con un server Web) ed eseguono altre funzioni.

Purtroppo la demo Spynet possibilità PipeNet sono limitati alla demo di compilazione del pacchetto HTTP, quindi non possiamo dimostrare il lavoro Spynet in toto. Tuttavia, dimostreremo le possibilità dello sniffing della rete Spynet sull'esempio della nostra rete sperimentale, passando file di testo dall'ospite Spada-2000 per ospite Alex Z usando il solito Windows Explorer. Contemporaneamente sul computer A1ex-1 eseguiremo il programma CaptureNet, che intercetterà i pacchetti trasmessi e consentirà di leggere il contenuto del file trasmesso nei frame Ethernet. Sulla fig. 1 mostra il testo del messaggio segreto nel file secret.txt; cercheremo di trovare questo testo nei frame Ethernet intercettati.

Riso. 1. Il testo del messaggio segreto nella finestra Blocco note

Segui questi passaggi per acquisire i frame Ethernet.

Sul computer Alex Z eseguire il programma CaptureNet. Nella finestra di lavoro visualizzata del programma, selezionare il comando di menu Cattura *Avvia(Capture * Start) e avvia il processo di acquisizione dei frame di rete.

Usa Windows Explorer per copiare il file security.txt dal tuo computer Spada-2000 SU A1ex-3.

Dopo aver trasferito il file secret.txt, seleziona il comando di menu Cattura*Ferma(Capture * Stop) e interrompe il processo di cattura.

I frame Ethernet acquisiti verranno visualizzati nella parte destra della finestra del programma CaptureNet(Figura 2), con ogni riga nell'elenco superiore che rappresenta un frame Ethernet e sotto l'elenco che mostra il contenuto del frame selezionato.

Riso. 2. Il frame Ethernet contiene il testo del messaggio segreto

Scorrendo l'elenco dei frame intercettati, possiamo facilmente trovare quello che contiene il testo che abbiamo trasmesso This is a very big secret (Questo è un segreto molto grande).

Sottolineiamo che questo è l'esempio più semplice, quando è stato registrato tutto il traffico di rete intercettato. Programma CaptureNet consente di intercettare i pacchetti inviati su determinati protocolli e a determinate porte di host, selezionare messaggi con un determinato contenuto e accumulare i dati acquisiti in un file. La tecnica per eseguire tali azioni è semplice e può essere padroneggiata utilizzando il sistema di aiuto del programma. Spynet.

Oltre all'ascolto primitivo sulla rete, gli hacker hanno a disposizione mezzi più sofisticati per intercettare i dati. Di seguito è riportata una breve panoramica di tali metodi, tuttavia, in un aspetto teorico. Il motivo è che per le reti Windows l'implementazione pratica degli attacchi di intercettazione dei dati è estremamente limitata e il set di strumenti affidabili per gli attacchi di intercettazione è piuttosto scarso.

Metodi per intercettare il traffico di rete

Ascolto di una rete utilizzando programmi di analisi di rete come quello sopra CaptureNet, è il primo, il più in modo semplice intercettazione dati. Tranne Spynet Per lo sniffing della rete vengono utilizzati molti strumenti, originariamente sviluppati allo scopo di analizzare l'attività di rete, diagnosticare le reti, selezionare il traffico in base a criteri specificati e altre attività di amministrazione della rete. Un esempio di tale programma è tcpdump (http://www.tcpdump.org), che consente di registrare il traffico di rete in un registro speciale per un'analisi successiva.

Per proteggersi dall'intercettazione della rete, fare domanda programmi speciali, Per esempio, AntiSniff (http://www.securitysoftwaretech.com/antisniff) in grado di rilevare i computer sulla rete che ascoltano il traffico di rete. Per risolvere i loro problemi, i programmi anti-sniffer utilizzano un segno speciale della presenza di dispositivi di ascolto sulla rete: la scheda di rete del computer sniffer deve trovarsi in una modalità di ascolto speciale. In modalità di ascolto, computer di rete rispondono in modo speciale ai datagrammi IP inviati all'indirizzo dell'host sotto test. Ad esempio, gli host in ascolto in genere elaborano tutto il traffico in entrata, non solo i datagrammi inviati all'indirizzo host. Esistono altri segni che indicano un comportamento sospetto dell'host che il programma è in grado di riconoscere. AntiSniff.

Indubbiamente, l'ascolto è molto utile dal punto di vista di un utente malintenzionato, poiché consente di ottenere molte informazioni utili: password trasmesse in rete, indirizzi di computer di rete, dati riservati, lettere e così via. Tuttavia, la semplice intercettazione impedisce a un hacker di interferire con la comunicazione di rete tra due host per modificare e corrompere i dati. Per risolvere questo problema, è necessaria una tecnologia più sofisticata.

Richieste ARP false

Per intercettare e passare attraverso il processo di comunicazione di rete tra due host A e B, un utente malintenzionato può sostituire gli indirizzi IP degli host interagenti con il proprio indirizzo IP inviando falsi messaggi ARP (Address Resolution Protocol) agli host A e B . Il protocollo ARP può essere trovato nell'Appendice D, che descrive come risolvere (tradurre) l'indirizzo IP di un host in un indirizzo macchina (indirizzo MAC) cablato nella scheda NIC dell'host. Vediamo come un hacker può utilizzare il protocollo ARP per intercettare la comunicazione di rete tra gli host A e B.

Per intercettare il traffico di rete tra gli host A e B, un hacker forza il proprio indirizzo IP su questi host in modo che A e B utilizzino questo falso indirizzo IP durante lo scambio di messaggi. Per imporre il proprio indirizzo IP, un hacker esegue le seguenti operazioni.

Un utente malintenzionato determina gli indirizzi MAC degli host A e B, ad esempio, utilizzando il comando nbstat dal pacchetto W2RK.

L'attaccante invia messaggi agli indirizzi MAC identificati degli host A e B, che sono risposte ARP falsificate alle richieste per risolvere gli indirizzi IP degli host negli indirizzi MAC dei computer. All'host A viene comunicato che l'indirizzo IP dell'host B corrisponde all'indirizzo MAC del computer dell'aggressore; all'host B viene comunicato che l'indirizzo IP dell'host A corrisponde anche all'indirizzo MAC del computer dell'aggressore.

Gli host A e B inseriscono gli indirizzi MAC ricevuti nelle loro cache ARP e li utilizzano per scambiarsi messaggi. Poiché gli indirizzi IP A e B corrispondono all'indirizzo MAC del computer dell'aggressore, gli host A e B, ignari di qualsiasi cosa, comunicano tramite un intermediario in grado di fare ciò che vogliono con i loro messaggi.

Per proteggersi da tali attacchi, gli amministratori di rete devono mantenere un database con una tabella di mappatura tra gli indirizzi MAC e gli indirizzi IP dei propri computer di rete. Inoltre, con l'aiuto di un software speciale, ad esempio l'utilità arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz) è possibile ispezionare periodicamente la rete e identificare le incoerenze.

Sulle reti UNIX, questo tipo di attacco di spoofing ARP può essere implementato utilizzando utilità di sistema per il monitoraggio e la gestione del traffico di rete, ad esempio, arpredirect. Purtroppo dentro Reti Windows 2000/XP, tali utilità affidabili non sembrano essere implementate. Ad esempio, sul sito web di NTsecurity ( http://www.ntsecurity.nu) è possibile scaricare l'utilità Prendi l'intelligenza artificiale presentato come mezzo per reindirizzare il traffico tra host di rete. Tuttavia, un controllo elementare delle prestazioni dell'utilità Prendi l'intelligenza artificiale dimostra che il pieno successo nell'attuazione delle sue funzioni è ancora lontano.

Instradamento falso

Per intercettare il traffico di rete, un utente malintenzionato può sostituire l'indirizzo IP reale di un router di rete con il proprio indirizzo IP, ad esempio utilizzando messaggi di reindirizzamento ICMP contraffatti. Secondo RFC-1122, l'host A dovrebbe interpretare il messaggio di reindirizzamento ricevuto come una risposta a un datagramma inviato a un altro host, ad esempio B. L'host A determina le proprie azioni sul messaggio di reindirizzamento in base al contenuto del messaggio di reindirizzamento ricevuto e se Redirect è impostato per reindirizzare i datagrammi da A a B su un nuovo percorso, questo è esattamente ciò che farà l'host A.

Per eseguire lo spoofing routing, un utente malintenzionato deve conoscere alcuni dettagli sull'organizzazione rete locale, dove si trova l'host A, in particolare l'indirizzo IP del router attraverso il quale viene inviato il traffico dall'host A a B. Sapendo ciò, l'attaccante formerà un datagramma IP in cui l'indirizzo IP di origine è definito come l'indirizzo IP di il router e il destinatario è specificato come host A. Nel datagramma è incluso anche un messaggio di reindirizzamento ICMP con il campo dell'indirizzo del nuovo router impostato sull'indirizzo IP del computer dell'aggressore. Dopo aver ricevuto tale messaggio, l'host A invierà tutti i messaggi all'indirizzo IP del computer dell'aggressore.

Per proteggersi da un simile attacco, è necessario disabilitare (ad esempio utilizzando un firewall) sull'host A l'elaborazione dei messaggi di reindirizzamento ICMP e il comando tracert(su Unix questo è il comando tracerout). Queste utilità sono in grado di trovare un percorso aggiuntivo apparso sulla rete locale, non previsto durante l'installazione, se, ovviamente, l'amministratore di rete è vigile.

Gli esempi precedenti di intercettazioni (che sono tutt'altro che limitati agli aggressori) convincono della necessità di proteggere i dati trasmessi sulla rete se i dati contengono informazioni riservate. L'unico metodo di protezione contro le intercettazioni del traffico di rete è l'uso di programmi che implementano algoritmi crittografici e protocolli di crittografia e impediscono la divulgazione e la sostituzione di informazioni segrete. Per risolvere tali problemi, la crittografia fornisce mezzi per crittografare, firmare e autenticare i messaggi trasmessi su protocolli sicuri.

L'implementazione pratica di tutti i metodi crittografici di protezione dello scambio di informazioni descritti nel capitolo 4 è fornita da Reti VPN(Virtual Private Network - Reti private virtuali). Breve recensione principi e metodi di protezione crittografica si trovano nell'Appendice E, e in descrizione dettagliata protezione crittografica fornita dall'applicazione Sicurezza desktop PGP (http://www.pgp.com).

Intercettazione della connessione TCP

L'attacco di intercettazione del traffico di rete più sofisticato dovrebbe essere considerato il dirottamento della connessione TCP (TCP hijacking), quando un hacker, generando e inviando pacchetti TCP all'host attaccato, interrompe la sessione di comunicazione in corso con l'host. Inoltre, utilizzando le capacità del protocollo TCP per ripristinare una connessione TCP interrotta, l'hacker intercetta la sessione di comunicazione interrotta e la continua al posto del client disconnesso.

Sono state create diverse utilità efficaci per eseguire attacchi di hijacking TCP, ma sono tutte implementate per la piattaforma Unix e queste utilità sono disponibili sui siti Web solo sotto forma di codice sorgente. Pertanto, in quanto praticanti convinti della nobile causa dell'hacking, abbiamo poco interesse per gli attacchi intercettando una connessione TCP. (I fan della comprensione del codice del programma di qualcun altro possono fare riferimento al sito http://www.cri.cz/~kra/index.html dove è possibile scaricare fonte ben nota utilità di intercettazione della connessione TCP Caccia di Paul Krauz.

Nonostante la mancanza di strumenti pratici, non possiamo ignorarli argomento interessante, come l'intercettazione delle connessioni TCP, e soffermiamoci su alcuni aspetti di tali attacchi. Alcune informazioni sulla struttura di un pacchetto TCP e su come vengono stabilite le connessioni TCP sono fornite nell'Appendice D di questo libro, ma qui ci concentreremo sulla domanda: cosa consente esattamente agli hacker di eseguire attacchi di intercettazione della connessione TCP? Consideriamo questo argomento in modo più dettagliato, basato principalmente sulla discussione in e.

TCP (Transmission Control Protocol) è uno dei protocolli di trasporto di base. Strato OSI, che consente di stabilire connessioni logiche su un canale di comunicazione virtuale. I pacchetti vengono trasmessi e ricevuti su questo canale con la registrazione della loro sequenza, viene controllato il flusso dei pacchetti, viene organizzata la ritrasmissione dei pacchetti distorti e al termine della sessione il canale di comunicazione viene interrotto. Il protocollo TCP è l'unico protocollo principale della famiglia TCP/IP dotato di un sistema avanzato di identificazione dei messaggi e delle connessioni.

Per identificare un pacchetto TCP, ci sono due identificatori a 32 bit nell'intestazione TCP, che svolgono anche il ruolo di un contatore di pacchetti, chiamato numero di sequenza e numero di riconoscimento. Saremo anche interessati a un altro campo del pacchetto TCP, chiamato bit di controllo. Questo campo a 6 bit include i seguenti bit di controllo (in ordine da sinistra a destra):

URG - bandiera urgente;

ACK - flag di conferma;

PSH - porta bandiera;

RST - flag di ripristino della connessione;

SYN - flag di sincronizzazione;

FIN - flag di terminazione della connessione.

Considera la procedura per creare una connessione TCP.

1. Se l'host A deve stabilire una connessione TCP con l'host B, l'host A invia il seguente messaggio all'host B:

A -> B: SYN, ISSa

Ciò significa che il messaggio inviato dall'host A ha il flag SYN (Synchronize sequence number) impostato e il campo del numero di sequenza è impostato sull'ISSa iniziale a 32 bit (Initial Sequence Number).

2. In risposta a una richiesta ricevuta dall'host A, l'host B risponde con un messaggio con il bit SYN impostato e il bit ACK impostato. Nel campo del numero di sequenza, l'host B imposta il suo valore contatore iniziale, ISSb; il campo del numero di riconoscimento conterrà quindi il valore ISSa ricevuto nel primo pacchetto dall'host A più uno. Quindi l'host B risponde con questo messaggio:

B -> A: SYN, ACK, ISSb, ACK(ISSa+1)

3. Infine, l'host A invia un messaggio all'host B in cui: bit è impostato ASC; il campo ordinale contiene un valore ISS+1; il campo del numero di riconoscimento contiene il valore ISSb+1. Dopo quella connessione TCP tra gli host UN E IN considerato stabilito:

A -> B: ACK, ISSa+1, ACK(ISSb+1)

4. Ora l'host UN può inviare pacchetti di dati all'host IN sul canale virtuale TCP appena creato:

A -> B: ACK, ISSa+1, ACK(ISSb+1); DATI

Qui DATI sta per dati.

Dall'algoritmo per la creazione di una connessione TCP discusso sopra, si può vedere che gli unici identificatori di abbonati TCP e una connessione TCP sono due parametri a 32 bit di un numero di sequenza e un numero di riconoscimento - ISSa E ISSb. Pertanto, se l'hacker riesce a scoprire i valori correnti dei campi ISSa E ISSb, allora nulla gli impedirà di formare un pacchetto TCP falsificato. Ciò significa che è sufficiente che un hacker raccolga i valori correnti dei parametri ISSa E ISSb Pacchetto TCP per questa connessione TCP, inviare un pacchetto da qualsiasi host Internet per conto di un client di questa connessione TCP e Pacchetto attuale sarà accettato come vero!

Il pericolo di tale spoofing dei pacchetti TCP è importante anche perché i protocolli FTP e TELNET di alto livello sono implementati sulla base del protocollo TCP e l'identificazione dei client FTP e dei pacchetti TELNET è interamente basata sul protocollo TCP.

Inoltre, poiché i protocolli FTP e TELNET non controllano gli indirizzi IP dei mittenti di messaggi, alla ricezione di un pacchetto contraffatto, i server FTP o TELNET invieranno un messaggio di risposta all'indirizzo IP dell'host dell'hacker specificato nel pacchetto contraffatto. Successivamente, l'host dell'hacker inizierà a lavorare con il server FTP o TELNET dal suo indirizzo IP, ma con i diritti di un utente legalmente connesso, che, a sua volta, perderà la connessione con il server a causa di una mancata corrispondenza.

Pertanto, per effettuare l'attacco sopra descritto, condizione necessaria e sufficiente è la conoscenza dei due parametri attuali a 32 bit ISSa E ISSb, che identifica la connessione TCP. Prendere in considerazione modi possibili ricevendoli. Nel caso in cui l'host dell'hacker sia connesso al segmento di rete attaccato, il compito di ottenere valori ISSa E ISSbè banale e si risolve analizzando il traffico di rete. Pertanto, deve essere chiaro che il protocollo TCP consente, in linea di principio, di proteggere la connessione solo se è impossibile per l'attaccante intercettare i messaggi trasmessi su questa connessione, ovvero solo se l'host dell'hacker è connesso a un segmento di rete diverso dal segmento dell'abbonato della connessione TCP.

Pertanto, gli attacchi inter-segmento sono di maggiore interesse per un hacker, quando l'attaccante e il suo obiettivo si trovano in segmenti di rete diversi. In questo caso, il compito di ottenere valori ISSa E ISSb non è banale. Per risolvere questo problema, finora sono stati inventati solo due metodi.

Predizione matematica del valore iniziale dei parametri di connessione TCP mediante estrapolazione dei valori precedenti ISSa E ISSb.

Sfruttamento delle vulnerabilità nell'identificazione degli abbonati alla connessione TCP su server Unix rsh.

Il primo compito è risolto da studi approfonditi sull'implementazione del protocollo TCP in vari sistemi operativi e ora ha un valore puramente teorico. Il secondo problema viene risolto utilizzando le vulnerabilità nel sistema Unix per identificare gli host attendibili. (Trusted rispetto a questo host UN chiamato un host di rete IN, il cui utente può connettersi all'host UN senza autenticazione con host r-service UN). Manipolando i parametri dei pacchetti TCP, un hacker può tentare di impersonare un host attendibile e intercettare una connessione TCP con l'host attaccato.

Tutto ciò è molto interessante, ma i risultati pratici di questo tipo di ricerca non sono ancora visibili. Pertanto, consigliamo a tutti coloro che vogliono approfondire questo argomento di fare riferimento al libro, da dove, in generale, sono state tratte le informazioni di cui sopra.

Conclusione

L'intercettazione della rete è la tecnica di hacking della rete più efficace, poiché consente a un hacker di ottenere praticamente tutte le informazioni che circolano su una rete. Gli strumenti di sniffing hanno ricevuto il massimo sviluppo pratico, ad es. ascoltare le reti; tuttavia, le tecniche di intercettazione della rete eseguite interferendo con il normale funzionamento della rete al fine di reindirizzare il traffico a un host hacker non possono essere ignorate, in particolare le tecniche di intercettazione della connessione TCP. Tuttavia, in pratica, gli ultimi metodi menzionati non hanno ancora ricevuto uno sviluppo sufficiente e devono essere migliorati.

Un anti-hacker dovrebbe sapere che l'unico modo per impedire l'intercettazione dei dati è crittografarli, ad es. metodi crittografici di protezione. Quando si invia un messaggio sulla rete, si dovrebbe presumere in anticipo che il sistema via cavo della rete sia assolutamente vulnerabile e qualsiasi hacker che si connette alla rete sarà in grado di catturare tutti i messaggi segreti trasmessi da essa. Esistono due tecnologie per risolvere questo problema: creare una rete VPN e crittografare i messaggi stessi. Tutti questi compiti sono molto facili da risolvere con l'aiuto del pacchetto software. Sicurezza desktop PGP(la sua descrizione può essere trovata, ad esempio, in).

L'idea di scrivere questo materiale è nata, come è avvenuto nella maggior parte dei casi, grazie alle domande di lettori e altri conoscenti in merito alle tecnologie per l'intercettazione e l'analisi del traffico di rete. Queste domande sono suddivise condizionatamente in 3 categorie: è possibile, in linea di principio, intercettare e decodificare i dati che si spostano sulla rete, come e con quale software è possibile farlo. Il terzo gruppo di domande riflette una certa confusione nella terminologia, in particolare sono possibili le seguenti opzioni: una persona conosce l'essenza della tecnologia, ma non sa come si chiama. Pertanto, quando si tratta, diciamo, di uno sniffer, lui, guardando in basso, risponde che non sa cosa sia. Non è ora di mettere i puntini sulle i in questa questione estremamente importante sia per i principianti che per i networker avanzati? Iniziamo...

teoria

Cominciamo con un po' di terminologia.

La parola sniffer (letteralmente dall'inglese può essere tradotta come "sniffer" o "sniffer") nel senso più generale è una sorta di dispositivo di ascolto incorporato nella rete per intercettare i dati trasmessi su di essa. In senso più stretto, uno sniffer è un software con cui interagisce (spesso detto "sit down" deriva da è un marchio registrato di Network Associates, riferito al prodotto "Sniffer(r) Network Analyzer", ma successivamente la parola ha subito la stessa sorte come PC, xerox, kleenex - lo sniffer sta diventando un termine familiare, che denota l'intera classe di prodotti simili.

In alcune pubblicazioni e documentazione, così come nei dizionari elettronici come Lingvo, il termine sniffer (network sniffer) è identificato con concetti come "analizzatore del traffico di rete", "analizzatore di pacchetti", "analizzatore di protocollo", "analizzatore di rete". Tuttavia, permettetemi di non essere d'accordo con questo approccio.

Tuttavia, sarebbe più logico affermare che lo sniffing è un insieme di misure per intercettare il traffico. Nell'ambito di un particolare prodotto, possono essere implementate le seguenti cose: acquisizione di pacchetti. In questa fase, otteniamo una sorta di dump di dati grezzi (leggibili dalla macchina), solitamente divisi in pezzi lungo i confini del frame (pacchetto). E quello che faremo con lui è un nostro problema. Ma di solito, dal momento che abbiamo avviato lo sniffer per qualche motivo, siamo interessati a ottenere qualche risultato in un formato leggibile dall'uomo, per il quale viene utilizzata la decodifica dei pacchetti o l'analisi del protocollo;

In realtà, questo è il processo di "rastrellamento" della nostra discarica. Qui, ad esempio, avevamo tale materia prima.

Come puoi vedere, questo file è composto da tre colonne: l'offset di ogni riga, i dati in formato esadecimale e il suo equivalente ASCII. Questo pacchetto contiene un'intestazione Ethernet a 14 byte, un'intestazione IP a 20 byte, un'intestazione TCP a 20 byte, un'intestazione HTTP che termina con due CRLF consecutivi (0D 0A 0D 0A) e quindi i dati effettivi del livello dell'applicazione, nel nostro caso , il traffico web.

A volte una tale rappresentazione è sufficiente per ottenere le informazioni necessarie, ma è ancora più conveniente che il pacchetto venga decodificato e analizzato a tutti i livelli dello stack del protocollo. Dopotutto, è davvero più piacevole ottenere un'immagine del genere?

ETHER: indirizzo di destinazione: 0000BA5EBA11 ETHER: indirizzo di origine: 00A0C9B05EBD ETHER: lunghezza frame: 1514 (0x05EA) ETHER: tipo Ethernet: 0x0800 (IP) IP: versione = 4 (0x4) IP: lunghezza intestazione = 20 (0x14) IP: servizio Tipo = 0 (0x0) IP: Precedenza = Routine IP:...0.... = Normale Delay IP:....0... = Normale Throughput IP:.....0.. = Normale Affidabilità IP: lunghezza totale = 1500 (0x5DC) IP: identificazione = 7652 (0x1DE4) IP: riepilogo flag = 2 (0x2) IP:.......0 = ultimo frammento nel datagramma IP:......1 . = Impossibile frammentare il datagramma IP: Fragment Offset = 0 (0x0) byte IP: Time to Live = 127 (0x7F) IP: Protocollo = TCP - Transmission Control IP: Checksum = 0xC26D IP: Source Address = 10.0.0.2 IP: Destination Address = 10.0.1.201 TCP: porta di origine = protocollo di trasferimento ipertestuale TCP: porta di destinazione = 0x0775 TCP: numero di sequenza = 97517760 (0x5D000C0) TCP: numero di riconoscimento = 78544373 (0x4AE7DF5) TCP: offset dati = 20 (0x14) TCP: riservato = 0 ( 0x0000) TCP: Flags = 0x10:.A.... TCP:..0..... = Nessun dato urgente TCP:...1.... = Campo di riconoscimento significativo TCP:....0. .. = Nessuna funzione Push TCP:.....0.. = Nessun Reset TCP:......0. = No sincronizzazione TCP:......0 = No Fin TCP: Finestra = 28793 (0x7079) TCP: Checksum = 0x8F27 TCP: Puntatore urgente = 0 (0x0) HTTP: Risposta (al client che utilizza la porta 1909) HTTP: Protocollo Versione = HTTP/1.1 HTTP: Codice di stato = OK HTTP: Motivo = OK ....

Oltre a quanto sopra, è possibile implementare altre "funzionalità", come la visualizzazione dei pacchetti in esecuzione in tempo reale, il filtraggio in base a un determinato scenario, vari tipi di statistiche sul traffico: numero di errori, intensità e così via.

Tipi di sniffer e sniffing

Tutto ciò che verrà descritto in questo paragrafo, ovviamente, ha una sfumatura di convenzionalità, poiché nessuno ha ancora descritto completamente la "Teoria dello sniffing" ufficiale. Dovremo elaborare una classificazione "in movimento";)

Quindi, in base alla "posizione" (se questo termine è applicabile qui), lo sniffer può funzionare:

Sul router (gateway)

In questo scenario è possibile intercettare il traffico che passa attraverso le interfacce di questo gateway. Ad esempio, dalla tua rete locale a un'altra rete e viceversa. Di conseguenza, se installiamo uno sniffer sul router di un provider Internet, possiamo tracciare il traffico dei suoi utenti, e così via...

Al nodo finale della rete

Per quanto riguarda Ethernet, avremo due principali opzioni possibili per le intercettazioni. La classica Ethernet non commutata presuppone che ogni interfaccia di rete, in linea di principio, "ascolti" tutto il traffico del proprio segmento. Tuttavia, durante il normale funzionamento della scheda di rete, dopo aver letto i primi 48 bit dell'intestazione del frame, la stazione confronta il proprio indirizzo MAC con l'indirizzo di destinazione specificato nel frame. Se l'indirizzo è di qualcun altro, la stazione "vergognosamente chiude le orecchie", cioè smette di leggere il frame di qualcun altro. Pertanto, in modalità normale, puoi intercettare e analizzare solo il tuo traffico. Per intercettare i pacchetti di tutte le stazioni nel segmento, devi tradurre il tuo scheda di rete in una modalità chiamata modalità promiscua in modo che "spudoratamente" continui a leggere pacchetti che non sono destinati a lei. Quasi tutte le implementazioni dello sniffer consentono alla scheda di passare alla modalità promiscua.

Nota: l'uso di Ethernet commutata crea una situazione in cui anche il passaggio della scheda alla modalità promiscua rende quasi impossibile l'ascolto del traffico non destinato alla propria stazione. Tuttavia, esiste una tecnologia per organizzare tale ascolto attraverso il cosiddetto spoofing ARP. La linea di fondo è questa: lo switch crea un cosiddetto "dominio di trasmissione" e un host con uno sniffer installato può fingere di essere, ad esempio, un router di confine che utilizza la falsificazione di messaggi ARP (invio di messaggi ARP costantemente, dove l'indirizzo di rete del router corrisponde all'indirizzo MAC della stazione di ascolto). Pertanto, il traffico dei vicini girerà forzatamente in direzione della "spia".

Altrimenti, gli sniffer possono differire l'uno dall'altro principalmente nella funzionalità, come ad esempio:

Supportato interfacce fisiche e protocolli a livello di collegamento;

La qualità della decodifica e il numero di protocolli "riconoscibili";

Interfaccia utente e comodità di visualizzazione;

Funzionalità aggiuntive: statistiche, visualizzazione in tempo reale, generazione o modifica di pacchetti e altro...

Quando si sceglie uno sniffer (così come qualsiasi altro software, tra l'altro), ha senso essere guidati dalle seguenti considerazioni: da ciò che esiste nel tuo sistema operativo, scegliamo ciò che corrisponde esattamente alle tue attività (ha senso se sei pianificando un evento una tantum o l'esecuzione costante della stessa operazione) o la soluzione più sofisticata, nel caso in cui ritieni che lo sniffer ti sarà utile, ma non sai ancora in quale situazione :) Ma le situazioni sono diverso ...

Perché abbiamo bisogno di uno sniffer?

Tradizionalmente, l'idea di annusare viveva come in due forme: uso legale e uso illegale. Significativamente, la parola "sniffer" è più spesso usata nella sfera illegale e "analizzatore di rete" - in quella legale. Iniziamo con l'applicazione legale;)

Risoluzione dei problemi (rilevamento di problemi e colli di bottiglia della rete). In modalità avanzata, quando lo sniffer opera in un segmento non commutato o su un gateway, possiamo avere un quadro quasi completo degli eventi che si svolgono nella nostra rete: intensità del traffico per tempo, per postazioni, per protocolli, numero di errori tipi diversi. Inoltre, in entrambe le modalità, possiamo "rastrellare" problemi più specifici, quando, diciamo, una particolare stazione non riesce a organizzare una certa interazione sulla rete, e questo nonostante la rete sembri abbastanza funzionale dall'esterno. Uno sniffer è particolarmente utile nei casi in cui il software di rete è scarsamente documentato o utilizza le proprie tecnologie (protocolli) chiuse (non documentate), spesso sospette.

Ad esempio: ICQ, Europe Online. Tecnologie/software sospetti devono essere intesi come situazioni in cui si sospetta che un programma contenga una scheda o un'altra funzionalità non documentata. Ad esempio, si vociferava che la parte client del famoso cDc Back Orifice fosse anche un cavallo di Troia e inviasse alcune informazioni ai proprietari, gli autori del software. L'impostazione del client BO "per ascoltare" ha dimostrato che le voci non erano vere.

Non meno utile è uno sniffer per il debug del proprio software. Non dimenticherò mai il momento in cui il server proxy ha rifiutato di stabilire una connessione se la richiesta GET è terminata con \n\n invece del richiesto \r\n\r\n. Solo esaminando i pacchetti inviati dal browser "legittimo" e confrontandoli con i pacchetti inviati dal mio script "upstart" mi ha indicato uno sfortunato errore. Molto, molto spesso nella mia pratica amministrativa quotidiana, devo anche occuparmi di analisi a livello TCP/UDP.

Formazione scolastica. Puoi ottenere un mezzo svenimento memorizzando vari formati di intestazione del pacchetto di protocollo e metodi di interazione (ad esempio, handshake TCP a 3 vie, DNS, metodi di applicazione del piano traceroute), ma questa conoscenza è morta finché non provi a "toccarla con le mani" - avendo scritto una volta il programma o ... guardando nello sniffer! Dopo aver letto la documentazione per un protocollo sconosciuto o poco compreso, prova a simulare l'interazione, intercettare i pacchetti e analizzarli: ti assicuro che tutto diventerà estremamente chiaro e inoltre questa conoscenza è più realistica e si depositerà nella tua testa per molto tempo tempo. Nel caso di tecnologie chiuse, uno sniffer può essere quasi l'unico mezzo per studiarle.

Registrazione del traffico di rete. Ci possono essere molte discussioni sulla legalità e l'etica della registrazione del traffico degli utenti da parte di un amministratore per un'ulteriore revisione, ma resta il fatto che molte organizzazioni includono questa tecnologia nella loro politica di sicurezza. La mia opinione personale è che il padrone sia il proprietario, cioè se l'azienda fornisce ai propri dipendenti attrezzature, collegamento a locali e reti globali, ha il diritto di esigere il corretto utilizzo di tali risorse. Secondo motivo importante per la registrazione del traffico - rilevamento di tentativi di accesso non autorizzati e altre attività dannose - ad esempio attacchi DoS. Avendo tali registri, l'amministratore può sapere con una precisione del 100% cosa sta accadendo nei suoi possedimenti di rete.

Ora parliamo del lato illegale dello sniffing. Beh, prima di tutto, è banale.

Intercettazione. Avendo installato correttamente uno sniffer, puoi spiare i tuoi vicini e quelli lontani - nemici, amici, coniugi;) Potresti essere interessato a queste domande: perché una persona usa la rete, quali risorse web visita, quali dati fa trasmettere, con chi e di cosa comunica? Perdonatemi le autorità di sicurezza dello Stato, ma il famigerato SORM, la cui legittimità sotto forma di totale registrazione del traffico è una grande questione, mi riferisco ancora a questa sezione, anche se potrebbe essere anche nell'ultimo paragrafo di "sniffing legale"; )

Altre intercettazioni mercantili. Tuttavia, una parte significativa della comunità degli "hacker" non scambia i propri talenti per spiare coniugi infedeli e altra vita quotidiana. Molto spesso, un utente malintenzionato è interessato a del materiale con il quale è possibile avanzare nel difficile compito di irrompere nei sistemi e nelle reti di altre persone. Come hai potuto indovinare noi stiamo parlando, principalmente sull'intercettazione di nomi utente e password che passano attraverso la rete in forma non crittografata (testo normale). In particolare, questo vale per le password per telnet, POP, IMAP, NNTP, IRC, applicazioni Web che non utilizzano la crittografia, stringhe di comunità SNMP v1, ecc.

Implementazioni

Ora, avendo più o meno affrontato la parte teorica, torniamo a sinful earth - parliamo di implementazioni specifiche di sniffer per varie piattaforme. In effetti, ci sono molti di questi software, la differenza in funzionalità e il cartellino del prezzo (soprattutto nell'ultimo) è colossale. Il compilatore delle "FAQ su Sniffing (network wiretap, sniffer)" Robert Graham consiglia di provare i seguenti prodotti:

Server WinNT
WinNT Server di Microsoft viene fornito con un programma integrato chiamato "Network Monitor". Vai al pannello di controllo della rete, seleziona "Servizi", fai clic su "Aggiungi..." e seleziona "Network Monitor Tools and Agent". Dopo l'installazione, il programma sarà disponibile nel menu di avvio nella sezione "Strumenti di amministrazione".

BlackICE è in realtà un sistema di rilevamento delle intrusioni (IDS), ma una delle sue funzioni è scrivere dump di pacchetti grezzi in una forma accettabile per la decrittazione da parte degli analizzatori di protocollo. Una cosa: il programma guarda solo il traffico che passa attraverso le interfacce locali dell'host su cui lavora, cioè non è promiscuo. È possibile scaricare il programma sul sito web

Questo programma, al contrario, può analizzare solo i pacchetti registrati da uno sniffer come BlackICE Pro.

Analizzatore di protocollo gratuito.

Naturalmente, questo elenco è tutt'altro che completo, puoi scalare qualsiasi motore di ricerca o nella raccolta di software da scaricare e trova qualcosa di adatto nel menu a sinistra. Inoltre, la recensione non menziona più, a mio avviso, il prodotto più eccezionale di questo tipo per Win32: NetXRay, ora ribattezzato Sniffer Basic. Ne parleremo un po 'più tardi.

Sbuffa
Uno sniffer basato su libpcap con capacità di filtraggio avanzate.

Ancora una volta, l'elenco è tutt'altro che perfetto, puoi cercare qualcos'altro. Un'altra cosa è che nella comunità *NIX non è particolarmente consuetudine "disperdersi": ci sono prodotti leader collaudati nel tempo, in costante miglioramento, e la maggioranza li preferisce esattamente, senza nemmeno provare a cercare un'alternativa. I leader assoluti qui sono tcpdump e sniffit.

tcpdump e windump

(di Ghost//Necrosoft)

Come accennato in precedenza, TcpDump è lo sniffer più comunemente utilizzato nei sistemi *nix. Puoi trovarlo in una qualsiasi delle ultime distribuzioni del sistema operativo che stai utilizzando. Il modo migliore per descrivere tcpdump è elencare semplicemente tutte le sue opzioni. riga di comando- così ottieni un elenco delle sue capacità e una guida diretta all'azione - "in una bottiglia".

WinDump è un porting di TcpDump dai sistemi *nix, esegue le stesse funzioni e ha la stessa sintassi di TcpDump, ma ha un paio di opzioni aggiuntive della riga di comando, che verranno discusse di seguito.

Una piccola annotazione per l'utilizzo di TcpDump sotto vari sistemi. Su SunOS che utilizza dispositivi nit o bpf: per eseguire tcpdump, è necessario disporre dell'accesso in lettura a /dev/nit o /dev/bpf*. Sotto Solaris con dlpi, dovresti essere in grado di accedere a pseudo adattatori di rete come /dev/le. In HP-UX con dlpi: è necessario essere root o tcpdump deve avere uid impostato su root In IRIX con snoop e Linux: requisiti simili a HP-UX In Ultrix e Digital UNIX: solo il superutente può accedere alle operazioni in modalità promiscua utilizzando pfconfig (8) puoi ottenere il permesso per eseguire tcpdump Sotto BSD: devi avere accesso a /dev/bpf* Sotto Win32: devi installare il driver di cattura dei pacchetti NDIS.

Ora diamo un'occhiata più da vicino alle opzioni della riga di comando.

TcpDump [ -adeflnNOpqSvx ] [ -c conteggio ] [ -F file ] [ -i interfaccia ] [ -r file ] [ -s snaplen ] [ -T tipo ] [ -w file ] [ espressione ]. Opzioni specifiche Windump [-D] [ -B size ].

-a consente di convertire gli indirizzi di rete e broadcast in nomi.

-c exit dopo l'elaborazione dei pacchetti count.

-d stampa il contenuto del pacchetto in forma leggibile dall'uomo.

-dd emette il contenuto del pacchetto come frammento di un programma C.

-ddd visualizza il contenuto del pacchetto in formato decimale.

-e stampa le intestazioni del livello di collegamento su ogni nuova riga.

-f stampa gli indirizzi degli host remoti e locali senza conversione in nomi.

-F usa il file con una descrizione delle opzioni di filtraggio (le espressioni aggiuntive sulla riga di comando vengono ignorate).

-io uso l'interfaccia dell'interfaccia per il tracciamento. Se non specificato, tcpdump trova l'interfaccia di rete attiva con il numero più basso (escluso il loopback). Nell'interfaccia di Windows - nome scheda di rete o il suo numero (può essere trovato eseguendo WinDump -D).

-l usa l'output bufferizzato su stdout. Un costrutto come "tcpdump -l | tee dat"" o "tcpdump -l > dat & tail -f dat"" può essere utile.

-n Non converte gli indirizzi (ad es. indirizzo host, numero di porta, ecc.) in nomi.

-N non stampare Nome del dominio nel nome host. Quelli. se viene usato questo flag, tcpdump stamperà "nic"" invece di "nic.ddn.mil"".

-O Non esegue l'ottimizzatore del pacchetto. Questa opzione è utile se stai gestendo tu stesso i pacchetti.

-p non imposta l'interfaccia di rete in "modalità promiscua".

-q output abbreviato. Visualizza le informazioni in forma abbreviata.

-r legge i pacchetti da file (creati con l'opzione -w). Se vuoi usare la console come input, il file è "-"".

-s stampa uno snaplen byte di ciascun pacchetto (nel NIT di SunOS il numero minimo è 96).68 byte sono sufficienti per i protocolli IP, ICMP, TCP e UDP, ma tagliano le informazioni dai livelli più alti, ad esempio i pacchetti DNS e NFS.

-T forza l'interpretazione dei pacchetti da parte di tipo corrispondente alla maschera "espressione". SU questo momento tipi noti sono rpc (Remote Procedure Call), rtp (Real-Time Applications protocol), rtcp (Real-Time Applications control protocol), vat (Visual Audio Tool) e wb (distributed White Board).

-S stampa il numero assoluto del pacchetto TCP.

-t non stampa l'ora su ogni riga.

-tt stampa l'ora non formattata su ogni riga.

-v output dettagliato. Ad esempio, la durata del pacchetto e il tipo di servizio.

-vv output dettagliato. Ad esempio, visualizzando campi aggiuntivi pacchetti di risposta NFS.

-w scrive i pacchetti grezzi su file, che puoi successivamente decrittografare usando l'opzione -r. Se vuoi usare la console come output, il file è "-"".

-x stampa ogni pacchetto in formato esadecimale (nessuna intestazione). I byte Snaplen verranno inviati all'output.

Opzioni aggiuntive vento:

-B imposta la dimensione del buffer del driver in kilobyte. La dimensione predefinita del buffer è 1 megabyte. Se alcuni pacchetti non vengono visualizzati durante il funzionamento, provare ad aumentare la dimensione del buffer. Se si dispone di una connessione PPP o 10 Mbit Ethernet, la dimensione del buffer può essere dimezzata o triplicata.

-D elenca i dispositivi di rete presenti sul tuo sistema. L'elenco è simile a: numero - numero dispositivo di rete sul sistema, nome è il suo nome, seguito da una descrizione del dispositivo. Successivamente, sarai in grado di utilizzare questi dati per lavorare con tutte le interfacce di rete disponibili del tuo sistema che sono attualmente disponibili. E puoi selezionare un dispositivo usando l'opzione -I - "WinDump -i name" o "WinDump -i number".

expression - in effetti, un'espressione che imposta il criterio di filtraggio dei pacchetti. Se il campo di espressione è assente, vengono visualizzati tutti i pacchetti. In caso contrario, vengono visualizzati solo i pacchetti che corrispondono alla maschera di espressione.

espressione può consistere in una o più primitive. I primitivi spesso consistono nell'id (nome o numero) del qualificatore. Esistono tre tipi principali di qualificatori:

type è un qualificatore che specifica la politica generale. I tipi possibili sono host, net e port. Quelli. "host foo", "net 128.3", "port 20". Se il tipo non è specificato, il valore predefinito è host.

dir è un qualificatore che indica la direzione in cui vengono inviati i pacchetti. Opzioni possibili src, dst, src o dst e src e dst. Ad esempio "src foo", "dst net 128.3", "src o dst port ftp-data". Se dir non è specificato, per impostazione predefinita vengono utilizzati src o dst. Per le connessioni "nulle" (ovvero ppp o slip) utilizzare lo specificatore in entrata e in uscita per indicare la direzione desiderata.

proto: il qualificatore consente di filtrare i pacchetti in base a un protocollo specifico. I protocolli possibili sono ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp e udp. Quelli. "ether src foo", "arp net 128.3", "tcp port 21". Se il qualificatore è assente, nessun pacchetto viene filtrato. ("fddi" è in realtà un alias per "ether", perché nella maggior parte dei casi i pacchetti FDDI contengono l'indirizzo Ethernet del mittente e della destinazione, e spesso contengono i tipi Ethernet dei pacchetti. Le intestazioni FDDI contengono anche altri campi che non sono nel elenco filtri .)

In aggiunta a quanto sopra, alcune primitive speciali non hanno modelli, queste sono: gateway, broadcast, less, maggiori ed espressioni aritmetiche. A proposito di questo un po 'più avanti.

Molte espressioni di filtri composti utilizzano le parole and, or e not per combinare le primitive. Ad esempio "host foo e non port ftp e non port ftp-data". Alcuni qualificatori possono essere omessi per semplificare l'ingresso. Ad esempio, "tcp dst port ftp o ftp-data o domain" equivale a "tcp dst port ftp o tcp dst port ftp-data o tcp dst port domain".

Sono ammesse le seguenti espressioni:

dst host host è vero se il campo di destinazione IP del pacchetto è host, che può essere un indirizzo o un nome host.

src host host è vero se il campo sorgente IP del pacchetto è host.

host host è vero se l'origine o la destinazione del pacchetto è host. I prefissi: ip, arp o rarp possono anche essere usati come: ip host host che equivale a ether proto \ip e hosthost. Se host è un nome con più indirizzi IP, ogni indirizzo viene verificato per una corrispondenza.

ether dst ehost Vero se l'indirizzo Ethernet di destinazione è ehost. Ehost - qualsiasi nome in /etc/ethers o un numero (vedi ethers(3N).

ether src ehost è vero se l'indirizzo ethernet di origine è ehost.

ether host ehost è vero se gli indirizzi Ethernet di destinazione o di origine sono ehost.

gateway host è true se host è gateway. Quelli. L'indirizzo Ethernet dell'origine o della destinazione è host, ma né l'IP di origine né l'IP di destinazione sono host. Host può essere un nome e può essere trovato anche in /etc/hosts e /etc/ethers. (Che equivale a ether host ehost e non host host, che può essere utilizzato con qualsiasi nome o numero per host/ehost.)

dst net net è true se l'indirizzo IP di destinazione è net. Net - qualsiasi voce da /etc/networks o indirizzo di rete.

src net net è vero se l'indirizzo IP del mittente è net.

net net Vero se l'indirizzo IP di destinazione o di origine è net.

net net mask mask Vero se l'indirizzo IP corrisponde alla net c della maschera di rete corrispondente. Può essere specificato con src o dst.

net net/len è true se l'IP è net e la subnet mask è len bit per bit (formato CIDR). Può essere specificato con src o dst.

dst port port è vero se il pacchetto è ip/tcp o ip/udp e ha una porta di destinazione. port può essere un numero o essere presente in /etc/services (vedi tcp(4P) e udp(4P)). Se il nome viene utilizzato per due o più porte, vengono controllati sia i numeri di porta che i protocolli. Se viene utilizzato un numero o un nome di porta non valido, vengono controllati solo i numeri di porta (ad esempio, la porta dst 513 emette tcp/login e udp/who traffic e la porta domain emette tcp/domain e udp/domain).

src port port è vero se la porta del mittente è port.

port port è true se la porta di origine o di destinazione è port. Alcune espressioni possono essere combinate, ad esempio: tcp src port port - solo pacchetti tcp con port -port.

less length è vero se la lunghezza del pacchetto è minore o uguale a length, che è uguale a len<= length.

la lunghezza maggiore è vera se la lunghezza del pacchetto è maggiore o uguale alla lunghezza, che è uguale a len >= lunghezza.

ip proto protocol è vero se il pacchetto è un pacchetto IP con protocollo. Il protocollo può essere numerato o uno dei nomi icmp, igrp, udp, nd o tcp.

ether broadcast è vero se il pacchetto è un pacchetto broadcast Ethernet. L'espressione ether è facoltativa.

ip broadcast è vero se il pacchetto è un pacchetto broadcast IP.

ether multicast è vero se il pacchetto è un pacchetto multicast Ethernet. L'espressione ether è facoltativa. Questa è una scorciatoia per "ether & 1!= 0".

ip multicast è true se il pacchetto è un pacchetto IP multicast.

Il protocollo ether proto è vero se il pacchetto è di tipo Ethernet. Il protocollo può essere un numero o un nome: ip, arp o rarp.

decnet src host è vero se l'indirizzo DECNET di destinazione è host, che può essere un indirizzo come "10.123"" o un nome host DECNET. (Il nome host DECNET è supportato solo sui sistemi Ultrix).

decnet dst host Vero se l'indirizzo DECNET di destinazione è host.

decnet host host Vero se l'indirizzo DECNET della destinazione o dell'origine è host.

proto[espr: dimensione]

Proto è uno dei seguenti protocolli ether, fddi, ip, arp, rarp, tcp, udp o icmp e indica il livello di protocollo per questa operazione. Offset di byte per dato livello protocollo è preso da expr. Dimensione - facoltativo, mostra il numero di byte di interesse a un dato offset, può essere 1,2 o 4, il valore predefinito è 1.

Esempi di utilizzo di tcpdump

Elenca tutti i pacchetti in entrata e in uscita dal tramonto: tcpdump host sundown

Emissione del traffico tra helios e uno dei due hot o ace: tcpdump host helios e \(hot or ace \)

Elenca tutti i praket tra ace e altri host, escluso helios: tcpdump ip host ace and not helios

Scaricare il traffico tra la macchina locale e la macchina Berkeley: tcpdump net ucb-ether

Scaricare il traffico ftp attraverso il gateway snup: tcpdump "gateway snup and (port ftp or ftp-data)"

Emettere traffico che non appartiene a macchine sulla rete locale (se la tua macchina è un gateway per un'altra rete, tcpdump non sarà in grado di emettere traffico sulla tua rete locale). tcpdump ip e non net localnet

Emissione di pacchetti vecchi e stop (pacchetti SYN e FIN) che non appartengono alla rete locale. tcpdump "tcp & 3!= 0 e non src e dst net localnet"

Dumping di pacchetti IP più lunghi di 576 byte trasmessi attraverso il gateway snup: tcpdump "gateway snup and ip > 576"

Emissione di pacchetti IP broadcast o multicast che non vengono inviati tramite Ethernet broadcast o multicast: tcpdump "ether & 1 = 0 and ip >= 224"

Scarica tutti i pacchetti ICMP che non sono echo request/response (cioè, non pacchetti ping): tcpdump "icmp!= 8 and icmp!= 0"

NetXRay

Di Alice D.Saemon

Quello che amo...

Tanto tanto tempo fa... NetXRay è stato il primo sniffer che è venuto alla mia attenzione. Quindi, nel 1997, questo programma inglese ha fatto colpo nei circoli dei networker orientati a Windows. Sono passati anni, ma la vecchia versione di NetXRay (3.0.1) è ancora in servizio, nel lavoro quotidiano sul mio postazione di lavoro. Ad oggi il prodotto è stato rinominato Sniffer Basic, sono state aggiunte alcune nuove funzionalità, ma, da un punto di vista più ampio, la funzionalità principale è rimasta invariata dalla 3.0.1. Questo è il primo motivo per cui NetXRay 3.0.1 verrà descritto nel documento. La seconda ragione... (guardando la polizia antipirateria) è che il prodotto è molto costoso (1643 sterline, che è sterlina), e le restrizioni di prova sono molto serie.Quindi, cominciamo.

Il pacchetto consiste in un insieme di diverse funzioni e può davvero essere definito un analizzatore di rete piuttosto che uno sniffer. Tutte le funzionalità (moduli) sono raggruppate nel menu "Strumenti" e lì si trovano anche varie impostazioni. Cominciamo con loro. È possibile selezionare l'adattatore per il quale viene eseguito il test corrente (sonda). L'adattatore deve supportare lo standard NDIS 3.0/3.1.

Attenzione, insetto! Se si "imposta" NetXRay sull'adattatore "sbagliato" a suo avviso o si acquisiscono pacchetti che non è in grado di decodificare a livello di rete di collegamento (ad esempio, sfruttare il traffico che invia pacchetti frammentati in modo storto) - nella fase di decodifica (analisi del protocollo), il programma si blocca ermeticamente.

Allo stesso tempo, puoi testare su diverse interfacce, per le quali vengono create più incarnazioni di programma (sonde). In una nuova sonda è possibile copiare tutte le impostazioni di qualsiasi sonda esistente.

Nelle opzioni, puoi configurare le seguenti cose: aspetto desktop, numeri di porta standard per vari protocolli (3 opzioni - molto utili nei casi in cui le applicazioni di rete lavorano su porte non standard), risposta a un evento, soglie per vari tipi di statistiche, ecc.

Bene, ora passiamo ai moduli funzionali del pacchetto.

cattura (acquisizione di pacchetti)

Il cuore di NetXRay, infatti, è che nella comprensione popolare c'è uno sniffer. Pertanto, lascia che te lo descriva nel modo più dettagliato possibile.

Quando questo modulo è attivato, una piccola finestra appare davanti a noi con " pannello di controllo" e un paio di pulsanti. Tutte le azioni che possiamo eseguire in questa finestra sono duplicate nel menu Cattura. E possiamo fare questo: avviare l'acquisizione di pacchetti, arrestare, arrestare + visualizzare il contenuto del buffer e visualizzare semplicemente il contenuto del buffer, a condizione che la cattura sia stata interrotta. Lì possiamo eseguire ritocchi filtri:

L'indirizzo del mittente e del destinatario. Per facilitare questo compito sono presenti una rubrica e alcuni set di indirizzi preimpostati, come "Qualsiasi".

Per modelli. Se hai bisogno di catturare pacchetti che contengono alcuni dati specifici in qualsiasi punto del pacchetto, puoi scrivere uno schema di fantasia. Inoltre, il che è particolarmente bello, puoi progettare modelli in qualsiasi rappresentazione conveniente per te: binario, esadecimale, ASCII ed EBCDIC.

Secondo i protocolli noti al programma. Questo:

Rete: AppleTalk, AppleTalk ARP, APOLLO, DECNET, IP, IP ARP, IPX, LAT, NetBEUI, OSI, SNA, VINES, VINES Loopback, VINES Echo, XNS

Superiore nello stack IP: trasporto, servizio e instradamento - ICMP, IGMP, GGP, EGP, IGP, ISO-TP4, HELLO, IP-VINES, IGRP, OSPF, TCP, UDP; livello applicazione - FTP, REXEC, RLOGIN, RSH, PRINTER, SMTP, TELNET, DNS(TCP), GOPHER, HTTP, POP, SUNRPC(TCP), NNTP, NETBIOS, X-WINDOW, DNS(UDP), BOOTP, TFTP, SUNRPC(UDP), SNMP, SNMPTRAP, BIFF, OMS, SYSLOG, RIP, PIL, NFS.

Superiore nello stack IPX: NCP, SAP, NRIP, NBIOS, DIAGNOSTIC, SERIALIZATION, NMPI, NLSP, NSNMP, NSNMPTRAP, SPX.

Come puoi vedere, non così poco, direi, anche ridondante per la vita reale.

Attenzione! Il filtro del protocollo ha un'interfaccia un po' strana: si presume che se tutte le caselle di controllo entro i confini di un livello non sono selezionate, tutti i pacchetti di protocollo di questo livello e tutto ciò che è sopra (sotto, se guardi interfaccia utente;). Quindi, se non hai impostato un solo "uccello", viene catturato assolutamente tutto. Naturalmente, in questo caso vengono rilevati anche protocolli a livello di applicazione sconosciuti, ma non decodificati in una forma leggibile dall'uomo, il che è naturale, poiché sono sconosciuti :))

Inoltre, è possibile regolare la dimensione del buffer o specificare il file in cui rilasciare il risultato dell'acquisizione del pacchetto.

Le impostazioni del filtro possono essere scritte su un cosiddetto profilo, assegnato un nome e successivamente selezionate dall'elenco.

Dopo aver elaborato l'acquisizione del numero richiesto di pacchetti, quando la visualizzazione è attivata, cadiamo nella cosiddetta "finestra dei risultati", che per impostazione predefinita ha i nomi XRay1, XRay2 e così via in base al numero di buffer correnti. Puoi vedere una finestra del genere sullo screenshot: sopra - un elenco di pacchetti con una breve "annotazione", al centro - dati decodificati (beh, potrei decodificare;) e sotto - un pacchetto non elaborato. È curioso che quando si fa clic sul campo di interesse nella sezione decodificata, venga evidenziato il punto corrispondente nel pacchetto non elaborato: è possibile verificare la qualità dell'analizzatore di protocollo;)

L'interfaccia utente della "finestra dei risultati" presenta, oltre ai vantaggi (la possibilità di applicare uno qualsiasi dei filtri discussi sopra al buffer visualizzato, la possibilità di inviare qualsiasi pacchetto o buffer alla rete con un clic del mouse o copiare un numero di pacchetti in un buffer separato, una visualizzazione molto bella dei dati decodificati, anche con qualche annidamento per campi di scarso interesse per l'utente medio) nonché ovvi svantaggi (non è possibile eliminare un paio di pacchetti dal buffer, non ci sono appunti- operabilità, ovvero i risultati non possono, ad esempio, essere copiati e salvati in formato testo).

Oltre all'accumulo di pacchetti in un buffer o in un file per la successiva decodifica, esiste anche la possibilità di visualizzare il traffico in tempo reale.

Vero a) visivamente sembra terribile b) questa opzione è abilitata in un posto così illogico che anche un utente NetXRay così vecchio come me dimentica dove si trova questo "uccello". L'uccello è installato nel menu Strumenti | Opzioni... scheda Generale, casella di controllo Visualizzazione in tempo reale e non nelle impostazioni di acquisizione, dove sarebbe logico cercarlo;-/

Inoltre, la "finestra dei risultati" contiene segnalibri per i dati statistici sulla sessione di acquisizione, ma non ci soffermeremo su di essi.

generatore di pacchetti

Questa è davvero una cosa meravigliosa: puoi "schizzare" da zero e inviare assolutamente qualsiasi pacchetto alla rete. L'interfaccia è costituita dalla finestra principale e dal cosiddetto designer di pacchetti, diviso in due sezioni: Configura e Decodifica.

Nella prima abbiamo il ritratto di una discarica standard (vedi la parte teorica dell'articolo), piena di zeri. Iniziamo a inserire numeri esadecimali lì: nella sezione di decodifica, che assomiglia esattamente al pacchetto decifrato nella "finestra dei risultati" di Capture, appare un'analisi del nostro pacchetto.

Ma in questo caso, non solo possiamo guardare il pacchetto decodificato, ma anche apportare modifiche facendo clic con il mouse sul campo desiderato. Tuttavia, la modifica dei valori in ogni caso viene eseguita solo in forma esadecimale e i campi di input colpiscono per il loro inconveniente: (Esistono diverse opzioni per la generazione e l'invio di pacchetti: invia il pacchetto corrente, invia il buffer corrente, scrivi un pacchetto da zero o invia un pacchetto modificato da ciò che hai raccolto .

Nota sull'interfaccia: se l'opzione "send current packet" viene richiamata dalla "results window" di Capture, il pacchetto viene inviato immediatamente senza chiamare il costruttore del pacchetto, tuttavia rimane nel "send buffer" corrente e può essere corretto lì dopo.

Se "send the current packet" viene chiamato dalla finestra Packet Generator, viene chiamato automaticamente il costruttore di pacchetti.

Nel costruttore del pacchetto, nella sezione Decode, il programma ti darà alcuni suggerimenti, in particolare, calcolerà un nuovo checksum durante la modifica del pacchetto (apporterebbe comunque le modifiche appropriate da solo, creazione pigra;). Tuttavia, l'intelligenza artificiale differisce dalla mente umana in quanto non sa pensare correttamente. Quindi, quando, ad esempio, modifichi l'indirizzo IP del destinatario, considera se dovresti cambiare anche il suo indirizzo MAC allo stesso tempo?;)

I pacchetti possono essere inviati a diverse modalità: un clic - un pacchetto, numero specificato di pacchetti o loop. In questo modo puoi generare traffico. In generale, puoi trovare molte applicazioni per il generatore di pacchetti, dipende dalla tua immaginazione e ingegno.

ogni sorta di cose

Oltre a quanto sopra, il programma contiene molte altre campane e fischietti utili e non molto (come chiunque;). Brevemente su di loro:

Pannello di controllo. statistiche sul carico di rete, più precisamente quello parti di esso che puoi vedere. Numero di pacchetti, byte, errori di ogni tipo, calcolo dell'utilizzo. Sono sempre stato confuso da questa funzione, perché non ho mai visto messaggi di errore in vita mia - beh, non può essere che non ce ne siano!;)

tabella host. Rileva varie informazioni sugli host visibili allo sniffer e sulle loro attività (senza acquisizione e analisi complete dei pacchetti)

matrice. Quasi uguale a Host Table, ma presentato in un formato leggermente diverso.

storia. Disegna grafici e diagrammi sul comportamento della rete in un certo periodo di tempo.

distribuzione del protocollo. Come suggerisce il nome, mantiene statistiche sull'uso di vari protocolli.

statistiche. Statistiche sull'utilizzo e sull'entità del personale.

Registro allarmi. Un registro di eventi definito dall'utente.

Bene, questo è tutto in poche parole. (wow, "si è scoperto brevemente % -()) Scarica e testa la salute - per la tua gioia e per far dispetto ai tuoi nemici :)

Conclusione

Ebbene, per oggi la storia degli sniffer è finita. Chi ha ascoltato (leggi fino alla fine) - ben fatto, spero che tu abbia risposto alla maggior parte delle tue domande. Per motivi di correttezza, noto: non TUTTI i problemi sono stati considerati nell'ambito di questo articolo. Almeno due grandi argomenti sono stati tralasciati: la struttura interna degli sniffer, compresi i metodi e gli approcci alla scrittura di tale software, nonché i modi per contrastare lo sniffering.

Per quanto riguarda il primo, ecco cosa penso: l'argomento è interessante, richiede materiale a parte, ma sarà destinato principalmente ai programmatori. Scopriamo qualcosa su questo. Per quanto riguarda la seconda domanda, la risposta è sostanzialmente la stessa: crittografia, crittografia e ancora crittografia, il che è ovvio. Esistono, ovviamente, metodi per riconoscere la presenza di uno sniffer sulla rete e persino resistergli, ma sono abbastanza privati ​​e non dolorosamente efficaci.

Intercettoreè uno strumento di rete multifunzionale che consente di ottenere dati dal traffico (password, messaggi in messaggistica istantanea, corrispondenza, ecc.) e implementare vari attacchi MiTM.


Interfaccia dell'intercettatore
Funzionalità principale

  • Intercettazione di messaggi di messaggistica.
  • Intercettazione di cookie e password.
  • Intercettazione di attività (pagine, file, dati).
  • Possibilità di sostituire il download di file aggiungendo file dannosi. Può essere utilizzato in combinazione con altre utilità.
  • Sostituzione dei certificati Https con Http.
Modalità operative
Modalità messaggero- consente di verificare la corrispondenza inviata in chiaro. È stato utilizzato per intercettare messaggi in tali messenger come messaggi ICQ, AIM, JABBER.

Modalità di recupero– recupero dei dati utili dal traffico, dai protocolli che trasmettono il traffico in chiaro. Quando la vittima visualizza file, pagine, dati, è possibile intercettarli parzialmente o totalmente. Inoltre, puoi specificare la dimensione dei file in modo da non scaricare il programma in piccole parti. Queste informazioni possono essere utilizzate per l'analisi.

Modalità password– modalità per lavorare con i cookie. Pertanto, è possibile ottenere l'accesso ai file visitati della vittima.

modalità di scansione– la modalità principale per i test. Fai clic con il pulsante destro del mouse su Smart Scan per avviare la scansione. Dopo la scansione, la finestra visualizzerà tutti i membri della rete, i loro sistema operativo e altre opzioni.

Inoltre, in questa modalità, puoi scansionare le porte. È necessario utilizzare la funzione Scan Ports. Naturalmente, ci sono molte più utilità funzionali per questo, ma la presenza di questa funzione è un punto importante.

Se siamo interessati a un attacco mirato alla rete, dopo la scansione, dobbiamo aggiungere l'IP di destinazione a Nat utilizzando il comando (Aggiungi a Nat). In un'altra finestra sarà possibile effettuare altri attacchi.

Modalità Nat. La modalità principale, che ti consente di eseguire una serie di attacchi ARP. Questa è la finestra principale che consente attacchi mirati.

Modalità DHCP. Questa è una modalità che ti consente di aumentare il tuo Server DHCP per implementare attacchi DHCP nel mezzo.

Alcuni tipi di attacchi che possono essere effettuati
Spoofing del sito web

Per falsificare il sito della vittima, devi andare su Target, dopodiché devi specificare il sito e la sua sostituzione. Pertanto, puoi sostituire molti siti. Tutto dipende da quanto è buono il falso.

Spoofing del sito web

Esempio per VK.com

Scegliere un attacco MiTM

Modifica della regola di iniezione
Di conseguenza, la vittima apre un sito falso quando richiesto vk.com. E nella modalità password, dovrebbero esserci il login e la password della vittima:


Per condurre un attacco mirato, devi selezionare una vittima dall'elenco e aggiungerla al bersaglio. Questo può essere fatto con il tasto destro del mouse.


Aggiunte di attacco MiTm
Ora puoi recuperare vari dati dal traffico in modalità Ressurection.


File e informazioni della vittima attraverso un attacco MiTm
Spoofing del traffico



Specifica delle impostazioni
Successivamente, la vittima cambierà la richiesta "fiducia" in "perdente".

Inoltre, puoi eliminare i cookie in modo che la vittima si disconnette da tutti gli account e si autorizzi nuovamente. Questo intercetterà accessi e password.


Distruzione dei cookie

Come vedere un potenziale sniferr sulla rete usando Intercepter?

Utilizzando l'opzione Promisc Detection, è possibile rilevare un dispositivo che esegue la scansione sulla rete locale. Dopo la scansione, la colonna dello stato sarà "Sniffer". Questo è il primo modo che consente di definire la scansione sulla rete locale.


Rilevamento dell'annusatore
Dispositivo SDR HackRF


Hack RF
SDR è un tipo di ricevitore radio che consente di lavorare con diversi parametri di frequenza radio. Pertanto, è possibile intercettare il segnale di Wi-Fi, GSM, LTE, ecc.

HackRF è un dispositivo SDR completo da $ 300. L'autore del progetto Michael Ossman sta sviluppando dispositivi di successo in questa direzione. In precedenza, lo sniffer Bluetooth Ubertooth era stato sviluppato e implementato con successo. HackRF è un progetto di successo che ha raccolto oltre 600k su Kickstarter. 500 dispositivi di questo tipo sono già stati implementati per il beta testing.

HackRF opera nella gamma di frequenze da 30 MHz a 6 GHz. La frequenza di campionamento è di 20 MHz, che consente di intercettare segnali Wi-Fi e reti LTE.

Come proteggersi a livello locale?

Innanzitutto, utilizziamo il software SoftPerfect WiFi Guard. Esiste una versione portatile che non richiede più di 4 MB. Ti consente di scansionare la tua rete e visualizzare quali dispositivi sono visualizzati su di essa. Dispone di impostazioni che consentono di selezionare una scheda di rete e il numero massimo di dispositivi scansionati. Inoltre, è possibile impostare l'intervallo di scansione.


Possibilità di aggiungere commenti per gli utenti


Finestra di notifica per dispositivi sconosciuti dopo ogni intervallo di scansione specificato

Conclusione
Così, abbiamo visto in pratica come utilizzare Software intercettare i dati all'interno della rete. Abbiamo preso in considerazione diversi attacchi specifici che consentono di ottenere dati di accesso e altre informazioni. Inoltre, abbiamo considerato SoftPerfect WiFi Guard, che consente di proteggere la rete locale dall'ascolto del traffico a un livello primitivo.

Molti utenti non si rendono nemmeno conto che inserendo login e password al momento della registrazione o dell'autorizzazione su una risorsa Internet chiusa e premendo INVIO, questi dati possono essere facilmente intercettati. Molto spesso vengono trasmessi sulla rete in forma non protetta. Pertanto, se il sito su cui stai tentando di accedere utilizza il protocollo HTTP, è molto semplice acquisire questo traffico, analizzarlo utilizzando Wireshark e quindi utilizzare filtri e programmi speciali per trovare e decrittografare la password.

Il posto migliore per intercettare le password è il nucleo della rete, dove il traffico di tutti gli utenti va verso risorse chiuse (ad esempio posta) o davanti al router per accedere a Internet durante la registrazione su risorse esterne. Abbiamo allestito un mirror e siamo pronti a sentirci degli hacker.

Passaggio 1. Installa ed esegui Wireshark per acquisire il traffico

A volte per questo è sufficiente selezionare solo l'interfaccia attraverso la quale intendiamo acquisire il traffico e fare clic sul pulsante Avvia. Nel nostro caso, acquisiamo in modalità wireless.

La cattura del traffico è iniziata.

Passaggio 2. Filtraggio del traffico POST acquisito

Apriamo il browser e proviamo ad accedere a qualsiasi risorsa utilizzando il nome utente e la password. Al completamento del processo di autorizzazione e all'apertura del sito, interrompiamo l'acquisizione del traffico in Wireshark. Quindi, apri l'analizzatore di protocollo e guarda un gran numero di Pacchetti. Questa è la fase in cui la maggior parte dei professionisti IT si arrende perché non sa cosa fare dopo. Ma sappiamo e siamo interessati a pacchetti specifici che contengono dati POST generati sulla nostra macchina locale durante la compilazione di un modulo sullo schermo e inviati a un server remoto quando si fa clic sul pulsante "Accedi" o "Autorizzazione" nel browser .

Immettere un filtro speciale nella finestra per visualizzare i pacchetti acquisiti: http.richiesta.metodo == "INVIARE"

E invece di mille pacchetti, ne vediamo solo uno con i dati che stiamo cercando.

Passaggio 3. Trova il nome utente e la password

Clic rapido bottone giusto mouse e selezionare dal menu Segui TCPSteam


Successivamente, il testo apparirà in una nuova finestra, che nel codice ripristina il contenuto della pagina. Troviamo i campi "password" e "user", che corrispondono alla password e al nome utente. In alcuni casi, entrambi i campi saranno facili da leggere e nemmeno crittografati, ma se stiamo cercando di catturare il traffico durante l'accesso a risorse molto note come: Mail.ru, Facebook, Vkontakte, ecc., allora la password sarà codificato:

HTTP/1.1 302 Trovato

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie:password= ; scade=Gio, 07-Nov-2024 23:52:21 GMT; percorso=/

Posizione: loggato.php

Lunghezza del contenuto: 0

Connessione: chiudere

Tipo di contenuto: testo/html; set di caratteri=UTF-8

Quindi nel nostro caso:

Nome utente: networkguru

Parola d'ordine:

Fase 4Determinare il tipo di codifica per decrittografare la password

Andiamo, ad esempio, sul sito http://www.onlinehashcrack.com/hash-identification.php#res e inseriamo la nostra password nella finestra di identificazione. Mi è stato fornito un elenco di protocolli di codifica in ordine di priorità:

Passaggio 5: decrittare la password dell'utente

A questo punto, possiamo utilizzare l'utilità hashcat:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

All'output, abbiamo ricevuto una password decifrata: simplepassword

Pertanto, con l'aiuto di Wireshark, non solo possiamo risolvere problemi nel funzionamento di applicazioni e servizi, ma anche provare noi stessi come hacker intercettando le password che gli utenti inseriscono nei moduli web. Puoi anche scoprire le password per cassette postali utenti che utilizzano semplici filtri per visualizzare:

  • Il protocollo e il filtro POP hanno questo aspetto: pop.request.command == "USER" || pop.request.command == "PASSATO"
  • Protocollo IMAP e il filtro sarà: imap.request contiene "login"
  • Protocollo smtp e dovrai inserire il seguente filtro: smtp.req.command == "AUTH"

e utilità più serie per decrittografare il protocollo di codifica.

Passaggio 6. Cosa succede se il traffico è crittografato e utilizza HTTPS?

Ci sono diverse opzioni per rispondere a questa domanda.

Opzione 1. Connettiti alla disconnessione tra l'utente e il server e acquisisci il traffico nel momento in cui viene stabilita la connessione (SSL Handshake). Al momento della creazione della connessione, la chiave di sessione può essere intercettata.

Opzione 2: puoi decrittografare il traffico HTTPS utilizzando un file di registro della chiave di sessione scritto da Firefox o Chrome. Per fare ciò, il browser deve essere configurato per scrivere queste chiavi di crittografia in un file di registro (esempio basato su Firefox) e devi ricevere questo file di registro. In sostanza, devi rubare il file della chiave di sessione con disco rigido un altro utente (che è illegale). Bene, quindi acquisisci il traffico e applica la chiave ricevuta per decrittografarlo.

Una precisazione. Stiamo parlando del browser web di una persona la cui password è stata rubata. Se intendiamo decrittografare il nostro traffico HTTPS e vogliamo esercitarci, allora questa strategia funzionerà. Se stai cercando di decrittografare il traffico HTTPS di altri utenti senza accedere ai loro computer, non funzionerà: ecco a cosa servono la crittografia e la privacy.

Dopo aver ricevuto le chiavi in ​​base all'opzione 1 o 2, è necessario registrarle in WireShark:

  1. Vai al menu Modifica - Preferenze - Protocolli - SSL.
  2. Imposta il flag "Riassembla i record SSL che coprono più segmenti TCP".
  3. "Elenco chiavi RSA" e fare clic su Modifica.
  4. Inserisci i dati in tutti i campi e scrivi il percorso nel file con la chiave

WireShark può decrittografare i pacchetti crittografati utilizzando l'algoritmo RSA. Se vengono utilizzati gli algoritmi DHE / ECDHE, FS, ECC, lo sniffer non ci è di aiuto.

Opzione 3. Ottieni l'accesso al server Web che l'utente sta utilizzando e ottieni la chiave. Ma questo è un compito ancora più difficile. IN reti aziendali ai fini del debug delle applicazioni o del filtraggio dei contenuti, questa opzione è implementata su base legale, ma non allo scopo di intercettare le password degli utenti.

BONUS

VIDEO: Wireshark Packet Sniffing nomi utente, password e pagine Web

Metodi per intercettare il traffico di rete

Ascoltare la rete utilizzando programmi di analisi di rete è il primo e più semplice modo per intercettare i dati.

Per proteggersi dall'intercettazione della rete, vengono utilizzati programmi speciali, ad esempio AntiSniff, in grado di rilevare i computer sulla rete che ascoltano il traffico di rete.

Per risolvere i loro problemi, i programmi anti-sniffer utilizzano un segno speciale della presenza di dispositivi di ascolto sulla rete: la scheda di rete del computer sniffer deve trovarsi in una modalità di ascolto speciale. Quando sono in modalità di ascolto, i computer in rete rispondono in modo speciale ai datagrammi IP inviati all'host sottoposto a test. Ad esempio, gli host in ascolto in genere elaborano tutto il traffico in entrata, non solo i datagrammi inviati all'indirizzo host. Esistono altri segni di comportamento sospetto dell'ospite che AntiSniff è in grado di riconoscere.

Indubbiamente, l'ascolto è molto utile dal punto di vista di un utente malintenzionato, poiché consente di ottenere molte informazioni utili: password trasmesse in rete, indirizzi di computer di rete, dati riservati, lettere e così via. Tuttavia, la semplice intercettazione impedisce a un hacker di interferire con la comunicazione di rete tra due host per modificare e corrompere i dati. Per risolvere questo problema, è necessaria una tecnologia più sofisticata.

Per intercettare e passare attraverso il processo di comunicazione di rete tra due host A e B, un utente malintenzionato può sostituire gli indirizzi IP degli host interagenti con il proprio indirizzo IP inviando falsi messaggi ARP (Address Resolution Protocol) agli host A e B .

Riso. 1 Richieste ARP false

Vediamo come un hacker può utilizzare il protocollo ARP per intercettare la comunicazione di rete tra gli host A e B.

Per intercettare il traffico di rete tra gli host A e B, un hacker forza il proprio indirizzo IP su questi host in modo che A e B utilizzino questo falso indirizzo IP durante lo scambio di messaggi. Per imporre il proprio indirizzo IP, un hacker esegue le seguenti operazioni.

  • Un utente malintenzionato determina gli indirizzi MAC degli host A e B, ad esempio, utilizzando il comando nbtstat dal pacchetto W2RK.
  • L'attaccante invia messaggi agli indirizzi MAC identificati degli host A e B, che sono risposte ARP falsificate alle richieste per risolvere gli indirizzi IP degli host negli indirizzi MAC dei computer. All'host A viene comunicato che l'indirizzo IP dell'host B corrisponde all'indirizzo MAC del computer dell'aggressore; all'host B viene comunicato che l'indirizzo IP dell'host A corrisponde anche all'indirizzo MAC del computer dell'aggressore.
  • Gli host A e B inseriscono gli indirizzi MAC ricevuti nelle loro cache ARP e li utilizzano per scambiarsi messaggi. Poiché gli indirizzi IP A e B corrispondono all'indirizzo MAC del computer dell'aggressore, gli host A e B, ignari di qualsiasi cosa, comunicano tramite un intermediario in grado di fare ciò che vogliono con i loro messaggi.

Per proteggersi da tali attacchi, gli amministratori di rete devono mantenere un database con una tabella di mappatura tra gli indirizzi MAC e gli indirizzi IP dei propri computer di rete.

Sulle reti UNIX, questo tipo di attacco ARP di spoofing può essere implementato utilizzando le utilità di monitoraggio e controllo del traffico di rete del sistema, come arpredirect. Sfortunatamente, tali utilità affidabili non sembrano essere implementate nelle reti Windows. Ad esempio, sul sito NTsecurity è possibile scaricare l'utilità GrabitAII, che viene presentata come uno strumento per reindirizzare il traffico tra host di rete. Tuttavia, un controllo elementare delle prestazioni dell'utilità GrabitAII mostra che è ancora lontana dal completo successo nell'implementazione delle sue funzioni.

Per intercettare il traffico di rete, un utente malintenzionato può sostituire l'indirizzo IP reale di un router di rete con il proprio indirizzo IP, ad esempio utilizzando messaggi di reindirizzamento ICMP contraffatti. Secondo RFC-1122, l'host A dovrebbe interpretare il messaggio di reindirizzamento ricevuto come una risposta a un datagramma inviato a un altro host, ad esempio B. L'host A determina le proprie azioni sul messaggio di reindirizzamento in base al contenuto del messaggio di reindirizzamento ricevuto e se Redirect è impostato per reindirizzare i datagrammi da A a B su un nuovo percorso, questo è esattamente ciò che farà l'host A.

Riso. 2 Percorso falso

Per eseguire il decoy routing, l'attaccante deve conoscere alcuni dettagli sull'organizzazione della rete locale in cui si trova l'host A, in particolare l'indirizzo IP del router attraverso il quale viene inviato il traffico dall'host A a B. Sapendo questo, l'attaccante formerà un datagramma IP in cui IP - L'indirizzo di origine è specificato come indirizzo IP del router e la destinazione è l'host A. Nel datagramma è incluso anche un messaggio di reindirizzamento ICMP con il campo dell'indirizzo del nuovo router impostato sull'indirizzo IP del computer dell'aggressore. Dopo aver ricevuto tale messaggio, l'host A invierà tutti i messaggi all'indirizzo IP del computer dell'aggressore.

Per proteggersi da un simile attacco, è necessario disabilitare (ad esempio utilizzando un firewall) sull'host A l'elaborazione dei messaggi di reindirizzamento ICMP e il comando tracert (in Unix questo è il comando tracerout) può rivelare l'indirizzo IP del computer dell'attaccante . Queste utilità sono in grado di trovare un percorso aggiuntivo apparso sulla rete locale, non previsto durante l'installazione, se, ovviamente, l'amministratore di rete è vigile.

Gli esempi precedenti di intercettazioni (che sono tutt'altro che limitati agli aggressori) convincono della necessità di proteggere i dati trasmessi sulla rete se i dati contengono informazioni riservate. L'unico metodo di protezione contro le intercettazioni del traffico di rete è l'uso di programmi che implementano algoritmi crittografici e protocolli di crittografia e impediscono la divulgazione e la sostituzione di informazioni segrete. Per risolvere tali problemi, la crittografia fornisce mezzi per crittografare, firmare e autenticare i messaggi trasmessi su protocolli sicuri.

L'implementazione pratica di tutti i metodi crittografici per proteggere lo scambio di informazioni è fornita dalle reti VPN (Virtual Private Network - Virtual Private Networks).

Intercettazione della connessione TCP

L'attacco di intercettazione del traffico di rete più sofisticato dovrebbe essere considerato il dirottamento della connessione TCP (TCP hijacking), quando un hacker, generando e inviando pacchetti TCP all'host attaccato, interrompe la sessione di comunicazione in corso con l'host. Inoltre, utilizzando le capacità del protocollo TCP per ripristinare una connessione TCP interrotta, l'hacker intercetta la sessione di comunicazione interrotta e la continua al posto del client disconnesso.

Sono state create diverse utilità efficaci per eseguire attacchi di hijacking TCP, ma sono tutte implementate per la piattaforma Unix e queste utilità sono disponibili sui siti Web solo sotto forma di codice sorgente. Pertanto, non è molto utile per gli attacchi intercettando una connessione TCP.

Il protocollo TCP (Transmission Control Protocol) è uno dei protocolli base del livello di trasporto OSI che consente di stabilire connessioni logiche su un canale di comunicazione virtuale. I pacchetti vengono trasmessi e ricevuti su questo canale con la registrazione della loro sequenza, viene controllato il flusso dei pacchetti, viene organizzata la ritrasmissione dei pacchetti distorti e al termine della sessione il canale di comunicazione viene interrotto. Il protocollo TCP è l'unico protocollo principale della famiglia TCP/IP dotato di un sistema avanzato di identificazione dei messaggi e delle connessioni.

Panoramica degli sniffer di pacchetti software

Tutti gli sniffer software possono essere approssimativamente divisi in due categorie: sniffer che supportano l'avvio dalla riga di comando e sniffer che hanno un'interfaccia grafica. Allo stesso tempo, notiamo che ci sono sniffer che combinano entrambe queste caratteristiche. Inoltre, gli sniffer differiscono l'uno dall'altro per i protocolli che supportano, la profondità di analisi dei pacchetti intercettati, la capacità di configurare i filtri e la possibilità di compatibilità con altri programmi.

Tipicamente, la finestra di qualsiasi sniffer con un'interfaccia grafica consiste di tre aree. Il primo visualizza un riepilogo dei pacchetti acquisiti. In genere, quest'area visualizza un minimo di campi, vale a dire: tempo di acquisizione del pacchetto; indirizzi IP del mittente e del destinatario del pacchetto; Indirizzi MAC di origine e destinazione dei pacchetti, indirizzi delle porte di origine e destinazione; tipo di protocollo (livello di rete, trasporto o applicazione); alcune informazioni di sintesi sui dati intercettati. La seconda area visualizza le informazioni statistiche sul singolo pacchetto selezionato e, infine, la terza area presenta il pacchetto in formato esadecimale o carattere - ASCII.

Quasi tutti gli sniffer di pacchetti consentono l'analisi dei pacchetti decodificati (motivo per cui gli sniffer di pacchetti sono anche chiamati analizzatori di pacchetti o analizzatori di protocollo). Lo sniffer distribuisce i pacchetti intercettati per livelli e protocolli. Alcuni analizzatori di pacchetti sono in grado di riconoscere il protocollo e visualizzare le informazioni acquisite. Questo tipo di informazioni viene solitamente visualizzato nella seconda area della finestra dello sniffer. Ad esempio, qualsiasi sniffer è in grado di riconoscere il protocollo TCP e gli sniffer avanzati possono determinare quale applicazione ha generato questo traffico. La maggior parte degli analizzatori di protocollo riconosce oltre 500 protocolli diversi e può descriverli e decodificarli per nome. Più informazioni lo sniffer è in grado di decodificare e presentare sullo schermo, meno devi decodificare manualmente.

Un problema in cui possono incorrere gli sniffer di pacchetti è l'impossibilità di identificare correttamente un protocollo utilizzando una porta diversa da quella predefinita. Ad esempio, per migliorare la sicurezza, alcune applicazioni note possono essere configurate per utilizzare porte diverse da quelle predefinite. Quindi, invece della tradizionale porta 80 riservata al web server, dato server può essere forzato a riconfigurare sulla porta 8088 o su qualsiasi altra. Alcuni analizzatori di pacchetti in questa situazione non sono in grado di determinare correttamente il protocollo e visualizzare solo informazioni sul protocollo di livello inferiore (TCP o UDP).

Esistono sniffer software forniti con moduli analitici software come plug-in o moduli integrati che consentono di creare report con utili informazioni analitiche sul traffico intercettato.

Un'altra caratteristica della maggior parte degli sniffer di pacchetti software è la capacità di configurare i filtri prima e dopo l'acquisizione del traffico. I filtri separano determinati pacchetti dal traffico generale in base a un determinato criterio, che consente di eliminare le informazioni non necessarie durante l'analisi del traffico.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: