Heute Nachmittag rief mich ein Kollege an, dass er von seinem Provider eine eMail bekommen habe, dass sein Linux-System gehackt bzw. es einen entsprechenden Versucht gab. Auf seinem Server lief Debian 3.1 mit nicht ganz aktuellen Paketen, sowie SysCP 1.2.16. SysCP authentifiziert alle Benutzer über die SQL-DB syscp. Jedoch legt Debian bei der Installation selbst zwei Benutzer an, deren Standard Kennwörter immer gleich sind.

    Benutzer: www-data
    Kennwort: *

    Benutzer: ftp
    Kennwort: !

    Durch einen Fehler in der defaul SysCP Konfiguration war es daher möglich, sich über diesen Benutzer anzumelden und Dateien abzuelegen, welche unter /home/ftp oder /home/www-data gespeichert wurden.

    Bei aktiviertem Mod_userdir des Apache 2 Servers ist es anschließend möglich, auf das Verzeichnis public_html des Benutzers ftp/www-data über den Browser zuzugreifen.
    Dort wurde in seinem Fall ein PHP-Browser abgelegt, der es einem ermöglicht sich Systemweit durch die Ordner zu bewegen. Der Zugriff erfolgte über die Adresse „http://domain.tld/~ftp/“  wobei die openbasedir und safemode Restriktion nicht wirkte. Diese beiden Optionen verhindern normalerweise den Zugriff auf Verzeichnise außerhalb des Webverzeichnisses.

    https://forum.syscp.org/index.php?topic=3350.msg20352;topicseen

    Nachfolgen einmal der Hack Schritt für Schritt:

    Die Datei bebe wird per FTP hochgeladen. Als Benutzer wurde hier ftp benutzt

    ./var/log/xferlog: Sat Dec 15 08:29:52 2007 1 host37-14-dynamic.0-79-r.retail.telecomitalia.it 38317 /home/ftp/public_html/bebe.php b _ i r ftp ftp 1 * c

    Anschließend wurde die Datei am 22.12.2007 zwischen 20:39 Uhr – 20:58 Uhr mittels Mozilla aufgerufen

    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:22 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5484 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:24 +0100] "GET /~ftp/bebe.php?&s=r&cmd=con HTTP/1.1" 200 5746 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:26 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5908 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&cmd=con" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:29 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5864 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:54 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5992 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:39:59 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5630 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:40:00 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5784 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:40:09 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 24353 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:53:36 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 67331 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:58:37 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5484 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:58:39 +0100] "GET /~ftp/bebe.php?&s=r&cmd=con HTTP/1.1" 200 5746 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:58:40 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5908 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&cmd=con" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/access.log.1:79.0.14.37 - - [22/Dec/2007:20:58:43 +0100] "POST /~ftp/bebe.php?&s=r& HTTP/1.1" 200 32545 "http://xx.xx.xx.xx/~ftp/bebe.php?&s=r&" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    um 22:14 Uhr des selben Tages hat der Provider diese Lücke entdeckt und verifiziert
    ./var/log/apache/access.log.1:xx.xx.xx.xx - - [22/Dec/2007:22:14:39 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 200 5484 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "-"

    Um 22:22 Uhr wurde diese Datei dann vom Provider verschoben.

    -rw-------  1 root root 2275 Dec 22 22:23 /root/.mc/history

    Anschließend wurde getestet ob die  Lücke geschlossen ist.

    ./var/log/apache/access.log.1:xx.xx.xx.xx - - [22/Dec/2007:22:19:00 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 403 292 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "-"
    ./var/log/apache/error.log.1:[Sat Dec 22 22:19:00 2007] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /~ftp/bebe.php failed because search permissions are missing on a component of the path./var/log/apache/access.log.1:xx.xx.xx.xx - - [22/Dec/2007:22:19:03 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 403 292 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)" "-"
    ./var/log/apache/error.log.1:[Sat Dec 22 22:19:03 2007] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /~ftp/bebe.php failed because search permissions are missing on a component of the path

    Nach einiger Zeit versuchte der Angreifer anschließend erneut auf das System zuzugreifen

    ./var/log/apache/access.log:79.13.29.171 - - [23/Dec/2007:12:05:37 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 403 292 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506)" "-"
    ./var/log/apache/error.log:[Sun Dec 23 12:05:37 2007] [error] [client 79.13.29.171] (13)Permission denied: access to /~ftp/bebe.php failed because search permissions are missing on a component of the path./var/log/apache/access.log:87.164.168.22 - - [24/Dec/2007:12:45:10 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 403 292 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9" "-"
    ./var/log/apache/error.log:[Mon Dec 24 12:45:10 2007] [error] [client 87.164.168.22] (13)Permission denied: access to /~ftp/bebe.php failed because search permissions are missing on a component of the path
    ./var/log/apache/access.log:80.141.111.135 - - [24/Dec/2007:12:50:11 +0100] "GET /~ftp/bebe.php?&s=r& HTTP/1.1" 403 292 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1)" "-"
    ./var/log/apache/error.log:[Mon Dec 24 12:50:11 2007] [error] [client 80.141.111.135] (13)Permission denied: access to /~ftp/bebe.php failed because search permissions are missing on a component of the path

    Leave A Reply