HTB Sorcery: Conquistando o Domínio FreeIPA

HTB Sorcery: Conquistando o Domínio FreeIPA

Este artigo detalha a exploração do domínio FreeIPA em uma máquina HTB, começando com a exploração de um site, passando por injeção Cypher, contornando a verificação Passkey e obtendo RCE via serviço Kafka. O objetivo final é obter privilégios de superusuário.

MundiX News·10 de maio de 2026·10 min de leitura·👁 1 views

HTB Sorcery: Conquistando o Domínio FreeIPA

Este artigo detalha a exploração de um domínio FreeIPA, cobrindo uma cadeia completa de exploração, começando com um ataque ao site. Exploraremos a injeção Cypher, contornaremos a verificação Passkey no site e obteremos RCE através do serviço Kafka. Realizaremos reconhecimento no host, seguido de phishing bem-sucedido e muito mais.

Nossa meta final é obter privilégios de superusuário na máquina Sorcery da plataforma de treinamento Hack The Box. O nível de dificuldade é "insano".

Aviso: É melhor se conectar às máquinas HTB usando ferramentas de anonimização e virtualização. Não faça isso a partir de computadores onde dados importantes são armazenados: você estará na mesma rede que outros participantes.

Reconhecimento

Escaneamento de Portas

Adicione o endereço IP da máquina ao /etc/hosts:

10.10.11.73 sorcery.htb

Execute um escaneamento de portas.

Dica: O escaneamento de portas é o primeiro passo padrão em qualquer ataque. Ele permite que o atacante descubra quais serviços estão aceitando conexões no host. Com base nessas informações, o próximo passo para obter um ponto de entrada é selecionado.

A ferramenta mais conhecida para escaneamento é o Nmap. Você pode melhorar os resultados do seu trabalho com este script:

bash
#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f1 | tr ' ' ',' | sed s/,$//)
nmap -p $ports -A $1

Ele funciona em duas etapas. A primeira executa um escaneamento rápido normal, a segunda, mais minuciosa, usando scripts embutidos (opção -A).

Mais detalhes sobre como trabalhar com o Nmap podem ser encontrados no artigo "Nmap desde o início. Dominando o reconhecimento e o escaneamento de rede".

Resultado do script:

O scanner encontrou duas portas abertas:

  • 22 - OpenSSH 9.6p1;
  • 443 - Servidor web Nginx 1.27.1.

O campo commonName no certificado SSL contém o nome de domínio do site. Ele já está gravado em /etc/hosts.

Página de Login

Ponto de Entrada

Na página, você pode se registrar e fazer login usando credenciais ou um token Passkey. Após o registro, obtemos uma lista de posts.

Página Principal do Site

Nas configurações do perfil, você pode gravar um Passkey em um token.

Página de Perfil

Como sabemos o domínio real do site, tentaremos encontrar outros por força bruta - isso expandirá a área de teste. Para escanear subdomínios, você pode usar ffuf.

Dica: Uma das primeiras ações ao testar a segurança de um aplicativo web é escanear por força bruta de diretórios para encontrar informações ocultas e funções inacessíveis aos visitantes comuns. Para isso, você pode usar programas como dirsearch e DIRB.

Eu prefiro o ffuf leve e muito rápido. Ao iniciar, especificamos os seguintes parâmetros:

  • -u - URL;
  • -w - dicionário (eu uso dicionários do conjunto SecLists);
  • -t - número de threads;
  • -r - executar redirecionamentos;
  • -fs - filtrar páginas por tamanho;
  • -fc - excluir respostas com código 403 do resultado.

A posição da força bruta é marcada com a palavra FUZZ.

Execute o scanner, listando todos os parâmetros:

bash
ffuf -u "https://sorcery.htb/" -H 'Host: FUZZ.sorcery.htb' -w subdomains-bitquark-top100000.txt -t 128

Resultado do escaneamento de subdomínios:

Todas as opções da lista foram incluídas na saída do utilitário, portanto, é melhor usar filtros, por exemplo, por tamanho da resposta (parâmetro -fs).

bash
ffuf -u "https://sorcery.htb/" -H 'Host: FUZZ.sorcery.htb' -w subdomains-bitquark-top100000.txt -t 128 -fs 169

Resultado do escaneamento de subdomínios:

Encontramos um novo recurso e atualizamos a entrada no arquivo /etc/hosts.

10.10.11.73 sorcery.htb git.sorcery.htb

Página Principal do Gitea

Na lista de projetos públicos, há um infrastructure acessível sem autorização.

Lista de Repositórios

Conteúdo do repositório infrastructure

O repositório tem uma tarefa ativa, que fala sobre a injeção de uma consulta SQL no banco de dados.

Página da Tarefa

Ponto de Apoio

Injeção Cypher

Baixamos o código-fonte do repositório e encontramos todos os manipuladores de solicitações. Um dos manipuladores GET aceita id e retorna o objeto Product correspondente.

Código-fonte do aplicativo

O restante do artigo está disponível apenas para assinantes do site Xakep.ru. Para continuar a leitura, é necessário se tornar um membro da comunidade.

📤 Compartilhar & Baixar