Ficando Um Pouco Doente De zmeu

Parece que todos os arquivos de log de todos os servidores HTTP que eu administro têm seus logs de erros repletos de erros HTTP 404 nos últimos dias. E de onde exatamente estão todos esses erros? Aparentemente, eles vêm de crianças de script que procuram assumir os bancos de dados SQL para o lulz.

O QUE É O ZMEU?

De minha pesquisa, o ZmEu parece ser uma ferramenta de segurança usada para descobrir falhas de segurança na versão 2.xx do phpMyAdmin, um gerenciador de banco de dados MySQL baseado na web. A ferramenta parece ter se originado em algum lugar da Europa Oriental. Como o que parece acontecer com todas as ferramentas de segurança do black hat, ele foi para a China, onde tem sido usado desde então para ataques de força bruta ininterrupta contra servidores da Web em todo o mundo.

MAS EU NÃO CORRO O PHPMYADMIN DE QUALQUER MANEIRA EM UM AMBIENTE DE PRODUÇÃO.

Francamente, qualquer pessoa que execute esse software bobo em algo que não seja um ambiente de teste sob restrições de acesso pesado provavelmente deve encontrar outra profissão. No entanto, as constantes 404s que a ferramenta gera nos arquivos de erro podem ser um pouco irritantes e podem até causar um DDoS do seu servidor da Web, se você não tiver o orçamento para o hardware mais sofisticado.

COMO SEI SE ESTOU SENDO ATACADO POR ESSA COISA DO ZMEU?

Verifique seus arquivos de log de acesso. Você deve começar a ver logs que parecem um pouco

212.175.84.210 – – [29 / Jul / 2010: 10: 05: 43 -0400] “GET /phpMyAdmin-2.2.3/scripts/setup.php HTTP / 1.1” 404 311 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 43 -0400] “GET /phpMyAdmin-2.2.6/scripts/setup.php HTTP / 1.1” 404 311 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 43 -0400] “GET /phpMyAdmin-2.5.1/scripts/setup.php HTTP / 1.1” 404 311 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10:05:44 -0400] “GET /phpMyAdmin-2.5.4/scripts/setup.php HTTP / 1.1” 404 311 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 44 -0400] “GET /phpMyAdmin-2.5.5-rc1/scripts/setup.php HTTP / 1.1” 404 315 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 44 -0400] “GET /phpMyAdmin-2.5.5-rc2/scripts/setup.php HTTP / 1.1” 404 315 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 45 -0400] “GET /phpMyAdmin-2.5.5/scripts/setup.php HTTP / 1.1” 404 311 “-” “ZmEu”
212.175.84.210 – – [29 / Jul / 2010: 10: 05: 45 -0400] “GET /phpMyAdmin-2.5.5-pl1/scripts/setup.php HTTP / 1.1” 404 315 “-” “ZmEu”

Esta é a ferramenta que mais se esforça para encontrar as instalações do phpMyAdmin que possam estar instaladas no seu servidor da web. Se encontrar um, é mais provável que ele tente explorar uma falha de segurança que possa estar ativa para qualquer versão do phpMyAdmin, e descobrir que pode não ter sido tratada adequadamente pelo administrador do sistema.

UAU, ISSO É CHATO. O QUE POSSO FAZER SOBRE ISSO?

O primeiro pensamento que pode surgir na sua cabeça seria simplesmente bloquear quaisquer endereços IP que apresentem um monte de erros HTTP 404 simultâneos. No entanto, tenho um palpite de que, se enviarmos a ferramenta de volta para qualquer coisa que não seja um erro HTTP 404, talvez ela pare de verificar, pensando que pode ter encontrado alguma coisa. Sabendo disso, podemos levar a ferramenta a pensar que ela pode ter encontrado uma instalação do phpMyAdmin, quando, na realidade, podemos enviar ao atacante uma página de volta dizendo algo como “Conseguir um emprego”.

ETAPA 1: CRIAR UMA PÁGINA DE ABUSO

Crie uma página em algum lugar do servidor onde possamos transmitir a mensagem apropriada de que não aceitamos muito gentilmente criar scripts para crianças nesse servidor da web. Não precisa ser muito complicado, apenas o suficiente para entender o ponto. Aqui está o meu, nada chique.

Opcionalmente, podemos fazer com que a página retorne um erro HTTP 403, talvez confundindo ainda mais a ferramenta. No PHP, por exemplo, isso pode ser realizado com uma linha como

<?
cabeçalho (“HTTP / 1.1 403 Proibido”);
?>

ETAPA 2: O PODER DO MOD_REWRITE

Há apenas algo sobre as crianças de script e sua incapacidade de ajustar os arquivos de configuração para algo diferente dos valores padrão. Explorando isso, podemos efetivamente bloquear praticamente todas as instâncias dessa ferramenta irritante.

A ferramenta usa a cadeia de agente do usuário “ZmEu” para se identificar. Então, naturalmente, vamos redirecionar todo o tráfego que identifica seu agente de usuário como “ZmEu” para nossa página de abuso.

Crie um arquivo .htaccess no diretório raiz da web, se ainda não existir, e adicione o seguinte

<IfModule mod_rewrite.c>
RewriteEngine em
RewriteCond% {REQUEST_URI}! ^ / Caminho / para / seu / abusefile.php
RewriteCond% {HTTP_USER_AGENT} (. *) ZmEu (. *)
RewriteRule. * Http: //www.seudominio. com / caminho / para / seu / abusefile.php [R = 301, L]
</IfModule>

Essa diretiva mod_rewrite redirecionará todo o tráfego usando uma resposta HTTP 301 para sua página de abuso, se o agente do usuário se identificar como ZmEu.

FORMIDÁVEL! PROBLEMA RESOLVIDO.

A coisa mais conveniente sobre essa solução é que, mesmo que você tenha o phpMyAdmin instalado no servidor da Web por qualquer motivo, a ferramenta não poderá encontrá-la, pois estamos redirecionando as visitas à página de abuso com base no User-Agent.

Espero que este artigo lhe dê outra arma para adicionar ao seu arsenal nas décadas de luta contra ataques de força bruta baseados na China.

Rolar para cima