Tatort Internet: Eine Reise ins RAM

Seite 3: Finale

Inhaltsverzeichnis

Abschließend möchte ich mich mal genauer in dem Speicherbereich umsehen, auf den die Hooks zeigen. Dazu rufe ich die Volatility-Funktion volshell auf. Sie zeigt ausgewählte Speicherinhalte des Memory-Dumps wahlweise disassembliert oder als Hex/ASCII-Dump an. Den „Current Context“ stelle ich dazu via cc auf die Prozess-ID 1372 von Explorer.exe und lass mir dann mit dis den Code am Offset der Funktion TranslateMessage anzeigen.

Wie apihooks bereits festgestellt hat, befindet sich dort ein JMP-Befehl zur Adresse 0xEA85879. Das Disassembly an dieser Stelle zeigt den typischen Funktionsprolog

Push EBP, 
Mov EBP, ESP
SUB ESP, 128H

Eine genauere Analyse, was hier passiert, erspare ich mir erst mal und schau mich zunächst in der näheren Umgebung um. Dort landen ja die ganzen JMPs. Das Kommando db zeigt mir den Speicherinhalt an der Adresse 0xEA80000 in der Hex/ASCII-Ansicht. Und ich finde dort ziemlich schnell einen typischen PE-Datei-Header einschließlich des charakteristischen „This program cannot be run in DOS mode“. Das ist der letzte Beweis, dass hier tatsächlich ein komplettes Programm-Image in den Explorer-Prozess injiziert wurde.

Damit ist zwar schon ziemlich klar, dass sich Schadcode auf dem System eingenistet hat. Doch wenn ich schon einmal dabei bin, will ich noch ein bisschen mehr über den Eindringling herausfinden. Dazu benutze ich eine weitere Funktion des malware.py-Plug-ins namens malfind, die den gesamten Speicherbereich eines Prozesses nach eingebettetem Code durchsucht.

Dazu hangelt sich malfind an den Datenstrukturen zur Speicherverwaltung, den Virtual Adress Descriptors (VADs) eines Prozesses, entlang und analysiert deren Eigenschaften. Reguläre Bibliotheken im Adressraum des Prozesses haben den Typ _MMVAD oder _MMVAD_LONG; die VADs für Speicher, der via VirtualAllocEx/WriteProcessMemory eingeschleust wurde, sind hingegen vom Typ _MMVAD_SHORT. Und wenn der Speicherbereich dann auch noch etwa mit PAGE_EXECUTE_READWRITE als ausführbar markiert ist, hat man einen guten Kandidaten für weitere Analysen gefunden.

Hier kommt dann das Open-Source-Projekt YARA ins Spiel, das Schadsoftware anhand von charakteristischen Strings und Byte-Folgen identifiziert. malfind kann YARA direkt einbinden; speziell dafür pflege ich mit ein paar anderen Malware-Analysten den Regelsatz malware.yara, den ich jetzt via

malfind -D \dump-files -Y malware.yara

auf den gekaperten Explorer-Prozess loslasse. Und die YARA-Regeln haben mal wieder zugeschlagen:

Einige der im Verzeichnis \dump-files abgelegten Code-Fragemente identifizieren sie sofort als Online-Banking-Spion – konkret scheint es sich um eine Version des verbreiteten SpyEye-Trojaners zu handeln.

Diese Yara-Regel identifiziert SpyEye.

Damit ist die Katze aus dem Sack. Trotzdem möchte ich das Puzzle gerne noch komplettieren. Um die Wurzel des Übels zu lokalisieren, mach ich mich mit dem Kommandozeilen-Tool strings von Mark Russinovich im Ordner dump-files auf die Suche nach der Zeichenkette „cleansweep“. Neben dem bereits bekannten „cleansweep.exe“ findet sich dabei noch ein Verweis auf „config.bin“ – vermutlich lagen dort unter anderem die konkreten Details, welche Banken-Server über welche Formularfelder zu belauschen sind.

Eine String-Suche nach „http://“ liefert mir einige URLs, die auf PHP-Seiten verweisen. Bei denen könnte es sich um die C&C-Server handeln.

nslookup schließt den Kreis und bestätigt mir, dass die Server-Namen serv3.com und lightanalytics.com tatsächlich zu den IP-Adressen gehören, die mir Volatility zu Beginn meiner Untersuchung gezeigt hat. Wolfgang hat mir die ganze Zeit über die Schulter geschaut. Anfangs zweifelte er noch, ob das wirklich mit dem Online-Banking-Betrug zusammenhängt. Doch als ihm dann auch noch die Malware-Tracker-Seiten Abuse.ch und malwareurl.com bestätigen, dass sein PC die ganze Zeit Kontakt mit C&C-Servern in Diensten des bekannten Online-Banking-Trojaners SpyEye hielt, ist er endlich überzeugt.

Normalerweise plädiere ich dafür, infizierte Systeme komplett neu einzurichten; schon allein weil man nicht weiß, was der Trojaner noch alles im Schlepptau hatte. Aber durch die recht umfassende Analyse bin ich mir ziemlich sicher, dass ich es bemerkt hätte, wenn sich da noch was anderes eingenistet hätte. Also lass ich mich von Wolfgang breitschlagen, sein Windows ausnahmsweise zu desinfizieren. Ich boote den PC also von einer speziellen Windows-Boot-CD und lösche zuerst den RUN-Key aus der Registry. Dann entferne ich noch die beiden Dateien cleansweep.exe und config.bin.

Danach boote ich das von SpyEye befreite System und überprüfe mit dem Update-Check von heise Security, ob Windows und die gängigen Anwendungen auf dem aktuellen Stand sind. Das ist zwar bei Betriebssystem-Patches und Browser der Fall. Allerdings ist sowohl die Java-Runtime-Umgebung JRE als auch der Adobe Reader deutlich veraltet. Das dürfte dann auch das Einfallstor für SpyEye gewesen sein. Denn Sicherheitslücken in diesen Anwendungen werden schon routinemäßig genutzt, um Systeme zu infizieren. Also bringe ich diese beiden Programme auf den neuesten Stand.

Zum Schluss empfehle ich Wolfgang noch, zukünftig lieber auf die unsicheren iTAN-Listen zu verzichten. Fast alle Banken bieten mittlerweile eines der wesentlich sicheren Chipkartenverfahren an  (siehe Generation TAN, Der Online-Banking-Ratgeber in c't 14/11). Außerdem lege ich ihm ans Herz, seine Bank-Geschäfte über eine spezielle Boot-CD wie das c’t Bankix abzuwickeln. Damit verabschiede ich mich und schalte gleich mal vorsichtshalber mein Handy aus: Wochenende!

In dieser Serie untersuchen Experten Angriffe im Internet nach allen Regeln der Kunst und Sie können ihnen dabei über die Schulter schauen. Die geschilderten Vorfälle beruhen auf Angriffen, die tatsächlich stattgefunden haben und mit den beschriebenen Methoden analysiert wurden. Die Rahmenhandlung wurde immerhin von realen Begebenheiten inspiriert, nur die Namen der Beteiligten sind frei erfunden.

Der Experte dieser Episode, Frank Boldewin, arbeitet als IT-Security-Architekt bei der GAD eG in Münster. In seiner spärlichen Freizeit beschäftigt er sich mit Analysen neuer Rootkit- und Trojaner-Techniken und veröffentlicht Tools und Whitepapers zu diesen Themen auf seiner Seite reconstructer.org. (ju)