Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
php2shell-exposurehunt — Repositório para busca de exposição do PHP2Shell e análises relacionadas | Kitploit
Ferramentas/GitHubGitHub/deathbydata/php2shell-exposurehunt
Ferramentas DefensivasAnálise de VulnerabilidadesAuditoria de ConfiguraçãoColeta de InformaçõesInteligência de AmeaçasResposta a IncidentesAnálise de Logs
GitHub

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
deathbydata/php2shell-exposurehunt

php2shell-exposurehunt

Repositório para busca de exposição do PHP2Shell e análises relacionadas

Ver Repositório
1há 16h 25mAinda não revisado
Compartilhar

php2shell-exposurehunt

Caça de exposição no Defender XDR para PHP2Shell (CVE-2026-109618 / CVE-2026-109619).

v3.3 · 22 de out. de 2026

Objetivo: Encontrar dispositivos integrados que estejam executando PHP ativamente e que possam estar expostos ao PHP2Shell.

Escopo: Defender XDR Advanced Hunting · endpoints Windows e Linux integrados · janela de análise de 30 dias por padrão · apenas PHP ativo. Não coberto: instalações inativas e dispositivos não gerenciados. Não executável no Sentinel, pois a tabela de software instalado (TVM) só pode ser consultada no Defender XDR.

Hunts (executar em ordem, por SO)

HuntWindowsLinuxPergunta
1windows/01-any-php.kqllinux/01-any-php.kqlAlgum PHP? Sim/não por dispositivo.
2windows/02-evidence-breakout.kqllinux/02-evidence-breakout.kqlDetalhamento de evidências com versões.
3windows/03-safety-net.kqllinux/03-safety-net.kqlRede de segurança: dispositivos servindo em portas web, o processo em escuta e o status do PHP.

O que é caçado

Todas as verificações de eventos usam uma única janela de análise, let Lookback = 30d; no topo de cada hunt. Os endereços IP vêm do relatório mais recente por adaptador nos últimos 7 dias. O software instalado é o snapshot atual do TVM. Apenas endpoints integrados são verificados (OnboardingStatus == "Onboarded", DeviceCategory == "Endpoint").

Bloco de detecção de PHP (hunts 1, 2 e 3)

Um dispositivo conta como PHP visto se qualquer uma destas condições corresponder.

Como os nomes são correspondidos:

  • Nomes de arquivo são correspondidos por expressões regulares, não por listas fixas. Cada regex não diferencia maiúsculas de minúsculas e é ancorada (^…$), portanto deve corresponder ao nome de arquivo inteiro, nunca a parte dele.
  • Um filtro barato de prefixo de nome é executado primeiro: startswith "php", além de frankenphp em ambos os SOs e lsphp no Linux. A regex então é executada apenas sobre o que resta.
  • Os nomes nas tabelas abaixo são exemplos do que cada padrão corresponde e do que ele rejeita. Outros números de versão (por exemplo, um futuro php9.dll) correspondem automaticamente.
  • patterns.test.js executa cada regex contra esses exemplos. Se você alterar uma regex, atualize os exemplos lá.

Windows

VerificaçãoTabelaCorrespondênciasPor que importa
Executáveis PHP iniciadosDeviceProcessEventsRegex ^(php(-cgi|-win)?|frankenphp)\.exe$, que permite exatamente quatro nomes: php.exe (CLI), php-cgi.exe (worker FastCGI), php-win.exe (CLI, sem console), frankenphp.exe (PHP embutido em um servidor web). phpstorm64.exe e outras ferramentas php* não correspondemComprova que o PHP foi executado. O hunt 2 mostra a versão a partir das informações de versão do binário (ProcessVersionInfoProductVersion)
DLLs do motor PHP carregadasDeviceImageLoadEventsRegex ^php\d*(ts|isapi|apache[\w_]*)?\.dll$: php, qualquer número de versão, um sufixo opcional ts / isapi / apache…, e então .dll. Exemplos estão na tabela de DLLs abaixo. DLLs de extensão (php_curl.dll e outras php_*.dll) não correspondem, pois o sublinhado não é permitido logo após phpA única forma de ver o PHP em execução dentro de outro processo, como IIS ou Apache, onde nenhum php*.exe é iniciado. O hunt 2 mostra a DLL e o processo que a carregou
Software instaladoDeviceTvmSoftwareInventoryNão é regex: SoftwareName has "php" (php como palavra inteira no nome) ou SoftwareVendor =~ "php" (exato, sem diferenciar maiúsculas de minúsculas)Captura instalações registradas. Instalações via zip (o método usual no Windows) normalmente não se registram

Exemplos de DLLs do motor PHP que o padrão do Windows corresponde

DLLO que éProcesso host típico (mostrado na hunt 2)
php8.dll, php7.dllEngine, build não thread-safephp-cgi.exe (FastCGI sob IIS, nginx ou Apache mod_fcgid), php.exe
php8ts.dll, php7ts.dll, php5ts.dllEngine, build thread-safehttpd.exe (módulo Apache), php.exe
php8apache2_4.dll, php7apache2_4.dll, php5apache2_2.dllCarregador do módulo Apachehttpd.exe
php5isapi.dllMódulo ISAPI legado do IIS (PHP 5.2 e anteriores, sem suporte)w3wp.exe

A tabela lista nomes comuns, não uma allow-list: qualquer nome que corresponda ao padrão é correspondido. O nome da DLL fornece apenas a versão principal. A versão exata vem de uma linha de processo php-cgi.exe ou php.exe, ou de software instalado, no mesmo dispositivo.

Linux

VerificaçãoTabelaCorrespondênciasPor que importa
Binários PHP iniciadosDeviceProcessEventsRegex ^(php[\d.]*|php-(fpm|cgi)[\d.]*|lsphp[\d.]*|frankenphp)$: php, php-fpm, php-cgi ou lsphp (LiteSpeed), cada um com uma versão opcional composta por dígitos e pontos, além de frankenphp. Exemplos: php, php8.3, php83, php-fpm8.3, php-cgi8.2, lsphp83. Ferramentas como phpunit, phpize e php-config não correspondem, pois apenas dígitos e pontos podem seguir o nome baseComprova que o PHP foi executado. A hunt 2 mostra uma dica de major.minor, extraída do nome, caminho ou linha de comando por uma segunda regex, php-?(?:fpm|cgi)?/?(\d+\.\d+) (por exemplo, php-fpm8.3 ou /etc/php/8.3/ resulta em 8.3.x)
Pacotes instaladosDeviceTvmSoftwareInventoryNão é uma regex: SoftwareName contains "php" (substring, então nomes versionados como php8.3-fpm e libapache2-mod-php8.3 correspondem) ou SoftwareVendor =~ "php"A única verificação para Apache mod_php e para php-fpm em execução desde antes da janela: o Linux não tem verificação de carregamento de biblioteca aqui, e workers php-fpm bifurcados não criam inícios de processo

Verificações de rede de segurança da hunt 3

VerificaçãoTabelaCorrespondênciasPor que importa
Serviço web ativoDeviceNetworkEventsInboundConnectionAccepted em uma lista fixa de portas: 80, 443, 8080, 8443. Loopback é excluído (RemoteIPType != "Loopback"). Mostra fontes distintas e públicas, além do processo que aceita (via <process>)Comprova que um dispositivo está servindo, mesmo que seu servidor web tenha iniciado antes da janela de lookback. ntoskrnl.exe = HTTP.sys (IIS, ADFS, RD Gateway, Windows Admin Center, SSTP)
Servidor web iniciadoDeviceProcessEventsNão é uma regex: uma lista fixa de nomes exatos, sem distinção de maiúsculas/minúsculas (in~). Windows: w3wp.exe, httpd.exe, nginx.exe, caddy.exe, lighttpd.exe, frankenphp.exe. Linux: httpd, apache2, nginx, lshttpd, litespeed, openlitespeed, caddy, lighttpd, frankenphpUm servidor web que iniciou na janela e não carregou PHP resulta em "Not seen" com alta confiança. O Windows também mostra nomes de pools de aplicativos do IIS, extraídos da linha de comando do w3wp.exe pela regex -ap\s+"?([^"\s]+)

Valores da coluna PHP na hunt 3

Baixar ferramenta