Die Akte Uroburos: neues, ausgeklügeltes RAT identifiziert

11.11.2014
G DATA Blog

Im Februar 2014 haben die Experten der G DATA SecurityLabs eine Analyse von Uroburos veröffentlicht, dem Rootkit mit russischen Wurzeln. Wir haben darin erläutert, dass es zwischen der Malware Uroburos und der Malware Agent-BTZ eine Verbindung gibt, die 2008 für den "bedeutendsten Datenvorfall in der Geschichte des US-Militärs" [1] verantwortlich war. Neun Monate nach dem Wirbel um Uroburus, auch bekannt als Snake und Turla, haben wir nun eine neue Generation von Agent-BTZ identifiziert. Wir nennen sie ComRAT und haben zwei Versionen davon analysiert (v3.25 und v3.26).

Wie schon zu Anfang des Jahres berichtet, benutzte Agent.BTZ denselben XOR-Schlüssel und Dateinamen für die Installations-Log-Dateien  wie Uroburos. ComRAT, in der Version 3.25, zeigt das gleiche Verhalten. Außerdem teilen die Angreifer ebenfalls eine C&C Domain. Die neueste uns bekannte Version von ComRAT (v3.26) benutzt einen neuen Schlüssel und erstellt auch keine Installations-Log-Dateien mehr, um die Analyse zu erschweren und um die Verbindung zwischen den beiden Fällen zu verschleiern.

Ein weiterer interessanter Fakt: die Angreifer nutzen mit COM-Objekt Hijacking den gleichen Persistenz-Mechanismus, wie COMpfun, den wir kürzlich erst beschrieben haben.

Alles zusammengenommen, lassen uns die Indizien unserer Analyse vermuten, dass die Gruppe hinter Agent.BTZ und auch Uroburos weiterhin aktiv ist und im Bereich der RATs Verbesserungen und Anpassungen vornimmt.

Dropper

Die analysierte Datei ist die aktuellste, die wir kennen: v3.26. Die Identifizierung der Version wird im Kapitel „Log-Dateien“ beschrieben. Die größten Unterschiede zwischen dieser Version und der/den alten Version(en) werden dort aufgezeigt.

Installation

Die erste Aufgabe der Malware ist es, die Datei credprov.tlb in %APPDATA%\Microsoft\ zu installieren. Diese Datei ist die eigentliche Payload der Malware. Der Dropper führt den folgenden Befehl aus, um eine zweite Datei zu installieren:

rundll32.exe %APPDATA%\Microsoft\credprov.tlb,Install %APPDATA%\Microsoft\shdocvw.tlp

Die zweite Datei ist also shdocw.tlp. Beide Dateien sind dynamische Programmbibliotheken.

Persistenz

Um während des Boot-Vorgangs der infizierten Maschine gestartet zu werden, erstellt das Schadprogramm folgenden Registry-Schlüssel:

HKCU\Software\Classes\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InprocServer32 = %APPDATA%\shdocvw.tlp

Der Schlüsse wird benutzt, um die Bibliothek shdocvw.tlp mit dem Object 42aedc87-2188-41fd-b9a3-0c966feabec1 zu assoziieren, so, wie es im COMpfun-Artikel beschrieben wurde. Dadurch wird die Bibliothek in jeden einzelnen ausgeführten Prozess auf dem infizierten Rechner geladen.

Log-Dateien des Droppers

In Malware-Versionen, die älter sind als 3.26 erstellt der Dropper eine zusätzliche Datei namens winview.ocx. Wir erkennen, dass dieser Dateiname immer noch der ist, den Agent.BTZ in der Vergangenheit benutzt hat. Die Datei wird über byteweise XOR-Operationen mit dem folgenden Schlüssel verschleiert (zuvor sowohl von Agent.BTZ als auch von Uroburos verwendet):

1dM3uu4j7Fw4sjnbcwlDqet4F7JyuUi4m5Imnxl1pzxI6as80cbLnmz54cs5Ldn4ri3do5L6gs923HL34x2f5cvd0fk6c1a0s

Hier der entschlüsselte Inhalt der Log-Datei:
user1@gdata$ ./decode.py winview.ocx
Log begin: 06.11.2014 22:55:55
TVer=2.2
06.11.2014 22:55:55 TVer=2.3
06.11.2014 22:55:55 CFG: CFG_4
06.11.2014 22:55:55 User: user1
06.11.2014 22:55:55 Machine: x86
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\shdocvw.tlb [2]
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\oleaut32.dll [2]
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\oleaut32.tlb [2]
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\credprov.tlb [2]
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\libadcodec.dll [2]
06.11.2014 22:55:55 Removing C:\Documents and Settings\user1\Application Data\\Microsoft\\libadcodec.tlb [2]
06.11.2014 22:55:55 Writing C:\Documents and Settings\user1\Application Data\\Microsoft\\shdocvw.tlb 51200B Ok
06.11.2014 22:55:56 Writing C:\Documents and Settings\user1\Application Data\\Microsoft\\credprov.tlb 260096B Ok
06.11.2014 22:55:57 Exit code1 0
06.11.2014 22:55:57 Writing 3072B Ok

An dieser Stelle können wie erkennen, dass das Schadprogramm überprüft, ob sich bereits eine ältere Version auf dem System befindet. Ist dies der Fall, entfernt der Dropper sie. Im Gegensatz dazu haben wir im Fall Uroburos gesehen, dass Uroburos sich nicht selbst installiert hat, wenn Agent.BTZ auf dem System gefunden wurde.

Ausführungsablauf und Features

Während des Starts der infizierten Maschine wird die Bibliothek shdocvw.tlp in alle Prozesse geladen. Wenn der Prozess explorer.exe ist, lädt diese Bibliothek eine weitere Bibliothek namens credprov.tlb, die eigentliche Payload. Ihre Features sind die eines gewöhnlichen RAT:

  • Codeausführung;
  • Dateidownload;
  • Dateiupload;
  • Informationssammlung.


ComRATs Kommunikation zum Command&Control Server wird über den Browser-Prozess realisiert, nicht über explorer.exe, um nicht von einer Firewall oder einer sonstigen Sicherheitslösung geblockt zu werden. Der Kommunikationsprozess wird über Named Pipes durchgeführt.

Log-Dateien

Während der Malware-Ausführung werden zwei Log-Dateien erzeugt: mskfp32.ocx und msvcrtd.tlb. Wenn die Schadprogrammversion älter als v3.26 ist, dann ist der XOR Schlüssel der gleiche, wie der Schlüssel, der beim Dropper identifiziert wurde. Bei Version 3.26 wird jedoch ein nicht-ASCII Schlüssel benutzt.

Hier ist ein Beispiel einer dekodierten Log-Datei der Version 3.26:
user1@gdata$ ./decode.py mskfp32.ocx
<?xml version="1.0" encoding="unicode"?>
<Ch>
<TVer>2.1</TVer>
<AppendLog>0</AppendLog>
<add key="Id" value="168466483094462" />
<add key="PVer" value="3.26" />
<add key="OSVer" value="512600 Service Pack 30" />
<add key="Machine" value="x86" />
<add key="CryptKeyType" value="3" />
<add key="CryptKeyId" value="0" />
<add ke="IsAdmin" value="1" />
<add key="Http idx1" value="4294967295" />
<add key="Http idx2" value="4294967295" />
<add key="Http timeout" value="60" />
<add key="Time" value="06:11:2014 15:54:34" />
<add key="Bias" value="-2" />
<add key="PcName" value="USER1-ABC1234" />
<add key="UserName" value="user1" />
<add key="WinDir" value="C:\\WINDOWS" />
<add key="TempDir" value="C:\\DOCUME~1\\user1\\LOCALE~1\\Temp\\" />
<add key="WorkDir" value="C:\\ Documents and Settings\user1\Application Data\\Microsoft\\" />'
</Ch>

Wir können die Version anhand des Flags PVer auslesen. Die Informationen zum Command&Control Server werden im Registry-Schlüssel gespeichert, nicht in einem XML, und kodiert:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\SessionMRU\IPlace

Zum Beispiel ist im analysierten Sample der C&C-Server: weather-online.hopto.org
Diese Domain ist alles andere als unbekannt, da sie schon im Analysebericht von BAE Systems als C&C-Domain für die Uroburos-Malware (auch bekannt als Snake) aufgelistet wurde.  Eine weitere Verbindung zwischen den Fällen.

Ist die Malware-Version älter als 3.26, enthält die XML-Datei die Informationen über den Command&Control-Server:
[…]
<add ke="IsAdmin" value="1" />
<add key="Http address" value="webonline.mefound.com" />
<add key="Http address" value="sportacademy.my03.com" />
<add key="Http address2" value="easport-news.publicvm.com" />
<add key="Http address2" value="new-book.linkpc.net" />
<add key="Http idx1" value="4294967295" />
[…]

Zusammenfassung

Lassen Sie uns die Gemeinsamkeiten und Unterschiede zwischen Agent.BTZ, Uroburos und ComRAT zusammenfassen, soweit das aktuell machbar ist:

Gemeinsamkeiten:
Vor Version 3.26:

  • Benutzung des gleichen XOR Schlüssels
  • Benutzung der gleichen Dateinamen für die Log-Datei

 

Alle Versionen:

  • Einige Code-Stücke sind exakt gleich (als wäre copy&paste genutzt worden)
  • Das ist ein Grund dafür, warum das Sample als Uroburos (auch bekannt als Turla) erkannt wird. Es ist der gleiche Code, der in Agent.BTZ und auch von der DLL benutzt wurde, die in der Uroburos-Analyse ins Userland geladen wurde.
  • Command&Control Server Domains werden zwischen Uroburos und ComRAT geteilt.

 

Unterschiede:

  • In Version 3.26 haben die Autoren den bisher bekannten Schlüssel und auch den Dateinamen entfernt. Dies kann als Hinweis darauf gedeutet werden, dass die Entwickler versuchten, die Verbindungen zwischen den Fällen zu verschleiern.
  • Der größte Unterschied ist das Design
  • Agent.BTZ ist ein normales RAT, eine einfache Bibliothek, die auf einer infizierten Maschine ausgeführt wird. ComRAT ist jedoch komplexer und cleverer. Die Malware wird in jeden einzelnen Prozess auf dem infizierten Computer geladen und der eigentliche Teil (die Payload) der Malware erst im explorer.exe ausgeführt. Außerdem vermengt sich der C&C-Datenverkehr zur Kommunikation in den normalen Browser-Datenverkehr und die Malware kommuniziert zum Browser durch Named Pipes. Es ist bei weitem ein komplexeres Userland Design als bei Agent.BTZ.

 

Diese Unterschiede, hauptsächlich das viel komplexere Design, haben uns dazu veranlasst, der Malware einen neuen Namen zu geben.

Der analysierte Dropper der Version 3.25 hat als Kompilierungsdatum den 6. Februar 2014. Der neuere Dropper der Version 3.26, der all die genannten Veränderungen implementiert hat, lässt ein als Kompilierungsdatum den 03. Januar 2013 erkennen. Wir misstrauen diesem Datum und vermuten, dass es gefälscht ist, um zu verschleiern, dass es in Wahrheit eine neuere Version ist.

 

 

 

Fazit

Die Analyse zeigt uns, dass auch nach der Veröffentlichung des Falls Uroburos im Februar 2014 die Gruppe hinter dieser Malware noch immer aktiv zu sein scheint. Es steht außer Frage, dass die Entwickler von ComRAT neue Mechanismen implementiert haben, Schlüssel ersetzten, Log-Dateien entfernten und versuchten, die Verbindung zwischen dem RAT ComRAT, dem Rootkit Uroburos und dem RAT Agent.BTZ so gut wie möglich zu verschleiern. Trotzdem schaffen wir es, die Entwicklung der Malware zu verfolgen, indem wir die Versionen vergleichen.

Der Persistenz-Mechanismus, der im Oktober 2014 entdeckt wurde, macht es möglich auf sehr diskretem Wege in ein System einzudringen und wir schätzen, dass Angreifer diesen Persistenz-Mechanismus in der nahen Zukunft weiter benutzen.

Wir werden auf jeden Fall Augen und Ohren offen halten und unsere Analyse fortsetzen.

IOC

MD5

51e7e58a1e654b6e586fe36e10c67a73    (dropper v3.25)
e6ce1f962a47479a86ff2e67129f4ecc    (lib1, v3.25)
ec7e3cfaeaac0401316d66e964be684e    (lib2, v3.25)
0ae421450679ff6b27f65f49e79e88f6    (dropper v3.26)
255118ac14a9e66124f7110acd16f2cd    (lib1 v3.26)
b407b6e5b4046da226d6e189a67f62ca    (lib2, v3.26)
8ebf7f768d7214f99905c99b6f8242dc    (dropper, unknown version)
9d481769de63789d571805009cbf709a    (dropper, unknown version)
83a48760e92bf30961b4a943d3095b0a    (lib 64-Bit, unknown version)
ea23d67e41d1f0a7f7e7a8b59e7cb60f    (lib 64-Bit; unknown version)

Pfade
%APPDATA%\\Microsoft\\shdocvw.tlb
%APPDATA%\\Microsoft\\oleaut32.dll
%APPDATA%\\Microsoft\\oleaut32.tlb
%APPDATA%\\Microsoft\\credprov.tlb
%APPDATA%\\Microsoft\\libadcodec.dll
%APPDATA%\\Microsoft\\libadcodec.tlb

Registry
HKCU\Software\Classes\CLSID\{42aedc87-2188-41fd-b9a3-0c966feabec1}\InprocServer32
Command&Control Domains
weather-online.hopto.org
webonline.mefound.com
sportacademy.my03.com
easport-news.publicvm.com
new-book.linkpc.net

Wichtige IT-Security-News per E-Mail

  • Aktuelle IT-Gefahren
  • Schutz-Tipps für Privatkunden
  • 15 % Willkommensgutschein