Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
php2shell-exposurehunt — Dépôt pour la recherche d'exposition PHP2Shell et les analyses associées | Kitploit
Outils/GitHubGitHub/deathbydata/php2shell-exposurehunt
Outils DéfensifsAnalyse des VulnérabilitésAudit de ConfigurationCollecte d'InformationsRenseignement sur les MenacesRéponse aux IncidentsAnalyse de Journaux
GitHub

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 →
deathbydata/php2shell-exposurehunt

php2shell-exposurehunt

Dépôt pour la recherche d'exposition PHP2Shell et les analyses associées

Voir le dépôt
3il y a 21 heuresPas encore vérifié
Partager

php2shell-exposurehunt

Chasse aux expositions dans Defender XDR pour PHP2Shell (CVE-2026-109618 / CVE-2026-109619).

v3.3 · 22 oct. 2026

Objectif : Identifier les appareils intégrés exécutant activement PHP et susceptibles d'être exposés à PHP2Shell.

Périmètre : Chasse avancée Defender XDR · points de terminaison Windows et Linux intégrés · fenêtre d'analyse de 30 jours par défaut · PHP actif uniquement. Non couvert : installations dormantes et appareils non gérés. Non exécutable dans Sentinel, car la table des logiciels installés (TVM) n'est interrogeable que dans Defender XDR.

Chasses (à exécuter dans l'ordre, par OS)

ChasseWindowsLinuxQuestion
1windows/01-any-php.kqllinux/01-any-php.kqlDu PHP ? Oui/non par appareil.
2windows/02-evidence-breakout.kqllinux/02-evidence-breakout.kqlExtraction des preuves avec les versions.
3windows/03-safety-net.kqllinux/03-safety-net.kqlFilet de sécurité : appareils servant sur des ports web, processus en écoute et statut PHP.

Ce qui est recherché

Toutes les vérifications d'événements utilisent une seule fenêtre d'analyse, let Lookback = 30d; en tête de chaque chasse. Les adresses IP proviennent du dernier rapport par adaptateur sur les 7 derniers jours. Les logiciels installés correspondent à l'instantané TVM actuel. Seuls les points de terminaison intégrés sont vérifiés (OnboardingStatus == "Onboarded", DeviceCategory == "Endpoint").

Bloc de détection PHP (chasses 1, 2 et 3)

Un appareil est considéré comme PHP détecté si l'une de ces conditions est remplie.

Mode de correspondance des noms :

  • Les noms de fichiers sont mis en correspondance par expressions régulières, et non par des listes fixes. Chaque regex est insensible à la casse et ancrée (^…$), elle doit donc correspondre au nom de fichier complet, jamais à une partie.
  • Un filtre économique sur le préfixe du nom s'exécute d'abord : startswith "php", plus frankenphp sur les deux OS et lsphp sur Linux. La regex ne s'exécute ensuite que sur ce qui reste.
  • Les noms dans les tableaux ci-dessous sont des exemples de ce que chaque motif accepte et de ce qu'il rejette. D'autres numéros de version (par exemple un futur php9.dll) correspondent automatiquement.
  • patterns.test.js exécute chaque regex sur ces exemples. Si vous modifiez une regex, mettez à jour les exemples correspondants.

Windows

VérificationTableCorrespondancesPourquoi c'est important
Exécutables PHP démarrésDeviceProcessEventsRegex ^(php(-cgi|-win)?|frankenphp)\.exe$, qui autorise exactement quatre noms : php.exe (CLI), php-cgi.exe (worker FastCGI), php-win.exe (CLI, sans console), frankenphp.exe (PHP intégré dans un serveur web). phpstorm64.exe et les autres outils php* ne correspondent pasProuve que PHP s'est exécuté. La chasse 2 affiche la version à partir des informations de version du binaire (ProcessVersionInfoProductVersion)
DLL du moteur PHP chargéesDeviceImageLoadEventsRegex ^php\d*(ts|isapi|apache[\w_]*)?\.dll$ : php, un numéro de version éventuel, un suffixe facultatif ts / isapi / apache…, puis .dll. Les exemples figurent dans le tableau des DLL ci-dessous. Les DLL d'extension (php_curl.dll et autres php_*.dll) ne correspondent pas, car le tiret bas n'est pas autorisé juste après phpLe seul moyen de voir PHP s'exécuter dans un autre processus, tel qu'IIS ou Apache, où aucun php*.exe ne démarre. La chasse 2 affiche la DLL et le processus qui l'a chargée
Logiciels installésDeviceTvmSoftwareInventoryPas une regex : SoftwareName has "php" (php en tant que mot entier dans le nom) ou SoftwareVendor =~ "php" (exact, insensible à la casse)Détecte les installations enregistrées. Les installations par zip (la méthode Windows habituelle) ne s'enregistrent généralement pas

Exemples de DLL du moteur PHP correspondant au motif Windows

DLLCe que c'estProcessus hôte typique (affiché dans la chasse 2)
php8.dll, php7.dllMoteur, build non thread-safephp-cgi.exe (FastCGI sous IIS, nginx ou Apache mod_fcgid), php.exe
php8ts.dll, php7ts.dll, php5ts.dllMoteur, build thread-safehttpd.exe (module Apache), php.exe
php8apache2_4.dll, php7apache2_4.dll, php5apache2_2.dllChargeur de module Apachehttpd.exe
php5isapi.dllModule IIS ISAPI hérité (PHP 5.2 et antérieur, non pris en charge)w3wp.exe

Le tableau liste des noms courants, pas une liste d'autorisation : tout nom correspondant au motif est retenu. Le nom de la DLL ne donne que la version majeure. La version exacte provient d'une ligne de processus php-cgi.exe ou php.exe, ou des logiciels installés, sur le même appareil.

Linux

VérificationTableCorrespondancesPourquoi c'est important
Binaires PHP démarrésDeviceProcessEventsRegex ^(php[\d.]*|php-(fpm|cgi)[\d.]*|lsphp[\d.]*|frankenphp)$ : php, php-fpm, php-cgi ou lsphp (LiteSpeed), chacun avec une version facultative composée de chiffres et de points, plus frankenphp. Exemples : php, php8.3, php83, php-fpm8.3, php-cgi8.2, lsphp83. Des outils comme phpunit, phpize et php-config ne correspondent pas, car seuls des chiffres et des points peuvent suivre le nom de baseProuve que PHP a été exécuté. La chasse 2 affiche un indice majeur.mineur, extrait du nom, du chemin ou de la ligne de commande par une seconde regex, php-?(?:fpm|cgi)?/?(\d+\.\d+) (par exemple php-fpm8.3 ou /etc/php/8.3/ donne 8.3.x)
Paquets installésDeviceTvmSoftwareInventoryPas une regex : SoftwareName contains "php" (sous-chaîne, donc les noms versionnés comme php8.3-fpm et libapache2-mod-php8.3 correspondent) ou SoftwareVendor =~ "php"La seule vérification pour Apache mod_php et pour php-fpm en cours d'exécution depuis avant la fenêtre : Linux n'a pas de vérification de chargement de bibliothèque ici, et les workers php-fpm forked ne créent pas de démarrages de processus

Vérifications de filet de sécurité de la chasse 3

Télécharger l’outil