fennek11
Goto Top

Emotet: docx mit VBA und Powershell

Hallo,

nach einigen Monate mit wenig Aktivitäten ("kill switch") gibt es seit ca 2 Wochen wieder eine Kampagne von Emotet/Heodo. In den Datenbanken der Viren-Jäger sind mehr als 10.000 Word-Dateien, docx mit VBA, aufgenommen worden.

Auch wenn der User eine Warnung für das Aktivieren des VBA-Codes erhält, muss es, trotz Prüfungen der EMails und Training der Mitarbeiter immer wieder einmal zu "Pannen" kommen.

Da die hash-Werte nach wenigen Stunden geändert werden, sind einige Anti-Viren Programme zu langsam.

Frage in die Runde:

Ist bekannt, wie man docx-Dateien mit VBA direkt erkennen kann?

Für meinen Nachbau trennt dieser Powershell-Code:

$Pfad = $env:USERPROFILE + '\desktop\'  
$Files = get-childitem $Pfad -Filter *.xls?
Write-Host " `n ---------------- `n"  

foreach ($File in $Files) {

     write-host $File
     [boolean]$Bo = $false
    
    $Bytes = get-content ($Pfad + $File) -Encoding Byte 
    [boolean]$Bo = $false

    for ($B=0; $B -le $Bytes.Count; $B++) {
        if ($Bytes[$B] -eq 80 -and $Bytes[$B+1] -eq 75) {
            if (($Bytes[$B+2] -eq 5) -and ($Bytes[$B+3] -eq 6)) {
                if ($B -lt $Bytes.Count - 25) {$Bo = $true}
            }            
        }
    } 
    write-host ('Bytes.Count', $bytes.Count, $Bo)  
    if ($Bo) {write-host ">>>>>>>>> Malware <<<<<<<<< `n`n"}  
    Write-Host " `n ---------------- `n"  
}

Hier werden xlsx-Dateien auf dem Desktop geprüft, eine Anpassung ist aber einfach. Es gibt IT-Security-Blogs, die das recht gut beschreiben, allerdings werden dort Python-Scripte genutzt. Eine Powershell-Variante sollte leichter automatisierbar sein.

In den IT-Su+ecurity-Blogs gibt es so viele Information (detailierte Analysen über 6 Jahre, 100.000+ URL), dass ich mich frage, wie diese Cyber-Kriminellen weiter agieren können.

Content-Key: 598183

Url: https://administrator.de/contentid/598183

Printed on: April 21, 2024 at 17:04 o'clock

Member: Tezzla
Tezzla Aug 21, 2020 at 08:38:29 (UTC)
Goto Top
Moin,

ich frage mich was du genau damit bezwecken willst. Nicht alles, was VBA im Rucksack hat, kommt mit Emotet. Ebenso ist es nicht der einzige Angriffsvektor.

Das einzige, was hilft, ist keine docx Dateien anzunehmen oder diese über ein Security Gateway in ein PDF umzuwandeln. Dann hat man noch das Problem mit Fishing Links, was man nur durch Content Filtering und Schulungen-Schulungen-Schulungen lang genug einhämmern muss.

VG
Tezzla
Member: Fennek11
Fennek11 Aug 21, 2020 at 08:59:15 (UTC)
Goto Top
Macht es Sinn alle docx zu blocken, wenn einmal die Woche ein Virus dabei sein könnte?

Die Änderunge,die notwendig sind, in eine docx VBA einzufügen, gibt es nicht in der normalen Businesswelt. Es ist also ein einduetiges Unterscheidungsmerkmal.

Es ist klar, dass eine so spezialiserte Prüfung andere Arten von malware nicht erkennt.
Member: Tezzla
Tezzla Aug 21, 2020 updated at 09:11:30 (UTC)
Goto Top
Zitat von @Fennek11:
Macht es Sinn alle docx zu blocken, wenn einmal die Woche ein Virus dabei sein könnte?

Das ist die Abwägung zwischen Komfort und Sicherheit, die jeder selber treffen muss. Es kommt auch darauf an, was ihr in eurer Infrastruktur noch macht, um E-Mails zu filtern. Wir setzen bspw. einen Clouddienstleister ein, der solche Mails in einer Sandbox auseinander nimmt und schaut, was passiert. Der Vorgang ist automatisiert und dauert bis zu 5min.

Darüber hinaus ist das Sperren von Makros z.B. Standard bei uns.

Was du mit einer VBA Erkennung aber provozierst, ist, dass die Leute öfter das Schildchen "Malware" sehen, als eigentlich drin ist. D.h. die Warnung verliert mit der Zeit ihre Dramatik und die Leute ignorieren diese erfahrungsgemäß irgendwann.

Edit noch: Nicht falsch verstehen, es ist ja gut, dass man sich darüber Gedanken macht. Ich zweifle hier nur den Weg an VBA generell zu verteufeln.
Member: Vision2015
Vision2015 Aug 21, 2020 at 09:18:25 (UTC)
Goto Top
Moin...
Zitat von @Fennek11:

Macht es Sinn alle docx zu blocken, wenn einmal die Woche ein Virus dabei sein könnte?
ja... das ist die beste Lösung! dazu noch xlsx usw...

Die Änderunge,die notwendig sind, in eine docx VBA einzufügen, gibt es nicht in der normalen Businesswelt. Es ist also ein einduetiges Unterscheidungsmerkmal.

Es ist klar, dass eine so spezialiserte Prüfung andere Arten von malware nicht erkennt.
wie auch?

Dann hat man noch das Problem mit Fishing Links, was man nur durch Content Filtering....
ja, das ist leider noch ein Problem....

Frank
Member: Fennek11
Fennek11 Aug 21, 2020 at 09:29:11 (UTC)
Goto Top
Kein Scherz:

Teste doch einmal den E-Mail-Filter mit einer selbst gemachten DOCX mit VBA. Aus dem Powershell-Code kann man das -mit etwas Phantasie- erkennen. Eine klare Anleitung möchte ich hier aber nicht posten.

Ich bin "VBA-Fan" und möchte das wirklich nicht "verteufeln", eher lernen mit den Risiken umzugehen.
Member: Vision2015
Vision2015 Aug 21, 2020 at 09:44:11 (UTC)
Goto Top
Moin...
Zitat von @Fennek11:

Kein Scherz:
doch...

Teste doch einmal den E-Mail-Filter mit einer selbst gemachten DOCX mit VBA. Aus dem Powershell-Code kann man das -mit etwas Phantasie- erkennen. Eine klare Anleitung möchte ich hier aber nicht posten.
das brauche ich nicht testen, mein Exchange- bzw. die Exchange Server der meisten Kunden von uns filtern die dateien raus, die nicht
empfangen werden sollen!
wozu was testen, was nicht nötig ist...


Ich bin "VBA-Fan" und möchte das wirklich nicht "verteufeln", eher lernen mit den Risiken umzugehen.
eben... viele haben dadurch gelernt- mit kompletten verschlüsselungen.... und noch viel schlimmer mit unbrauchbaren datensicherungen!
sowas kostet eben Lehrgeld face-smile

Frank
Member: wiesi200
wiesi200 Aug 21, 2020 at 09:59:04 (UTC)
Goto Top
Hallo,

meines Wissens nach "block" die Dateiendung docx oder xlsx eh Marcos.
https://www.msxfaq.de/windows/endpointsecurity/officedokumente_und_siche ...

Per Mail blocke ich normale doc oder docm Dateien.
Da ich rspamd als gateway benutze gäbe es eigentlich einen passenden Filter dafür
https://www.heinlein-support.de/blog/news/emotet-mit-rspamd-und-oletools ...
Aber mit externen Marcos austauschen sehe ich für mich nicht als notwendigt.

Intern habe ich den Macroschutz von office so ausgerollt das nur welche mit gültiger Signatur ausgefürt werden können.
Somit sehe ich da wenigt Potential für Schaden.
Member: Looser27
Looser27 Aug 21, 2020 at 10:05:18 (UTC)
Goto Top
Hier hilft nur Mitarbeiter sensibilisieren.

Technisch lasse ich nur von mir signierte Makros zu. Alles andere wird nicht ausgeführt. Wobei das nicht die Schulung der Mitarbeiter ersetzt, allenfalls ergänzt.

Gruß Looser
Member: Fennek11
Fennek11 Aug 21, 2020 at 10:17:06 (UTC)
Goto Top
Die Aussagen von MS zu docx und docm sind weithin bekannt. Aber die Crooks, z.B. bei Emotet haben einen Weg herum gefunden.

Aus dem Link zu Heinlein: Oletools beinhaltet einen "Raptor" (oder so ähnlich), der VBA auf kritische Codes, wie "declare" und "AutoOpen" usw prüft. Nach wenigen Tests damit nutze ich jetzt einen ähnlichen, mehr auf die Analyse ausgerichteten Python-Code: Oledump. Für ein automatisiertes Scannen ist das aber ungeeignet.

Auch wenn viele Firmen gut gesichert sind, müssen die Crooks annehmen auch Opfer finden zu können. Sonst würden sie es nicht machen.

Zur Anti-Viren-Software: Konstruktionen wie "CreateObject("WSricpt.Shell") " werden bei mir seit wenigen Wochen als zu riskant geblockt. Die Kontruktion von Emotet läuft aber problemlos durch.Da kommt schon die Frage "was machen die?"

Da die malware aus einigen Datenbanken kostenlos down-ge-loaded werden kann, kann jeder (nach der De-Obfskation) prüfen, welcher VBA- und Powershell-Codes genutzt werden und -ohne schädliche Codes- prüfen, ob die AV gut schützen würde.
Mitglied: 145033
145033 Aug 21, 2020 updated at 10:29:58 (UTC)
Goto Top
Lass einfach nur signierten Code ausführen und verteile das zugelassene Zertifikat auf die Clients.

Trotzdem schützt dich auch das nicht vor Zero-Day-Sicherheitslücken in Office selbst, denn nicht nur VBA lässt sich in Office-Dokumenten zur Ausführung von Code missbrauchen, da reicht oft ein Buffer-Overflow in irgendeiner Office Komponente.

Office Krams aus dem Hause MS kommt bei uns nicht mehr ins Haus. Es gibt genügend alternative Transferwege für Medien. Schaut nur leider kaum einer mehr über den Tellerrand hinaus .
Member: Fennek11
Fennek11 Aug 21, 2020 at 11:36:41 (UTC)
Goto Top
Es hat jetzt nichts mit Emotet, aber mit O3665 zu tun:

Ein recht detaillierter Incedenz-Report, es kann auch Experten treffen:

https://www.youtube.com/watch?v=KZ3gcFe4_rE
Member: erikro
erikro Aug 21, 2020 at 14:35:19 (UTC)
Goto Top
Moin,

Zitat von @Fennek11:

Die Aussagen von MS zu docx und docm sind weithin bekannt. Aber die Crooks, z.B. bei Emotet haben einen Weg herum gefunden.

Gibt es dazu eine qualifizierte Quelle, in der beschrieben wird, wie man in eine Datei des Formats DOCX ein Makro einfügen kann? Meines Erachtens ist das unmöglich, da das Format keinerlei Möglichkeiten bietet, das zu tun. Ich fürchte, dass hier wieder mal jemand eine unqualifizierte Behauptung in die Welt gepustet hat, die jetzt alle wiederholen. AFAIK ist das, was gemacht wird sowas hier:

boeses_dokument.docx.docm

Also das, was schon seit der dummen Idee, Dateiendungen vor dem User zu verstecken, gemacht wird.

Liebe Grüße

Erik
Member: Fennek11
Fennek11 Aug 21, 2020 at 16:22:15 (UTC)
Goto Top
Ich hbe noch einmal nachgesehen und nur einen, aber sehr detaillierten link gefunden. Deshalb hier nur ein aktuelles Bild:
docx
Member: wiesi200
wiesi200 Aug 21, 2020 updated at 16:55:47 (UTC)
Goto Top
Schau dir mal das an,

Und kpl. Lesen bis zu dem Punkt wurde gefixt.
https://www.borncity.com/blog/2018/02/19/angriff-auf-word-funktioniert-o ...

Und auf Macros Scannen hilft da auch nicht.
Member: erikro
erikro Aug 24, 2020 at 14:28:17 (UTC)
Goto Top
Zitat von @Fennek11:

Ich hbe noch einmal nachgesehen und nur einen, aber sehr detaillierten link gefunden. Deshalb hier nur ein aktuelles Bild:

Und das sagt mir nun genau was? Da steht nichts darüber, wie man in einem docx ein Makro technisch unterbringen kann.