Batch-Dateien sind ein wichtiges Werkzeug, das von vielen Anwendern und Administratoren verwendet wird, um automatisierte Aufgaben auszuführen. Allerdings nutzen auch Angreifer diese Batch-Dateien, um schädliche Befehle auf einem System auszuführen.
Um eine Erkennung durch Antiviren-Software zu vermeiden, werden Batch-Dateien verschleiert. Dies wird auch als Obfuscation bezeichnet. Obfuscation ist eine Verschleierungstechnik, die von Angreifern häufig eingesetzt und von unserem Digital Forensics & Incident Response Team aufgedeckt wird. Dabei werden zwei Hauptziele verfolgt. Erstens müssen aus Sicht der Verteidiger mehr Ressourcen investiert werden, um zu verstehen, wie die Schadsoftware funktioniert. Zweitens sollen durch Obfuscation Schutzmechanismen umgangen werden. Es gibt inzwischen bereits eine Vielzahl von Techniken, um eine Verschleierung zu erreichen. In diesem Blogbeitrag wird beschrieben, was Batch-Dateien sind und wieso diese verschleiert werden.
Inhaltsverzeichnis
Was ist ein Batch File?
Eine Batch-Datei (.bat) ist eine ausführbare Textdatei, die vom Windows-Befehlszeilenprozessor cmd.exe ausgeführt wird. Diese Dateien können mit einem beliebigen Texteditor erstellt werden und enthalten CMD-Befehle. Durch einen Doppelklick auf eine solche Datei öffnet sich die Befehlszeile und die darin enthaltenen Befehle werden von oben nach unten abgearbeitet. Batch-Dateien werden häufig von Administratoren verwendet, um bestimmte Arbeitsabläufe schneller und einfacher auszuführen. Dies ist insbesondere dann der Fall, wenn häufig verwendete Befehle oder mehrere Befehle nacheinander ausgeführt werden sollen. Dadurch müssen die Befehle nicht mehr manuell eingegeben werden. In der Abbildung 1 ist ein einfache Batch-Datei ersichtlich, welches mit dem Kommando XCOPY
den Inhalt vom Quellenverzeichnis ins Backup-Verzeichnis kopiert. Mit der Angabe /m wird sichergestellt, dass nur aktualisierte Dateien kopiert werden sollen. Dies verhindert, dass bereits gesicherte Dateien erneut kopiert werden.
Wieso werden Batch Files verschleiert?
Wie die Administratoren benutzen auch Angreifer .bat-Dateien, da sie zur Ausführung vieler systemspezifischer Befehle verwendet werden können. Ein Beispiel hierfür ist die Deaktivierung von Windows Defender. Wie in Abbildung 1 zu sehen ist, handelt es sich bei einem Batch-Skript um Klartext. Signaturbasierte Antiviren-Software kann diese Dateien scannen und auf bösartige Inhalte überprüfen. Dies führt dazu, dass diese bösartigen Batch-Dateien von signaturbasierter Antiviren-Software erkannt und blockiert werden. Um dies zu verhindern, wird der Inhalt von den Angreifern oft verschleiert. Für diese Verschleierung können verschiedene Techniken angewendet werden. Es gibt verschiedene frei verfügbare und einfach zu verwendende Implementierungen von Obfuscation-Techniken. Sie sind auch in gängigen Werkzeugen wie Meterpreter integriert (siehe Metasploit Documentation). Die Abbildung 2 zeigt eine verschleierte Batch-Datei. Der Inhalt besteht aus Zeichen, die keinen Rückschluss auf die eigentliche Funktion dieser Datei zulassen.
Wie kann ich Batch File Obfuscation erkennen?
Aufgrund der Verschleierung können einige Antiviren-Lösungen bösartige Batch-Dateien nicht mehr erkennen. Daher ist Vorsicht geboten, wenn solche ausführbare Dateien gefunden werden, die für Menschen schwer lesbaren Inhalt haben. Auf keinen Fall sollten diese Dateien ungeprüft ausgeführt werden. Ebenfalls ist Achtsamkeit geboten, wenn Batch-Dateien an einem unbeabsichtigten Ort gefunden werden, wie beispielsweise auf dem Desktop, oder wenn keine Batch-Dateien auf dem System erwartet werden. Folgende Methoden können eingesetzt werden, um Batch File Obfuscation zu erkennen:
Texteditor
Am einfachsten kann der Inhalt durch das Öffnen der Datei in einem Texteditor angeschaut werden. Um dabei eine mögliche Verschleierung zu erkennen, können die folgenden Punkte beachtet werden:
- Sind die Zeichen für mich lesbar? Wie in dem Beispiel in Abbildung 2 gezeigt, handelt es sich um unbekannte Zeichen, die vom Menschen nicht interpretiert werden können. Es ist auch möglich, dass nur ein Teil des Inhalts nicht lesbar ist. Auch hier sollte ein Auge darauf geworfen werden.
- Werden zufällig generierte Variablen- und Funktionsnamen verwendet? Ein Beispiel ist in der Abbildung 3 ersichtlich. Set wird dabei für das Setzen einer Variable verwendet.
- Ebenfalls auffällig ist, wenn existierende Funktionen einem neuen Variablennamen zugewiesen werden.
Werden die genannten Punkte erkannt, kann es sich um eine mögliche Verschleierung handeln. Die Datei sollte weiter geprüft und erst danach ausgeführt werden.
YARA-Regeln
Eine andere Möglichkeit für eine Erkennung bieten YARA-Regeln (siehe Security Insider). Mit YARA-Regeln kann nach bestimmten Mustern in Dateien oder Prozessen gesucht werden. Damit soll es möglich sein, Malware zu erkennen und zu klassifizieren. Es existieren bereits viele vordefinierte Regeln, die verwendet werden können. Es ist aber auch möglich, eigene YARA-Regeln zu schreiben. Ebenfalls können YARA-Regeln in unterschiedlichen Antiviren-Lösungen genutzt werden. Es ist zu beachten, dass es stark von der jeweiligen Regel abhängt, was erkannt werden kann. Es gibt YARA-Regeln, die für einen bestimmten Obfuscator geschrieben werden. Diese Regel funktioniert nur für diesen Obfuscator und erkennt keine anderen Techniken. Es gibt aber auch Regeln, die für mehrere Techniken funktionieren. Daher sind YARA-Regeln nur begrenzt geeignet, um Batch File Obfuscation zu erkennen.
Um die Nutzung von YARA-Regeln zu demonstrieren, wurde eine einfache Regel geschrieben. Wie in der Abbildung 4 ersichtlich, wird mit dieser Regel nach den drei angegeben Hexadezimalwerten (siehe rote Markierung) gesucht. Dabei muss einer der drei Werte in einem verschleierten Batch File enthalten sein, um erkannt zu werden. Bitte beachte, dass es sich hier um eine Beispiel Regel handelt und nicht in der Praxis eingesetzt werden sollte.
Abbildung 1 zeigt das ursprüngliche Skript ohne Verschleierung und Abbildung 5 stellt die verschleierte Version des Skripts dar. Die Verschleierung wurde mit einem im Internet verfügbaren Obfuscator durchgeführt (siehe GitHub). Diese Verschleierung soll nun mit der Beispiel YARA-Regel erkannt werden.
Die Regel wird auf die beiden Dateien mit dem Befehl yara angewendet. Wie zu sehen ist, wird in der Datei Beispiel.bat nichts erkannt. Bei der Datei Beispiel_obfuscated.bat wird eine Verschleierung entdeckt und somit kommt die Regel zur Anwendung.
Ausblick
Die Verschleierung von Batch-Dateien ist eine Möglichkeit von Angreifern die Sicherheitsmassnahmen eines Unternehmens zu umgehen. Im Teil 2 «Batch File Obfuscation Vorfall» wird eine solche Obfuscation aus einem realen Fall vorgestellt. Dabei wird gezeigt, wie bei verdächtigen Batch-Dateien vorgegangen wurde und wie die Obfuscation rückgängig gemacht werden kann.
Haben Sie noch Fragen zu Batch File Obfuscation oder benötigen dabei Unterstützung? Unser Digital Forensics und Incident Response Team hilft Ihnen gerne dabei. Über Ihre Kontaktaufnahme freuen wir uns.