
Betten Sie beliebige Dateien in eine HTML-Datei ein und verstecken Sie sie
============
Autor: Arno0x0x - @Arno0x0x
Dieses Tool tut Folgendes: Es nimmt eine Datei (beliebigen Typs), verschlüsselt sie und bettet sie als Ressource in eine HTML-Datei ein, zusammen mit einer automatischen Download-Routine, die einen Benutzer simuliert, der auf die eingebettete Ressource klickt.
Wenn der Benutzer dann die HTML-Datei durchsucht, wird die eingebettete Datei im laufenden Betrieb entschlüsselt, in einem temporären Ordner gespeichert und dem Benutzer so präsentiert, als würde sie von der entfernten Site heruntergeladen. Abhängig vom Browser des Benutzers und dem dargestellten Dateityp kann die Datei automatisch vom Browser geöffnet werden.
Dieses Tool gibt es in zwei Varianten, die die gleiche Gesamtfunktionalität bieten, aber mit geringfügigen Änderungen in der Art der Verwendung:
Ein Python-Skript, das die Ausgabe-HTML-Datei basierend auf einer Vorlage generiert, RC4-Verschlüsselungsroutinen verwendet und den Entschlüsselungsschlüssel in die Ausgabedatei einbettet. Das resultierende HTML kann entweder vom Zielbenutzer durchsucht oder als Anhang verschickt werden.
Ein HTML/JavaScript, in das Sie die Datei ziehen können, um sie zu verschlüsseln und die Ausgabe-HTML-Datei zu generieren. Es verwendet die WebCrypto-API, bettet aber kein Entschlüsselungsmaterial (Schlüssel und Zähler) ein. Stattdessen wird das Entschlüsselungsmaterial als eine Reihe von URL-Parametern angezeigt, die zu einer URL hinzugefügt werden müssen, die auf die resultierende HTML-Datei verweist: http(s)://hosting.server.com/result.html#hexcodierterSchlüssel!hexcodierterZähler. Daher kann die resultierende HTML-Datei nicht als Anhang verschickt werden.
Der Hauptvorteil dieser Technik besteht darin, dass das Entschlüsselungsmaterial nicht in die Datei selbst eingebettet ist, wodurch die Analyse und sogar der Abruf der Nutzlast durch jedes System verhindert wird, das nicht über die vollständige URL verfügt (z. B. ein abfangender Proxy).
Nebenbei bemerkt:
Dieses Tool wurde inspiriert und abgeleitet von dem großartigen 'demiguise'-Tool: https://github.com/nccgroup/demiguise
Die b64AndRC4-Funktion, die für die binäre Eingabe (aus der XLL-Datei) verwendet wird, ist eine Mischung aus: https://gist.github.com/borismus/1032746 und https://gist.github.com/farhadi/2185197
Siehe https://gist.github.com/Arno0x/f71a9db515ddea686ccdd77666bebbaa für eine einfache Erstellung einer bösartigen XLL-Datei – ein perfektes Beispiel für ein bösartiges Dokument, das man mit dieser Methode ausliefern könnte.
In der HTML-Vorlage (html.tpl-Datei) wird empfohlen, unten Ihre eigene Schlüsselableitungsfunktion aus der Umgebung einzufügen, wo die 'keyFunction' steht. Sie sollten Ihren Schlüssel aus der Umgebung ableiten, sodass er nur auf Ihrem beabsichtigten Ziel funktioniert (und nicht in einer Sandbox).
Einige Beispiele für Nutzlastdateien sind im Verzeichnis payloads_examples bereitgestellt. Zum Beispiel ist calc.xll eine Excel-Add-In-Datei (XLL), die einen Metasploit-Shellcode für x86-Prozesse enthält, um den calc.exe-Prozess zu starten.
Verwendung des Python-Skripts
1/ Generieren Sie die bösartige HTML-Datei aus der XLL-Datei zusammen mit einem geheimen Schlüssel:
python embedInHTML.py -k meinGeheimerSchlüssel -f example_calc.xll -o index.html
2/ Stellen Sie die HTML-Datei auf einem Webserver bereit (einer kann optional mit dem Flag -w für Sie gestartet werden)
Verwendung des HTML/JavaScript
1/ Öffnen Sie die Datei embedInHTML.html in einem Browser
2/ Ziehen Sie einfach die Nutzlastdatei in die Seite (Sie können optional den Ausgabedateinamen ändern)
3/ Speichern Sie die resultierende Datei und notieren Sie das Entschlüsselungsmaterial als URL-Parameter, die dem Dateinamen in der Form hinzugefügt werden: http(s)://hosting.server.com/result.html#hexcodierterSchlüssel!hexcodierterZähler
Schließlich...
Richten Sie den Browser des Ziels auf die HTML-Datei und lassen Sie die Magie geschehen:
Dieses Tool ist nur für legale und legitime Zwecke vorgesehen:
Zitat der Autoren von Empire: Es gibt keine Möglichkeit, offensive Tools zu entwickeln, die für die legitime Sicherheitsbranche nützlich sind, und gleichzeitig zu verhindern, dass böswillige Akteure sie missbrauchen.