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-detect — Detecções Zeek e Suricata para "php2shell" CVE-2026-109618 e CVE-2026-109619 | Kitploit
Ferramentas/GitHubGitHub/corelight/php2shell-detect
Ferramentas DefensivasSniffing e Análise de PacotesAnálise de VulnerabilidadesSegurança WebSegurança de RedeDetecção de IntrusãoResposta a Incidentes
GitHubcorelight/php2shell-detect

php2shell-detect

Detecções Zeek e Suricata para "php2shell" CVE-2026-109618 e CVE-2026-109619

Ver Repositório
1059há 3 diasAinda não revisado

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 →
Compartilhar

Detecção de php2shell

Detecções Zeek e regras Suricata para indicadores HTTP associados ao "php2shell" CVE-2026-109618 / CVE-2026-109619, potencial RCE no tratamento de memória longjmp() do PHP. Os achados identificam tráfego suspeito ou software potencialmente afetado.

  • [Blog da Corelight: detecção do PHP2Shell antes da divulgação][blog]
  • Aviso do PHP

Zeek

Requer Zeek 7.0.0 ou superior. Instale com o Zeek Package Manager:

zkg install https://github.com/corelight/php2shell-detect

Carregue os pacotes instalados com @load packages na sua configuração do Zeek. Para um checkout direto, carregue /path/to/php2shell-detect/scripts. O pacote utiliza as APIs padrão de HTTP, análise de arquivos, notices e cluster do Zeek.

O pacote inspeciona comprimentos de nomes de campos POST, estruturas selecionadas de dados serializados e cabeçalhos MIME repetidos. Também correlaciona transações suspeitas relacionadas usando cookies de sessão configurados. Os cabeçalhos de resposta fornecem um inventário separado de versões do PHP. O tráfego deve estar visível para o analisador HTTP do Zeek; HTTP criptografado requer descriptografia antes da inspeção.

Notices

Todos os tipos de notice estão sob PHP2SHELL:::

NoticeObservação
PHP_Crash_SequenceTransações HTTP suspeitas relacionadas dentro de uma sessão
Multipart_Header_FloodRepetição excessiva de cabeçalhos MIME reconhecidos
Large_Form_KeyNome de campo de formulário codificado em URL incomumente longo
Serialized_Integer_OverflowToken inteiro serializado incomumente grande
Serialized_Integer_CollisionsPadrão reconhecido de chave inteira serializada
Serialized_String_CollisionsPadrão reconhecido de chave de string serializada
Serialized_Duplicate_ArrayPadrão repetido de entrada de array serializado
Serialized_Object_RepetitionPadrão repetido de objeto serializado
Potentially_Affected_PHP_VersionO cabeçalho de resposta anuncia uma versão dentro do intervalo afetado configurado

Os resultados vão para o notice.log padrão; o pacote não cria nenhum stream de log adicional. O campo sub do notice fornece contexto limitado, como nome do cabeçalho, profundidade da transação, contagens e uma pequena amostra escapada do corpo POST. As amostras são limitadas a 64 bytes brutos antes do escaping por padrão; defina notice_body_sample_bytes=0 para omiti-las. Os cookies e seus digests são usados apenas em memória e não são registrados por este pacote.

Por padrão, cada indicador de requisição distinto pode emitir um notice por transação. Correspondências repetidas do mesmo indicador são suprimidas. Defina detect_only_once=T para interromper a inspeção do corpo após a primeira descoberta de requisição em cada transação. Os notices de inventário de versão são independentes das descobertas de requisição.

Configuração

Todas as configurações usam o namespace PHP2SHELL:::

ConfiguraçãoPadrãoEfeito
detect_only_onceFRelata cada indicador de requisição distinto; T interrompe após a primeira descoberta
max_trans_depth3Inspeciona as três primeiras transações HTTP por conexão; 0 significa todas
inspect_cookiesTUsa cookies de sessão para correlação
session_cookie_names{"PHPSESSID"}Nomes de cookies usados para associar sessões
correlation_window1 minIdade máxima do estado pendente de correlação de sessão
max_pending_sessions1000Limite de entradas retidas em cada tabela de correlação
inspect_post_bodiesTInspeciona dados de entidade POST e cabeçalhos MIME
http_body_analysis_byte_depth8388608Teto conservador de 8 MiB no trabalho de inspeção do corpo POST, compartilhado entre partes MIME; 0 desativa a entrega do corpo
body_overlap_bytes256Sobreposição retida para padrões que cruzam chunks do corpo
large_form_key_bytes65536Limite em bytes de transmissão para nome de formulário
multipart_header_threshold128Cabeçalhos MIME reconhecidos repetidos necessários para uma descoberta
notice_body_sample_bytes64Máximo de bytes brutos do corpo por amostra de notice; 0 omite as amostras
detect_affected_php_versionsTAtiva o inventário de versões a partir dos cabeçalhos de resposta
php_version_notice_interval1 hrSuprime notices de versão por IP de servidor entre portas e versões
php_fixed_patch_versions8.2: 35, 8.3: 36, 8.4: 27, 8.5: 12Primeiro patch corrigido provisório por branch

Por exemplo:

redef PHP2SHELL::detect_only_once = T;
redef PHP2SHELL::notice_body_sample_bytes = 0;
redef PHP2SHELL::session_cookie_names += { "custom_session" };

A inspeção POST usa chunks de análise de arquivo com sobreposição limitada, em vez de montar corpos inteiros. A contagem de nomes de formulário respeita separadores de valor e terminação NUL bruta. Apenas entidades POST elegíveis recebem um analisador; os orçamentos de corpo e os limites de transação restringem intencionalmente o escopo de detecção. Esses indicadores são incompletos e também podem corresponder a tráfego benigno.

Em um cluster Zeek, os workers encaminham pequenas observações de sessão para os proxies com Cluster::publish_hrw(). Ambos os estágios para a mesma sessão chegam ao mesmo proxy, que os correlaciona e gera PHP_Crash_Sequence diretamente. O aviso retém o ID de conexão, o UID e a profundidade de transação do follow-up; peer_descr identifica o proxy. Os workers não retêm registros completos de conexão ou HTTP para callbacks.

Triggers e follow-ups não correspondidos expiram após correlation_window, com max_pending_sessions limitando cada tabela. Os proxies retêm o primeiro follow-up não correspondido para cada chave de sessão. Um trigger consulta essa chave diretamente para lidar com mensagens que chegam em ordem inversa; follow-ups não correspondidos posteriores para a mesma chave são coalescidos até que essa entrada corresponda ou expire. A correspondência usa timestamps de observação e o cliente, servidor, porta do servidor, host HTTP e digest da sessão. O Zeek standalone correlaciona localmente. É necessária conectividade normal com o proxy.

Os avisos de proxy usam a supressão padrão de avisos com chave baseada em UID e profundidade de transação para correlation_window. Isso é independente das descobertas dos workers e não interrompe a inspeção de corpo dos workers. Correspondências simultâneas para diferentes cookies de sessão em proxies diferentes ainda podem produzir avisos duplicados antes que a supressão do cluster se propague.

Inventário de versões do PHP

Os cabeçalhos de resposta externos Server e X-Powered-By são verificados, incluindo respostas a GET. Os nomes dos cabeçalhos não diferenciam maiúsculas de minúsculas. O limite inferior afetado é o PHP 5.4.0. Os seguintes limites assumem que o próximo patch após as versões estáveis mais recentes verificadas em 18 de outubro de 2026 abordará ambos os bugs:

BranchVersão estável mais recente no momento da verificaçãoPrimeira versão corrigida provisória
8.28.2.348.2.35
8.38.3.358.3.36
8.48.4.268.4.27
8.58.5.118.5.12

Versões corrigidas configuradas e patches posteriores no mesmo branch não geram alerta. Branches sem um limite configurado permanecem candidatos. Sufixos comuns de fornecedores usam a versão numérica subjacente. Os banners podem estar ausentes, ser reescritos ou refletir uma build de fornecedor com correções backportadas, portanto, estes são apenas indícios de inventário.

Regras do Suricata

Baixar ferramenta