Category Archives: Sicherheit

Neuausrichtung der Beiträge

Nach der Pause ist vor der Pause. Nicht ganz, denn einige Veränderungen, die mir seit längerer Zeit unter den Nägeln brennen, werde ich nach der Blog-Pause umsetzen. Die erste Änderung dürfte schon aus meinem ersten Satz herauszulesen sein: Hier blogge ich, Falk.

Bisher habe ich mein möglichstes gegeben, meine persönliche Meinung zu Technologien aus dem Blog herauszuhalten. Das wird sich Schritt für Schritt ändern. Für euch bedeutet das eine direktere Ansprache sowie an passender Stelle kleine Einschübe mit meiner Meinung zu einer Software oder Dienstleistung. Ich glaube, dass Meinungen nur dann für den Leser einen Mehrwert bieten, wenn sie klar vom Inhalt abgegrenzt sind.

Als zweite Änderung werde ich mehr Artikelserien und Tests veröffentlichen. Man muss nicht immer das Rad neu erfinden, um ein gutes Ergebnis zu erhalten. Die dritte und vorerst letzte Änderung wird die Kenntnisunabhängige Ansprache sein. Einige Artikel meines Blogs sind für Anfänger geschrieben. Da ich meinem Blog leider weniger Zeit widmen kann, werde ich meine Artikel hauptsächlich an technisch versierte Leser richten. Ich hoffe inständig, dass es niemanden betrifft, aber falls doch: Kommentar mit Fragen hinterlassen.

Bildschirmfoto - 17.11.2014 - 22:05:42

Der Neustart wird mit einem ausführlichen Test des VPN-Anbieters hide.me beginnen, die mir zu diesem Zweck einen Zugang zur Verfügung gestellt haben.

Der Testplan liegt dem Anbieter zur Zeit zur Ansicht vor..

Überarbeitung der Anleitungen zur Voll-Verschlüsselung

tauchfahrt_submarine

In den letzten drei Wochen war es etwas still im Blog. Das liegt zum einen daran, dass meine Diplomarbeit mich in Beschlag nimmt, aber auch daran, dass ich die gesammelten Tauchfahrt mit Linux Anleitungen zur Voll-Verschlüsselung für euch überarbeite und neu strukturiere.

Wer Kommentare, Feedback oder Wünsche hat: Jetzt ist der Zeitpunkt dafür.

OS Command Injection am Beispiel Inter-Tech RPD-150

(Inter-Tech RPD-150 - Quelle: Inter-Tech Bilderpaket)

( RPD-150 )

Im Bereich eingebetteter Systeme ticken die Uhren langsamer, als im Desktop- und Server-Bereich. Hier lassen sich noch leicht klassische Schwachstellen wie Directory Traversal oder OS Command Injection finden. Letztere Variante findet sich auch im WLAN-Router RPD-150 der Firma PC-Professional, der durch Inter-Tech vertrieben wird. Das Gerät wird für circa 11 Euro angeboten und wird mit überragender Sicherheit beworben.

Bildschirmfoto - 17.04.2014 - 00:09:20

RPD-150: Mit überragender Sicherheit.

OS Command Injection Angriffe (nach OWASP) bezwecken es, Befehle die durch den Angreifer festgelegt werden, in eine anfällige Anwendung einzuschleusen. Dabei verhält sich die verwundbare Anwendung wie eine Pseudo-Shell, die es erlaubt, mit den Rechten und in der Umgebung in der sie ausgeführt wird, Befehle auf dem System auszuführen.

Erste Stelle, die oft für Command Injection Angriffe besonders interessant ist, ist die Ausführung von Diagnosebefehlen in der administrativen Oberfläche eines Routers. Hier werden teilweise Eingaben ungefiltert an die entsprechenden Systembefehle wie ping oder traceroute weitergegeben. So auch beim RPD-150. Das folgende Bildschirmfoto zeigt, wie mit Hilfe der PING Funktion und Einbettung von Shellbefehlen ein Telnet-Server gestartet werden kann.

command_injection

Ein kurzer Test bestätigt den Start des Telnet-Servers, wie auf folgendem Bildschirmfoto zu sehen.

Bildschirmfoto - 20.04.2014 - 14:06:47

Ein laufender Telnet-Server ist aber nicht gleichbedeutung mit vollem Superuser-Zugriff auf den Router. Dafür muss ein Kennwort gebrochen werden. Da das Webinterface mit Root-Rechten ausgeführt wird (eine Eingabe von 127.0.0.1; echo $USER bestätigt das), ist die Gewinnung der Datei /etc/passwd kein Problem.

Sie enthält bei eingebetteten Systemen nicht nur die bekannten Informationen zu Benutzernamen und User-IDs, sondern darüber hinaus auch das gehashte Kennwort. Auf Desktop-Systemen wird es sonst in der Datei /etc/shadow/ gespeichert. Durch Ausnutzung der Schwachstelle mit dem Befehl 127.0.0.1; cat /etc/passwd kann der Inhalt der Datei gewonnen werden: root:C75rzlQ3E2Dkc:0:0:root:/:/bin/sh.

Das Kennwort des Superusers kann darauf folgend mit John the Ripper in kurzer Zeit gebrochen werden. Es lautet admin.

Mit dem Kennwort kann jetzt eine Verbindung als Superuser zum vorher gestarteten Telnet-Server hergestellt werden, wie das folgende Bildschirmfoto zeigt.

Bildschirmfoto - 17.04.2014 - 00:10:06

Die Schwachstelle ist natürlich nur geringfügig, da eine Anmeldung im Webinterface erforderlich ist.

Besonderer Dank an Inter-Tech, die sehr schnell reagierten und der Veröffentlichung des Artikels zugestimmt haben. Quelle des Produktfotos: Inter-Tech RPD-150 Bilderpaket.

Studienarbeit “Verteidigung externer Rechnerresourcen” (mit Linux)

In den letzten Wochen ist es leider etwas still im Blog geworden, besonders zum Thema IT-Sicherheit. Das liegt zum einen daran, dass ich meine Diplomarbeit schreibe. Aber auch daran, dass ich im Wintersemester 2013/14 am Lehrstuhl 4 an der TU-Dortmund eine Studienarbeit im Themenbereich IT-Sicherheit schreiben durfte.

Der Titel lautet “Verteidigung externer Rechnerresourcen – Risiken durch die Aufgabe der physikalischen Kontrolle und Gegenmaßnahmen am Beispiel gemieteter Linux Server“.


Studienarbeit Verteidigung externer Rechnerressourcen (PDF)

Darin beschreibe ich ausführlich die auftretenden Probleme, sobald dem Provider nicht mehr vertraut wird. Im Anschluss wird eine Taktik basierend auf Anti-Forensik und einfacher Militärtaktik entwickelt, die einen voll-verschlüsselten gemieteten Server noch etwas besser schützt, indem der forensische Prozess behindert wird. Mit Implementierung für Debian Linux.

Die Arbeit löst ausdrücklich nicht das Problem, dass bei gemieteten Servern keine Vertrauenswurzel existiert, bietet aber einige Verbesserungen an. Zu diesem Vertrauensproblem gibt es einiges im Chaosradio 199 ab 1:37:00 bis 1:39:30 zu hören, falls Interesse besteht.

Proxyserver über SSH-Tunnel mit MyEnTunnel verwenden

Wer Zugriff auf einen anonymisierenden Proxyserver (Elite-Proxy) hat, kann diesen mit einem SSH-Tunnel zum Ziel-Netzwerk sicherer benutzen, als durch direkte Verwendung des Proxys. Diese Zugangsart eignet sich zum Beispiel um auf die Proxyserver von Perfect-Privacy oder OVPN.to zuzugreifen. Aber auch an meiner Universität wird ein solcher Privatsphären Proxy betrieben. Um diesen sicher zu verwenden, bietet sich ein SSH-Tunnel an. Wie dieser unter Windows eingerichtet wird, erklärt der folgende Artikel.

Unter Windows eignet sich für die Herstellung des SSH-Tunnels besonders das Programm MyEnTunnel. MyEnTunnel ist eine einfache Systemtray-Anwendung, die mit Hilfe des mitgelieferten Programms PuTTY Link (plink.exe) einen SSH-Tunnel aufbaut und aufrecht erhält.

Bildschirmfoto - 08.03.2014 - 17:14:55

MyEnTunnel im Windows-Systemtray

Die Software kann über die Herstellerseite N2 (Download befindet sich auf der Mitte der Seite) bezogen werden. Es ist empfehlenswert, die Entwicklungsversion 3.6.1 herunterzuladen, da diese trotz dem Status sehr stabil läuft und bei komplexen Passwörtern keine Fehler hat.

Nach der Installation kann der Tunnel zum Fakultätsproxy eingerichtet werden. Der Tunnel wird in der aus ssh bekannten Notation (Lokaler-Port:Zielhostname/IP:Ziel-Port) eingegeben.

Bildschirmfoto - 08.03.2014 - 17:13:43

Eingabe der SSH-Tunnel Konfiguration

Im letzten Schritt, wird der Zielserver im Fakultätsnetzwerk eingegeben. Geeignet ist zwar jeder Server, der per SSH mit einem Fakultäts-Account erreichbar ist. Um den Maximaldurchsatz der eigenen Internetanbindung zu erreichen sollte aber einer der Compute-Server der IRB verwendet werden. Der Hostname ergibt sich, indem .cs.tu-dortmund.de an den Hostnamen angehängt wird.

Bildschirmfoto - 08.03.2014 - 17:12:43

Eingabe der SSH-Server Konfiguration

Die Konfiguration aus obiger Abbildung kann 1:1 übernommen werden. Sollen statt dem Surfen im Web regelmäßig große Daten übertragen werden, sollte die Kompression deaktiviert werden.

blog_homelab

Metasploitable 2 Kennwörter brechen

Im gestrigen Artikel wurde beschrieben, wie durch eine Hintertür in vsftpd 2.3.4, Rootrechte auf der virtuellen Maschine Metasploitable 2 erlangt werden können. Diese Rootrechte sollen verwendet werden, um die Kennwörter der virtuellen Maschine zu entnehmen und folgend zu brechen.

Mit den Befehlen cat /etc/passwd und cat /etc/shadow werden die Inhalte der entsprechenden Dateien ausgegeben. Warum gerade diese? Sie enthalten die Benutzerdaten der lokalen Systembenutzer; zumindest solange keine esoterischen Verfahren wie OpenLDAP zur Authentifikation eingesetzt werden. Der Hash des Kennworts und die Benutzerdaten werden seit Ende der 1980er Jahre in getrennten Dateien gesichert, damit normale Benutzer die Benutzerdaten lesen dürfen, nicht aber damit auch die Hashes der Kennwörter zu Gesicht bekommen.

Die aus der virtuellen Maschine entnommenen Dateien als passwd und shadow speichern. Dann werden sie mittels unshadow wie folgt zusammenfügen.

root@kalilinux:~/10.13.37.24# unshadow 
Usage: unshadow PASSWORD-FILE SHADOW-FILE
root@kalilinux:~/10.13.37.24# unshadow passwd shadow > metasploitable2_credentials.txt 

Das Ergebnis des Programms unshadow kann mit John the Ripper bearbeitet werden. Für Metasploitable sind weder Wörterbücher noch Parallelisierung notwendig, darum kann die von Kali Linux mitgelieferte Version verwendet werden. Die ersten sieben von acht Kennwörtern werden innerhalb von Sekunden gebrochen.

john metasploitable2_credentials.txt
Loaded 7 password hashes with 7 different salts (FreeBSD MD5 [128/128 SSE2 intrinsics 12x])
user             (user)
postgres         (postgres)
msfadmin         (msfadmin)
service          (service)
batman           (sys)
123456789        (klog)

Der Wert in Klammern entspricht dem Benutzernamen, der vorgestellte Wert dem Kennwort.

Benutzername Kennwort
user user
postgres postgres
msfadmin msfadmin
service service
sys batman
klog 123456789

Da john ohne Wörterbuch einen Bruteforce-Angriff gegen die Hashes durchführt (sogenannter Incremental Mode), kann es überraschen, dass bereits ein neunstelliges Kennwort gebrochen wurde.

Aufgrund der Reife der Software, arbeitet john die möglichen Kennwörter in sinnvollen Phasen ab. Begonnen wird mit dem Single Mode, dem der Benutzername und Informationen aus den weiteren Feldern der passwd zugrunde liegt. Dadurch werden bereits vier der Kennwörter gebrochen. Die weiteren beiden Kennwörter der Benutzer sys und klog werden mit Hilfe des mitgelieferten Wörterbuchs password.lst gefunden. Erst nach diesen beiden Phasen wird zu einem Bruteforce-Angriff übergegangen.

blog_homelab

Metasploitable 2 mittels vsftpd 2.3.4 Exploit angreifen

Wie in einigen vorherigen Artikeln beschrieben, ist mein Heimlabor für Penetrationstests in Form eines Virtualisierungsservers endlich fertig. Trotz Klausurstress lasse ich es mir nicht nehmen, abends zur Entspannung virtuelle Maschinen anzugreifen. Den Anfang macht Metasploitable 2, von dem ich bereits viel gelesen habe, es aber noch nie selbst angefasst habe.

Wie der Name bereits andeutet, soll zum Testen Metasploit zum Einsatz kommen. Nach Installation und Einrichtung (unter Kali Linux nicht notwendig), wird Metasploit durch Eingabe des Befehls msfconsole gestartet. Metasploit erlaubt das Verwalten verschiedener Ziele in sogenannten Workspaces. Workspaces erleichtern es, den Überblick zu behalten. Darum wird einer verwendet.

Bildschirmfoto - 30.01.2014 - 22:11:25

Um einen ersten Überblick über die von Metasploitable angebotenen Dienste zu bekommen, wird der Portscanner nmap eingesetzt. Da nur ein einzelner Host zu prüfen ist und die Erkennung des Scans keine Rolle spielt, kann ein kompletter Portscan mit Test aller 65.535 Ports und Versionserkennung gestartet werden. Der Scan wird mit dem Befehl db_nmap -A -p1-65535 metasploitable-ip-adresse gestartet und dauert circa 5 Minuten. Das Ergebnis sieht wie folgt aus und wird automatisch in der an Metasploit angeschlossenen Datenbank gespeichert.

Bildschirmfoto - 30.01.2014 - 22:19:25

Eine kurze Recherche ergibt, dass auf dem Server Ubuntu 8.04 LTS läuft. Da auf vielen Servern der SSH-Port offen ist, lässt sich aus der meist angepassten SSH-Version (hier OpenSSH 4.7p1 Debian 8ubuntu1) schnell ein Ausgangspunkt für die Schwachstellen-Recherche finden.

Die Version 2.3.4 des FTP-Servers vsftpd sticht sofort ins Auge. In 2011 wurden die Projektserver des vsftpd Projekts kompromittiert und eine angepasste Version dort bereitgestellt. Bei Anhängen eines einfachen Smilies wie :) an den Benutzernamen öffnet die kompromittierte vsftpd Version eine Bind-Shell auf Port 6200 mit Rootrechten. Eine angemessene:) Schwachstelle:) um:) das:) Heimlabor:) einzuweihen.

Praktischerweise liefert Metasploit ein Modul für genau diese Schwachstelle mit. Durch Eingabe des Befehls search vsftpd wird Metasploit angewiesen, nach Modulen zu suchen, deren Beschreibung vsftpd enthält.

Bildschirmfoto - 30.01.2014 - 22:40:19

Das Modul wird mit dem Befehl use exploit/unix/ftp/vsftpd_234_backdoor aktiviert. Mit dem Befehl set ohne Argumente werden die möglichen Parameter des Moduls angezeigt. Um das Exploit auszuführen genügt es, die Zieladresse durch Eingabe des Befehls set RHOST ip.des.ziel.hosts zu setzen.

Bildschirmfoto - 31.01.2014 - 10:22:24

Folgend kann das Exploit mit dem Befehl run ausgeführt werden und liefert eine einfache nicht-interaktive Shell auf dem Zielsystem, die wie folgt aussieht.

Bildschirmfoto - 31.01.2014 - 10:21:59

Im folgenden Artikel wird beschrieben, wie durch den temporären Zugang eine permanente Hintertür installiert oder die Kennwörter gebrochen werden können.

Selbstzerstörung für cryptsetup

641px-Mad_scientist_transparent_background.svg
Die Verrückten Wissenschaftler von Offensive-Security haben es getan. Ab sofort kann mit einem kleinen Patch für cryptsetup eine neue Funktion hinzugefügt werden: luksAddNuke.

Mit dieser Funktion kann ein KeySlot in LUKS mit einem speziellen Schlüssel belegt werden. Wird dieser Nuke-Schlüssel eingegeben, werden alle Schlüssel in den LUKS KeySlots gelöscht. Das führt dazu, dass das dm-crypt Volume nicht mehr geöffnet werden kann.

Der Patch basiert auf einem fünf Jahre alten Beitrag von Jürgen Pabel. Wer Spaß daran hat, findet alles weitere auf der Kali Linux Webseite für den Patch.

Aber

Der Patch erzielt zwar, dass das dm-crypt Volume nicht mehr geöffnet werden kann. Abstreitbar ist dessen Existenz dadurch nicht, denn der LUKS-Header bleibt intakt.