Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
php2shell-detect — Zeek- und Suricata-Erkennungen für „php2shell“ CVE-2026-109618 und CVE-2026-109619 | Kitploit
Tools/GitHubGitHub/corelight/php2shell-detect
DefensivwerkzeugePaket-Sniffing & AnalyseSchwachstellenanalyseWebsicherheitNetzwerksicherheitEinbruchserkennungIncident Response
GitHubcorelight/php2shell-detect

php2shell-detect

Zeek- und Suricata-Erkennungen für „php2shell“ CVE-2026-109618 und CVE-2026-109619

Repository anzeigen
1059vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

php2shell-Erkennung

Zeek-Erkennungen und Suricata-Regeln für HTTP-Indikatoren im Zusammenhang mit „php2shell“ CVE-2026-109618 / CVE-2026-109619, potenzielle RCE in der Speicherverwaltung von PHP longjmp(). Die Ergebnisse identifizieren verdächtigen Datenverkehr oder potenziell betroffene Software.

  • [Corelight-Blog: PHP2Shell-Erkennung vor der Offenlegung][blog]
  • PHP-Advisory

Zeek

Erfordert Zeek 7.0.0 oder neuer. Installation mit dem Zeek Package Manager:

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

Laden Sie installierte Pakete mit @load packages in Ihrer Zeek-Konfiguration. Für einen direkten Checkout laden Sie /path/to/php2shell-detect/scripts. Das Paket verwendet die Standard-Zeek-APIs für HTTP, Dateianalyse, Notices und Cluster.

Das Paket untersucht die Längen von POST-Feldnamen, ausgewählte serialisierte Datenstrukturen und wiederholte MIME-Header. Es korreliert außerdem zusammenhängende verdächtige Transaktionen anhand konfigurierter Session-Cookies. Antwort-Header liefern eine separate PHP-Versionsinventur. Der Datenverkehr muss für Zeek's HTTP- Analyzer sichtbar sein; verschlüsseltes HTTP erfordert eine Entschlüsselung vor der Untersuchung.

Notices

Alle Notice-Typen befinden sich unter PHP2SHELL:::

NoticeBeobachtung
PHP_Crash_SequenceZusammenhängende verdächtige HTTP-Transaktionen innerhalb einer Sitzung
Multipart_Header_FloodÜbermäßige Wiederholung erkannter MIME-Header
Large_Form_KeyUngewöhnlich langer URL-kodierter Formularfeldname
Serialized_Integer_OverflowUngewöhnlich großes serialisiertes Integer-Token
Serialized_Integer_CollisionsErkanntes serialisiertes Integer-Schlüsselmuster
Serialized_String_CollisionsErkanntes serialisiertes String-Schlüsselmuster
Serialized_Duplicate_ArrayWiederholtes serialisiertes Array-Eintragsmuster
Serialized_Object_RepetitionWiederholtes serialisiertes Objektmuster
Potentially_Affected_PHP_VersionAntwort-Header gibt eine Version innerhalb des konfigurierten betroffenen Bereichs an

Die Ergebnisse gehen an das Standard-notice.log; das Paket erstellt keinen zusätzlichen Log- Stream. Das sub-Feld der Notice liefert begrenzten Kontext wie Header-Name, Transaktionstiefe, Zähler und ein kurzes maskiertes POST-Body-Beispiel. Beispiele sind standardmäßig auf 64 Rohbytes vor der Maskierung begrenzt; setzen Sie notice_body_sample_bytes=0, um sie auszulassen. Cookies und ihre Digests werden nur im Speicher verwendet und von diesem Paket nicht protokolliert.

Standardmäßig kann jeder unterschiedliche Request-Indikator eine Notice pro Transaktion ausgeben. Wiederholte Treffer desselben Indikators werden unterdrückt. Setzen Sie detect_only_once=T, um die Body-Untersuchung nach dem ersten Request-Fund in jeder Transaktion zu beenden. Versionsinventur-Notices sind unabhängig von Request-Funden.

Konfiguration

Alle Einstellungen verwenden den Namespace PHP2SHELL:::

EinstellungStandardWirkung
detect_only_onceFMeldet jeden unterschiedlichen Request-Indikator; T stoppt nach dem ersten Fund
max_trans_depth3Untersucht die ersten drei HTTP-Transaktionen pro Verbindung; 0 bedeutet alle
inspect_cookiesTVerwendet Session-Cookies zur Korrelation
session_cookie_names{"PHPSESSID"}Cookie-Namen, die zur Zuordnung von Sitzungen verwendet werden
correlation_window1 minMaximales Alter des ausstehenden Sitzungskorrelationszustands
max_pending_sessions1000Obergrenze für beibehaltene Einträge in jeder Korrelationstabelle
inspect_post_bodiesTUntersucht POST-Entity-Daten und MIME-Header
http_body_analysis_byte_depth8388608Konservative Obergrenze von 8 MiB für die POST-Body-Untersuchungsarbeit, gemeinsam über MIME-Teile hinweg; 0 deaktiviert die Body-Zustellung
body_overlap_bytes256Beibehaltener Überlappungsbereich für Muster, die Body-Chunks überschreiten
large_form_key_bytes65536Schwellenwert für Formularnamen in Wire-Bytes
multipart_header_threshold128Anzahl wiederholter erkannter MIME-Header, die für einen Fund erforderlich ist
notice_body_sample_bytes64Maximale Roh-Body-Bytes pro Notice-Beispiel; 0 lässt Beispiele aus
detect_affected_php_versionsTAktiviert die Versionsinventur über Antwort-Header
php_version_notice_interval1 hrUnterdrückt Versions-Notices pro Server-IP über Ports und Versionen hinweg
php_fixed_patch_versions8.2: 35, 8.3: 36, 8.4: 27, 8.5: 12Vorläufiger erster fester Patch pro Branch

Zum Beispiel:

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

Die POST-Inspektion verwendet Dateianalyse-Chunks mit begrenzter Überlappung, anstatt ganze Bodies zusammenzusetzen. Die Zählung von Formularnamen berücksichtigt Werttrennzeichen und rohe NUL-Terminierung. Nur berechtigte POST-Entitäten erhalten einen Analyzer; Body-Budgets und Transaktionslimits schränken den Erkennungsumfang bewusst ein. Diese Indikatoren sind unvollständig und können auch auf harmlosen Datenverkehr zutreffen.

In einem Zeek-Cluster leiten Worker kleine Sitzungsbeobachtungen mit Cluster::publish_hrw() an Proxies weiter. Beide Stufen für dieselbe Sitzung erreichen denselben Proxy, der sie abgleicht und PHP_Crash_Sequence direkt auslöst. Die Notice behält die Connection-ID, UID und Transaktionstiefe des Follow-ups bei; peer_descr identifiziert den Proxy. Worker behalten für Callbacks keine vollständigen Connection- oder HTTP-Records.

Trigger und nicht zugeordnete Follow-ups laufen nach correlation_window ab, wobei max_pending_sessions jede Tabelle begrenzt. Proxies behalten das erste nicht zugeordnete Follow-up für jeden Sitzungsschlüssel. Ein Trigger schlägt diesen Schlüssel direkt nach, um in umgekehrter Reihenfolge eintreffende Nachrichten zu verarbeiten; spätere nicht zugeordnete Follow-ups für denselben Schlüssel werden zusammengeführt, bis dieser Eintrag zugeordnet wird oder abläuft. Der Abgleich verwendet Beobachtungszeitstempel sowie Client, Server, Server-Port, HTTP-Host und Sitzungs-Digest. Standalone-Zeek korreliert lokal. Normale Proxy-Konnektivität ist erforderlich.

Proxy-Notices verwenden die standardmäßige Notice-Unterdrückung, die nach UID und Transaktionstiefe für correlation_window erfolgt. Dies ist unabhängig von Worker-Funden und stoppt nicht die Body-Inspektion der Worker. Gleichzeitige Übereinstimmungen für unterschiedliche Sitzungs-Cookies auf verschiedenen Proxies können dennoch doppelte Notices erzeugen, bevor sich die Cluster-Unterdrückung durchsetzt.

PHP-Versionsinventar

Die äußeren Antwort-Header Server und X-Powered-By werden geprüft, einschließlich Antworten auf GET. Header-Namen sind case-insensitiv. Die betroffene Untergrenze ist PHP 5.4.0. Die folgenden Grenzwerte gehen davon aus, dass der nächste Patch nach den am 18. Oktober 2026 geprüften neuesten stabilen Releases beide Fehler behebt:

BranchNeuestes stabiles Release bei PrüfungVorläufig erste korrigierte Version
8.28.2.348.2.35
8.38.3.358.3.36
8.48.4.268.4.27
8.58.5.118.5.12

Konfigurierte korrigierte Versionen und spätere Patches im selben Branch lösen keinen Alarm aus. Branches ohne konfigurierten Grenzwert bleiben Kandidaten. Gängige Hersteller-Suffixe verwenden die zugrunde liegende numerische Version. Banner können fehlen, umgeschrieben sein oder einen Hersteller-Build mit Backports von Fixes widerspiegeln, daher sind dies Inventarhinweise.

Suricata-Regeln

Tool herunterladen