
Strumento di test di esfiltrazione dati multi-protocollo che simula scenari di uscita reali su FTP, HTTP, HTTPS, DNS, ICMP, SMB, SMTP e SFTP per validare le capacità di rilevamento.
Egress-Assess è uno strumento utilizzato per testare le capacità di rilevamento del traffico dati in uscita.
Per configurare, esegui lo script di setup incluso, oppure esegui i seguenti passaggi:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Sono disponibili post sul blog qui:
Il caso d'uso tipico di Egress-Assess è copiare questo strumento in due posizioni. Una posizione agirà come server, l'altra come client. Egress-Assess può inviare dati tramite FTP, HTTP e HTTPS.
Per estrarre dati tramite FTP, avviare prima il server FTP di Egress-Assess selezionando "--server ftp" e fornendo un nome utente e una password da utilizzare:
./Egress-Assess.py --server ftp --username testuser --password pass123
Ora, per far connettere il client e inviare dati al server FTP, puoi eseguire...
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
Inoltre, puoi configurare Egress-Assess per fungere da server web eseguendo....
./Egress-Assess.py --server https
Poi, per inviare dati al server FTP, e specificamente per inviare 15 megabyte di dati di carte di credito, esegui il seguente comando...
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
Altre cose da notare:
SMTP - Il client crea un messaggio di posta inserendo i dati nel corpo del messaggio o, se è un file, come allegato. Il client tenta quindi di effettuare una connessione SMTP al server EgressAssess sulla porta 25 (o su una porta alternativa fornita). Il server SMTP non richiede autenticazione e accetta la connessione in entrata e elabora l'email. L'elaborazione del messaggio di posta estrae i dati dal corpo dell'email o dal file allegato. Questo test non tenta di inviare l'email attraverso il server di posta dell'organizzazione.
SMTP_Outlook – (Questo modulo è disponibile solo nel client PowerShell). Se un client Outlook è stato precedentemente configurato, il client PowerShell crea un oggetto COM per Outlook (questo potrebbe richiedere all'utente di fornire autenticazione a seconda della configurazione). Il client PowerShell creerà quindi un messaggio di posta con i dati nel corpo dell'email o, se è un file, come allegato. Le email vengono inviate da Outlook come utente precedentemente configurato. (Alcune impostazioni di sicurezza potrebbero notificare all'utente che un programma sta tentando di inviare email in background e deve selezionare "Consenti"). Affinché questo modulo funzioni, è necessario creare un record MX per il server EgressAssess. Il server SMTP di EgressAssess accetta tutti i messaggi di posta inviati al dominio del record MX e riceve l'email con gli allegati o i dati come testo nel corpo dell'email.
Invoke-EssessAgress -Client SMTPOutlook -IP <dominio del server SMTP> -NoPing -DataType "ssn"
ICMP - I dati vengono suddivisi in byte e codificati in base64 e inviati sulla rete in una richiesta ICMP Type 8 ECHO. I dati vengono inseriti nel campo dati del pacchetto. Le richieste ECHO vengono inviate continuamente al server EgressAssess che riceve la richiesta ICMP, raccoglie i dati e li decodifica.
FTP - Dati e file vengono caricati sul server FTP di EgressAssess seguendo l'uso del protocollo standard. Per accedere al server vengono utilizzati un nome utente e una password. Vedi gli esempi sopra.
SFTP - Dati e file vengono caricati seguendo il protocollo SFTP. Per accedere al server vengono utilizzati un nome utente e una password.
HTTP(S) - Dati e file vengono inviati tramite una richiesta POST web al server web di EgressAssess. Per il client Python, i dati vengono inviati a http(s):///post_data.php e per il client PowerShell i dati vengono inviati a http(s):///posh_file.php.
SMB - Il server EgressAssess (che utilizza il SimpleSMBserver di Impacket) crea una condivisione SMB /TRANSFER. Il client si connette alla condivisione senza autenticazione e trasferisce il file. Proprio come connettersi a una condivisione di rete e copiare un file. È possibile aggiungere un nome utente e una password per l'autenticazione, se desiderato. Come notato sopra, determina da quale sistema stai esfiltrando e le loro policy di sicurezza per vedere se puoi utilizzare il vecchio SMBv1 vulnerabile o se devi abilitare SMBv2.
DNS_TXT - Dati e file vengono suddivisi in byte e poi convertiti in base64 e suddivisi in query DNS TXT separate che vengono effettuate a un indirizzo IP o nome di dominio. Il client tenta di connettersi direttamente al server EgressAssess e effettua la query DNS TXT. Il server quindi filtra i dati dai pacchetti e decodifica i dati. Nel client PowerShell è presente un'opzione per query impilate. Questo effettuerà fino a 7 query TXT in ogni richiesta DNS al server, aumentando la velocità con cui i dati vengono esfiltrati.
DNS_Resolved - Dati e file vengono suddivisi in byte e poi convertiti in base64. I dati vengono quindi suddivisi in blocchi e utilizzati come parte di una richiesta DNS per risolvere un sottodominio. <dati_codificati>.dominio.com. Affinché funzioni, è necessario configurare un record NS per il dominio per il server EgressAssess. Tutte le richieste DNS vengono effettuate al nameserver impostato del sistema e raggiungono infine il server EgressAssess precedentemente configurato. Il server EgressAssess prende la sezione dati da ciascuna richiesta e ricompone il file.