Konkrete Kritik an CVSS4
Marc Ruef
Ende August 2009 veröffentlichte die umstrittene Underground-Seite gulli.com ein Interview mit Ruben Unteregger. Im Mittelpunkt des Interesses steht der von ihm entwickelte Skype-Trojaner. Dieser soll Einblick in die Funktionsweise des Backdoorings durch Ermittlungsbehörden aufzeigen. Die Veröffentlichung der Quellen wurde am 25. August 2009 auf dem Blog des Entwicklers vorgenommen.
Es wurde schon im Vorfeld viel über die Funktionsweise und Möglichkeiten dieses Trojaners spekuliert. Da wir ebenfalls Backdoor-Tests anbieten, war dies natürlich eine gute Möglichkeit, um Einblicke in die Herangehensweise anderer Entwickler erhaschen zu können.
Als Version wird 0.4 ausgewiesen. Die Kommunikation findet über reguläres HTTP statt, indem auf die Funktionen von winhttp.h
zugegriffen wird. Der Server in der Dropzone wird in SkypeTrojan.cpp
durch die Konstante gUploadServer
spezifiziert. Das Vorhandensein eines Proxies wird in GeneralFunctions.cpp
durch die Funktion getProxySettings()
ermittelt und das Resultat in die HTTP-Kommunikation miteinbezogen.
Die Software legt die für die Uploads vorgesehenen Dateien mit der Dateiendung .bin ab. In SkypeTrojan.cpp
wird mit der Funktion doHTTPUploadsThread()
regelmässig die für die Datensammlung vorgesehenen Verzeichnisse auf potentielle Uploads hin untersucht und diese dann mit der Funktion uploadData_DirectMain()
auf den Server übertragen.
Die Datenkommunikation könnte wohl verschlüsselt werden, da in Crypto.cpp
eine simple Implementierung von RC4 dargeboten wird. Die entsprechende Funktion encrypt()
wird jedoch nirgends aufgerufen. Entsprechend ist anzunehmen, dass es sich hierbei um eine noch nicht fertige oder eine abgespeckte Fassung der Software handelt.
In DetectPersonalFirewall.cpp
wird ein Mechanismus angeboten, anhand dem bekannte Antiviren- und Personal Firewall-Lösungen anhand ihres Prozessnamens identifiziert werden. Dieser kommt jedoch erst beim Aufruf der Funktion deleteEverything()
zum Einsatz. Diese wird genutzt, um nach getaner Arbeit sämtliche Spuren der Infektion zu eliminieren. Temporäre Dateien und Registry-Einträge ({HKLM|HKCU}\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN
) sowie bestehende Prozesse (z.B. laufende Instanzen von cscript) werden eliminiert. Hierzu kommen verschiedene Aufrufe auf der Kommandozeile sowie VBS-Skripte zum Einsatz. Die Möglichkeiten werden zuerst mit isScriptingActive()
überprüft und notfalls mit activateWindowsScriptingHost()
das Windows Scripting Host Environment aktiviert (der Ursprungszustand wird jedoch nicht mehr zurückgesetzt). Der Erfolg der gesamten Säuberung wird dem Server anhand der Status-Meldung, die als HTTP GET-Variable übertragen wird, mitgeteilt.
Als Fazit muss gesagt werden, dass es sich hierbei in keinster Weise um eine neuartige Entwicklung handelt. Die genutzten Mechanismen sind altbekannt. Man muss jedoch eingestehen, dass viele davon “straightforward” und solid implementiert wurden (viele grundlegende Mechanismen via API-Calls). Nur an einigen wenigen Stellen tun sich Unschönheiten im Code auf (z.B. teilweise deutsche Benennung von Funktionen). Die grundlegenden technischen Probleme, die im Zusammenhang mit der Strafverfolgung von Skype so mancher Behörde Kopfzerbrechen bereitet, können aber auch hier nicht eliminiert werden. Auch wenn viele Medienberichte etwas anderes vermuten liessen.
Unsere Spezialisten kontaktieren Sie gern!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Unsere Spezialisten kontaktieren Sie gern!