
Multi-Protokoll-Tool zum Testen von Datenexfiltration, das reale Egress-Szenarien über FTP, HTTP, HTTPS, DNS, ICMP, SMB, SMTP und SFTP simuliert, um die Erkennungsfähigkeiten zu validieren.
Egress-Assess ist ein Werkzeug zum Testen von Egress-Daten-Erkennungsfähigkeiten.
Um die Einrichtung durchzuführen, führen Sie das beiliegende Setup-Skript aus oder führen Sie Folgendes durch:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Blogbeiträge sind hier verfügbar:
Der typische Anwendungsfall für Egress-Assess ist, dieses Tool an zwei Orten zu kopieren. Ein Ort fungiert als Server, der andere als Client. Egress-Assess kann Daten über FTP, HTTP und HTTPS senden.
Um Daten über FTP zu extrahieren, starten Sie zunächst den FTP-Server von Egress-Assess, indem Sie „--server ftp“ auswählen und einen Benutzernamen und ein Passwort angeben:
./Egress-Assess.py --server ftp --username testuser --password pass123
Um nun den Client zu verbinden und Daten an den FTP-Server zu senden, führen Sie Folgendes aus…
./Egress-Assess.py --client ftp --username testuser --password pass123 --ip 192.168.63.149 --datatype ssn
Sie können Egress-Assess auch als Webserver einrichten, indem Sie Folgendes ausführen…
./Egress-Assess.py --server https
Um dann Daten an den FTP-Server zu senden und speziell 15 Megabyte Kreditkartendaten zu senden, führen Sie den folgenden Befehl aus…
./Egress-Assess.py --client https --data-size 15 --ip 192.168.63.149 --datatype cc
Weitere Hinweise:
SMTP - Der Client erstellt eine E-Mail-Nachricht, platziert die Daten im Nachrichtentext oder bei einer Datei als Anhang. Der Client versucht dann, eine SMTP-Verbindung zum EgressAssess-Server über Port 25 (oder einen alternativ angegebenen Port) herzustellen. Der SMTP-Server benötigt keine Authentifizierung und akzeptiert die eingehende Verbindung und verarbeitet die E-Mail. Die Verarbeitung der E-Mail-Nachricht entnimmt die Daten aus dem Nachrichtentext oder aus der angehängten Datei. Dieser Test versucht nicht, die E-Mail durch den E-Mail-Server der Organisation zu senden.
SMTP_Outlook – (Dieses Modul ist nur im PowerShell-Client verfügbar.) Wenn ein Outlook-Client zuvor konfiguriert wurde, erstellt der PowerShell-Client ein COM-Objekt für Outlook (Dies kann je nach Konfiguration erfordern, dass der Benutzer eine Authentifizierung bereitstellt). Der PowerShell-Client erstellt dann eine E-Mail-Nachricht mit den Daten im Nachrichtentext oder bei einer Datei als Anhang. E-Mails werden von Outlook als der zuvor konfigurierte Benutzer gesendet. (Einige Sicherheitseinstellungen können den Benutzer darauf hinweisen, dass ein Programm versucht, E-Mails im Hintergrund zu senden, und dass die Genehmigung erforderlich ist.) Damit dieses Modul funktioniert, muss ein MX-Eintrag für den EgressAssess-Server erstellt werden. Der EgressAssess-SMTP-Server akzeptiert alle an die Domäne des MX-Eintrags gesendeten E-Mail-Nachrichten und empfängt die E-Mail mit den Dateianhängen oder den Daten als Test im Nachrichtentext.
Invoke-EssessAgress -Client SMTPOutlook -IP <domain of SMTP Sever> -NoPing -DataType "ssn"
ICMP - Die Daten werden in Bytes aufgeteilt, base64-kodiert und in einer ICMP Type 8 ECHO-Anfrage über das Netz gesendet. Die Daten werden im Datenfeld des Pakets platziert. Die ECHO-Anfragen werden kontinuierlich an den EgressAssess-Server gesendet, der die ICMP-Anfrage empfängt und die Daten sammelt und decodiert.
FTP - Daten und Dateien werden gemäß der üblichen Protokollnutzung auf den EgressAssess-FTP-Server hochgeladen. Ein Benutzername und ein Passwort werden verwendet, um auf den Server zuzugreifen. Siehe Beispiele oben.
SFTP - Daten und Dateien werden gemäß dem SFTP-Protokoll hochgeladen. Ein Benutzername und ein Passwort werden verwendet, um auf den Server zuzugreifen.
HTTP(S) - Daten und Dateien werden über eine POST-Webanfrage an den EgressAssess-Webserver gesendet. Für den Python-Client werden die Daten an http(s):///post_data.php gesendet, und für den PowerShell-Client werden die Daten an http(s):///posh_file.php gesendet.
SMB - Der EgressAssess-Server (unter Verwendung von Impackets SimpleSMBserver) erstellt eine /TRANSFER SMB-Freigabe. Das Clientsystem verbindet sich ohne Authentifizierung mit der Freigabe und überträgt die Datei. Ähnlich wie beim Verbinden zu einer Netzwerkfreigabe und Kopieren einer Datei. Es besteht auch die Möglichkeit, bei Bedarf einen Benutzernamen und ein Passwort für die Authentifizierung hinzuzufügen. Wie oben erwähnt, bestimmen Sie, von welchem System Sie die Daten ausleiten und welche Sicherheitsrichtlinien gelten, um zu sehen, ob Sie das alte anfällige SMBv1 verwenden können oder SMBv2 aktivieren müssen.
DNS_TXT - Daten und Dateien werden in Bytes aufgeteilt, dann in base64 konvertiert und in separate DNS-TXT-Anfragen aufgeteilt, die an eine IP-Adresse oder einen Domainnamen gestellt werden. Der Client versucht, eine direkte Verbindung zum EgressAssess-Server herzustellen und stellt die DNS-TXT-Anfrage. Der Server filtert dann die Daten aus den Paketen und decodiert die Daten. Im PowerShell-Client gibt es eine Option für gestapelte Anfragen. Dadurch werden bis zu 7 TXT-Anfragen in jeder DNS-Anfrage auf dem Server gestellt, was die Geschwindigkeit der Datenexfiltration erhöht.
DNS_Resolved - Daten und Dateien werden in Bytes aufgeteilt, dann in base64 konvertiert. Die Daten werden dann in Stücke geteilt und als Teil einer DNS-Anfrage zur Auflösung einer Subdomain verwendet. <encoded_data>.domain.com. Damit dies funktioniert, muss ein NS-Eintrag für die Domain auf dem EgressAssess-Server eingerichtet werden. Alle DNS-Anfragen werden an den eingestellten Nameserver des Systems gestellt und erreichen letztendlich den zuvor eingerichteten EgressAssess-Server. Der EgressAssess-Server entnimmt den Datenabschnitt aus jeder Anfrage und setzt die Datei wieder zusammen.