VoIP and Hacking | Consulenza Documentazione

Wireshark plugin per catturare streams SMB

by admin on Jun.01, 2010, under Hacking, Linux, Networking, Sicurezza, Tools

Ultimamente ha fatto la sua comparsa un plugin che fornisce a Wireshark la capacità di estrarre e salvare separatamente, a partire da una qualsiasi cattura di traffico di rete, sia in tempo reale che a partire da traffico precedentemente salvato, il contenuto di qualsiasi file trasferito tra un server ed un client tramite il protocollo SMB.

La maggior parte delle networks aziendali comprendono uno o più file servers che memorizzano informazioni condivise in rete tramite il protocollo SMB.

Tali servers vengono usati come un repository per differenti dipartimenti, che condividono la medesima infrastruttura ma non hanno normalmente accesso a insiemi di informazioni che non li riguardano direttamente, alcuni dei quali probabilmente sono sensibili e confidenziali, (files appartenenti al top management, alla sezione risorse umane o alla sezione legale, per fare solo qualche esempio).

Il controllo di accesso alle informazioni ospitate sui file servers è effettuato utilizzando l’autenticazione offerta dal protocollo SMB, di solito integrata con qualche meccanismo di directory (come Microsoft Active Directory).

Se l’ autenticazione può essere effettuata in modo sicuro, il flusso di informazioni tra server ed utente di solito non è criptato, come succede normalmente con la configurazione SMB di default.
Ciò lo rende vulnerabile a qualsiasi attività di sniffing effettuata nella rete interna aziendale, pertanto è molto importante che le aziende siano pienamente consapevoli del rischio che tale vulnerabilità implica e di come da essa debbano proteggersi.

Il plugin: “EXPORT OBJECT SMB”

“export object smb” è un plugin software per Wireshark che estende le sue funzionalità in modo da consentire all’utente di salvare su disco oggetti SMB (files), parziali o completi, contenuti in una cattura Wireshark.

Il plugin non effettua alcuna trasformazione dei dati ricevuti.
Se un intero file viene trasferito in rete, Wireshark ne cattura il relativo traffico, ed il plugin è in grado di salvarne una copia su disco, pertanto dovrebbe essere possibile aprirlo col software originale, dato che non è stata apportata alcuna alterazione ai contenuti del file.
Diversamente, se solo una parte di un file viene trasferita e catturata, il plugin salverà tali dati su un file, ma non sarà probabilmente possible aprirlo direttamente con l’applicazione originale, che lo considererebbe corrotto.

Le informazioni contenute in files parzialmente catturati può risultare tuttavia ancora accessibile tramite speciali tools, come il comando “strings” di Linux.

Il plugin opera sul traffico catturato da Wireshark, sia già memorizzato che online.

Al momento, il plugin può solamente catturare oggetti contenibili in memoria.
Ciò significa che il plugin non sarà in grado di salvare files catturati ma di maggiore dimensione.
Ciò potrebbe costituire un problema se il tool venisse usato per altri fini, ma dal momento che il suo scopo è semplicemente quello di dimostrare il rischio potenziale dell’invio e ricezione di traffico SMB non criptato, questa limitazione non costituisce realmente un problema.

Attualmente il plugin (in forma di patch) sta passando una fase di revisione da parte del team di Wireshark, pertanto non è stato ancora incluso in alcuna release ufficiale. Il plugin è comunque disponibile liberamente, ma fino a che non verrà incluso ufficialmente, sono richieste una modifica manuale e la compilazione di Wireshark per poterlo far funzionare.
Fino a quando il plugin non verrà incluso nelle releases ufficiali di Wireshark, dovrà venire installato applicando la patch al codice sorgente di Wireshark, usando il comando “patch”, e quindi ricompilando Wireshark.

Alcune sommarie istruzioni su come applicare la patch:

Prima di tutto, occorre ottenere una copia del più recente trunk Wireshark, tramire svn:

# svn co http://anonsvn.wireshark.org/wireshark/trunk/ wireshark

Il comando precedente creerà una copiia funzionante del più recente trunk Wireshark in una directory di nome “wireshark” nella directory corrente.

Posizionatici in tale directory ed applicata la patch “eo_smb_patch_file” (per inciso disponibile nella sezione Lab del sito web Taddong - http://www.taddong.com/en/lab.html) col comando seguente:

# patch -p0 <eo_smb_patch_file

diviene infine possibile compilare Wireshark nel solito modo:

# ./autogen.sh
# ./configure
# make

A questo punto dovrebbe essere possibile mandare in esecuzione la versione di Wireshark appena ottenuta col la funzionalità derivante dalla patch applicata.

Utilizzo
Identificazione degli streams SMB

La prima operazione da compiere allo scopo di extrarre files SMB da una cattura di rete, consiste nell’ identificare gli streams SMB che il nostro file pcap eventualmente contiene. Lo si può ottenere da una osservazione manuale del trace con filtri appropriati, dove potremmo distinguere, per esempio, i processi di autenticazione e di session setup SMB, i tipici comandi del protocollo SMB, o anche il plaintext di un file trasferito da un server ad un client.

In alternativa, si può usare il plugin SMB per identificare direttamente nel file pcap
tutti gli oggetti (files, directories o pipes) trasferite in termini di streams SMB:

File -> Export -> Objects -> SMB

Questa sequenza dovrebbe fornire una lista di oggetti SMB contenuti nella trace.

Una breve spiegazione di quali informazioni popolino ciascuna colonna:

  • Packet num: tale colonna mostra il packet number (il numero del frame Wireshark) del primo pacchetto appartenente ad un particolare trasferimento di file che il plugin ha analizzato. Di solito, corrisponde al primo comando SMB di un trasferimento con dati da catturare (typicamente read_andx_response oppure write_andx_request).
  • Hostname: dove ritrovare la path della condivisione utilizzata.
    Si presenta in 2 possibili modi:

    • \Hostnamesharename: se la connessione tra il client ed il server è avvenuta mentre Wireshark era in fase di cattura, il plugin identifica il nome del server e la path alla cartella condivisa, mostrando qui tali informazioni.
    • \TREEID_<treeID#>: se, viceversa, il trace non è riuscito ad includere il momento in cui la connessione è stata stabilita, il plugin non può ricavare l’ hostname ed il nome della condivisione e pertanto mostra solamente un identificatore della condivisione cui il corrispondente oggetto appartiene.
  • Content Type: in questo campo il plugin mostra un mucchio di dati, nel formato seguente: “type (bytes captured/bytes in file) mode [%captured]“,
    dove:

    • type: possibili valori sono FILE, DIRECTORY, o PIPE, ma solo gli oggetti di tipo FILE vengono tracciati e possono venire salvati.
    • bytes captured: quantità di bytes catturati in questa traccia per tale file. Può risultare differente rispetto alla lunghezza del file o l’occupazione in memoria, dal momento che i buchi nel file vengono riempiti con degli zero.
    • bytes in file: lunghezza del file, in bytes. Inizialmente, essa viene calcolata dalle informazioni presenti nelle chiamate SMB, ma può venire modificata successivamente, se bytes con maggiori offset vengono catturati.
    • mode: possibili valori sono “R” per i files catturati in operazioni di lettura, “W” per files catturati in operazioni di scrittura oppure “R&W”, per files catturati in operazioni di lettura e scrittura.
    • [% captured]: percentuale indicante quanto del file sia stato attualmente catturato.
      Potrebbe evidenziare il valore “!mem” se il file non può essere contenuto in memoria.
  • Bytes: dimensione attuale, in memoria, del file catturato.

Salvataggio di un file
Una volta che il trace sia stato analizzato, per effettuare il salvataggio di un file basta semplicemente selezionarlo nella finestra export smb object e quindi cliccare il pulsante save.
È pure possibile salvare tutti i files presenti nella finestra in una sola volta, ricordando tuttavia che solamente quelli che siano stati completamente catturati risulteranno direttamente leggibili.

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , , , , , ,

1 Comment for this entry

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...