Enjoy FloodBot based on OverKill… not in my house!

Vor kurzem war die Auslastung eines Web-Servers extrem hoch, so auch heute den ganzen Tag. Also machte ich mich auf die Suche nach der Ursache und stolperte über eine lustige Sicherheitslücke im „phpMyAdmin“ worüber sich ein FloodBot einschlich. Er nutze eine Datei worüber er schön den Bot mit passender Berechtigung herunterlud und ausführte. Ich war doch ein wenig verwundert und probierte das gleich an einem Testsystem aus.

Jo! Dickes Ding…

Schwupps, war der Bot drauf und startete. Das sah dann per „ps aux“ so aus:

bot1Den genauen Befehl gebe ich hier mal nicht Preis. Wer weiß wer was damit bei anderen anrichten möchte.

 

Wow!… immer noch erstaunt :-).

Die Datei udp.pl mithilfe der Lücke und „sh -c perl“ über die config.inc.php von phpMyAdmin einfach gestartet.

Irre!

Die Lücke ist so riesig, dass man über ein paar witzige Handgriffe den Server darüber so gut wie steuern kann (Vorausgesetzt man hat bei der Rechtevergabe geschlampt!). Mit Aufruf: 
http://…/php_my_admin/config/config.inc.php?p=phpinfo(); kann man sich schön die Komplettinfo zum Server holen oder mit http://…/php_my_admin/config/config.inc.php?c=ps%20aux den Inhalt des tmp-Ordners. Dieser war in diesem Fall angefüllt mit dem BOT.

bot2

Mehr poste ich nicht, animiert nur zu wilden Gedanken :-). Habs aber gleich auf befreundeten Systemen mal ausgetestet und siehe da, viele haben die Lücke nicht geschlossen. Denjenigen habe ich mal schnell ne Mail geschrieben.

 

Schnell mal mit „last -i“ nach komischen Logins gefahndet, dann noch known_hosts und ssh-key’s überprüft und die /etc/passwd nach lustigen neuen Usern mit UIDs „0“ durchsucht. War aber nix ungewöhnliches. Glück gehabt. Schnell phpMyAdmin aktualisiert, die tmp-Verzeichnisse geleert, und restliche Komponenten wie php, apache usw. aktualisiert und Server neu gestartet (Windows angewohnheit :-)).
Nun noch mit „apt-get rkhunter install“ nen RootKitHunter installiert und das System durchgecheckt und mit „netstat -nap“ und „netstat -tulpe“ die Ports gecheckt … Und auch alles in Ordnung.
Anschließend den eaccelerator neu kompiliert und schwupps… Livesystem nach 3 Stunden wieder clean. Downtime… summiert ca. 5 min… klasse Job! Blog schreiben 30 min :-). Schöner Sonntagabend.

Anschließend Serverseitig noch weitere Möglichkeiten mit ein paar Tricks unterbunden. Alles soll man nicht verraten :-).

Was ich daraus gelernt habe:

  1. Öfters mal ins Error und Accesslog vom Apachen schauen,
  2. apt-get upgrade/update/install sollte ein Freund werden,
  3. … meine Linux-Kenntnisse sind noch gut 🙂

Wollen wir mal schauen, ob das alles war. Der Server bleibt die Tage unter Beobachtung.

3 Gedanken zu „Enjoy FloodBot based on OverKill… not in my house!

  1. so viele Server sind es dann auch nicht :-). Aber nach dem Vorfall hatte ich schon an Nagios gedacht… dann aber wieder verworfen. Vielleicht downloade ich mir das doch mal :-).

  2. I found this bot on my server as well a few days ago. I only discovered it because it was flooding my modem so much that no other computers on my network could get access to the internet. I had phpMyAdmin installed in the „default“ location (i.e. /var/www/html), which was obviously the first mistake.

    It appears there was also an attempt to install some other rootkits as well but they don’t appear to have been successful – so if your system is sitting connected directly to the internet and iptables is not very strict beware that there could be more than just a bot-script running. I am going to do some more testing and will probably end up doing a fresh installation anyway, just in case.

    Some other things I discovered: The bot connects to undernet (presumably where it is controlled from). There was a list of 15000+ other IPs in it’s list (other bots presumably). It left some files behind from another exploit – apparently in the pulseaudio driver.

    Ps. I can read German but write better in English. Danke fürs info! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.