Bem-vindos colegas entusiastas da segurança! Hoje vou mostrar a vocês como hackear um Website WordPress usando o Sr. Robô CTF como exemplo. Eu mesmo acabei de trabalhar neste excelente CTF e aprendi uma tonelada no processo. Eu queria melhorar meu jogo de Análise de Vulnerabilidade Web e comecei com este CTF.
Se você realmente quer aprender Cybersecurity, eu recomendo muito a leitura do meu enorme Guia de Iniciação à Segurança Cibernética em 2019, onde eu ensino como começar, completamente grátis! Também vale a pena conferir os Melhores Livros de Hacking em 2019 artigo.
DISCLAIMER: Este “como hackear um site WordPress” é um Tutorial de Hacking Ético e voltado para os Profissionais de Segurança. Não, repito, não utilize essas técnicas sem o consentimento por escrito da parte receptora. Se você usar este tutorial em um contexto ilegal, acusações legais e/ou tempo de prisão podem estar esperando por você. Use essas técnicas somente em um ambiente fechado de laboratório.
A CTF é um jogo chamado Capture the Flag, onde seu objetivo é coletar um certo número de bandeiras (ou chaves, já agora). Os CTF’s são usados para praticar suas habilidades de hacking em um ambiente seguro e legal. Eu posso recomendar Vulnhub como recurso para uma seleção de um excelente CTF’s.
Ok, vamos começar.
- Passo 1 – Avaliando se um Website está usando WordPress
- Passo 2 – Agarrando Código com Burpsuite
- Passo 3 – Encontrar o nome de utilizador correcto
- Passo 4 – Nomes de usuário Bruteforcing com Hydra
- Passo 5 – Brute Forçando a Senha
- Passo 6 – Implementando código malicioso no WordPress
- Passo 7 – Iniciando um ouvinte Netcat
- Please Share!
Passo 1 – Avaliando se um Website está usando WordPress
Se você não sabe se um Website está usando WordPress ou não, há uma maneira muito fácil de descobrir isso.
Você pode simplesmente digitar: www.addressofthewebsite.com/wp-admin
Que na maioria dos casos irá trazer uma guia de login wp-admin, exceto que o administrador a desabilitou.
Outra ótima maneira de verificar se um Website está usando o WordPress é usando o wpscan. Wpscan vem pré-instalado tanto no Kali como no ParrotSec.
wpscan -u www.addressofyourtarget.com
No meu caso, escanear o Mr. Robot VM revela o seguinte.
Como você pode ver, ele indica claramente que o site está usando o WordPress. Além disso, ele apresenta 46 vulnerabilidades identificadas. Agora, a maioria dos hosters e versões recentes do WordPress irão bloquear um scan como este por padrão. Portanto, o mais provável é que isso só funcione com versões desatualizadas do WordPress sem nenhuma proteção de um hoster.
Ok, até agora tudo bem. Agora podemos verificar se a página de login existe navegando para a URL do site + /wp-admin como so:
E com certeza, a máscara de Login aparece.
Passo 2 – Agarrando Código com Burpsuite
Agora vem a parte difícil, descobrindo o nome de usuário. Você poderia começar com admin, mas o WordPress normalmente gera um nome de usuário aleatório, então pode ser difícil de descobrir e você pode precisar fazer mais algumas pesquisas sobre o alvo.
No exemplo do Sr. Robô, eu sei que o nome de usuário é Elliot (não é muito difícil de adivinhar). Você também poderia tentar executar a hidra contra algumas listas de nomes de usuário, mas primeiro, precisamos usar burpsuite para pegar algum código da página de login.
Inicie o burpsuite digitando
sudo burpsuite
Crie um novo Projeto Temporário usando os padrões de Burp.
Navigate to the Target -> Aba Scope e clique em Add to Include to Include the wp-login page to the scope. Selecione Sim no diálogo pop-up.
Próximo, vá para o Menu Preferências do Firefox e role até encontrar o Network Proxy. Clique em Settings.
Select Manual proxy configuration e digite o IP 127.0.0.1 e a porta 8080. Assinale “Use este servidor proxy para todos os protocolos”. Clique OK.
Voltar para Burpsuite. Abra a guia Proxy. Agora volte para a página WP-Login. Digite qualquer nome de usuário e senha aleatórios e clique em Login. Certifique-se que o Privacy Badger, uBlock Origins e NoScript estão desabilitados para o site.
Após clicar em login, volte ao Burpsuite e veja a saída.
Agora temos algo que podemos alimentar a Hydra.
Passo 3 – Encontrar o nome de utilizador correcto
Vamos divertir-nos um pouco para lhe dar uma ideia de como pode encontrar um nome de utilizador para o seu alvo. O VM que estamos usando para este exemplo, como mencionado acima, é o tema Mr. Robot. Então é muito provável que o nome de usuário seja encontrado em algumas trivialidades que tem a ver com Mr. Robot.
Primeiro volte ao seu Burpsuite e feche-o. Nós não precisamos mais dele agora. Volte também às suas configurações de Proxy e desative o Proxy novamente.
Agora eu vou para a página do Sr. Robô na Wikipedia: https://en.wikipedia.org/wiki/Mr._Robot
E vou criar uma lista de nomes de utilizador a partir desta mesma página usando CeWL.
Abra uma nova janela de terminal e digite
sudo cewl -w usernames.txt -d1 -m4 https://en.wikipedia.org/wiki/Mr._Robot
Deixemo-lo quebrar.
- -w usernames.txt – deve estar bem claro, este é o nome da lista de palavras que será criada
- -d1 – Define a profundidade em que CeWL irá rastrear o site. 1 indica que ele ficará exatamente neste site e não abrirá nenhum link nele.
- -m4 – Define o comprimento mínimo da palavra que será colocada na lista
- https://en.wikipedia.org/wiki/Mr._Robot – obviamente o site que vamos rastejar.
Então, como você vê, você poderia aplicar esta técnica em qualquer site de destino relevante.
Executar um rápido
ls
Mostra-nos, que os nossos nomes de usuário.txt foi criado.
Em alguns casos você tem sorte usando wpscan para enumerar o nome de usuário, então sempre tente isto também:
wpscan --url http://www.targetwebsite.com --enumerate u
Agora vamos usar Hydra para Bruteforce esta lista contra a página wp-login.
Passo 4 – Nomes de usuário Bruteforcing com Hydra
Pois certo, hora de alimentar os nomes de usuário com Hydra. Eu encontrei este método particular em um dos muitos Walkthroughs de Vulnhub, embora não me lembre exatamente qual era, mas eu dou crédito onde o crédito é devido. Abra uma nova janela de terminal e digite:
hydra -V -L usernames.txt -p whatever 192.168.1.109 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'
Vamos quebrar isso.
- -V – Verbose
- -L – Nossos nomes de usuário.txt list
- -p whatever – A senha, nós não nos importamos, porque queremos descobrir o nome de usuário
- http-post-form – O tipo de ataque Brute Force que queremos executar
- /wp-login.php – O caminho para o formulário de login
- log = ^USER^&pwd=^PASS^&wp-submit=Log+In – Os valores que serão enviados para o formulário, onde ^USER^ e ^PASS^ são os placeholders das nossas opções -L e -p
- F=Nome de utilizador inválido – Diz à hidra que a tentativa falhou se devolver o nome de utilizador inválido
Muito bem, vamos correr esse comando, vamos?
E com certeza, recebemos de volta que o login com o nome de usuário elliot foi bem sucedido (o que não foi, apenas confirmou que o formulário web não retornou o nome de usuário inválido).
Então ainda precisamos descobrir a senha. Mas pelo menos temos um username.
Passo 5 – Brute Forçando a Senha
Agora também poderíamos usar Hydra para Brute Forçar a senha do Usuário, mas prefiro usar wpscan pois a sintaxe é mais fácil.
wpscan --url http://192.168.1.109/wp-login.php --passwords /usr/share/wordlists/rockyou.txt.gz --usernames elliot --wp-content-dir http://192.168.1.109/wp-login.php
rockyou.txt.gz é apenas um exemplo, substitua por qualquer lista de senhas que você queira usar.
E voilá, temos o Nome de Usuário e a Senha.
Passo 6 – Implementando código malicioso no WordPress
Agora que temos acesso de Admin ao WordPress, há algumas maneiras de ir a partir daqui. Vou mostrar-lhe uma das mais fáceis.
No seu Computador Atacante vá a Locais -> Sistema de Ficheiros -> usr -> share -> webshells -> php e abra php-reverse-shell.php
Copiar todo o seu conteúdo:
Agora no WordPress, navegue até Appearance -> Editor e selecione o Template 404.php. Este é apenas um exemplo, você pode implementar o código de muitas maneiras diferentes.
Agora cole seu código aqui para que ele se pareça com isto:
Editar as linhas marcadas em amarelo para que o IP aponte para seu computador atacante e escolha uma porta.
Passo 7 – Iniciando um ouvinte Netcat
Agora de volta ao computador atacante, iniciamos um ouvinte Netcat:
nc -lvp 443
Então você vai abrir a página 404 como se estivesse indo para o link: www.yourtargetwebsite.com/404
E estamos dentro! Não só hackeamos a Conta de Administrador do WordPress, como também tivemos acesso ao próprio Servidor. A partir daqui você precisa usar suas habilidades para obter acesso elevado, mas isso não deve ser mais difícil agora.
Você pode ver, CTF’s são uma ótima maneira de aprender coisas novas.
Até a próxima vez, continue hackeando!
*Todas as técnicas fornecidas nos tutoriais do ceos3c.com são apenas para fins educacionais.
Todas as técnicas aqui ensinadas destinam-se apenas a ser usadas em ambiente de laboratório fechado ou em consentimento com uma segunda parte.
Se você estiver usando alguma dessas técnicas para fins ilegais, Ceos3c não pode ser responsabilizado por possíveis consequências legais.