VPS explorado pelo Bitcoin Mining. Como identificar a falha?

5

Um ubuntu VPS que eu corro para hospedar alguns sites básicos parece ter tido um apache hackeado para mineração bitcoin.

No meu apache error.log, vejo o seguinte.

[Sun Dec 15 06:27:58 2013] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with
Suhosin-Patch configured -- resuming normal operations
[Sun Dec 15 06:27:58 2013] [info] Server built: Jul 12 2013 13:38:21
[Sun Dec 15 06:27:58 2013] [debug] prefork.c(1023): AcceptMutex: sysvsem (default: sysvsem
[Sun Dec 15 09:14:16 2013] [info] server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers), spawning 8 children, there are 0 idle, and 18 total children
curl: try 'curl --help' or 'curl --manual' for more information
./tmp.sh: 1: ./tmp.sh: ^M: not found
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
^M  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100  165k  100  165k    0     0   402k      0 --:--:-- --:--:-- --:--:--  460k
./tmp.sh: 2: ./tmp.sh: ^M: not found
./tmp.sh: 3: ./tmp.sh: ^M: not found
./tmp.sh: 4: ./tmp.sh: ^M: not found
./tmp.sh: 5: ./tmp.sh: ^M: not found
./tmp.sh: 6: ./tmp.sh: ^M: not found
[2013-12-15 10:06:35] Starting Stratum on stratum+tcp://mine.pool-x.eu
[2013-12-15 10:06:35] 1 miner threads started, using 'scrypt' algorithm.
[2013-12-15 10:06:36] Stratum detected new block
[2013-12-15 10:11:05] Stratum detected new block
[2013-12-15 10:12:46] Stratum detected new block
[2013-12-15 10:13:15] Stratum detected new block

O plano é reconstruir meu VPS, mas primeiro quero entender exatamente como isso está acontecendo e estou chegando a alguns becos sem saída. Aqui estão algumas coisas que eu notei / tentei:

  1. Eu posso reiniciar meu VPS e a mineração não parece começar de novo até algumas horas depois. Isso é um trabalho CRON? (Parece reiniciar por volta das 10h todos os dias).

    • Isso está disparando em um trabalho CRON? Não consigo encontrar nada em crontab, mas eu estou lá em outros lugares que posso verificar?
    • Eles têm um endereço IP do meu VPS e exploram algo no meu servidor? Como eu detectaria isso, os logs de erro e acesso são inconclusivos.
  2. Não parece ser uma vulnerabilidade do wordpress

  3. Eu configurei o lastcomm e, para o usuário do www-data, vejo o seguinte - que é claramente o ataque que está ocorrendo. Como posso obter mais informações sobre o que está acontecendo e sendo executado?

    $ sudo lastcomm www-data

  4. Qualéadiferençaentreoprocessoapache2eohttpd?

  5. Agora notei a seguinte entrada no registro de acesso, mas nunca de uma vez que coincida com o início da mineração:

    177.10.216.85 - - [15 / Dec / 2013: 14: 19: 01 +0000] "POST / cgi-bin / php4?% 2D% 64 +% 61% 6C% 6C% 6F% 77% 5F% 75% 72% 6C% 5F% 69% 6E% 63% 6C% 75% 64% 65% 3D% 6F% 6E +% 2D% 64 +% 73% 61% 66% 65% 5F% 6D% 6F% 64% 65 % 3D% 6F% 66% 66 +% 2D% 64 +% 73% 75% 68% 6F% 73% 69% 6E% 2E% 73% 69% 6D% 75% 6C $

  6. Eu também executei pwdx contra o processo, apenas retornou o seguinte

    4529: /

    Considerando que o processo do MySQL retornou o seguinte.

    2298: / var / lib / mysql

Atualização:

Eu não acho que é o exploit plesk porque o apache está retornando um 404 (corretamente ?!) Estou agora bastante certo de que isso é apenas um trabalho CRON oculto ou algo assim. Talvez até um processo oculto. Como eles chegaram originalmente, eu realmente não tenho certeza!

46.137.41.30 - - [26/Dec/2013:13:25:26 +0000] "POST /cgi-bin/php4?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1" 404 493 "-" "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"
    
por JonB 15.12.2013 / 15:24

3 respostas

3

Você tentou decodificar essa string estranha no log de acesso?

Cole esta string:

% 2D% 64 +% 61% 6C% 6C% 6F% 77% 5F% 75% 72% 6C% 5F% 69% 6E% 63% 6C% 75% 64% 65% 3D% 6F% 6E +% 2D % 64 +% 73% 61% 66% 65% 5F% 6D% 6F% 64% 65% 3D% 6F% 66% 66 +% 2D% 64 +% 73% 75% 68% 6F% 73% 69% 6E% 2E% 73% 69% 6D% 75% 6C $

Neste site:

link

Uma rápida pesquisa no Google sobre o texto ASCII decodificado sugere que é uma vulnerabilidade do Plesk sendo explorada.

link

    
por 20.12.2013 / 01:18
1

Você provavelmente não tem o mesmo problema que eu, mas meu VPS foi explorado usando uma vulnerabilidade do JBoss, e eles instalaram um shell web (pwn.jsp) e usaram o download de algum shell backdoor do perl.

Eu só queria estar alerta em backdoors adicionais que o atacante poderia ter deixado. Eu encontrei meu diretório do console de gerenciamento JBoss com um arquivo WAR chamado estranhamente que, quando implementado, permitiria que o invasor implementasse qualquer aplicativo de sua escolha em minha instalação do JBoss

Eu tenho mais alguns detalhes em outro post de stackoverflow e ainda mais em um post de blog

    
por 18.01.2014 / 19:08
0

As definições das tarefas cron estão localizadas em qualquer um desses locais possíveis como arquivos de texto:

  • /etc/cron.d /
  • /etc/cron.daily /
  • /etc/cron.hourly /
  • /etc/cron.monthly /
  • /etc/cron.weekly /
  • / var / spool / cron / crontabs

Os primeiros 5 são pastas cron baseadas no sistema e geralmente todos executados no nível raiz, o último é o diretório que contém crons por usuário (por exemplo, quando você executa crontab -e ou crontab -l ele carregará a partir desse diretório cada conta de usuário com tarefas cron criadas terá um arquivo nesta pasta

dê uma olhada lá, é provável que haja uma tarefa Cron que comece com a seguinte definição de cron.

6 10,22 * * * ....

    
por 18.01.2014 / 20:19