sven: Apache sicher machen

Hallo, ich habe hier einen Webserver hinter einem Router (fli4l), auf welchen ich testweise meine PHP Seiten teste, und auch manchmal von aussen zugreifen will.
Nun habe ich merkwürdige einträge im Log, für mich sieht es so aus, als ob jemand in meinen Windows Systemverzeichnissen gewühlt hätte...
kann man es irgendwie so absichern das man von aussen NUR auf das htdocs verzeichnis zugreifen kann??
Danke, sven

  1. Moin Moin !

    Nun habe ich merkwürdige einträge im Log, für mich sieht es so aus, als ob jemand in meinen Windows Systemverzeichnissen gewühlt hätte...
    kann man es irgendwie so absichern das man von aussen NUR auf das htdocs verzeichnis zugreifen kann??

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

    Freundliche Grüße von Code Red, der Apache hat das schon abgewürgt. Der Apache (1.3.x für Windows) ist "out of the box" so eingestellt, daß Du von außen nur auf das htdocs- und das cgi-bin-Verzeichnis kommst.

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

    Alexander

    --
    <!--#include file="signature.html" -->
    1. 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.
      ,

      Hier:
      80.128.181.26 - - [01/Dec/2002:13:42:28 +0100] "GET /scripts/root.exe?/c+dir HTTP/1.0" 404 278
      80.128.181.26 - - [01/Dec/2002:13:42:29 +0100] "GET /MSADC/root.exe?/c+dir HTTP/1.0" 404 276
      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
      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
      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
      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
      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
      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

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

      1. 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" -->
      2. Hi sven,

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

        http://forum.de.selfhtml.org/archiv/2002/1/2428/#m13827

        Viele Grüße
              Michael

        --
        T'Pol: I meant no insult.
        V'Lar: Of course not. You're simply speaking your mind ... as you always have.