an der HolzpyramideRegelmäßig gibt es Zeiten, in denen uns weniger Phishing-E-Mails erreichen und dann gibt es aber auch wieder andere Zeiten. blühende Bäume am RadwegUnd wenn ich dann wieder mehr mit diesen E-Mails zu tun habe, muss ich jedes Mal wieder überlegen, wie das noch mal war, mit dem Extrahieren der gefährlichen URLs. Also habe ich mir diesmal die Arbeit gemacht und ein paar meiner Schritte zusammen geschrieben, damit ich es, falls es noch mal eine Pause gibt, es bei der nächsten gegnerischen Kampagne schneller wieder finde.

vi und base64

Die neuste Spam- bzw. Phishing-Wellen, die uns seit einigen Wochen erreicht, generiert wieder vermehrt Arbeit mit den E-Mails. vor dem Sterkrader TorGerade Qakbot ist wieder vermehrt aktiv und nutzt auch sehr geschickt abgefangene E-Mail-Kommunikation, um E-Mails zu generieren, die als scheinbare Antwort getarnt sind. Qakbot-Mails haben dann meist einen Anhang (HTML, PDF, OneNote o.ä.) und natürlich geht es meistens darum, Anwender dazu zubringen, auf einen Link zu klicken. Ein JavaScript lädt dann eine Powershell-Datei nach und startet sie, die wiederum eine DLL nachlädt und mit der DLL wird letztlich die tatsächliche Payload nachgeladen. am QuellenbuschDann würde eine Kommunikation zu einem C&C aufgebaut und Befehle befolgt werden. Im Firmenumfeld sind zum Glück schon viele Anwender sensibilisiert und solche E-Mails werden von den meisten Anwendern erkannt und dann die IT-Hotline informiert. Die bittet dann üblicherweise darum, dass die E-Mail einmal komplett an uns weitergeleitet wird, hinter den Büschendamit wir sie uns ansehen und entsprechende Maßnahmen ergreifen können. Hauptsächlich geht es darum, dass wir die Hosts, die in den Links stehen, ungültig machen. Dazu müssen die URLs erkannt und extrahiert werden. Ich benutze dafür einen Linux-Rechner, auf dem ich das angehängte File abspeichere. Sollte der Anhang eine .msg-Dateien sein, muss ich das File erst in das mbox-Format umwandeln:

nn=Ticket-Outlook\ Fishing\ Mail.msg 
msgconvert --mbox "${nn}.mbox" "${nn}"
Die umgewandelte Datei bzw. die zugeschickte .eml-Dateien öffne ich im vim. Darin kann ich dann schon einen ersten Versuch unternehmen, Sonnenstrahlennach einer URL zu suchen. Meistens sind sie Inhalte aber base64-kodiert und müssen decryptet werden. Jeden kodierten Abschnitt wandle ich einzeln um, indem ich ihn erst markiere und dann dem Befehl base64 zuführe. Dazu gehe ich an den Anfang des betroffenen Blocks, wechsel in den Markier-Modus « [Shift][v] » und gehe mit der Pfeil-Down/Pg-Down-Taste an das Ende des Blocks. Eisenbahn-BrückeAls nächstes wechsel ich in den Befehlsmodus und gebe den Befehl ein: « !base64 -di » Mit einem [Enter] wird der Befehl ausgeführt und der Block decodiert. Dieses Vorgehen wiederhole ich mit allen Blöcken, auch mit PDF-Anhängen und suche danach alle URLs heraus. Bei Qakbot-Mail kommt dann im HTML-Teil meistens ein codierter (obfuskierter) JavaScript-Code zum Vorschein. GoldregenUm den zu entschlüsseln, benutze ich die Entwicklerwerkzeuge vom Firefox. Zur Sicherheit öffne ich den Firefox in einem „neuen privaten Fenster“. Darin muss man die Taste [F12] betätigen, um die Entwicklerwerkzeuge zu öffnen. Dort gehe ich auf den Reiter Console und füge den Bereich zwischen den Script-Tags (ohne die Tags) am Prompt ein. Ein Druck auf die dicke [Enter]-Taste führt den Code aus Phishing-E-Mail, JavaScript-Code im Ergebnis der Dekodierung des base64-Teils im vimund im Ergebnis sieht man die URLs für das Nachladen von Schad-Code. Die so erhaltenen Web-Domains kann man dann im DNS ungültig machen (Stichwort Pi-Hole) oder im Proxyserver verbieten und ab dem Zeitpunkt sind URLs zu dieser Domain unerreichbar.
Glockenblumen im RasenWer jetzt noch Lust und Zeit hat, kann versuchen sich den Script von der entschlüsselten URL zu laden, um ihn weiter zu „erforschen“. Ich nutze dafür schon mal den wget, dem ich aber einen aktuellen Firefox-User-Agent-String mitgebe. Allerdings sind die Links immer nur kurze Zeit gültig und der Powershell-Code ist dann auch nicht mal eben „gelesen“.


Zusammenfassung

  1. eventuell Umwandeln von .msg-Dateien: msgconvert
    1. nn=Ticket-Outlook\ Fishing\ Mail.msg
    2. msgconvert --mbox "${nn}.mbox" "${nn}"
  2. Decodieren von base64-Inhalten im vim, z.B. in E-Mail-Dateien (*eml / mbox-Format)
    1. den Bereich markieren -> z.B. [Shift][v] [Pfeil] ...
    2. (Befehl) !base64 -di

  3. In der E-Mail oder im HTML-Anhang ist ein codierter (obfuskierter) JS-Code (JavaScript)
    1. im FireFox (zur Sicherheit am besten in einem „neuen privaten Fenster“) die Taste [F12], um die Entwicklerwerkzeuge zu öffnen
    2. Reiter Console öffnen
    3. an dem Prompt den kompletten JS-Code (ohne Tags) einfügen -> [Enter]
    4. ausgeführter Code erscheint im Ergebnis, in dem dann womöglich auch die URL für das Nachladen von Schad-Code zusehen sind
      • Ich bekomme vorher noch folgende Meldungen – sehe aber im Proxy, dass mein Browser diese URLs nicht ersurft hat. – Solange man nicht auf einen Link klickt, sollte also nichts passieren.
1
2
3
4
5
6
17:08:37.631 Loading failed for the <script> with source “https:-/-/taiyolofi[.]net/lqqo/lqqo.php?33599”. privatebrowsing:1:1
17:08:37.632 Loading failed for the <script> with source “https:-/-/arixbd[.]com/rnpr/rnpr.php?91993”. privatebrowsing:1:1
17:08:37.632 Loading failed for the <script> with source “https:-/-/ebcedhesabi[.]com/aaxm/aaxm.php?11525”. privatebrowsing:1:1
17:08:37.634 Content Security Policy: The page’s settings blocked the loading of a resource at https:-/-/taiyolofi[.]net/lqqo/lqqo.php?33599 (“default-src”). debugger eval code:1:2187
17:08:37.634 Content Security Policy: The page’s settings blocked the loading of a resource at https:-/-/arixbd[.]com/rnpr/rnpr.php?91993 (“default-src”). debugger eval code:1:2187
17:08:37.634 Content Security Policy: The page’s settings blocked the loading of a resource at https:-/-/ebcedhesabi[.]com/aaxm/aaxm.php?11525 (“default-src”). debugger eval code:1:2187