Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
php2shell-exposurehunt — Repositorio para la búsqueda de exposiciones de PHP2Shell y análisis relacionados | Kitploit
Herramientas/GitHubGitHub/deathbydata/php2shell-exposurehunt
Herramientas DefensivasAnálisis de VulnerabilidadesAuditoría de ConfiguraciónRecopilación de InformaciónInteligencia de AmenazasRespuesta a IncidentesAnálisis de Registros
GitHub

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

php2shell-exposurehunt

Repositorio para la búsqueda de exposiciones de PHP2Shell y análisis relacionados

Ver Repositorio
1hace 16h 25mAún no revisado
Compartir

php2shell-exposurehunt

Búsqueda de exposición en Defender XDR para PHP2Shell (CVE-2026-109618 / CVE-2026-109619).

v3.3 · 22 oct 2026

Propósito: Encontrar dispositivos incorporados que ejecutan PHP activamente y que podrían estar expuestos a PHP2Shell.

Alcance: Defender XDR Advanced Hunting · endpoints Windows y Linux incorporados · ventana de retrospectiva de 30 días por defecto · solo PHP activo. No cubierto: instalaciones inactivas y dispositivos no gestionados. No ejecutable en Sentinel, porque la tabla de software instalado (TVM) solo se puede consultar en Defender XDR.

Búsquedas (ejecutar en orden, por SO)

BúsquedaWindowsLinuxPregunta
1windows/01-any-php.kqllinux/01-any-php.kql¿Algún PHP? Sí/no por dispositivo.
2windows/02-evidence-breakout.kqllinux/02-evidence-breakout.kqlDesglose de evidencias con versiones.
3windows/03-safety-net.kqllinux/03-safety-net.kqlRed de seguridad: dispositivos que sirven en puertos web, el proceso en escucha y el estado de PHP.

Qué se busca

Todas las comprobaciones de eventos usan una única ventana de retrospectiva, let Lookback = 30d; al inicio de cada búsqueda. Las direcciones IP provienen del informe más reciente por adaptador en los últimos 7 días. El software instalado es la instantánea actual de TVM. Solo se comprueban los endpoints incorporados (OnboardingStatus == "Onboarded", DeviceCategory == "Endpoint").

Bloque de detección de PHP (búsquedas 1, 2 y 3)

Un dispositivo cuenta como PHP visto si coincide cualquiera de estos casos.

Cómo se comparan los nombres:

  • Los nombres de archivo se comparan mediante expresiones regulares, no listas fijas. Cada regex no distingue mayúsculas de minúsculas y está anclada (^…$), por lo que debe coincidir con el nombre de archivo completo, nunca con parte de él.
  • Primero se ejecuta un filtro económico por prefijo de nombre: startswith "php", más frankenphp en ambos SO y lsphp en Linux. Después, la regex se ejecuta solo sobre lo que queda.
  • Los nombres de las tablas siguientes son ejemplos de lo que coincide con cada patrón y de lo que rechaza. Otros números de versión (por ejemplo, un futuro php9.dll) coinciden automáticamente.
  • patterns.test.js ejecuta cada regex contra estos ejemplos. Si cambias una regex, actualiza los ejemplos allí.

Windows

ComprobaciónTablaCoincidenciasPor qué importa
Ejecutables PHP iniciadosDeviceProcessEventsRegex ^(php(-cgi|-win)?|frankenphp)\.exe$, que permite exactamente cuatro nombres: php.exe (CLI), php-cgi.exe (worker FastCGI), php-win.exe (CLI, sin consola), frankenphp.exe (PHP embebido en un servidor web). phpstorm64.exe y otras herramientas php* no coincidenDemuestra que PHP se ejecutó. La búsqueda 2 muestra la versión a partir de la información de versión del binario (ProcessVersionInfoProductVersion)
DLLs del motor PHP cargadasDeviceImageLoadEventsRegex ^php\d*(ts|isapi|apache[\w_]*)?\.dll$: php, cualquier número de versión, un sufijo opcional ts / isapi / apache…, y luego .dll. Los ejemplos están en la tabla de DLL a continuación. Las DLLs de extensión (php_curl.dll y otras php_*.dll) no coinciden, porque el guion bajo no está permitido justo después de phpLa única forma de ver PHP ejecutándose dentro de otro proceso, como IIS o Apache, donde no se inicia ningún php*.exe. La búsqueda 2 muestra la DLL y el proceso que la cargó
Software instaladoDeviceTvmSoftwareInventoryNo es una regex: SoftwareName has "php" (php como palabra completa en el nombre) o SoftwareVendor =~ "php" (exacto, sin distinguir mayúsculas de minúsculas)Detecta instalaciones registradas. Las instalaciones por Zip (el método habitual en Windows) normalmente no se registran

Ejemplos de DLLs del motor PHP que coincide con el patrón de Windows

DLLQué esProceso host típico (mostrado en la búsqueda 2)
php8.dll, php7.dllMotor, compilación no thread-safephp-cgi.exe (FastCGI bajo IIS, nginx o Apache mod_fcgid), php.exe
php8ts.dll, php7ts.dll, php5ts.dllMotor, compilación thread-safehttpd.exe (módulo Apache), php.exe
php8apache2_4.dll, php7apache2_4.dll, php5apache2_2.dllCargador del módulo Apachehttpd.exe
php5isapi.dllMódulo ISAPI heredado de IIS (PHP 5.2 y anteriores, sin soporte)w3wp.exe

La tabla enumera nombres comunes, no una lista de permitidos: cualquier nombre que coincida con el patrón coincide. El nombre de la DLL solo indica la versión mayor. La versión exacta proviene de una fila de proceso php-cgi.exe o php.exe, o del software instalado, en el mismo dispositivo.

Linux

ComprobaciónTablaCoincidenciasPor qué importa
Binarios PHP iniciadosDeviceProcessEventsRegex ^(php[\d.]*|php-(fpm|cgi)[\d.]*|lsphp[\d.]*|frankenphp)$: php, php-fpm, php-cgi o lsphp (LiteSpeed), cada uno con una versión opcional formada por dígitos y puntos, más frankenphp. Ejemplos: php, php8.3, php83, php-fpm8.3, php-cgi8.2, lsphp83. Herramientas como phpunit, phpize y php-config no coinciden, porque solo pueden seguir dígitos y puntos al nombre baseDemuestra que PHP se ejecutó. La búsqueda 2 muestra una pista de major.minor, extraída del nombre, la ruta o la línea de comandos mediante una segunda regex, php-?(?:fpm|cgi)?/?(\d+\.\d+) (por ejemplo, php-fpm8.3 o /etc/php/8.3/ da 8.3.x)
Paquetes instaladosDeviceTvmSoftwareInventoryNo es una regex: SoftwareName contains "php" (subcadena, por lo que coinciden nombres con versión como php8.3-fpm y libapache2-mod-php8.3) o SoftwareVendor =~ "php"La única comprobación para Apache mod_php y para php-fpm en ejecución desde antes de la ventana: Linux no tiene aquí comprobación de carga de bibliotecas, y los workers php-fpm bifurcados no crean inicios de proceso

Comprobaciones de red de seguridad de la búsqueda 3

ComprobaciónTablaCoincidenciasPor qué importa
Servicio web activoDeviceNetworkEventsInboundConnectionAccepted en una lista fija de puertos: 80, 443, 8080, 8443. Se excluye loopback (RemoteIPType != "Loopback"). Muestra orígenes distintos y públicos, además del proceso que acepta (via <process>)Demuestra que un dispositivo está sirviendo, incluso si su servidor web se inició antes de la ventana de retroceso. ntoskrnl.exe = HTTP.sys (IIS, ADFS, RD Gateway, Windows Admin Center, SSTP)
Servidor web iniciadoDeviceProcessEventsNo es una regex: una lista fija de nombres exactos, sin distinguir mayúsculas (in~). Windows: w3wp.exe, httpd.exe, nginx.exe, caddy.exe, lighttpd.exe, frankenphp.exe. Linux: httpd, apache2, nginx, lshttpd, litespeed, openlitespeed, caddy, lighttpd, frankenphpUn servidor web que se inició en la ventana y no cargó PHP da "Not seen" con alta confianza. Windows también muestra nombres de grupos de aplicaciones de IIS, extraídos de la línea de comandos de w3wp.exe mediante la regex -ap\s+"?([^"\s]+)

Valores de la columna PHP en la búsqueda 3

Descargar herramienta