Servidor sequestrado/usado como minerador de bitcoin - como faço para impedir isso?

Servidor sequestrado/usado como minerador de bitcoin - como faço para impedir isso?

Estou numa situação difícil, meu servidor foi sequestrado e parece estar envolvido em uma operação de mineração de bitcoin.

Preciso saber por onde começar, pelo menos, sou um administrador de sistema novato e nunca encontrei isso antes. Isso está acabando com minha largura de banda e estou sendo cobrado pelo meu provedor de hospedagem 50c por GB e saltou 255 GB -> 301,8 GB em um dia por causa disso. Qualquer ajuda é apreciada.

Encontrei muito lixo nos logs relacionados ao Stratum, bem como scripts em endereços IP externos em execução no meu servidor. Então eu olho no meu diretório /tmp e vejo 7 arquivos que são

  • festa
  • cron.d
  • mech.dir
  • eh
  • spamd_full.sock
  • atualizar

Um exemplo do conteúdo do meu log de erros do Apache é o seguinte:

[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] --2013-11-28 16:27:40--  http://74.208.228.113/sh
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Connecting to 74.208.228.113:80...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] connected.
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] HTTP request sent, awaiting response...
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 200 OK
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Length:
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] 518288
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]  (506K)
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]  [text/plain]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] Saving to: `sh'
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]      0K
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ... .......... ..........  9%  148K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]     50K ........
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] .. .......... .......... .......... .....
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104] ..... 19%  172K 3s
[Thu Nov 28 16:27:40 2013] [error] [client 173.201.45.104]    100K .......... .......... ......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .... .......... .......... 29%  344K 2s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    150K .......
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ... .......... .......... .......... .......... 39%  514K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    200K .........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]  ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ..
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... .......... .......... 49%  347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    250K .......... .......... .......... ........
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] .. .......... 59%  347K 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    300K .......... .......... .......... .......... .......... 69%  224M 1s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    350K .
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ......... .......... .......... .......... .......... 79%  347K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    400K .......... ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ....... .......... .......... .......... 88%  348K 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    450K .......... .......... .......... .......... .......... 98%  254M 0s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]    500K ...
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] ...                                                100% 64.1K=1.5s
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104] 2013-11-28 16:27:41 (328 KB/s) - `sh' saved [518288/518288]
[Thu Nov 28 16:27:41 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:27:58 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] a: line 24: ./bash: No such file or directory
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on bash
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] chattr
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] :
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] Operation not permitted
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104]
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] while setting flags on sh
[Thu Nov 28 16:28:26 2013] [error] [client 173.201.45.104] \r
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] 2 miner threads started, using 'scrypt' algorithm.
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Starting Stratum on stratum+tcp://216.230.103.42:3333
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:28] ...retry after 30 seconds
[Thu Nov 28 16:28:33 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:33] Binding thread 1 to cpu 1
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused
[Thu Nov 28 16:28:58 2013] [error] [client 173.201.45.104] [2013-11-28 16:28:58] ...retry after 30 seconds
[Thu Nov 28 16:29:21 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:21] Binding thread 0 to cpu 0
[Thu Nov 28 16:29:28 2013] [error] [client 173.201.45.104] [2013-11-28 16:29:28] Stratum connection failed: Failed connect to 216.230.103.42:3333; Connection refused

Responder1

Eu primeiro bloquearia a conexão com os endereços externos usando o iptables

iptables -A OUTPUT -d IP_Address -j DROP

Depois de ter certeza de que todos os endereços IP estão sendo bloqueados, salve o iptables: # /sbin/service iptables saveem seguida, limpe os arquivos colocados pelo sequestrador.

Você pode querer dar uma olhada /etc/var/log/messagese /etc/var/log/securever se há alguma entrada deixada pelo sequestrador que possa indicar como ele/ela pode ter conseguido uma posição segura em seu servidor.

Se você estiver administrando um site, certifique-se de não ter nenhuma página da web que permita aos usuários fazer upload de arquivos como shells PHP.

Isso deve começar. Você também pode pedir ao seu provedor de hospedagem para realizar uma verificação antivírus para procurar scripts/arquivos que permitam acesso.

Responder2

Seus mineradores de bots não estão se conectando, então ele continua executando novamente o exploit e baixando os mineradores indefinidamente.

Recentemente, vimos uma tentativa de exploração de configurações incorretas do cgi-bin que parece relacionada.

Estava tentando baixar

74.208.228.113 / a 

e execute isso como um script de shell.

Esse script faz algumas coisas quando olhamos para ele, ele apagou a entrada do crontab e a substituiu por uma tentativa de executar um script extraído de

74.208.228.113 / update

Também coloca o mesmo script em /etc/cron.hourly

Esse script faz um 'ps x' e greps para uma conexão de mineração bem-sucedida. Se não o vir, ele baixa o script novamente e executa novamente.

No final do script a, ele pega

74.208.228.113 / clamav

e

74.208.228.113 / sh

que parecem ser versões compiladas de maneira diferente do Minerd. Ele renomeia o clamav para bash e então inicia a mineração em 216.230.103.42.

Então, se você foi explorado de maneira semelhante, você precisa:

  1. desabilitar cgi-bin

  2. verifique o crontab para qualquer usuário que execute o httpd (provavelmente root ou apache) e exclua a entrada "update"

  3. verifique /etc/cron.hourly/ para um arquivo chamado update e veja se ele faz referência ao 216.230.103.42 ao qual os mineradores não conseguem se conectar. Exclua aquele para

São essas entradas de atualização que estão usando a largura de banda. O crontab está rodando uma vez por minuto, a cada minuto.

No entanto, acho que uma resposta melhor é tirá-lo da órbita. Se o seu cgi-bin estiver configurado para permitir explorações remotas que executam scripts, não há garantia

informação relacionada