Zurück zum Blog

30. September 2026

600K Stück, Lieferung in drei Tagen: Die Bestellung, die einen Passwortdieb ausliefert

Tobias Wilke

Tobias Wilke

@wilketob

600K Stück, Lieferung in drei Tagen: Die Bestellung, die einen Passwortdieb ausliefert
#malware#spam#kmu-security#agent-tesla#powershell#malspam#dmarc

Wer ein info@-Postfach für eine Firma betreut, kennt diese Mail. Jemand, den man nicht kennt, schickt eine Bestellung. Große Menge, knappe Frist, Anhang. Meistens landet so etwas im Spam. Diese hier nicht, und deshalb habe ich sie auseinandergenommen. Die Bestellung ist ein Skript. Das Skript ist ein Loader. Und am Ende der Kette sitzt Agent Tesla, einer der langlebigsten Passwortdiebe, die es gibt.

Was steht in der Mail?

Die Mail im Mailclient: Absender Maricar mit der Adresse Maricar@madison88.com, Betreff „PO SPD-260629259-07---VHD1653-1B“, Datum 25.08.2026, Anhang „PO SPD-260629259.rar“ mit 384 KB. Im Text die Bitte, die angehängte Bestellung zu prüfen und die Lieferung von 600K bis zum 28. August zu bestätigen, darunter eine Firmensignatur aus Shenzhen. Empfängeradresse sowie Firmenname, Ansprechpartnerin, Telefonnummern und Adresse der Signatur sind unkenntlich gemacht.

Betreff PO SPD-260629259-07---VHD1653-1B. PO heißt Purchase Order, Bestellung. Der Rest ist Einkaufsjargon-Rauschen, das nach ERP-System aussehen soll. Der Text ist kurz:

Dear info
Hello!
Please check the attached order and confirm the delivery date.
The total order quantity is 600K . Please confirm whether delivery can be arranged on August 28th .
Thanks!
New email address: Maricar@madison88.com

„Dear info“ ist der vordere Teil meiner Empfängeradresse, automatisch eingesetzt. Danach kommt vorsichtshalber noch ein „Hello!“. 600K wovon, bleibt offen. Die Mail kam am 25. August, geliefert werden soll am 28. Die Zeile „New email address“ ist ein alter Trick: Sie erklärt vorab, warum man den Absender nicht kennt.

Darunter steht die Signatur eines Repräsentanzbüros in Shenzhen: Firmenname, Ansprechpartnerin, zwei Festnetznummern mit Shenzhener Vorwahl, Büroadresse. Die gehört offensichtlich einer echten Firma und wurde aus einer echten Mail kopiert. Das HTML verrät es: Jeder Textschnipsel trägt denselben 500 Zeichen langen Inline-Style mit -webkit-text-stroke-width und orphans: 2. So sieht Copy & Paste aus einem Chrome-Fenster aus.

Absender und Signatur passen übrigens nicht zusammen. madison88.com gehört einer Firma aus dem Bekleidungs-Sourcing, die Signatur einem Präzisionsteile-Hersteller. Das ist dem Absender egal. Er braucht nur einen seriösen Eindruck.

Warum kam die Mail überhaupt an?

Die Mail kam von 141[.]98[.]10[.]108, einem gemieteten Server beim litauischen Hoster Host Baltic (AS209605), ohne Reverse-DNS. Bei VirusTotal haben zehn Engines die IP schon als bösartig markiert. (IPs und Domains des Angreifers sind hier defangt, damit nichts versehentlich klickbar ist.)

madison88.com selbst ist nicht kompromittiert, sondern nur als Absender eingetragen. Die Domain ist vorbildlich konfiguriert: SPF endet auf -all und erlaubt nur Microsoft 365. DMARC steht auf p=reject. Die Mail hat keine DKIM-Signatur, und SPF liefert ein hartes fail:

Received-SPF: fail (mx2e84: domain of madison88.com does not designate 141.98.10.108 as permitted sender)

Ein normal konfiguriertes Postfach hätte diese Mail abgewiesen. Meins nimmt absichtlich alles an, sonst könnte ich sie nicht analysieren. Die Kampagne wettet darauf, dass irgendwo ein Empfänger DMARC nicht durchsetzt. Bei einem Massenversand geht diese Wette leider oft genug auf.

Was steckt im Anhang?

PO SPD-260629259.rar enthält genau eine Datei: PO SPD-260629259.js. Kein PDF, keine Tabelle, sondern JavaScript. Windows führt .js-Dateien per Doppelklick mit dem Windows Script Host aus, ohne Rückfrage. Seit Windows 11 öffnet der Explorer RAR-Archive auch ohne Zusatzsoftware.

Die Datei ist 2,2 MB groß und sieht aus, als hätte jemand Code durch einen Häcksler gejagt: _0x54d3, _0x5704, umsortierte String-Tabellen, Switch-Konstrukte mit '9|8|0|2|1|10|3|5|12|11|4|7|6'.split('|'). 96 Prozent der Datei sind aber ein einziger Base64-String. Ich habe die Kette statisch aufgedröselt, also Schicht für Schicht dekodiert und nichts ausgeführt:

  1. JavaScript: dekodiert den Blob, schreibt ihn als C:\Temp\ps_<zufall>.ps1 auf die Platte, startet powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden und beendet sich per taskkill /f /im wscript.exe selbst.
  2. PowerShell, Stufe 2: 24.000 Zeilen Hex, entschlüsselt per XOR mit einem 32-Byte-Schlüssel. Kommentare wie „Advanced Hex Decoder (NEW STYLE)“ inklusive. Das Ergebnis wird direkt im Speicher ausgeführt.
  3. PowerShell, Stufe 3: entschlüsselt mit dem Klartext-Schlüssel NIJAcoder76@@ eine .NET-DLL namens RACERRR.dll und lädt sie direkt in den Speicher. Auf der Platte landet keine Datei.
  4. Injektor: Die DLL startet aspnet_compiler.exe, ein signiertes Programm aus dem .NET Framework, höhlt den Prozess aus und füllt ihn mit der eigentlichen Schadsoftware. Das heißt Process Hollowing: Im Task-Manager steht ein Microsoft-Programm, drin läuft etwas anderes.

Die Endstufe liegt übrigens als Liste von Dezimalzahlen im Skript, 77,90,144,0,.... 77 und 90 sind M und Z, der Anfang jeder Windows-EXE. Eine Schleife prüft alle fünf Sekunden, ob der Prozess noch läuft, und injiziert neu, falls nicht. Kleiner Bonus für Leser mit PowerShell-Erfahrung: Das Skript weist die Payload-Variable erst nach dem ersten Aufruf zu. Der erste Injektionsversuch geht also mit $null ins Leere. Erst die zweite Runde fünf Sekunden später trifft. Vier Schichten Verschleierung, und dann scheitert es an der Reihenfolge von zwei Zeilen.

Was hätte Agent Tesla bei euch gemacht?

Die Endstufe erkennen bei VirusTotal 55 von 75 Engines eindeutig als Agent Tesla. Das ist ein .NET-Keylogger und Infostealer, den man seit über zehn Jahren als Dienstleistung mieten kann. Er liest gespeicherte Passwörter aus Browsern, Mailprogrammen und FTP-Clients aus. Er protokolliert Tastatureingaben und die Zwischenablage und macht Screenshots. Vorher prüft er, ob er in einer virtuellen Maschine läuft.

Die Beute sollte per FTP an ftp[.]altatsradgez[.]com gehen. Die Domain wurde im April bei Namecheap registriert und hat bis Juni etwa alle zehn Tage den Server gewechselt. Seit dem 24. Juli steht sie auf clientHold, der Registrar hat sie also abgeschaltet. Die Mail ging am 25. August raus.

Die Zeitleiste ist aufschlussreich. Der Agent-Tesla-Build ist seit Ende Juni bekannt. Injektor und JavaScript sind dagegen vom Versandtag: Die Datei im RAR ist auf 12:07 Uhr UTC datiert, die Mail ging um 15:00 Uhr UTC raus. Die Verpackung wird pro Welle erneuert, damit Virenscanner sie nicht wiedererkennen. Ob der Inhalt noch funktioniert, hat offenbar niemand geprüft. Arbeitsteilung im Cybercrime: Der eine baut die Verpackung, der andere liefert die Ware, und keiner fühlt sich zuständig.

Entwarnung ist das trotzdem nicht. Der Keylogger läuft nach dem Doppelklick vollständig, nur die Abgabe scheitert. Und dieselbe Kette lässt sich morgen mit einer neuen Adresse wieder verschicken. Wenn so etwas funktioniert, sieht es typischerweise so aus: Jemand liest das Geschäftspostfach mit und schickt euren Kunden irgendwann eine Rechnung mit geänderter IBAN, aus eurem echten Konto.

Woran hättet ihr es erkennen können?

  • Eine .js-Datei ist keine Bestellung. Bestellungen kommen als PDF oder Excel. Ein Skript im Archiv ist immer ein Programm, nie ein Dokument.
  • Unbekannter Absender, der seine Unbekanntheit selbst erklärt. „New email address“ steht in dieser Art Mail fast immer.
  • Absender und Signatur widersprechen sich. US-Bekleidungsfirma oben, Shenzhener Präzisionsfirma unten.
  • Keine konkrete Ware, keine Preise, nur eine große Zahl. „600K“ von was genau?
  • Die Anrede ist der Anfang eurer Mailadresse. „Dear info“ schreibt kein Mensch.

Was ihr konkret tun könnt

  1. Skriptdateien entschärfen. Per Gruppenrichtlinie .js, .jse, .vbs, .wsf und .hta mit dem Editor verknüpfen oder den Windows Script Host ganz abschalten. Dann öffnet ein Doppelklick einen Texteditor, und die Kette ist an Stufe 1 tot. Einmal eingerichtet, kostet das nichts.
  2. Archive mit Skripten am Mailserver blocken. RAR, ZIP oder 7z mit .js, .vbs, .lnk oder .exe im Inneren braucht kein Vertriebspostfach. Microsoft 365 und die meisten Hoster-Filter können das.
  3. DMARC-Durchsetzung prüfen. Fragt euren Mailprovider, ob p=reject bei eingehenden Mails respektiert wird. Wie die Absenderdomain aufgestellt ist, zeigt der Mail-Check hier auf der Seite.
  4. Keine Passwörter im Browser speichern. Agent Tesla liest genau diesen Speicher aus. Ein Passwortmanager plus Zwei-Faktor-Anmeldung für Mail, Bank und Hosting macht gestohlene Passwörter weitgehend nutzlos.
  5. Microsoft Defender die Arbeit machen lassen. Die ASR-Regeln „Block execution of potentially obfuscated scripts“ und „Block JavaScript or VBScript from launching downloaded executable content“ sind in Windows 10/11 Pro enthalten und fangen genau solche Ketten ab.

Fazit

Technisch ist das ordentliches Handwerk: vier Schichten Verschleierung, alles im Speicher, am Ende ein signierter Microsoft-Prozess als Tarnung. Organisatorisch ist es eine Pleite: ein Loader-Bug in der letzten Stufe und ein Briefkasten für die Beute, der seit einem Monat zugemauert ist. Verlassen sollte man sich darauf nicht. Die nächste Welle hat ziemlich sicher eine neue Adresse.


Die Signatur in der Mail stammt von einer unbeteiligten Firma und ist redigiert (<Präzisionsfirma>, <Name>, <Telefon>, <Adresse>). Die Firma hat mit der Kampagne nichts zu tun, ihre Daten wurden nur als Tarnung kopiert. Die als Absender eingetragene Domain madison88.com ist gespooft, nicht kompromittiert, und bleibt deshalb genannt. Die vollständigen IOCs inklusive aller Hashes liegen intern.