
Outil de test d'exfiltration de données multi-protocole qui simule des scénarios réels de sortie de réseau via FTP, HTTP, HTTPS, DNS, ICMP, SMB, SMTP et SFTP pour valider les capacités de détection.
Egress-Assess est un outil utilisé pour tester les capacités de détection des données sortantes.
Pour configurer, exécutez le script d'installation inclus ou effectuez les opérations suivantes :
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Des articles de blog sont disponibles ici :
Le cas d'utilisation typique d'Egress-Assess consiste à copier cet outil dans deux emplacements. Un emplacement agira comme serveur, l'autre comme client. Egress-Assess peut envoyer des données via FTP, HTTP et HTTPS.
Pour extraire des données via FTP, vous devez d'abord démarrer le serveur FTP d'Egress-Assess en sélectionnant « --server ftp » et en fournissant un nom d'utilisateur et un mot de passe à utiliser :
./Egress-Assess.py --server ftp --username testuser --password pass123
Maintenant, pour que le client se connecte et envoie des données au serveur FTP, vous pouvez exécuter...
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
De plus, vous pouvez configurer Egress-Assess pour agir comme un serveur web en exécutant....
./Egress-Assess.py --server https
Ensuite, pour envoyer des données au serveur FTP, et spécifiquement pour envoyer 15 Mo de données de carte de crédit, exécutez la commande suivante...
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
Autres points à noter :
SMTP - Le client crée un message électronique en plaçant les données dans le corps du message ou, s'il s'agit d'un fichier, en pièce jointe. Le client tente ensuite d'établir une connexion SMTP vers le serveur EgressAssess sur le port 25 (ou un port alternatif fourni). Le serveur SMTP ne nécessite pas d'authentification, accepte la connexion entrante et traite l'e-mail. Le traitement du message électronique extrait les données du corps de l'e-mail ou du fichier joint dans le message. Ce test ne tente pas d'envoyer l'e-mail via le serveur de messagerie de l'organisation.
SMTP_Outlook – (Ce module est disponible uniquement dans le client PowerShell). Si un client Outlook a été préalablement configuré, le client PowerShell crée un objet COM pour Outlook (cela peut nécessiter que l'utilisateur fournisse une authentification selon la configuration). Le client PowerShell crée ensuite un message électronique avec les données dans le corps de l'e-mail ou, s'il s'agit d'un fichier, en pièce jointe. Les e-mails sont envoyés depuis Outlook en tant qu'utilisateur préalablement configuré. (Certains paramètres de sécurité peuvent avertir l'utilisateur qu'un programme tente d'envoyer des e-mails en arrière-plan et qu'il faut autoriser). Pour que ce module fonctionne, un enregistrement MX doit être créé pour le serveur EgressAssess. Le serveur SMTP EgressAssess accepte tous les messages électroniques envoyés au domaine de l'enregistrement MX et reçoit l'e-mail avec les pièces jointes ou les données sous forme de texte dans le corps de l'e-mail.
Invoke-EssessAgress -Client SMTPOutlook -IP <domain of SMTP Sever> -NoPing -DataType "ssn"
ICMP - Les données sont divisées en octets et encodées en base64, puis envoyées sur le réseau dans une requête ECHO de type ICMP 8. Les données sont placées dans le champ de données du paquet. Les requêtes ECHO sont envoyées en continu au serveur EgressAssess qui reçoit la requête ICMP, collecte les données et les décode.
FTP - Les données et fichiers sont téléchargés sur le serveur FTP EgressAssess selon l'utilisation typique du protocole. Un nom d'utilisateur et un mot de passe sont utilisés pour accéder au serveur. Voir les exemples ci-dessus.
SFTP - Les données et fichiers sont téléchargés en suivant le protocole SFTP. Un nom d'utilisateur et un mot de passe sont utilisés pour accéder au serveur.
HTTP(S) - Les données et fichiers sont envoyés via une requête web POST au serveur web EgressAssess. Pour le client Python, les données sont postées sur http(s):///post_data.php et pour le client PowerShell, les données sont postées sur http(s):///posh_file.php.
SMB - Le serveur EgressAssess (utilisant SimpleSMBserver d'Impacket) crée un partage SMB /TRANSFER. Le système client se connecte au partage sans authentification et transfère le fichier. C'est comme se connecter à un partage réseau et copier un fichier. Il est également possible d'ajouter un nom d'utilisateur et un mot de passe pour l'authentification si souhaité. Comme mentionné ci-dessus, déterminez le système à partir duquel vous effectuez la sortie et ses politiques de sécurité pour savoir si vous pouvez utiliser l'ancien SMBv1 vulnérable ou si vous devez activer SMBv2.
DNS_TXT - Les données et fichiers sont divisés en octets, convertis en base64 et fragmentés en requêtes DNS TXT distinctes effectuées vers une adresse IP ou un nom de domaine. Le client tente de se connecter directement au serveur EgressAssess et effectue la requête DNS TXT. Le serveur filtre ensuite les données des paquets et les décode. Dans le client PowerShell, il existe une option pour les requêtes empilées. Cela effectuera jusqu'à 7 requêtes TXT dans chaque requête DNS au serveur, ce qui augmente la vitesse à laquelle les données sont exfiltrées.
DNS_Resolved - Les données et fichiers sont divisés en octets, convertis en base64. Les données sont ensuite fragmentées et utilisées comme partie d'une requête DNS pour résoudre un sous-domaine. <encodé_données>.domain.com. Pour que cela fonctionne, un enregistrement NS pour le domaine doit être configuré pour le serveur EgressAssess. Toutes les requêtes DNS sont effectuées vers le serveur de noms défini du système et atteignent finalement le serveur EgressAssess précédemment configuré. Le serveur EgressAssess prend la section de données de chaque requête et reconstruit le fichier.