Hackeando o Elliot Alderson!

Introdução

O Mr Robot CTF da TryHackMe é um desafio emocionante que abrange teste de penetração, segurança de rede e criptografia. Baseado na popular série de TV Mr. Robot, este CTF é projetado para simular cenários reais de hacking e requer um certo nível de experiência para ser concluído. Dito isto, vamos começar.
Behind Security main logo, cropped.
Simplificando cibersegurança.
Hacking MrRobot!

01. Enumeração

Primeiramente, vá para a sala do desafio na TryHackMe (crie uma conta se ainda não tiver feito), siga os passos listados lá e clique em “iniciar máquina” para começar.

A fase de enumeração em pentesting (não apenas em ambientes CTF) é um passo crucial em que o pentester reúne o máximo de informações possível sobre o sistema ou rede alvo. Isso inclui a identificação dos endereços IP, portas abertas, serviços em execução e versão do sistema operacional. O objetivo da enumeração é criar um mapa detalhado do sistema alvo, o que ajuda o profissional a identificar possíveis vulnerabilidades e fraquezas. A ferramenta que vamos usar chama-se “nmap“.

O Nmap é uma ferramenta poderosa e amplamente utilizada para exploração de rede e auditoria de segurança. É uma utilidade de linha de comando que permite aos usuários escanear redes, identificar hosts e descobrir portas abertas e serviços em execução. É perfeito para o processo de enumeração, não é verdade? Bem, há muitas informações no resultado do scan do nmap na captura de tela ao lado, mas o que podemos extrair dela é simples: existem 3 portas abertas: 22/tcp, 80/tcp e 443/tcp. O SSH está em execução na porta 22 e há um servidor web apache nas portas 80 (http) e 443 (https).

Image contains the result of a nmap scan from the TryHackMe's MrRobot CTF
Resultado do scan do nmap
Image that contains the result of a web directory bruteforcing on the MrRobot CTF from TryHackMe.
Output from the web directory bruteforce attack

01. Enumeração (Web)

Graças ao scan do nmap, agora podemos ter certeza de que há um servidor web em execução. Antes de mais nada, se você ainda não baixou uma wordlist para executar esta tarefa, aqui está um excelente recurso para você. Existem muitos diretórios relacionados ao WordPress, então você pode usar ferramentas como wpscan para procurar por vulnerabilidades comuns do wp, mas neste caso, é melhor fazermos a varredura manualmente. Há algum conteúdo incomum em /robots.

User-agent: *
fsocity.dic
key-1-of-3.txt

Achamos a primeira key! http://$IP/key-1-of-3.txt
Além da key, o arquivo http://$IP/fsocity.dic pode ser usado futuramente para executar um ataque de força bruta. Dando uma olhada no conteúdo dele, notamos que há uma grande quantidade de palavras, e a maioria delas não aparecem só uma vez. Em ordem para executar um ataque de força bruta com sucesso, vamos criar um novo arquivo contendo somente as palavras que aparecem uma vez.

A diferença, em palavras, entre a lista original e a que foi criada por nós.

02. Acesso inicial

Uma das coisas mais importantes no campo de pentesting/ethical hacking é conhecer o seu alvo. Como este CTF é temático do Mr. Robot, podemos supor que um nome de usuário válido possa ser algo como mrrobot, robot, fsociety, elliot e assim por diante, que são palavras-chave relacionadas ao show. Depois de algumas tentativas em http://$IP/wp-login.php, uma mensagem de erro diferente apareceu. Parece que elliot é um nome de usuário válido!

Agora, podemos usar o dicionário previamente encontrado para realizar um ataque de força bruta contra esta página de login. Ferramentas como o hydra seriam úteis, mas como estamos lidando com o wordpress, prefiro usar o wpscan em vez disso.

A efetividade do ataque depende de vários fatores, como a força e complexidade da senha, a velocidade do computador do atacante e as medidas de segurança implementadas pelo sistema visado. Neste caso, somos capazes de adivinhar facilmente a senha de elliot, pois ele não está usando uma senha muito segura e não há medidas de segurança implementadas no site.

Resultado do ataque de força bruta contra o xmlrpc usando o wpscan

03. Foothold no sistema e estabilização de shell

Referenciando este artigo super legal sobre upload de shell no WordPress, somos capazes de obter um bom resultado. Para isso, precisamos substituir algum código legítimo no website pelo nosso código malicioso. Primeiramente, faça o download deste código PHP. Vamos usá-lo para enganar a aplicação web.

No painel do WordPress, conectado como elliot, vá em Appearance > Themes > Editor. Escolhi particularmente o arquivo 404.php, removi todo o código legítimo e colei o PHP reverse shell. Não se esqueça de alterar o valor de $ip para o endereço IP da sua VPN. Você pode ver na imagem ao lado que eu alterei o valor para o meu.

Shells pelo netcat não são estáveis por padrão, então precisamos fazer alguns processos manuais para poder estabilizar.

Recebendo a conexão da shell reversa por ativar o arquivo 404.php (é só abrir algum diretório aleatório no website)

04. Escalando privilégios (horizontalmente)

Conseguimos obter uma shell como o usuário “daemon”, mas nosso objetivo é assumir o controle completo dessa máquina, então vamos trabalhar em obter uma conta mais privilegiada. Podemos ver no diretório /home outro usuário chamado “robot”. Ao entrar na pasta, o primeiro arquivo que chama nossa atenção é um arquivo de texto contendo o hash da senha dele em MD5. Como o MD5 é um algoritmo criptográfico antigo e facilmente quebrável atualmente, podemos quebrá-lo localmente usando ferramentas como hashcat ou johntheripper, ou usar sites como crackstation (presente na imagem abaixo).

05. Escalando privilégios (verticalmente)

Ataques de escalonamento de privilégios verticais podem ser realizados de várias maneiras, como explorando vulnerabilidades de software, senhas fracas ou controles de acesso mal configurados. Depois de muito tempo procurando por falhas de configuração do sistema, um binário interessante finalmente se destacou. O nmap tem um bit SUID definido, e isso não é comum. Fazendo uma rápida pesquisa no Google, encontrei este artigo falando sobre o nmap com suid. Aparentemente, podemos executar o nmap interativamente e obter uma shell como root. Chique!

$ nmap –interactive
nmap> !sh
# id
uid=1002(robot) gid=1002(robot) euid=0(root) groups=0(root),1002(robot)

A terceira key está em /root.

06. Conclusão

O CTF apresenta um cenário realista inspirado pela série famosa de TV Mr. Robot, permitindo que os participantes aprendam e pratiquem técnicas de hacking em um ambiente seguro e controlado. O desafio abrange uma grande quantidade de tópicos, incluindo reconhecimento, escaneamento de vulnerabilidades, quebra de senhas, e escalonamento de priviégios. Completar esse desafio não só melhora as habilidades ténicas do participante, mas também dá um senso de conquista e satisfação. De maneira geral, o Mr. Robot CTF da TryHackMe é um ótimo recurso para entusiastas de cibersegurança aprenderem e praticarem hacking ético de uma maneira divertida e estimulante.

Esperamos que você tenha considerado o nosso conteúdo útil, e te convidamos a explorar mais do nosso website para descobrir outros tópicos interessantes que nós cobrimos. De cibersegurança a programação, nos esforçamos muito para dar aos nossos leitores as informações mais recentes e relevantes que podem ajudá-los a se manterem informados e irem além da curva. Temos o comprometimento de providenciar a melhor experiência de usuário a você, e estamos abertos para feedbacks e sugestões pelo formulário de contato. Obrigado por escolher a BehindSecurity, esperamos ver você novamente em breve!

Rolar para cima