hackerversuch - was ist passiert?



itsmejake

New Member
Hallo,

ich hoffe mir kann jemand hier weiterhelfen und erklären, was da auf meinem server vor sich gegangen ist.

Folgendes ist passiert:
Ich habe festgestellt, ein glück zeitnah, dass mein server down ist. Nichts ging mehr. Ich konnte nicht einmal mehr über plesk den server neu starten. Musste mich bei Strato einloggen und von dort neustarten.

Auf der Suche nach der Ursache fiel mir folgende Fehlermeldung in der error log auf:

Code:
[Sun Sep 11 20:06:11 2011] [error] [client 109.104.76.98] client denied by server configuration: /srv/www/vhosts/meinedomain/httpdocs/sql/scripts

Ab genau diesem Zeitpunkt ging auf meinem Server gar nichts mehr. Ich habe haufenweise automatische SQL-Fehlermeldungen an meine email adresse erhalten. Nach dem Neustart war ruhe und alles funktioniert wieder.

Laut access log gab es von der gleichen IP folgende aufrufe:

Code:
109.104.76.98 - - [11/Sep/2011:20:03:01 +0200] "GET /muieblackcat HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:03 +0200] "GET //pma2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:09 +0200] "GET //phpMyAdmin-2.6.4-pl3/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:17 +0200] "GET //_phpmyadmin/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:18 +0200] "GET //_phpmyadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:19 +0200] "GET //__pma/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:20 +0200] "GET //__pma/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:25 +0200] "GET //softlayer/setup.php HTTP/1.1" 404 2830 "-" "-"

und noch einige weitere...

Ich geh mal davon aus, dass das ein Hack-Versuch war. Aber was ist das? Muss ich mir sorgen machen, dass jemand Zugang zu meinem Server hat? Wie kann ich verhindern, dass sowas passiert?

Ich habe jetzt erstmal die IP gesperrt. Mehr ist mir dazu nicht eingefallen.

Hoffe es kann mir jemand dazu was sagen.
Danke!
Gruß,
Jakob
 
Code:
109.104.76.98 - - [11/Sep/2011:20:03:01 +0200] "GET /muieblackcat HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:03 +0200] "GET //pma2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:09 +0200] "GET //phpMyAdmin-2.6.4-pl3/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:17 +0200] "GET //_phpmyadmin/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:18 +0200] "GET //_phpmyadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:19 +0200] "GET //__pma/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:20 +0200] "GET //__pma/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:25 +0200] "GET //softlayer/setup.php HTTP/1.1" 404 2830 "-" "-"

Das ist normales "Grundrauschen". Bots grasen die Domains auf Software ab, die Schwachstellen hat. Der Statuscode 404 zeigt, dass diese nicht vorhanden ist. Da brauchst Du Dir keine sorgen machen.
 
Die von dir gezeigten Logs sind mehr oder weniger Standard. Solche "Einbruchsversuche" bekommt so ziemlich jeder Server früher oder später ab. Dabei wird einfach per Script probiert, Schwachstellen in bekannter OpenSourceSoftware (phpMyAdmin, Wordpress etc.) auszunutzen.
Der von dir gezeigte Logabschnitt dürfte hier aber nicht das Problem sein (alle Anfragen liefen ins Leere -> 404).

Die Frage ist, welche Software läuft auf dem Server (z.B. phpMyAdmin) und sind alle auf dem neuesten Stand? Schau dir das log einfach mal komplett an und prüfe, ob es irgendwo einen "Treffer" gab.
 
gesamte log

Hallo, vielen Dank schonmal!

Hier alle aktionen, die von der IP ausgeführt worden sind. Dabei sind einige 500er und 200er anfragen dabei obwohl sich an den angegebenen orten nichts befindet!?!??? Wie kann das sein? Ich nehme an die anfragen beziehen sich jeweils auf die relative http adresse, also www.meinedomain.de/pma2/scripts usw...?

Und wie kommts, dass deswegen mein Server verrückt spielt und lauter SQL Fehler erzeugt??

Code:
109.104.76.98 - - [11/Sep/2011:20:03:01 +0200] "GET /muieblackcat HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:03 +0200] "GET //pma2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:09 +0200] "GET //phpMyAdmin-2.6.4-pl3/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:17 +0200] "GET //_phpmyadmin/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:18 +0200] "GET //_phpmyadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:19 +0200] "GET //__pma/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:20 +0200] "GET //__pma/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:25 +0200] "GET //softlayer/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:26 +0200] "GET //softlayer/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:32 +0200] "GET //httpdocs/ohsnap/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:34 +0200] "GET //httpdocs/PHPADMIN/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:35 +0200] "GET //PHPADMIN/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:35 +0200] "GET //ohsnap/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:36 +0200] "GET //libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:38 +0200] "GET //httpsdocs/mydbs/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:44 +0200] "GET //mydbs/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:47 +0200] "GET //httpdocs/sql/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:49 +0200] "GET //data/www/pma2/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:51 +0200] "GET //data/www/pma2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:52 +0200] "GET //pma2/libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:53 +0200] "GET //pma2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:53 +0200] "GET //pma3/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:55 +0200] "GET //pma4/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:56 +0200] "GET //pma5/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:57 +0200] "GET //libraries/dbg/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:57 +0200] "GET //libraries/dbg/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:58 +0200] "GET //scripts/setup.php HTTP/1.1" 404 962 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:03:58 +0200] "GET //db/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:00 +0200] "GET //dbadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:03 +0200] "GET //myadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:04 +0200] "GET //mysql/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:05 +0200] "GET //mysqladmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:06 +0200] "GET //phpadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:10 +0200] "GET //phpMyAdmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:11 +0200] "GET //phpmyadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:12 +0200] "GET //phpmyadmin1/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:13 +0200] "GET //phpmyadmin2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:19 +0200] "GET //pma/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:26 +0200] "GET //databaseadmin/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:27 +0200] "GET //admm/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:30 +0200] "GET //admn/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:31 +0200] "GET //_myadmin/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:33 +0200] "GET //phpMyA/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:35 +0200] "GET //phpmya/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:37 +0200] "GET //#phpmyadmin_2.9.11/ HTTP/1.1" 500 - "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:38 +0200] "GET //admin/my/scripts/setup.php HTTP/1.1" 500 - "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:39 +0200] "GET //mysql2/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:40 +0200] "GET //phpmyadm/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:04:49 +0200] "GET //php2/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:00 +0200] "GET //sqladm/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:30 +0200] "GET //pma_mydb/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:30 +0200] "GET //webmail2/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:37 +0200] "GET //phpas/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:45 +0200] "GET //./scripts/setup.php HTTP/1.1" 404 962 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:52 +0200] "GET //_phpadmin/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:05:52 +0200] "GET //_admin/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:01 +0200] "GET //_phpmyadmin/scripts/setup.php HTTP/1.1" 404 2830 "-" "-"

109.104.76.98 - - [11/Sep/2011:20:06:11 +0200] "GET //sql/scripts/setup.php HTTP/1.1" 403 961 "-" "-"

109.104.76.98 - - [11/Sep/2011:20:06:17 +0200] "GET //my-php/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:18 +0200] "GET //My-php/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:18 +0200] "GET //phpMyAdmin-3.2.0-all-languages/libraries/dbg/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:18 +0200] "GET //phpmyadmin/modsub/phpMyAdmin-2.6.4-pl3/libraries/dbg/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:19 +0200] "GET //phpMyAdmin-2.9.1/scripts/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:24 +0200] "GET //phpMyAdmin-3.2.0-all-languages/libraries/dbg/setup.php HTTP/1.1" 200 3515 "-" "-"
109.104.76.98 - - [11/Sep/2011:20:06:29 +0200] "GET //phpMyAdmin254/libraries/dbg/setup.php HTTP/1.1" 200 3515 "-" "-"

Ich habe kürzlich des server auf das neueste paket bei strato umgerüstet. Müsste also alles relativ aktuell sein.

Danke schonmal für die infos!

Jakob
 
Der Statuscode 200 bedeutet soviel wie Dokument gefunden.

Was verstehst du unter "lauter SQL Fehler" ?

Kannst du uns die besagten Fehler hier posten, andernfalls ist keine genauere Analyse möglich.

Es wäre zudem gut wenn du den Messages, user.log und den syslog als dokument anhängst.
 
Also für eine allgemeine Entwarnung ist der Zustand zu ungeklärt.

Alles was den Status 200 zurück liefert ist potentiell als Gefahr einzustufen. Da grast ein Bot deinen Server nach bekannten Sicherheitslücken ab. Status 200 bedeutet, dass er ein Script ausführen konnte, welches zumindest irgendwann einmal eine Sicherheitslücke hatte (daher auch die SQL-Fehler). Wenn auf deinem Server eine solche Sicherheitslücke offen ist (also die gefährliche SQL-Abfrage ausgeführt wird und NICHT! zu Fehlern führt), dann kann da durchaus was passiert sein. Gerade die Tatsache, dass dein Server down ging, ist da eher ein ganz schlechtes Zeichen. Von ein wenig Bot-Aktivität passiert sowas nämlich nicht.

Aus deinen Logs ist nicht ersichtlich, ob ein Angriff erfolgreich war. Kannst du anderweitig prüfen, ob dein System in einem konsistenten Zustand ist? Hast du z.B. Prüfsummen über alle Dateien angelegt?

Ich habe kürzlich des server auf das neueste paket bei strato umgerüstet. Müsste also alles relativ aktuell sein.

Aktuell ist es, wenn du regelmäßig Updates einspielst. Macht du das? Spielst du händisch Updates der Websoftware ein, die nicht vom Paketmanager abgedeckt ist (z.B. phpMyAdmin)?
 
Danke für die Hilfe!

Also, ich bin mir nicht mehr ganz sicher, ob der Absturz nicht auch durch einen überlasteten Server entstanden sein könnte. Ich hatte jedenfalls sehr viele Anfragen zu der Zeit. Ist es möglich, dass dadurch die Fehlerhaften SQL Anfragen entstanden worden sind? Die Abfragen waren übrigens alle vom typ "SHOW FIELDS FROM ..." und funktionieren eigentlich. Ich bekam dann ca. 15.000 emails mit ner SQL Fehlermeldung, bis ich den server neu gestartet habe;-)

Das mit dem Status ist schon komisch, da sich an den angegebenen Pfaden, die mit 200 bestätigt worden sind, nix befindet!!

Was die updates an geht, werde ich mir wohl Hilfe holen müssen und den Server ordentlich einrichten lassen. Das übersteigt ein wenig meine Fähigkeiten.

Wie funktionieren "Prüfsummen" und was zeigen die mir an? Ob jemand dateien einspielt oder ändert?

Also momentan läuft alles wieder ruhig aber bin recht mistrauisch..
 
Normalerweise dürfte der Server nicht abstürzen wenn 1-3 Bots deine Dienste bzw. Daten scannen... Ansich ist es natürlich gut, dass diese Fehlermeldungen aufgetaucht sind, dadurch konnte der Angreifer nunmal die "gewollten" Daten nicht bekommen.

Ansich solltest du natürlich schauen das etwaige "MÖGLICHE" Exploits deiner Dienste / Scripte geschlossen sind ( Durch Patches / Updates ) und du evtl. für solche Fälle, wie bereits schon geschrieben wurde, diverse Sicherheitschecks wie bspw. MD5 Prüfsumme / rootkitlogger / iWatch nutzt...

Zum Thema MD5 Prüfsummen empfehle ich dir folgenden Link:
http://www.itworld.com/nlsnunixchecksum061116
 
Zu deinen Punkten ein paar Stichworte zum googlen und nachfragen

Ich bekam dann ca. 15.000 emails mit ner SQL Fehlermeldung, bis ich den server neu gestartet habe;-)

Welches Programm auf deinem Server schickt dir Mails, wenn nen SQL-Statement schief geht? Das könnte der Grund sein, warum dein Server in die Knie ging.

Das mit dem Status ist schon komisch, da sich an den angegebenen Pfaden, die mit 200 bestätigt worden sind, nix befindet!!

Bitte die Configs auf Virtual Hosts schecken


Was die updates an geht, werde ich mir wohl Hilfe holen müssen und den Server ordentlich einrichten lassen. Das übersteigt ein wenig meine Fähigkeiten.

Keine Updates einspielen ist mit GARANTIE! die beste Möglichkeit, seinen Server an die Wand zu fahren. Unbedingt machen!

Wie funktionieren "Prüfsummen" und was zeigen die mir an? Ob jemand dateien einspielt oder ändert?

Stichwort Tripwire


Also momentan läuft alles wieder ruhig aber bin recht mistrauisch..

Kein Zustand, in den du als Admin kommen darfst. Bitte das kurz durchlesen und nicht als Angriff übel nehmen: http://root-und-kein-plan.ath.cx/
 
Nur mal so als Hinweis:
Die 200er in den Logs haben alle eine Dateigröße von 3515 Bytes obwohl es unterschiedliche Scripte sind. Normale "Datei gefunden" 200er sind das also nicht.
 
freelancer admin

Danke nochmal für die guten Tips an alle!

Wie finde ich denn am besten einen Admin, der den Job für mich machen kann (erstmal nur die initiale Einrichtung und dann regelmäßige reviews und updates)?

Habe mal nach freelancern geguckt. Für 120 USD würde mir jemand das System neu einrichten und alle? wichtigen sicherheitstechnischen und performance einstellungen vornehmen.

Here is a short checklist on what I'm planning to setup on your server:

- a hosting panel (if not already present)
- changing ports to non standard ones (eg. SSH port on 52733 instead of 22)
- disabling unneeded services
- kernel hardening
- IDS (intrusion detection system)
- optimizing Apache configs and MySQL config
- optimizing PHP (setting up an op-code cacher)
- installing Varnish as frontend for Apache to cache dynamic PHP requests
- setting up mod_security for Apache with current ruleset

Ist das realistisch? Was ist eurer Meinung nach wichtig? was fehlt?

Grüße,
Jakob
 
Naja kommt drauf an ,
das meiste was in deiner Liste steht ist schnell gemacht , die frage ist ob er es auch vernünftig Konfigurieren kann!
Vor längerer Zeit hatte ich sehr negative erfahrungen mit einem Freelancer gemacht.
Ein bekannter von mir hatte ein Adult Portal welches in den Usa lief. Da sollte ein Freelancer aus Indien gewisse sachen auf dem Server einrichten. Der hat es echt geschaft den gesamten Server zu crashen. Das Portal war gelöscht!
War garnicht so einfach das alles wieder ans laufen zu bekommen.
Suche dir hier einen der dir das macht, als Panel kann ich dir WHM/Cpanel empfehlen. Da kannst du Varnish,ModSecurity und so ziemlich alles mit Grafischer Oberfläsche konfigurieren.
 
Back
Top