Die Abenteuer der schwer fassbaren Malvari, Teil III: Komplizierte VBA-Skripte für Lachen und Profit



Dieser Artikel ist Teil der Fileless Malware-Reihe. Alle anderen Teile der Serie:


In den letzten beiden Beiträgen ( hier und hier ) haben wir über dateifreie, aber ziemlich harmlose Angriffsmethoden gesprochen. Jetzt sind wir endlich bereit, eine echte fileless Malware zu übernehmen. Eine hybride Analyseseite (im Folgenden als HA bezeichnet) ist eine Ressource, auf die ich mich verlasse, um diese bösartigen "Kreaturen" zu finden. In der Regel die Informationen, die HA für jedes Beispiel bereitstellt: Systemaufrufe, Internetverkehr usw. - genug, um die typischen IT-Sicherheitsanforderungen zu erfüllen. Ich bin unaufhaltsam angezogen, in eines dieser sehr verwirrenden Codebeispiele einzutauchen, um zu sehen, was dort wirklich vor sich geht.

Wenn Sie nach mir wiederholen möchten, empfehle ich Ihnen, dies in der Sandbox zu tun, z. B. in Amazon Web Services. Wenn Sie dies auf Ihrem Computer überprüfen, müssen Sie die Systemaufrufe auskommentieren, mit denen PowerShell gestartet wird.

Im verwirrenden VBA-Code


Die Malware, die ich schließlich auf der Hybridanalyse-Site gefunden habe, ist ein VBA-Skript, das in ein Word-Dokument eingebettet wurde. Wie ich bereits beim letzten Mal erwähnt habe, benötigen Sie den OfficeMalScanner von Frank Baldwin, um den tatsächlichen Code anzuzeigen .
Nach dem Extrahieren des Skripts habe ich den Code in die MS Word-Makrobibliothek geladen und dann das schrittweise Debuggen mit dem integrierten Debugger gestartet. Mein Ziel war es, besser zu verstehen, was sich hinter der Verschleierung verbirgt: IB-Analytik zu spielen und die mit dieser Arbeit verbundenen Erfolge und Enttäuschungen zu erleben.

Wenn Sie sich wie ich zuerst dazu entschlossen haben, dies im Debugger zu tun, werden Sie höchstwahrscheinlich mehr als eine Tasse Tee (oder Kaffee) trinken, sich durch einen atemberaubend komplexen Code bewegen oder die Variable L_JEK beobachten, die der Zeile "77767E6C797A6F6" zugeordnet ist. .
Bei der Arbeit mit diesem verwirrenden VBA-Skript wurde mir klar, dass nur ein sehr kleiner Teil davon nützliche Arbeit leistet. Der größte Teil des Codes dient nur dazu, Sie in die Irre zu führen.
Am Ende habe ich einen Screenshot eines kleinen Teils des Codes gemacht, der die ganze böse Arbeit des Startens einer PowerShell-Befehlszeile erledigt, die letztendlich als VBA-Makro ausgeführt wird.


Tricky: Nehmen Sie einfach den Hex-Wert und subtrahieren Sie 7 für echtes ASCII.


Es ist sehr einfach. VBA-Code enthält in mehreren Variablen einen Datensatz der letzten Befehlszeile in hexadezimaler Schreibweise und konvertiert ihn dann einfach in eine Zeichenfolge. Der einzige "Trick" hier war, dass die Hexadezimalwerte um 0x07 versetzt wurden. So wird beispielsweise der erste Teil der hexadezimalen Zeichenfolge von L_JEK erhalten, dem der Wert "77767E6C797A6F6" zugewiesen wurde. Wenn Sie 0x77 nehmen und 0x07 subtrahieren, erhalten Sie hex 0x70. Wenn Sie dasselbe für 0x76 tun, erhalten Sie hexadezimal 0x6F. Wenn Sie sie in einer beliebigen ASCII-Codetabelle betrachten, werden Sie feststellen, dass sie mit den ersten beiden Buchstaben von „Powershell“ übereinstimmt.

In der Tat ist dies nicht die schwierigste Verstrickung, aber dies ist nicht erforderlich! Sie müssen lediglich Antivirenscanner überspringen, die nach bestimmten Schlüsselwörtern oder deren Darstellungen in Form von ASCII-Zeichenfolgen suchen. Dass dieses Beispiel gut genug ist und tut. Nachdem das Skript die Befehlszeile neu erstellt hat, führt es sie schließlich über die Funktion CreateProcess aus (siehe unten):


Kommentieren Sie Systemaufrufe aus oder setzen Sie einen Haltepunkt vor ihnen.


Denken Sie eine Sekunde darüber nach. Ein Word-Dokument wurde in einer Phishing-E-Mail an einen Mitarbeiter gesendet. Wenn ein Dokument geöffnet wird, startet dieses VBA-Skript automatisch eine PowerShell-Sitzung, um die nächste Phase des Angriffs zu starten. Keine ausführbaren Dateien und verschleierte Skripte scheuen Antivirenprogramme und andere Scanner.

Hier ist es böse!

Aus Neugier habe ich ein weiteres Makro von der HA-Site (unten) heruntergeladen, um zu sehen, was sonst noch passiert. Dieser zweite Code macht ungefähr das Gleiche wie der obige.


In VBA eingebetteter Geheimcode.


Aber dann ist dieser Code etwas erfinderischer in der Art und Weise, wie er die Befehlszeile wiederherstellt. Es gibt eine Decodierungsfunktion namens "d", die Zeichen aus der Basiszeichenfolge herausfiltert und sie mit der zweiten Steuerzeichenfolge vergleicht. Dies ist bereits eine Idee für ein Highschool-Niveau, und es leistet auch hervorragende Arbeit: Es weicht Scannern leicht aus und betrügt Administratoren, die nur kurz in den Protokollen nach ungewöhnlichen Aktionen suchen.

Nächster Halt


In meiner ersten Reihe von Veröffentlichungen zur Verschleierung habe ich gezeigt, dass das Windows-Ereignisprotokoll viele Details aus PowerShell-Sitzungen aufzeichnet, dh wenn Sie die entsprechenden Einstellungen aktivieren, um nach dem Hacken eine eingehende Analyse durchführen zu können.

Dies hat natürlich auch eine gewisse Komplexität von dateifreien Angriffen zur Folge, da es fast unmöglich ist, festzustellen, ob das PowerShell-Skript etwas Schlechtes tut, indem Sie einfach die Befehle dort überprüfen, während Sie die Sicherheitsprotokollereignisse anzeigen.

Warum fragst du?

Da PowerShell-Sitzungen ständig gestartet werden und bösartiger Code aus einer PowerShell-Sitzung von einem einzelnen Hacker gleichzeitig mit legitimem Code von einem guten PowerShell-IT-Administrator gestartet werden kann. Wenn Sie jedes Mal Benachrichtigungen erhalten, wenn das PS-Skript etwas aus dem Internet herunterlädt, werden zu viele Fehlalarme generiert.

Die Schlussfolgerung kann wie folgt gezogen werden: Wir sehen die Unfähigkeit traditioneller Perimeter Defense-Tools, solche Angriffe, Phishing-E-Mails und FUD-Malware zu stoppen, und große Aussichten für Verhaltensanalysen .

Kurz gesagt, dies ist ein absichtlich verlorener Kampf, der versucht, Hacker daran zu hindern, in den Umkreis zu gelangen. Die beste Strategie besteht darin, ungewöhnlichen und verdächtigen Zugriff auf Dateien zu identifizieren und Anwendungen zu starten und darauf zu reagieren, indem Sie Konten deaktivieren oder als Reaktion auf einen Verstoß eine andere Maßnahme ergreifen.

Im nächsten Teil werden wir uns mit fortgeschritteneren Arten von dateifreien Angriffen befassen.

Source: https://habr.com/ru/post/de459506/


All Articles