Chronicles of DDOS: Lidando com o ataque XMLRPC de bots do WordPress
Publicados: 2019-04-08Há dois dias, enfrentamos dificuldades com o site de um de nossos clientes como Nettsted Limited. Normalmente não fornecemos suporte técnico aos nossos clientes, mas infelizmente o serviço de hospedagem do nosso cliente não fornece nenhum suporte a ela. Como sentimos a responsabilidade de ajudá-la, decidimos agir contra os ataques de botnet . Enfrentamos comportamentos estranhos de bots durante o ataque. Vou falar sobre o que aconteceu hora a hora nesta página e quais ações temos feito para proteger o site do nosso cliente.
O início do ataque DDOS: o atacante se identifica
Como sou proprietário da Nettsted Limited, trabalho de 16 a 18 horas por dia para fornecer suporte aos nossos clientes. Temos clientes diferentes de todo o mundo, então preciso estar acordado em fusos horários diferentes. Por meses depois, em primeiro lugar eu queria assistir a um filme e me divertir com minha família. Infelizmente este foi um dos piores dias da minha carreira. Depois do filme, decidimos descansar. No entanto, apenas uma coisa invisível me cutucou e me disse “hey! você tem que dar uma olhada nas suas obras e depois dormir”. E sim… Foi o que aconteceu na minha ausência de 5 horas no trabalho:
- Um dos meus clientes removeu o plugin SEO, excluiu todas as descrições e títulos do site. Ele também quebrou a estrutura de links do site.
- O outro cliente removeu alguns plugins que instalamos relacionados com SEO. Alteradas as configurações de caches e de alguma forma todos os arquivos .js e .css quebrados.
- Um dos meus clientes estava recebendo ataque DDOS e ela estava apenas observando como seu site desmoronar.
Quando entrei no WhatsApp e no Skype, vi muitas reclamações por essas 5 horas. 30% das frases eram apenas “Onde você está?!”.
Meu cliente me disse que recebeu uma mensagem pelo WhatsApp. O atacante se identificou com o número do telefone e disse à minha cliente que vai atacá-la. Isso realmente parece estúpido, mas ele realmente fez... Quando voltei ao trabalho, o ataque já havia começado.
Dia 1-) Tomando a Primeira Ação Contra Ataques
Estes são alguns logs do ataque que recebemos:
103.9.156.249 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; ; verifying pingback from 93.174.93.163"
199.223.214.148 - - [07/Apr/2019:01:19:03 +0100] "GET / HTTP/1.0" 200 13194 "-" "WordPress/3.3.1; http://www.mentalic.gr"
216.240.176.141 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.0;
104.236.33.158 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; http://pmsearchpartners.com; verifying pingback from 93.174.93.163"
149.210.236.96 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.9.27; http://imageconsultant.mu/; verifying pingback from 149.210.236.96"
185.87.249.33 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1;
158.69.26.84 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.9.2; http://teensystudios.com; verifying pingback from 93.174.93.163"
103.233.76.243 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.26; http://help.worldmart.in; verifying pingback from 93.174.93.163"
203.175.180.254 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.1; http://www.cybertechriskcenter.com; verifying pingback from 93.174.93.163"
199.223.214.148 - - [07/Apr/2019:01:19:03 +0100] "GET / HTTP/1.0" 200 13194 "-" "WordPress/3.3.1; http://www.mentalic.gr"
68.71.60.249 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/4.1.26; http://www.itunesalternative.org; verifying pingback from 93.174.93.163"
66.55.132.6 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-" "WordPress/3.8.16;
163.172.103.45 - - [07/Apr/2019:01:19:02 +0100] "GET / HTTP/1.0" 200 73651 "-"
Nos logs, você pode ver que o ataque estava vindo de agentes do usuário do WordPress. No entanto, alguns desses ataques também vinham sem agentes. Eu verifiquei todos os sites referidos e todos eles eram sites desatualizados e abandonados. Há um IP que era quase o mesmo em todos os logs e havia outros 2. 93.174.93.163 era um IP da Holanda, mas acredito que era o servidor/hospedagem que estava preparando o ataque da botnet para nós. Outros 2 IPs também eram IP da Holanda.
Como havia muitas notificações de “verificação de pingback de” em ataques, pensei que ele estivesse usando pingbacks e xmlrpc.php para atacar.
Minha primeira reação aos ataques foi mudar o nome de xmlrpc.php, depois removê-lo e remover pingbacks das configurações do WordPress .

Resultado : nem sequer abrandou os ataques.
Como não obtive bons resultados nos primeiros movimentos, decidi remover o arquivo xmlrpc.php do WordPress dos arquivos. No entanto, ainda não ajudou.
No entanto, provou que está ajudando para algum tipo de ataque DDOS. Se você também está enfrentando isso, você também pode tentar.
Dia 1-) Primeira resposta: Aproveite o fato de ser local
Agora você vai me dizer por que não usei cloudflare. O CF estava demorando para configurar e as mudanças no servidor de nomes podem ser realmente dolorosas às vezes. Então, eu queria desacelerar os ataques, mas também configurei o cloudflare para o site. Mudou os servidores de nomes. O ataque foi sério e causou sérios danos ao uso de E/S, largura de banda e assim por diante. Eu acredito que eram 2-3 pessoas que estavam atacando de servidores diferentes. O site do meu cliente estava ganhando 1000$ diariamente e era um problema sério para ele. O site estava fora do ar cerca de 6 horas.
Como o site era local, decidi configurar um arquivo htaccess. Eu estava precisando de todos os endereços IP da Dinamarca. com a ajuda de um site eu consigo encontrar todos os IPs da Dinamarca. Eu fecharia o site para todo o tráfego estrangeiro temporariamente. Criei um arquivo htaccess e bloqueei todo o tráfego externo para o site .
Resultado : Este é um bom resultado temporário. Todos os bots maliciosos estavam atingindo 403 páginas agora. No entanto, uma má notícia. Os bots do Google também estavam atingindo 403. Como o tráfego de bots vinha principalmente dos EUA, não fiz nenhuma configuração para IPs de bots dos EUA ou do Google. Como isso era temporário até que as mudanças no servidor de nomes ocorressem, não era um problema.
Durante todo o processo eu estava conversando com minha cliente ao telefone e acalmando-a. Ela estava bastante irritada e chateada por causa da situação. Ela me disse que recebeu mensagens do atacante. Ela tinha o número de telefone dele!
Dia 1-) Servidores de nomes alterados e problemas com configurações da Cloudflare
Cerca de 2 horas depois que configurei o htaccess, os servidores de nomes mudaram e ativei o cloudflare. Removidas as regras de negação/permissão do arquivo .htaccess. No entanto, houve um problema com as configurações de WAF da Cloudflare. Eu pedi ao meu cliente para alterar o IP do servidor e ela fez isso. Algum tempo depois, eu mudaria os registros DNS do cloudflare, pois as informações de IP antigas ainda estavam lá. Porém se eu fizesse isso logo após a compra do IP, o site ficaria fora do ar novamente. O “Modo Sob Ataque” já estava ativo no site.
Resultado : Depois que ativamos o Cloudflare todos os ataques foram interrompidos.
Após a excitação de 6-7 horas, levantei-me da cadeira e fui dormir. Pensávamos que tínhamos vencido, mas ainda não terminou.
Dia 2-) Ele voltou! Ignorado para Cloudflare com Botnet!
Mudamos o IP pela manhã e como achei o site seguro, mudei o modo de ataque para médio. Fiz algumas outras alterações no .htaccess. Comprei o PRO cloudflare para o meu cliente. Eu configurei algumas configurações de WAF para tornar o site mais seguro. No entanto, algum tempo depois, ele conseguiu voltar com ataques mais sérios e uma quantidade séria de ataques estava atingindo a origem. Ele estava ignorando Cloudflare.
Algumas configurações de WAF do Cloudflare prometiam parar de ataques de bot do WordPress, ataque XMLRPC, mas não eram . Decidi configurar todas as configurações do WAF como padrão na Cloudflare.
Resultado : Todos os ataques de bots que não possuem agente do usuário começam a atingir 403.
O resultado deu um alívio ao site por algum tempo e o servidor voltou a funcionar. No entanto, estávamos recebendo muitos ataques e estava perto disso.
Dia 2-) Bloqueio de país na Cloudflare
Finalmente, pensei que deveríamos investir mais no cloudflare para nos livrarmos desses ataques. Quase removemos 50% da ameaça com minhas últimas alterações. No entanto, ainda havia outros 50%. Para um país de site local, o bloqueio não seria um problema. Além disso, como corrigimos 50% do tráfego de bots, os ataques dos EUA não seriam um problema sério para nós. Compramos a empresa Cloudflare e bloqueamos todo o tráfego estrangeiro, exceto dos EUA e Dinamarca .
Resultado : isso corrigiu 90% do tráfego de botnet.
Dia 3-) A vingança é um prato que se come frio
Nosso servidor conseguiu lidar com 90% do tráfego de botnets. Eles não pararam seus ataques embora. Então eu encontrei um plugin interessante no WordPress. No entanto, tive que testá-lo primeiro. Caso contrário, o site pode cair e isso arruinará as coisas. Pedi a um amigo programador que atacasse um dos meus sites. Estava funcionando perfeitamente. Então eu investigo sobre o atacante. Eu entendo quem é ele e por que ele está nos atacando.
Entrei em contato com o atacante primeiro. Eu pedi a ele para parar seus ataques. No entanto, ele me respondeu com muitos insultos e palavrões. Acabei de bloqueá-lo do WhatsApp e nem o respondi. Meu cliente me pediu para pagar mais por este serviço, mas eu neguei. Eu estava levando isso como uma questão de orgulho. Pedi permissão ao meu cliente e removi o modo sob ataque. Eu configurei o plugin.
Comecei a enviar seus bots nojentos, sangrentos e vis de volta ao site dele. Seu site desmoronou na frente dos meus olhos. O que eu senti foi o mesmo com Cersei que estava assistindo a destruição do Septo de Baelor. Então eu enviei a eles seu outro site e depois outro e depois outro... Quando eles pararam o ataque, o sistema estava parando. No entanto, quando eles começaram a bater com bots, estava redirecionando-os para todos os seus sites.