- Pentration Test
- Cyber Attacken
- Datenbanksicherheit
- Firewalls/UTM
- Schutz vor Hackerangriffen
- Biometrie Teil 1
- IT Security Trends 2010
- Pandemie
- Festplattenverschlüsselung Teil 2
- Festplattenverschlüsselung Teil 1
- Identity Management
- Green IT
- Phishing & Pharming
- VoIP-Tauglichkeit
- End - to - End Security
- IP Storage 3. Teil
- SIEM
- UTM
- IP Storage 2. Teil
- Web Application Security
- IP Storage 1. Teil
- Heute schon geNACt?
- Risikomanagement
- VPN auf Basis von SSL oder IPSec?
- Managed-Security-Services
- Hochverfügbarkeit bei VoIP
- Forensik

Integralis Deutschland: Sicher(er) durch den Einsatz komplexer Angriffstools
Für einen Angreifer sind in erster Linie die Exploits von Interesse, mit denen es möglich ist über das Netzwerk Zugriff auf ein Zielsystem zu erlangen.
Vor allem im professionellen Pentesting Umfeld nehmen Exploiting Frameworks mittlerweile eine nicht mehr wegzudenkende Rolle ein. Neben den auf einschlägigen Webseiten erhältlichen Exploits bieten diese Frameworks eine möglichst vollständige Arbeitsumgebung für Pentests an. Mit dieser Umgebung können neben dem eigentlichen Exploitingvorgang auch verschiedenste weitere Aufgaben erfüllt werden. Die Möglichkeiten reichen von der Integration unterschiedlichster Portscanner und Vulnerability Scanner bis hin zum teilweise oder vollständig automatisierten Exploitingvorgang ganzer Netzwerksegmente. Im Anschluss an einen solchen automatisierten Penetrationstest werden die Ergebnisse dieser Sicherheitsanalyse in Form eines Abschlussberichts, der die gefundenen Schwachstellen zusammenfassend darstellen, erstellt.
In der ersten Phase eines angekündigten Pentests untersucht der Prüfer seine Ziele auf offene Ports und versucht anschließend die dahinter liegenden Dienste zu identifizieren. Auf Basis dieser Informationen wird beispielsweise im Internet nach möglichen Angriffspunkten recherchiert. Werden Angriffspunkte gefunden wird nun nach vorhandenen Tools/Exploits und Vorgehensweisen gesucht, um diese Schwachstellen auszunutzen bzw. zu verifizieren, ob die potentielle Schwachstelle auch tatsächlich eine Bedrohung darstellt. Je nach definiertem Zeitraum bzw. Umfang des Pentests können unterschiedliche Dienste auch auf noch nicht bekannte Schwachstellen analysiert werden. In einem solchen Fall wird der Tester entweder den Sourcecode der Anwendung analysieren (Whitebox Ansatz) oder im Blackbox Ansatz mit Fuzzing Techniken arbeiten.
Würden die dargestellten Pentests rein manuell durchgeführt werden, käme es bei umfangreichen Netzwerkumgebungen zwangsweise zu sehr zeitintensiven Aufwänden. Derartige vollständig manuelle Tests können für Unternehmen zu einer enormen finanziellen Belastung werden. Glücklicherweise lassen sich einige Bereiche solcher Sicherheitsanalysen teilweise automatisieren. Verschiedene Port- und Schwachstellenscanner, wie beispielsweise Nmap, Nessus, OpenVAS und NeXpose geben dem Pentester in weiten Bereichen eine sehr gute erste Einschätzung des sicherheitstechnischen Zustandes der zu auditierenden Systeme.
In der zweiten Phase, der Suche nach Exploits, kommen nun erstmals Exploiting Frameworks zum Einsatz. Die meisten Exploiting Frameworks unterstützen den Tester bereits in einem sehr frühen Auditierungsstadium mit direkt integrierten Port und Vulnerability Scannern oder unterschiedlichen Modulen zur Informationsgewinnung. Als sehr geeignet ist hier das umfangreiche Pentesting Framework CoreImpact des Herstellers Core Security anzusehen. CoreImpact vereint Portscanner, Schwachstellenscanner, Exploiting Framework und Dokumentationstool in einer bedienungsfreundlichen Oberfläche. Neben den kommerziellen Systemen ist Metasploit wohl das derzeit umfangreichste Framework auf Open Source Basis, welches sich vor allem auf Grund seines freien Charakters hoher Beliebtheit im IT Security Bereich erfreut.
Metasploit Entwicklung
Das Metasploit Projekt wurde im Jahr 2003 von HD Moore gegründet und enthielt in seiner initialen Version insgesamt elf Exploits und ein paar wenige Payloads. In dieser Zeit war Metasploit neben den beiden kommerziellen Produkten CoreImpact und Immunity Canvas eines der wenigen Projekte, das Exploiting Technologien in einem vollständigen Framework zur Verfügung stellte.
Mit der aktuellen Version 3.4, die im Mai 2010 freigegeben wurde, wurde neben der freien Version eine neue kommerzielle Version mit grafischer Oberfläche und Support eingeführt. Das in Abbildung 1 dargestellte Interface von Metasploit Express soll den automatisierbaren Pentesting Bereich möglichst einfach, schnell und effektiv zum Einsatz bringen.

Abbildung 1: Metasploit Express Webinterface.
Grafikdownload
Metasploit läuft neben den üblichen Plattformen wie Windows, Linux, BSD und Mac OS X, beispielsweise auch auf einem gejailbreakten IPhone/IPod Touch oder auf einem WLAN Router mit OpenWRT als Betriebssystem. Die vielfältige Plattformunterstützung stellt bereits die hohe Flexibilität des freien Entwicklungscharakters des Frameworks dar.
Beispielhafte Anwendung des Frameworks

Abbildung 2: Metasploit msfconsole.
Auf der Konsole stellt die msfconsole das Hauptbedienungselement von Metasploit dar. In dieser Konsole ist es beispielsweise möglich mit der Suchfunktion nach Stichwörtern des Moduls zu suchen. Mit dem Kommando „search exploits smb“ werden so alle Windows SMB Exploits aus dem Datenbestand heraus gesucht. Wurde ein passender Exploit gefunden, ist es möglich mit „show options“ oder „info“ weitere Details zu dem ausgewählten Exploit abzurufen. Neben einer Beschreibung mit den verfügbaren Optionen und der maximalen Größe des Payloads findet man an dieser Stelle auch Referenzen zu weiteren Ressourcen im Internet.
Für einen Angreifer bzw. Pentester sind natürlich in erster Linie die Exploits von Interesse, mit denen es möglich ist über das Netzwerk Zugriff auf ein Zielsystem zu erlangen. Exploits dieser Art werden üblicherweise als Remote Exploits bezeichnet und ermöglichen häufig eine vollständige Kompromittierung des Zielsystems.
Bevor Exploits zur Anwendung kommen, wird im ersten Schritt eines typischen Pentests versucht das Zielsystem inklusive aller verfügbaren Dienste und Versionsinformationen zu erkennen. Hierfür kann beispielsweise Nmap mit seiner System- und Diensterkennung verwendet werden. Für solche Aufgaben sind die Nmap Optionen „–A“ oder „–sV“ und „–O“ sehr hilfreich. Seit Version 5.0 verfügt Nmap über die Nmap Scripting Engine (NSE) und beinhaltet ein Script für die Erkennung der in diesem Artikel behandelten Schwachstelle. Ein Scanvorgang, der Nmap veranlasst einen ganzen Netzwerkbereich auf bekannte Schwachstellen im SMB Protokoll zu testen, lässt sich beispielsweise mit folgendem CLI Aufruf erstellen:
nmap -p445 -PN -sS -oA windows.445 --script=smb-check-vulns.nse 192.168.1.0/24
Die System und Diensterkennung liefert im Idealfall die benötigten Details über das eingesetzte Betriebssystem und die offenen Ports mit weiteren Versionsinformationen. Durch das eingesetzte NSE Script wird an dieser Stelle bereits eine erste Einschätzung getroffen, ob das geprüfte System die Schwachstelle MS08-067 aufweist. Ende des Jahres 2008/Anfang 2009 rückte die dargestellte Schwachstelle durch den Conficker Wurm in regelmäßigen Abständen in die Medien. Vor allem durch das scheinbar nachlässige Patchverhalten vieler Systembetreuer konnte sich Conficker bis in das Jahr 2009 in hohem Maße verbreiten. An dieser Stelle muss auf die hohe Relevanz eines einwandfrei funktionierenden und zeitnahen Patchmanagement hingewiesen werden. Probleme, wie sie von dieser Schwachstelle ausgehen bzw. durch den Conficker Wurm ausgelöst wurden, entstehen im Normalfall nicht, wenn in einem Unternehmen sauber definierte Prozesse zur System- und Softwareaktualisierung vorhanden sind und diese auch korrekt umgesetzt werden.
Hat man durch den Einsatz von Nmap oder ähnlichen Tools Systeme erkannt, die auf die dargestellte Schwachstelle anfällig sind, wird im nächsten Schritt der Windows Exploit ms08_067_netapi in der msfconsole ausgewählt. Die benötigten Grundoptionen wie die IP Adresse des anzugreifenden Hosts müssen gesetzt werden und anschließend muss ein Payload ausgewählt werden. In dem dargestellten Beispiel wird eine typische Reverse-Shell als Payload verwendet. Nach der Wahl des Payloads erhalten wir mit einem erneutem „show options“ die neuen Optionen, die der gewählte Payload mitbringt. Sobald diese korrekt gesetzt sind können wir den Exploit mit dem Befehl „exploit“ zur Ausführung bringen. Metasploit wendet nun den gewählten Exploit an und führt bei erfolgreichem Exploitingvorgang den gewählten Payload aus.
In Abbildung 3 wird der vollständige Verlauf des beschriebenen Exploitingvorgangs unter Verwendung der Metasploit Konsole dargestellt.

Abbildung 3: MS08-067 in der Anwendung
Grafikdownload
Die dargestellte Reverse Shell hat vor allem bei Angriffen über Netzwerkgrenzen hinweg erhebliche Vorteile gegenüber einer Bind Shell. Wird eine Reverse Shell eingesetzt, verbindet sich das Zielsystem eigenständig zurück zum Angreifer. Durch diese Verbindung wird die Chance erhöht, Firewall- bzw. Filtersysteme zu umgehen. Würde das Zielsystem beispielsweise eine lokale Firewall einsetzen, wäre eine Bindshell nicht weiter zielführend, da der Remote-Zugriff auf diesen Shellzugang auch bei einem erfolgreichen Exploitingvorgang von der Firewall unterbunden wird. Reverse Shells sind im Speziellen bei Systemen erfolgreich anzuwenden die von Firewalls geschützt werden, welche nur eingehende Verbindungen überwachen und ausgehende Verbindungen automatisch als vertrauenswürdig einstufen. Die mit Windows XP mitgelieferte Firewall ist beispielsweise von einer solchen Designschwäche betroffen.
An dieser Stelle muss ausdrücklich festgehalten werden, dass der beschriebene Exploitingvorgang ausschließlich in einer gesicherten Testumgebung zur Anwendung gebracht werden darf. Werden Angriffe dieser Art auf Systemen durchgeführt, für die keine schriftliche Erlaubnis erteilt wurde, stellt dies unter Umständen eine strafrechtlich relevante Handlung dar.
Abhilfemaßnahmen
Die in diesem Artikel dargestellten Methoden und Vorgehensweisen zeigen einen minimalen Auszug typischer Penetration Tests. Um Unternehmensnetzwerke sicherheitstechnisch auf einem hohen Niveau zu halten, sollten solche manuellen Penetration Tests ebenso wie automatisiertes Vulnerability Scanning und Patchmanagement prozesstechnisch erfasst und in regelmäßigen Abständen durchgeführt werden. Um eine fehlerhafte Interpretationen der Ergebnisse bzw. der Risikostufe der automatisierten Vulnerability Scans zu vermeiden, sollten diese Ergebnisse zusätzlich zu einer ersten internen Bewertung in regelmäßigen Abständen von erfahrenen externen Penetrationstestern geprüft und bewertet werden. Spezielles Augenmerk muss dabei auf den akzeptierten Risiken liegen, deren tatsächliches Schadpotential häufig erst im Rahmen eines Pentests vollständig dargestellt werden kann.
Michael Messner
Der Autor ist IT Security Consultant bei der Integralis Deutschland GmbH. Er führt regelmäßig Sicherheitsüberprüfungen namhafter deutscher Unternehmen und Konzerne durch. Die dabei aufgedeckten Schwachstellen dienen den Unternehmen als Grundlage für die Verbesserung ihrer technischen sowie organisatorischen Sicherheit.
Kontakt mit dem Autor:
michael.messner at integralis.com
http://www.integralis.com
http://www.s3cur1ty.de
Autor: Michael Messner




Artikel versenden
Artikel drucken



