Este é o pior ataque da história do WordPress?

BBetter Stack
Internet TechnologyBusiness NewsComputing/Software

Transcript

00:00:00O WordPress teve uma série de vulnerabilidades recentemente, com a mais recente sendo tão grave
00:00:04que permite aos hackers assumir controle total do painel admin; estamos falando de injeção SQL, execução de
00:00:09comandos shell, coisas bem sérias, e talvez você não ligue para o WordPress, mas ele ainda roda mais de 44%
00:00:14dos sites do mundo, então muitos dos sites com os quais você interage e fornece seus dados
00:00:19podem estar rodando WordPress e essa versão vulnerável, então basicamente funciona assim:
00:00:25Eu tenho instalada localmente uma versão padrão do WordPress e posso rodar este
00:00:29primeiro script para ver se a vulnerabilidade está disponível e você pode ver que recebemos a resposta
00:00:34HTTP 207, o que significa que sim, está de fato vulnerável, e isso significa que agora podemos rodar a segunda verificação,
00:00:41que é entrar na shell interativa, então isso faz injeção SQL no site, cria um novo usuário admin
00:00:47e depois envia um plugin malicioso que me permite agora interagir com qualquer arquivo neste site,
00:00:52então vamos nos aprofundar no problema e ver exatamente como funciona.
00:00:58Então, este repositório que estou olhando mostra exatamente como fazer injeção SQL em sites WordPress vulneráveis, ou seja,
00:01:06qualquer site entre 6.90 e 6.94 ou 7.00 e 7.01. Todo o ataque começa chamando um endpoint não autenticado
00:01:14batch v1, que permite agrupar outras requisições que, por si sós, passam por validação e checagem
00:01:20de permissão. O manipulador de lotes tem dois arrays paralelos que deveriam permanecer sincronizados: validação e correspondências,
00:01:26mas um bug fez com que, quando a função wp pass URL falha devido a um caminho inválido, apenas a validação fosse atualizada,
00:01:33então agora o mesmo índice usado para olhar ambos os arrays fornecia resultados dessincronizados. A POC se aproveita disso:
00:01:41Ela envia um lote contendo apenas uma requisição, um POST para o endpoint v2 posts, que por sua vez carrega um corpo de requisição.
00:01:48Como a requisição pai foi corretamente validada como uma requisição POST, qualquer requisição no corpo acaba burlando a lista de métodos permitidos,
00:01:56permitindo que você envie requisições GET. Então, dentro desse lote interno, há uma requisição GET para um post que não existe, o que dispara a
00:02:02dessincronização anterior, fazendo o WordPress despachar a mesma requisição sob uma função chamada get items, onde o campo author
00:02:10exclude mapeia para author not in, que a versão vulnerável interpola no SQL como uma string; basicamente, como tudo isso está rodando,
00:02:18o SQL não é escapado. A POC usa uma série de requisições que por fim permitem que uma requisição POST para v2 users crie
00:02:25uma nova conta admin. O repositório na verdade detalha todos esses passos; os primeiros cinco são pré-autenticação, aproveitando o bug, mas o passo seis é apenas o comportamento normal do WordPress para
00:02:35usuários autenticados, que é enviar um pacote malicioso. Certo, então, como mencionado antes, esta é apenas a versão padrão do WordPress, a vulnerabilidade não é acessada por meio de algum plugin malicioso,
00:02:46você pode simplesmente instalar o WordPress padrão. Nós rodamos este script de verificação primeiro, que basicamente valida se a
00:02:52vulnerabilidade pode ser executada, e então podemos rodar este comando de leitura, por exemplo, que nos mostra coisas como o
00:02:57usuário e o nome do banco de dados. Agora também podemos rodar SQL contra o site, então podemos descobrir coisas como
00:03:03qual versão o banco de dados está rodando, e nada disso é o pior de tudo, esta é a parte realmente ruim
00:03:07onde realmente criamos uma conta de admin que tem acesso para poder enviar um plugin malicioso, neste
00:03:15caso chamado web shell. Isso nos permite acessar o shell do site, o que significa que agora podemos ter acesso a
00:03:22qualquer arquivo neste site, e este ataque acontece da maneira que explicamos anteriormente no vídeo, então,
00:03:27depois que o admin é criado, o plugin é enviado e, finalmente, esse usuário é excluído, então a existência
00:03:34do plugin e o que aconteceu ficam mais discretos. Para demonstrar o quão grave isso é, criei um script separado
00:03:38que cria um admin e o mantém no sistema,
00:03:40então aqui tenho um usuário e uma senha. De volta ao site, se eu for para a rota wp login, posso inserir esse
00:03:47usuário e senha, clicar em login e agora tenho acesso total ao painel admin. Agora, se algo disso for confuso, não se preocupe,
00:03:54eu também levei muito tempo para entender. A afirmação é que a cadeia de exploit resultante era tão absurdamente
00:04:00complexa que um pesquisador de segurança humano levaria semanas, se não meses, para descobrir e
00:04:05juntar as peças sozinho; nenhum pesquisador de segurança teria encontrado e completado essa cadeia de exploit
00:04:10em 10 horas sem IA, e isso é bem assustador porque mal-intencionados poderiam efetivamente ter bots varrendo
00:04:17repositórios, checando URLs, apenas esperando vulnerabilidades aparecerem e explorando-as em tempo recorde usando IA.
00:04:23Um usuário no Reddit disse que seu site foi comprometido apenas dois dias após a descoberta,
00:04:27e como eles só atualizam nos fins de semana, um atacante conseguiu criar um novo admin e fazer login para aqueles
00:04:33vulneráveis. O exploit foi corrigido na versão 7.0.2, então você pode atualizar para ela, mas essa foi bem insana.
00:04:40Você pode encontrar o repositório e o artigo nos comentários que usei para rodar a POC, e por que não
00:04:46se inscrever no Better Stack para ficar por dentro de todas as notícias de tecnologia? Espero que tenham gostado desta, pessoal, e
00:04:50é claro, como sempre, vejo vocês no próximo vídeo.

Key Takeaway

Uma vulnerabilidade crítica sem necessidade de autenticação no WordPress padrão permite a invasores assumirem o controle total de servidores vulneráveis por meio de injeção SQL e upload de web shells.

Highlights

  • Uma falha crítica afeta o WordPress padrão nas versões 6.90 a 6.94 e 7.00 a 7.01, expondo mais de 44% dos sites do mundo a invasões.

  • O exploit combina injeção SQL, criação de usuários administradores falsos e envio de plugins maliciosos como o web shell.

  • Após comprometer a aplicação, o script invasor exclui a conta de administrador criada para ocultar os rastro do ataque.

  • A complexidade dessa cadeia de exploração sugere o uso de ferramentas de IA para mapear vulnerabilidades em menos de 10 horas.

  • A atualização do WordPress para a versão 7.02 corrige totalmente o problema de segurança.

Timeline

Gravidade e impacto da falha no WordPress

  • A falha permite execução de comandos de shell e controle total do painel de administração.
  • O ecossistema afetado representa mais de 44% da web global.
  • A verificação inicial retorna um código HTTP 207 que indica a presença do bug no servidor.

Uma vulnerabilidade de segurança atinge instâncias padrão do WordPress sem depender de plugins de terceiros. A verificação do sistema vulnerável ocorre via requisições HTTP específicas antes da execução do exploit completo. O impacto potencial compromete dados de usuários em grande escala devido à alta participação de mercado da plataforma.

Mecanismo técnico de exploração da vulnerabilidade

  • O ataque se inicia através da chamada ao endpoint não autenticado batch v1.
  • Uma falha na função wp pass URL dessincroniza os arrays de validação e correspondências.
  • O parâmetro author exclude permite injeção de SQL direto sem o devido escapamento de dados.

O erro de sincronização interna permite burlar a lista de métodos permitidos ao enviar requisições POST disfarçadas. Com isso, uma consulta GET para um post inexistente força a aplicação a executar a função get items com interpolação direta de SQL. A falta de sanitização na consulta permite a inserção arbitrária de comandos no banco de dados.

Execução da invasão e persistência do acesso

  • O exploit permite ler informações do banco de dados e criar uma nova conta de administrador.
  • O upload de um plugin malicioso estilo web shell concede acesso direto aos arquivos do servidor.
  • O invasor apaga a conta admin criada logo após o envio do plugin para dificultar a detecção.

A exploração prática resulta no controle do sistema por meio do upload de uma web shell no diretório de plugins. A interface interativa de linha de comando dá ao invasor permissão para ler, alterar ou deletar qualquer arquivo do servidor. O processo automatizado tenta apagar vestígios limpando a conta de acesso inicial criada na etapa de injeção SQL.

Uso de inteligência artificial em ataques cibernéticos e mitigação

  • A montagem dessa cadeia de exploit levaria meses para um pesquisador humano, mas levou menos de 10 horas com apoio de IA.
  • Relatos indicam sites comprometidos em apenas dois dias após a descoberta da falha.
  • A correção oficial para a vulnerabilidade está disponível na versão 7.02 do WordPress.

A automação com IA acelera drasticamente a descoberta de falhas complexas e a criação de exploits funcionais por agentes maliciosos. Bots conseguem monitorar repositórios públicos e invadir instâncias desatualizadas antes das janelas de manutenção habituais dos administradores. A atualização imediata para a versão 7.02 elimina todas as etapas desse vetor de ataque.

Community Posts

View all posts