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:
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.
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.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 598183
Url: https://administrator.de/contentid/598183
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
15 Kommentare
Neuester Kommentar
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
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
Zitat von @Fennek11:
Macht es Sinn alle docx zu blocken, wenn einmal die Woche ein Virus dabei sein könnte?
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.
Moin...
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?
Frank
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...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.
Dann hat man noch das Problem mit Fishing Links, was man nur durch Content Filtering....
ja, das ist leider noch ein Problem....Frank
Moin...
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
Frank
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.
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.
sowas kostet eben Lehrgeld
Frank
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.
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.
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 .
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 .
Moin,
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
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
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.
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.
Zitat von @Fennek11:
Ich hbe noch einmal nachgesehen und nur einen, aber sehr detaillierten link gefunden. Deshalb hier nur ein aktuelles Bild:
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.