 Jesse selbst ist ein Hardcore, Melvair-Analyst und Rebos-Engineer. Die Bühne ist eröffnet für Jesse Campus. Besuchen wir die Bernhöhle. Vielen Dank. Ja, ich bin ein Melvair-Analyst. Wir haben eine Gruppe namens Setnet beobachtet mit meinen beiden Kollegen, Joan Calvett und Thomas Dupi, die leider nicht dabei sein können. Dieser Talk basiert auf einem White Paper, welches auf unserer Homepage veröffentlicht wird. Wir bezeichnen diese Gruppe Setnet, aber je nach Analysten heißen sie APD28, wenn sie PS Office ist, Tronsim und Satin. Diese Angreifer machen gezielte Angriffe seit etwa 2004 und haben Interessen im Bereich der Geopolitik. Man hat sie bereits in den Nachrichten gesehen und sie sind sehr bekannt. Sie sind wahrscheinlich verantwortlich für den Angriff auf das Democratic National Community und im Bereich der Sportler von olympischen Spielen. Wir starten mit etwas Kontext für diese Gruppe. Danach beschreibe ich ein Beispielfall, wie sie arbeiten. Schauen wir uns das Toolset an. Danach zeige ich eine besondere Operation dieser Gruppe und danach kommen eben so Erfahrungen, die wir gemacht haben, auf eine Frage. Also beginnen wir mit etwas Kontext über Setnet. Nach was für welche Leute interessieren Sie sich? Wir wissen ziemlich genau, welche Ziele Sie bevorzugen, aufgrund der Fehler in Ihrer Fishing-Kampagne. Die haben vergessen, ihre Fishing-URLs zu entfernen. Sie haben Bit.ly benutzt. Das heißt, wir kennen 4.000 verkürzte URLs, die einen Zeitraum von 6 Monaten 2015 abdecken. Hier ist ein Beispiel. So sieht diese URL aus. Sie nennt die E-Mail-Adresse des Ziele und seinen realen Namen. Man sieht eben, kann man relativ freig finden aus, wenn wir das Opfer sind. Diese Liste sind die Botschaften und Ministerien von mehr als 40 Kontern, die Institution der NATO und der EU und schließlich und endlich in Osteuropa verschiedene Politiker, Aktivisten, Journalisten. Um die Leute anzugreifen, haben Sie eine ganze Reihe von Zero Days verwendet. Hier haben wir eine Timeline, einen Zeitstrahl, welche Exploits Sie in 2015 verwendet haben. Und ich spreche gar nicht über den Revamping-Swoils, die Sie verwendet haben. Wir schauen uns das später an. Die Geschichte Ende selbstverständlich nicht 2016. Hier ist ein Beispiel. Die Google Thread End-Colonel-Discope hat Verwundbarkeiten in Flash und dem Windows-Colonel gefunden, vor einem Monat. Und das gibt die Exploits geben sozusagen Zugriff und Privilegieneskalationen auf dem Zielrechner. Ich beschreibe den Exploits nicht hier, es gibt genug Informationen im Internet. Aber wie man sieht, ist diese Gruppe sehr flexibel, dass sie diese Angriffe ausgenutzt hat. Die Gruppe hat sehr viel selbstgemachte Software in den letzten zehn Jahren eingesetzt, von Droppern über Downloadern, verschiedene Backdoors. Sie haben relativ viele Werkzeuge selber entwickelt. Ein paar Besonderheiten. Zum Einen, selbst wenn wir versuchen, die Setnikop sehr nah dran sein wollen, fehlen uns natürlich Teile des Puzzles. Wir beobachten die Gruppe auf der Basis, ihre Toolkit, ihre Werkzeuge, auch wenn die in Untergruppen aufgeteilt sind. Wir können natürlich keine endgültige Attribution, also Zuordnungen tätlich anmachen, aber vielleicht hilft unsere Untersuchung dabei. Also beginnen wir mit Serge. Wir haben hier einen fiktionaren Target. Er ist ein Mitarbeiter einer Regierung, der zugangsovertraulichen Daten hat. Wir passen dieses Beispiel, oder wir haben das nach realen Fällen gebaut. Das ist also ein Standardfall, den Setnik in den Setniks ein Tools einsetzen würde. Irgendwo ist es Montag, 39 Uhr morgens, Serge kommt zur Arbeit und öffnet eine E-Mail. Diese E-Mail kommt angeblich von Stratfor. Das ist eine Firma, die Berichte über Geopolitik schreibt. Aber wenn man genau in die URL hinguckt, dann ist in der Domain ein Fehler. Aber die URL ist genau dasselbe wie auf der Legitimen Webseite. Mit einer kleinen Änderung wahrscheinlich, um das Ziel zu identifizieren. Serge klickt auf die URL und das ist, wenn Serge das Set getrifft, das ist ihr Exploit Kit für gezielte Angriffe. Die Eintrittspunkte ähneln Legitim URLs und Legitim Webseiten. Der Angriff wird über gezielte Spear Fishings gemacht. Aber auch gezielte iFrame Redirect schon auf gehackten Webseiten. Wir haben SetKit im September 2014 zum ersten Mal gefunden. Das klassische Exploit Kit kommt man auf die Lending-Page. Und das SetKit baut eine Art Bericht über die verwundbare Maschine an. Das sind 200 Zahlen JavaScript in diesem Fall. Und die letzten Interviews sind obfuskiert, das sind nicht lesbar. Das haben wir aus der Link-Page geholt. Es holt sich die Zeitzone. Es holt sich die Bedingung eines Java Objects, Navigate Objects, und guckt, welche Plugins im Browser installiert sind. Es gibt einen Sonderfall für Internet Explorer. Er überprüft, ob Java und Flash installiert sind und welche Version. Die Kommentare sind von den ursprünglichen Entwicklern. Hier ist der Bericht von dem fiktionalen Computer von Serge. Er hat relativ viel Information. So kann das SetKit relativ präzise auswählen, wer angegriffen wird. Z.B. auf der Zeitzone, in der sich das Opfer befindet und der Sprache, die eingestellt wird. Aber wir wissen nicht ganz genau, was wichtig für die Operator ist. Wir haben das unterschiedlich gecrawlt. Manchmal klappt es, manchmal klappt es nicht. Und wir wissen aber nicht, welche Entscheidungen der Operator unterzuführen. Nehmen wir an, Serge besteht diese Prüfung und wird angegriffen. Er kommt zu der SetKit-Exploit-Fabrik. Hier ist eine Liste der Exploits, die SetKit ausliefern kann, seit wir es beobachten. Viele waren Zero Day Exploits, als sie ausgebracht wurden. Insbesondere gibt es einen Exploit für MacKeepern, Bereinigungs-Utility für Macs und wird hauptsächlich in der Ukraine verkauft. Die anderen Exploits sind sozusagen nachgebaut und einen beschreib ich. Das ist CVE-2014-6332. Das ist ein Fehler in der Javascript Engine vom Internet Explorer. Und da man kann eben eigene Read-Write-Schreib-Lese-Operation durchführen, ist in Oktober 2015 beschrieben worden. Und auf der Basis von dem Proof-of-Konzept, wo das gezeigt hat, hat man gezeigt, wie man damit ein Nibinär-Datei mit Pauschel unterladen kann. Aber im Beginn dieses Jahres, 2016, dieser Exploit hat den Safewood nicht abgeschaltet, sondern hat direkt eine Robchane ausgeführt. Das sind ca. 400 Zahlen VB-Skript und das meiste davon ist angepasst worden von den Angreifern. Das ist die Funktion, die die Robchane baut. Hier ist ein Beispiel. Man kann sehen, dass hier mit einer DLL auf Windows 7 gearbeitet wird. Ein Teil dieses Codes, basiert auf einer Präsentation, die auf der Black Hat 2014 gehalten wurde. Und es macht der ZNet aus, komplexe Exploits zu verstehen, sie jetzt adaptieren und in ihre Arbeit zu integrieren. Gehen wir zu Sage's Fall zurück. Der Exploit zieht das Payload eben nach und dann begegnet search dem Set Uploader. Das wird von Setcode runter geladen. Das sind zwei Binnär-Dateien, und der eingebettete Payload. Das ist die erste Stufe, die auf dem Rechner des Offers installiert wird und kennt man seit März 2015 bis heute. Schauen wir uns den Arbeitsablauf des Set Uploader-Troppers an. Er hat eine einfache Kette von Aktion. Das erste ist, dass es ein Anti-Analyse-Trick mit dem es beginnt. Das ist ein Extract von den Daten. Die letzte Spite wird auf den Wert 42 gesetzt, erzeugt eine Datei mit einem bestimmten Namen, schreibt eine Million mal in das Datei rein und schreibt nochmal eine Million mal in das Datei rein. Und dann guckt er, ob der Buffer immer noch den Wert 42 ist. Dieser Code ist ziemlich strange, aber das wurde in den neuesten Samples Beispielen geändert. Und das scheint einfach nur die Ausführung der Software zu verzögern. Der nächste Schritt ist das Payload zu entschlüsseln. Das ist eine Klasse, die einfach Uploader heißt. Die haben die Entwicklers so genannt. Danach kann der Dropper eine lokale Privilegische Escalation ausnutzen, je nachdem, je nachdem. Das erste war ein Zero Day, als es veröffentlicht wurde. Und der andere wurde zusammen vom Hacking-Tüber nochmals den Daten veröffentlicht worden. Danach wird die Persistenz eingerichtet. Damit gibt es sehr viele unterschiedliche Techniken. Und manche nur, wenn der Dropper System rechte hat. Es gibt hier ein paar Aussen, Windows, COM, Object, Hijacking, Javascript, Code, der über die Randell L32-Exe ausgeführt wird. Das haben wir auch in anderer Shards auf der gesehen. Es gibt es auch manchmal in Kriminella Shards auf der... Zu diesem Zeitpunkt läuft der Payload auf dem Computer von Search. Das ist eine Mail-Wert zur Ausforschung, die so in Grundbedingungen stattfällt. Sie macht eine Netzwerkverbindung mit dem C2 Server, mit dem Command & Control Server. Der Typ ist in den letzten Monaten sich viermal geändert. Aber zuerst macht er eine Verbindungsprüfung, ob Google-Programma reichbar ist, falls er weitergeht. Ansonsten versucht er, den Proxy zu verwenden, falls es einen gibt. Und das dieste aus dem lokalen Profile aus. Und als wenn das funktioniert, benutzt er die lokalen Credentials, um den C2 zu erreichen über Proxy. Wenn das nicht funktioniert, ansonsten versucht es, einen Browser zu starten, um sich dort rein zu injecten. Als erstes wird sozusagen ein Report an den C2 Server geschickt, damit man den Rechner identifizieren kann, der infiziert wurde. Und die Prozessliste wird geschickt. Was ist sozusagen welche Festplatte ist in dem System? Und das wird verschlüsselt geschickt über das Netzwerk zum C2 Server. Das ist ein ziemlich kleiner Report, aber damit möchte man irgendwie Security-Researcher und Sandboxes ausfiltern. Der letzte Schritt ist ein Konfigurationstarteil vom C2 Server zu holen. Ich gehe die nicht durch, die sind ziemlich deutlich, da steht sehr viel drin. Und der Entzweck ist aber ein weiteres Binary darunter zu laden. Eine DLL oder eine ausüberende Tange. Gehen wir zurück zu unserem Ablauf. Es ist immer noch Tag 1. Der Computer von Search ist mit Z-Uploader infiziert, am selben Tag um 10 Uhr. Die Operator wissen ja, dass Search ein legitimes Ziel ist. Und RECO wird durch Z-Uploader heruntergeladen. Das ist eine klassische Backdoor. Die kann externe Plugins laden und kann sich damit ihre Funktion erweitern. Wenn der erste Treffer erfolgreich ist, dann wird das heruntergeladen. Und es scheint es seit 2012 bis jetzt zu geben. Wenn dieser Drop auf dem System ankommt, installiert die Payload und die Konfiguration in zwei Orten auf der Festplatte, in einer MSD-Datei und in der Windows Registry. Und beide enthalten die gleiche Information, die MSD-Datei und in der Registry. Wenn man nur den Payload hat, dann kennt man die Konfiguration nicht. Man braucht also diese Konfiguratei und kann verstehen, was das Ding macht. Die Konfiguration, das ist die Verschlüsselteile. Das hat einen kleinen Header. Und die Header hat einen 6-byte Key, mit dem sie verschlüsselt ist. Und er wird zufällig von dem Drop ergeneriert. Danach kommen 20-byte. Das ist jedes beschreibt ein Feld in der Data, in dem Datenstrom. Dann haben wir das entschlüsselt. So sieht das etwa aus. Das sind verschiedene Zeitwerte. Die sind nicht so spannend. Da ist der Name des Rechners, des Opfers. Eine Flag. Soll die Level laufen, soll sie nicht laufen. Hier sind drei C2-Server, mit denen geredet werden sollen. Der erste ist der Primäre. Die anderen sind Fallbacks. Das, glauben wir, ist die Beschreibung einer Funktion. Wir haben viele von denen gefunden. Manche haben wir hier auf dem Bildschirm. Und Zedrico kann auch weitere Plugins laden. Und das wird auch in der Konfiguration niedergelegt. Hier ist Raum für 10 Plugins. Und in der Initialen Konfiguration sind alle diese 10 leer. Schauen wir uns dieses Payload an. Es hat 26 Comments. Jede hat eine eindeutige Nummer. Die werden während der Runtime registriert. Und die Funktion heißt auch Register new command. Da sehen wir die verschiedenen Funktionen, die einzelnen Kommandos. Dateien schreiben, Dateien lesen. Alle Prozesse anzeigen lassen, die laufen. Es kann die Registry ändern. Und kann sich selbst updaten, die Konfiguration anpassen. Oder eben neue Plugins runterladen. Also, wenn wir uns Plugins anschauen, die kommen als DLL. Und werden in denselben Adressraum gelasen. Und sie können jede Funktion des Hauptpayloads verwenden. So sieht es aus, wenn die Payloads ein Plugin nachladen. Manche Funktionen haben ein Argument. Zum Beispiel die Adresse für das Output Formatting. Und für die Registrierung. Also, man kann jedes zusätzliche, Plugin verwenden, nachdem den Tatern ebenso ist. Das öffnet ein HTTP-Kanal zum C2. Wenn Centrico sich beendet, dann wird jedes Plugin entladen. Aber nur die, die vorher registriert wurden. Es ist immer noch Tag 1. Centrico ist 30 Minuten nach der Erstinfektion installiert worden. Am selben Tag. Vier Stunden später. Trifft-Set stellen X-Action, der wiederum durch die zweite Stufe runtergeladen. Das ist eine modulare Backdoor in C++. Und da gibt es mindestens eine Linux, Android und iOS-Version davon. Das ist ihre zentrale Backdoor, die sie überall verwenden. Oder fast immer. Meistens nachdem sie den ersten Überblick über das C-System, das Sie nicht bekommen haben. Und das wird eingesetzt seit 2012 bis etwa auch heute. Das wird also weiterhin eingesetzt. Jetzt erwartet ihr wahrscheinlich C++-Reverse-Engineering. Aber die Operator haben mal einen Fehler gemacht. Deswegen haben wir den Quellcode von X-Agent. Da ist ein Auszug des Quellcodes, der Quellcode-Datei. Das ist ein komplett funktionierendes Team. Das wurde hier 2015 kompiliert. Das ist also ein Linux X-Agent. Das Bannerie wurde an dem Tag erzeugt. Der Quellcode hat ca. 18.000 Zeilen in 59 Klassen. Das ist also relativ groß. Wir glauben, dieser Code ist von der Windows-Version abgeleitet. Weil man an mehreren Stellen haben, die Developer-Windows-App-Codes einfach auskommentiert. Und haben stattdessen dann Linux-App auf Rufe hier eingetan. Es gibt mehrere Versionen von X-Agent. Der Source-Code ist aus der sogenannten Major Version 2. Aber es sieht immer noch der jetzt laufenden Version oder eingesetzt Version 3 aus. Es gibt sehr viele Kommentare. Die Kommentare sind interessanterweise schlechtes Englisch, manchmal russisch, manchmal ASCII-Art. Schauen wir uns an, wie das Ding kommuniziert. Hier haben wir eine einfache Übersicht über die Kommunikation. Das Wichtige ist, eine Körnerin, eine Körnerin, eine Körnerin, eine Körnerin, und das Wichtige ist eine Kernel Run Schleife. Der Kernel ist selbst ein Modul. Die Messages sind unverschlüsselte C++-Objekte. Die werden an den Betreuer des Kanals geschickt. Das ist das Interface, um den C2 Server anzusprechen und die Nachrichten an den C2 Server weiterzuschicken. In die andere Richtung fragt dieser Operator regelmäßig den C2 Server, ob verschwüsselte Nachrichten für Edge-Modul vorliegen und das wird dann an den Kernel weitergeleitet. Der entschlüsselt das Ganze und gibt es dann an die Module weiter. Das ist also die andere Richtung. Der Channel Controller kennt sozusagen den aktuellen Netzwerkkanal nicht. Das kann alles möglich sein. Das kann HTTP sein, kann sogar E-Mails sein und der Channel Controller ändert den Kanal, wenn der aktuelle nicht funktioniert. Lassen Sie jetzt mal den E-Mail-Channel näher anschauen. Die Art und Weise ist relativ einfach. Wenn der Kanal Controller Nachrichten für den C2 Server hat, dann sendet er in die E-Mail mit dem Inhalt als Attachment zu einem Inbox. Zum Beispiel kann das eine Free-Mail-Adresse sein oder eine gehackten E-Mail-Adresse. Und der C2 Server holt dann diese E-Mail aus dieser Inbox und anschaut sich das Attachment an. Wenn der C2 Server eine Nachricht für dieses Module hat, sendet er seine entsprechende Nachricht an einem E-Mail zu einer anderen Mailbox, von der er klein die Nachricht abruft. Aber wenn man ein E-Mail benutzt, um einen CNT-Kanal zu benutzen, brauchen wir zuerst E-Mails zu wissen, dass man rausfindet, welche E-Mails wirklich wertvoll sind und welche einfach nur Spam ist. Außerdem müssen Spam-Filter auf dem Weg zur Inbox umgangen werden. Und für diese Runde hat sie da ein Schema erstellt. Das ist ein LF2-Protokoll. Sie bezeichnet es als LF2-Protokoll. Sie schreibt, wie so eigentlich die E-Mails erstellt werden. Das Protokoll definiert. Das Subjekt des Schlüssel muss ein Base64-Key eines Wertes von diesem sein. Es muss ein Zufallszahl sein, dann zum Ende die Agent-Idee mit dem selben Schlüssel GX-Ort. Dieser Wert muss sowohl von dem Klein- als auch vom Server benutzt werden. Damit kriegen Sie Ihre eigenen E-Mails von anderen E-Mails unterschieden. Zuerst wird überprüft, ob dieses funktioniert. Sub-Stoken ist ein String, das komischerweise den weit Wert, der zu welchen String China beinhaltet. Schaut sich auch den Inhalt an und den Anhang. Der Anhang ist die wirkliche Nachricht. Das sind nur die Base64-Inkudierungen von zufälligen Werten. Das ist das Protokoll. Aber in unserem Linux-Force-Code haben die Entwickler die Werten reingeschrieben. Wir nennen das das Georgian Protokoll. Weil diese Werten der Georgischen Sprache sind. Der Nachricht ist Pedro Nomeri. Das ist eine Nationale Identifikationsnummer, also Passnummer. Und der Inhalt ist Gama Chopa, also Hallo. Und der Attachment steht Deta Rui. Also Detail und dazu der Timestamp. Das wurde wahrscheinlich gemacht, um in Georgien wenig Aufmerksamkeit zu haben oder in einem gehackten Georgian Inbox. Zum nächsten Schriftsteg von X-Agent. Ich möchte nur ein bisschen darüber reden, welche CNC-Infrastruktur benutzt wird. Aber wir haben wieder zugegangen zu ein bisschen Quake-Code. Dieser Pfeil wurde das in einem öffentlichen Directory auf einem Server gelassen. Und Google hat es analysiert und wir haben zufällig gefunden. So, der Source Code ist ein Proxy-Server für den Backend-CNC-Server. Und Sie können sich diese Teilen anschauen. Es ist ein Pfeil hingeschrieben worden und wurde zwischen April und June 2015 benutzt. Wir haben ein paar Lock-Dateilen mit Timestamps dabei. Es sind ungefähr 12.000 Zeilen Code, weil es nur ein bisschen mehr als ein normales Relay ist. Was es macht, ist, empfängt diese E-Mail und wernet sie in ein HTTP-Protokoll für den Backend-Server um. Diese HTTP-Requests haben ein spezielles Protokoll. Und wir vermuten, dass Sie diesen endlichen Set-up benutzen für den HTTP-Kanal, wenn Sie nicht den E-Mail-Kanal benutzen. Auch wenn dieser Proxy nur für den Mail-Kanal ist. So, genug mit X-Agent jetzt. Gehen wir auch mal zurück mit dem Event-Kette. Und jetzt wurde die X-Agent aufgebaut. Und jetzt sind zwei Hintertüren offen zu der selben Zeit. Das heißt, selbst wenn eine erkannt wird, ist die andere noch da. Und jetzt ist das Ziel, dort die Informationen zu entfernen und sich lokal auszubereiten. In den nächsten drei Tagen werden Sie die Passwort-Extractor-Tools auf den Computer ausführen, normalerweise frei verfügbarer. Und diese Werkzeuge können viele Passwerte herausfinden, z.B. Browser oder E-Mail-Client. Aber die sind oft bekannt und werden von Antivirus erkannt. Also hat seine eigene Password-Erkennung Tool geschrieben. Und in diesem Fall ein spezielles, das nur für Ihnen kompiliert wurde, weil es dieses Passwort in einem Pfad sucht, das nur auf seinem Computer ist. Das Windows Password wird gelesen und Windows Password wird aus dem Registry gelesen. Mimikets in diesem Beispiel. Und der Output wird häufig in eine Datei gespeichert, nennt sich Py.log. Sergeri könnte auch den Screenshooter treffen. Es macht immer 15 Screenshots, es bewegt sich und das 14-mal hintereinander. Und zu guter Let's Search hat X-Tunnel. Das ist ein spezieller Proxy-Tunnel, den es ermöglicht, den als Reverse-Proxy zu benutzen. Es wurde zuerst im Mai 2013 gefunden und wird immer noch benutzt. Wie funktioniert das jetzt genau? Hier ist der Grundbeispiel. Der Sennet in CESA weiß dem Internet. Der Computer ist in seinem eigenen Organisationsnetzwerk und wurde übernommen. Computer A und Computer B sind auch in dem Netzwerk, aber die sind weder aus dem Internet erreichbar, noch von Sennet kontrolliert werden. Aber sie können von seinem Server erreicht werden. So, das erste, was er macht, ist einen verschlüsselten Handshake mit dem CESA-Server erstellt, mit dem ein RC4-Schüssel zwischen den beiden ausgetauscht wird. Beide haben eine Kopie eines großen Tabellen mit Zufallstaten. Ein Ausschnitt davon wird benutzt, in diesem Beispiel die Datei, die mit O beginnt, und diese Reihe möchten mit dem Server geteilt werden. Es sendet nicht den Schlüssel, sondern den Abstand und ein Beweis, dass er wirklich weiß, welchen Schlüssel das ist. Das ist auch eine andere Zeile von dieser Tabelle T, die eine genauen Zeile Abstand hat, die mit der Datei verschlüsselt ist. Wenn dieser Wert richtig ist, dann sagt er, okay, und benutzt halt diese Bytes als Schlüssel. Zu diesem Zeitpunkt werden alle Dateien zwischen dem CESA-Server und dem externen Server mit diesem Schlüssel verschlüsselt. Das heißt, dass der Ort des Schlüssels nicht verschlüsselt wird. Seit 2014 wird dieser verschlüsselte Link in TLS inkludiert. Das ist keine schlechte Idee, aber das Zertifikat vom CESA-Server wird nicht verifiziert und nun zum nächsten Schritt. Sobald dieser verschlüsselte Link erschellt wurde, werden andere Verbindungen aufgebaut. Es wird dann eine Verbindung mit diesem Zielkomputer im selben Netzwerk geöffnet und drinnen werden dort Daten weitergeleitet. Der Link zwischen dem externen Server und dem Server A nicht verschlüsselt ist, sodass einige TCP-Daten übernommen werden. Wir wissen nicht genau, welche Verkehr damit übersendet wird. Wir wissen nicht, welche Daten versendet werden, aber es wird mit verschiedenen Versionen genutzt. Man kann das auf dem Zielrechner ausführen, ohne dass dort die komplette Vektor läuft. Es benutzt eine ID, damit man extern unterschiedlich unterscheiden kann, steuern kann und ein weiterer Tunnel kann aufgemacht werden mit dem Rechner B in dem Beispiel und er kümmert sich um das Routing. Das heißt, der ZNET-Control Server kann über den Rechner von Search zwei weitere Rechner ansteuern, um zu Pivoten. Gehen wir zu unserem Zeitstall zurück. Wir haben jetzt zwei, drei Tage, in denen Zeitversicherung gemacht wurde und Daten geklaut wurde. Die letzte Operation des Operators war eine weitere Persistenzmethoden einzurichten, damit man da langfristig drauf sein kann. Zum Elf wird diese Long-Term-Persistenz diese Langzeit-Versteckmethode gemacht. In den Office-Follow kommt eine Datein namens MSI.dll. Das macht eine andere Binärdatei, die auf dem System gelandet ist. Die sieht man hier und die schreibt in den Office Ordner rein und benutzt einen Privileg-Escalation Exploits, einen lokalen, und schreibt dann eben diese Binärdateilotin. Das ist eine Legitime-MSI-Dll-Datei im System 32 Ordner. Die gehört dorthin. Die wird verwendet von Office, wie zum Beispiel Word-Excel Powerpoint. Und die MSI-Dll exportiert dieselbe Funktionen wie die Legitime-MSI-Dll. Die sieht man hier. Ihr könnt euch vorstellen, was da passiert. Jedes Mal, wenn der Rechner von Search-Office startet, wird die MSI-Dll des Exchange-Agent geladen. Und sozusagen, da es in dem lokalen Ordner ist, wird danach dann die reale MSI-Dll geladen. Es füllt die eigene Export-Tabelle mit der Adressen der echten MSI-Dll. Und so kann die, kann Exchange-Agent gestartet werden. Das sind sich Search-Ordner und High-Jacking, also Suchreinfolge, Kidnapping. Das beruht nur auf der Tatsache, dass sie den Office-Ordner reinschreiben können. Wir haben das auch gesehen mit einer Datei, die linkinfo.dll heißt, und die wird in den Windows-Ordner gelegt. Also, die gleiche Technik, anderen haben wir in der Datei. Das ist sozusagen unser Standard-Fälle. Was passiert zu einem Ziel innerhalb der ersten Tage nach dem Angriff? Also, jetzt wissen wir, dass das System von Settnet funktioniert. Und dann schauen wir uns einen besonderen Fall von letzten Jahren an, Down-Delf etwa im September 2015 haben wir einen normalen Settnet-Tropper gefunden, mit einem Tarn-Dokument, einem Tarn-Text. Das ist das Dokument, das ich hier zeige. Und das ist eine völlig legitime Einladung zu einer internationalen Konferenz. Und man kann dieses Dokument im Internet finden, also das echte. Der Payload ist in Delphi geschrieben, und wir haben ihn deswegen dann einfach Down-Delf genannt. Der Arbeitsablauf ist einfach. Er holt sich eine Konfliktdatei, eine INI-Datei, auf der Grundlage der Konfiguration holt er sich sein Payload und das wird dann auch ausgeführt. Und als Persistenzmethode wird einfach der Run-Key der Registry verwendet. Es ist mit der Ausnahme. Wir haben ein weiteres Beispiel gefunden, das ist der Rout-Kit-Installer. Das Down-Delf ist im selben Dropper drin. Und es benutzt einen Rout-Kit-Installer. Und das würde Systeme infizieren, die ein MBR verwenden. Und das haben wir auf XP 32-bit, 64-bit getestet. Dieses Boot-Kit, so sieht die Platte aus, nachdem sich das Boot-Kit installiert wird. Der erste Sektor ist der neue bisartige MBR. Der zweite Sektor ist der originale MBR, der mit einem 1-bit Xor verschlüsselt wurde. Und danach haben wir im dritten Sektor ebenfalls gescored den Code des Boot-Gits. Und es wird ein Treiber und zwei DLLs auf dem System versteckt. Der normale Boot-Prozess für diesen Aploast zeigt, das erste wird der böse MBR ausgeführt. Ein ziemlich klassischer Rapp macht einen Hook auf den Interrupt-13-Händler. Der kümmert sich um die Schreib-Lese-Operation. Und damit kann er Lese-Schreib-Operation abfangen und manipulieren. Und damit kann sich das Boot-Kit in den Hauptspeicher patchen. Also, beziehungsweise, er patcht den Boot-Manager-Patcher sich rein. Boot-MMGR ist jetzt gepatched. Und dann nimmt das Boot-Kit wieder eine andere Funktion. Die heißt OS-Trails-Under-To-Carnal in der Windload-Exe. Und die wird ebenfalls gepatched. Wie der Name sagt, diese Funktion steuert den Kernel-Eintrittspunkt. Auch der ist jetzt gepatched. Und das Boot-Kit kann die Funktion jetzt ändern, bevor der Windows-Kernel startet. Alle der Kerneln und der Treiber sind ins virtuelle Memory gemappt. Das Boot-Kit schaut nach der Funktion ML-Mapp-Plus-Base. Und trägt Code ein in der ACPI-Punzüs in ihrer Source-Sektion. Das Boot-Kit muss die Sachen natürlich wo wegschreiben, da es an seine Bereiche nicht mehr rankommt, noch dem der Kernel hochgekommen ist. Hier haben wir seine Base-Adress, die ursprünglichen Sprungpunkte, der Treiber ist jetzt gepatched. Wenn der Treiber nun geladen wird, dann wird diese Hook ausgeführt. Der Code aus der Resource-Sektion wird ausgeführt in der DIU-Springs-Adresse, damit die Kernel-Patch-Projection das nicht findet. Und damit schiebt er sein physische Adresse in den virtuellen Adressraum. Es gibt jetzt drei Komponenten, die aktiv sind. Der Boot-Kit-Treiber entschlüsselt die erste DLL, die User-Land-Komponente und mapt sie in Explorer-Exe und injectt sie dorthin. Dann wird Down-Delf selber runtergeladen, das in der Archistry versteckt war, also dort ausgelesen. Dieser Workflow ist ein bisschen strange. Warum benutzt der Treiber das nicht direkt? Man muss die User-Land-Komponente angeschaut. Und das war vielleicht gar nicht der Payload, der zuerst verwendet werden sollte. Da gibt es eine fehlende Export-Variable. Er setzt diese Variable auf warm, aber diese Variable haben wir nirgendwo mehr gefunden. Das heißt, es gab mal, dass das Boot-Kit, ein bisschen als der Treiber, dass das eine Ähnlichkeit hat, sondern wir haben Spleck-Energie. Wir haben viele Ähnlichkeiten zwischen den beiden Filmen gefunden. Diese Funktionen sind in Black Energy und Down-Delf sehr ähnlich. Man verwendet dafür drei Exports, Entry, Epidata und Dummy. Und die gibt es eben in beiden, und werden in der identischen Form verwendet. Und diese Entwickler haben wahrscheinlich Zugriff auf den Source Code von Black Energy. Aber wir kennen kein Boot-Kit, das zu dieser Black Energy-Familie gehört. Gehen wir zurück zu Down-Dolf. Wir schauen uns Beispiele von 2014 an. Wir haben da eine weitere Installation gefunden. Und diesmal kam ein Kernel-Modul-Root-Kit mit. Das ist benutzt Persistenz. Schreibt sich in die Explorer-Exe. Es soll alles, was Down-Dolf verwendet soll, versteckt werden, damit man das auf der Festplatte nicht sieht. Die Entwickler haben dummerweise ganz viele Debugging-Funktionen hinterlassen. Und da sieht deswegen erkennt man, was passiert, wenn der Treiber geladen wird. Dann sieht man, welche Orten in der Registrie sollen versteckt werden, welcher Treiber wird geladen. Wir kennen zwei Implementationen. In der ersten Version sind die Opfer-Systeme Windows XP. Und der benutzt SSDD Hooking. Und für Windows 10 ist es ein Minifilter-Treiber. Das ist eine sehr aktuelle Version auf Windows. Und das ordentiert sich an einem Programmier-Beispiel von Microsoft. Wir haben 64 Bit Samples verwendet. Wir haben aber den eigentlichen Tropper nicht. Das heißt, wir wissen nicht, wie er an der Signaturprüfung der Treiber vorbeikommt. Und wir konnten da auslesen, dass es auch Varianten gibt, die auch vorsichtig für Kaspersky vorbereitet sind, dass man da in diesem Antivierenskanal vorbeikommt. Wir haben nur sieben unterschiedliche Samples von Down Delf in den letzten drei Jahren. Sie sind sehr vorsichtig, nur in sehr spitzschwellen Fällen eingesetzt. Eine der C2s wurde für zwei Jahre verwendet. Das ist ein sehr langer Zeitraum. Sie haben ein Bootkit verwendet. Das funktioniert von XP bis Windows 7. Sie haben unterschiedliche Rootkits erstellt für die identische Version des Betriebssystems. Sie haben sich sehr angestrengt, diese Persistenzmessoden einzurichten. Und Down Delf selber benutzt, lädt Z-Record und X-Agent ebenfalls hinunter. Das heißt, Down Delf gehört jeden auf jeden Fall zu dieser Gruppe. Jetzt kommen die Spekulation. Nachdem wir jetzt so viele Banneries uns angeschaut haben, können wir ein paar Grundlegende in denen machen. Ich rede jetzt nicht über die Software. Ich rede jetzt nicht über die Verantwortung, wer sie hat, sondern über die Software. Das ist eine Frage, die wir unter anderem oft diskutieren. Wir wollen die Präsentation zeigen, dass die Software sehr unterschiedlich ist. Wir haben den Down Delf, wir haben ein Windows Bootkit, ein C++-Backdoor und viele Infrastrukturen mit JavaScript und Exploits. Die Diversität ist gut für Sie, weil das Nachfolgen und die Erkennung schwerer macht. Aber wie kommen Sie auf diese Idee, so viele Systeme zu benutzen? Haben Sie die selber entwickelt oder haben Sie die eingekauft? Wir haben ein paar Ideen oder Nachweise in diesen Ideen. Zu allererst Cinnate Banneries werden speziell für ein Target erstellt werden. Und das, nachdem das Effekt angegriffen wurde oder infektiert wurde. Dieses Beispiel, das Passwörter und Benutzer genutzt wird. Das sollte Ihnen genau diesem Netzwerk funktionieren. Und genauso werden die Software regelmäßig geändert. X-Agent hat sich sehr viel geändert und X-Tunnel und auch. Die Entwickler sind ein Teil des Teams und sind nicht outside-Leute, die für einen Job herangezogen wurden. Zudem sind einige gemeinsame Techniken, zum Beispiel den RC4-Schlüsse, als Verbindung eines festbestimmten Wertes in einer zufälligigen Zahl oder hartgekordete Tokens in den Netzwerk nachrichten. Das sind einige Beispiele, die in verschiedenen Versionen dieser Software entwickelt werden, die in unterschiedlichen Sprachen entwickelt wurden. Das ist einfach nicht rumkopiert akut, sondern eine Reimplimentation derselben Idee. Und das bedeutet, dass eventuell die selben Entwickler hinter verschiedenen Softwares sind. Ein weiterer Beispiel des Entwicklungsprozesses ist, dass sie ein paar Programmiere mit Fehler eingebaut haben. Zum Beispiel hier, in dieser Linux X-Agent, wird GetPacket zerstört wird mit aufgehört und mit pthread exit, aber es sollte SandPacket sein. Und der Windows Code hat auch den richtigen Namen. Hier ist auch noch ein Beispiel, wo eine Report-Nachricht ist, wurde für den CNC-Server gebaut. Die IP-Adresse und die Portnummer, das Zielangrest, werden in ein 6-byte Buffer geschrieben, aber der Memory Pointer ist nicht inkrementiert zwischen den beiden Schreibvorgängen, sodass der Port die IP-Adresse überschreibt. Und wir können vermuten, dass der CNC-Server dieses Report gar nicht überprüft, sodass der ist unbekannt geblieben ist. Das sind einige der Beispiele von Fehler im Cinead Code. Die CD-Entwickler haben keinen guten Review-Prozess und in vielen Fällen ist es einfach hackig. Diese Idee weiter entarbeiten, dass vieler Chimeware benutzt, als Inspiration benutzt wird und vieler Code mit zum Beispiel Carbure benutzt und in dem Fall mit einfachen frühen Beispielen von Black Energy. Wir können jetzt vermuten, dass die Entwickler miteinander verbunden sind mit einigen der klassischen Crimeware-Gruppen. Und zu guter Letzt hat der Export-Developer-Kit Frodo Loll als Namen benutzt. Und wenn sie solche Namen benutzen können, können wir vermuten, dass sie nicht in eine sehr formalen Umgebung arbeiten, nur so grundlegend. Um diese Spekulation zusammenzufassen, vermuten wir, dass Sydney ein paar In-House-Entwickler hat, die sehr wenig Übersicht haben und die haben Verbindungen mit Crimeware-Untergrundorganisationen. Wenn sie eine andere Meinung haben, können wir da gerne darüber reden. Spekulation ist fertig. Jetzt können wir zusammen machen. Sydney-Activität hat viel gemacht in den letzten Jahren. Sie haben unterschiedliche Ziele angegriffen. Das Toolkit wird die ganze Zeit geändert. Und wir werden noch viel mehr Spaß damit haben. Vielen Dank dafür für Ihre Aufmerksamkeit und während des Applauses wollen wir auch noch bei Ihnen zum Zuhören bedanken bitte um Feedback zu et3lingo oder mit dem Hashtags C3T. Es gibt einige Mikrofone in den Gängen. Bitte gehen Sie zu einem von denen, um Ihre Fragen zu stellen. Okay, lasst uns mit dem Internet beginnen. Dann haben wir Fragen aus dem Internet. Eine Frage. Eine Frage aus russischer Staatsmelwe. Diese Frage werde ich nicht beantworten. Aber wir können uns darüber unterhalten. Wir machen die Endattribution nicht, weil das sehr schwierig ist. Noch eine Frage aus dem Internet. Keine ernsthaften Fragen vom Internet. Wenn Sie gehen, bitte leise gehen. Ein paar Leute wollen hier noch zuhören. Ein paar Leute wollen noch ein bisschen mehr darüber wissen. Ich habe noch eine Frage. Die Mailware, die Sie gefunden haben, sind viele NSA-Mailware, die dort eventuell gefunden werden. Hat sie irgendwelche Entwicklungen, die Sie aus diesen Mailware gefunden haben? Ich würde sagen, ja. Ich habe darüber nicht gesprochen in dieser Präsentation. Aber ExTunnel war beispielsweise nicht obfusskiert. Es wurde später obfusskiert. Es wurde besser gemacht. Die scheinen sich da, Inspiration zu holen. Hinten ist eine Frage. Vielleicht eine offensichtliche oder spekulative Frage. Glauben Sie, dass diese Gruppe irgendwelche Anschlüsse mit der russischen Regierung haben? Ich habe bereits gesagt, ich kann diese Fragen nicht beantworten. Wir wissen, dass sie russisch springen können, aber das bedeutet natürlich nicht viel. Haben Sie auf Ihre Untersuchung der... Ich muss jetzt die Frage nochmal erneuern. Wo hat er einen Zusammenhang von Ihrem Research auf deren Seite? Haben Sie darauf reagiert? Ich habe vorgesagt, als wir das gemacht haben, als wir es begonnen haben, ExTunnel anzuschauen. Wir haben da ein paar obfusskierungstechniken gesehen. Die Forschung hat sehr lange gedauert. Wir haben das vor ein paar Monaten erst veröffentlicht. Ich würde etwas warten, um zu sehen, ob Sie direkt Änderungen machen, die wir auf unsere Forschung zurückfahren können. Aber Sie werden ziemlich sicher unsere White Paper lesen. Haben Sie irgendwelche Zielegruppen herausgefunden? Haben Sie irgendwelche... Sind die irgendwie alle ähnlich? Die zweite Frage ist, haben Sie irgendwie auf diese Zielreaktion reagiert? Haben Sie andere Leute angriffen, als Sie auf die ersten Informationen gefunden haben? Ja, die zweite Stufe wird nicht installiert, wenn Ihre erste Ausforschungsphase keine gescheitende Ergebnisse bringt. Wir sprechen nicht mit dem Ziel, weil manche Opfer sind Botschaften. Das ist sehr unspezifisch. Warum sollten Sie uns immer antworten? Manchmal versuchen, Leute uns zu erreichen. Und wir befürchten, dass das manchmal auch Tannenmeldungen sind. Normalerweise hören wir nichts von den Opfern, wenn wir Ihnen Berichte geben. Das ist noch eine Frage da hinten. Ja, hallo. Eine weitere Frage. Werden Sie, die Ihre Arbeit tun, haben Sie Angst, wie wir Ihre eigene Sicherheit? Ich habe mir das bereits seit einem Jahr angeguckt. Und ich fühle mich sicher, es ist ja nichts passiert bis jetzt. Beziehungsweise, wir werden sehen. Weitere Fragen. Internet? Werterfeier ist im Internet. Fragen von einem... Welchen Crowd-Strike-Report meint ihr? Den über das DNC, das demokratische Nationalkongrasek? Das weiß ich gar nicht. Sie haben... Crowd-Strike hat mehrere Berichte vorgestellt. Haben Sie irgendwelche... Sicherheitslücken in dem Code gefunden? Ich glaube, meine Kollegen haben manche gefunden. Ein paar. Das ist auch der Bericht, dass Google Thread Team über was über Flasche richtet. Ich habe es Samples gefunden, die direkt danach, die sind nicht öffentlich verfügbar. Aber andere Firmen haben darüber was veröffentlicht. Manchmal kann man da Zero Days finden, die die Gruppe einsetzt. Haben Sie irgendwelche Sicherheitslücken in der Kommunikation mit dem DNC-Server gefunden? Wir suchen nicht nach solchen Sachen. Da gibt es klar, da gibt es Fehler. Aber die scheinen nicht, die Kommunikation zum C2-Server zu beeinflussen. Weitere Fragen. Internet. Sind da irgendwelche Folgen von diesen witzigen Namen, die Sie benutzen? Ja, das ist eine interessante Frage. Interessante Frage, ich glaube aber nicht. Willst du das Mikrofon benutzen? Danke. Vermuten Sie, dass die US-Organisationen, die Attributionen gearbeitet haben, mehr Informationen haben als wir? Ziemlich sicher. Wie wir am Anfang gesagt haben, uns fehlen sicher Teile des Puzzles. Deswegen gibt es auch gute Berichte von anderen Firmen. Definitiv hat jemand mehr Informationen als wir oder andere. Noch eine Frage. Das ist vielleicht eine dumme Frage. Wir haben gesagt, dass die Ziele, normalerweise sind sie nicht kontaktieren, aber wir wissen, wer die Ziele waren. Wir haben ein System, das Telemetrie macht. Wir haben Treffer, wir haben Venehr-Dateien, wir haben Beispiel-Dateien. Wir schauen die uns an. Wir finden Ähnlichkeiten. Ich habe zum Beispiel diese Bitly-Liste gefunden. Dort sind ja die Informationen drin, wer dieses Bier-Schiff hinkriegt. Aber klar, wenn es einen Opfer gibt, kann man mit mir sprechen. Vielleicht kann ich da noch weitere Informationen für einen Opfer bereitstellen. Ja, Fragen. Internet? Internet. Und da hat viele, von der großen Fläche, die man sich bestätigt. Das wird nicht in der Masse, in der Fläche verbreitet. Noch eine Frage. Noch eine Frage. Die Democratic National Convention sind ja irgendwelche Unterschiede zwischen den Reports von CrowdStrike und was sie meinen. Ich glaube, wir reden von zwei verschiedenen Sachen. Wenn wir diese Explosionen, die veröffentlicht wurden, das kommt nicht unbedingt in unser Paper rein, weil es ja schon im Internet ist. Alle unsere White Papers sind eine technische Übersicht über diese Tools. Und ich glaube nicht, dass sie über diese Werkzeuge gesprochen haben, über die wir gesprochen haben. Weitere Fragen. Wir haben immer noch Zeit. Internet. Internet fragt, ob die Ziele inzwischen besser geschützt sind. Wenn sie besser geschützt sind, wir finden diese Dateien, wenn sie unsere Endpoint Security verwenden, vielleicht ja, aber in unseren Berichten sind ja auch Indikatoren für Administratoren, um sich in die Infrastruktur zu schützen. Ihr könnt euch das White Paper runterladen. Da sind ziemlich viele Indikatoren drin, die ihr benutzen könnt, um in eure Infrastruktur zu suchen. Und wir machen selber keine Incident-Responder für unsere Stütze, also nicht bei Sicherheitsvorfällen. Nein, auch im Internet ist es ruhig. Da ist noch eine weitere Frage. Hallo. Anscheinend findet der Vorteil es ist ein überwinteres Maschinen. Sie haben eine zweite Stufe für iOS, OS X, Linux und Android. Und den QR-Code, den wir uns angeschaut haben, ist für die Linux Version. Und wir haben auch weitere SAPIS gefunden für OS X, wenn ich mich rechter erinnere. Sie haben ein relativ großes Asenal. Das ist mein 1. Versuch zu CCC. Wird jeder eine gute Tipp für eine gute Bar? Jetzt, wo es anscheinend keine weiteren Fragen gibt, hat irgendetwas eine gute Idee für eine Bar, die es hier gibt. Auf... In der sozialen Leben können wir ein bisschen später diskutieren. Vielen Dank für Ihre Aufmerksamkeit. Und auf wir bedanken wir uns aus selber Setzer-Kabine. Das war der Vortrag.