CrowdStrike, çoğu kişi tarafından EDR yetenekleriyle tanınıyor. Falcon ekosistemi ise endpoint korumasını Next-Gen SIEM, Exposure Management ve threat intelligence ile bir araya getiren kapsamlı bir güvenlik platformu sunuyor. Kritik bir zafiyet ortaya çıktığında bu bütünlük, kurumun etkilenen asset’lerini belirlemesi, exploitation sinyallerini araştırması ve saldırının ilerleyişine müdahale etmesi açısından önem taşıyor. PHP2Shell zafiyeti üzerinde gerçekleştirdiğimiz gerçek PoC testi, bu yeteneklerin aynı senaryoda nasıl birbirini tamamladığını somut loglarla gösteriyor.
İnternete açık bir web sunucusundaki güvenlik açığı, iş uygulamalarını, bu uygulamaların erişebildiği verileri ve sunucunun kurumsal network ile ilişkisini aynı incelemenin parçası haline getirir. Bu nedenle güvenlik ekibinin zafiyet duyurusundan sonra hızla kapsam belirlemesi gerekir. Hangi sistemde PHP çalıştığı, bu sistemin internete açık olup olmadığı, hangi sürümü kullandığı ve koruma kapsamında bulunup bulunmadığı bilinmeden önceliklendirme eksik kalır. Saldırı başladığında ise web loglarının ve endpoint telemetrisinin birlikte okunabilmesi gerekir.
PHP2Shell bu ihtiyacı görünür kılan bir örnek. PHP core içindeki bir zafiyet değerlendirilirken uygulama envanteri, runtime davranışı ve OS üzerindeki aktiviteler birlikte ele alınmalıdır. Web sunucusunun error logunda görülen memory exhaustion sinyali, PHP altından başlatılan bir command interpreter ve aynı sunucu için raporlanan zafiyet bulgusu farklı sorulara yanıt verir. Analistin görevi bu loglar arasındaki ilişkiyi kurarak hangi girişimin gerçekleştiğini, hangi davranışın engellendiğini ve hangi riskin devam ettiğini ortaya koymaktır.
InfinitumIT olarak bu çalışmada PHP2Shell zafiyetine ait gerçek bir Proof of Concept (PoC) kullanarak kontrollü testler gerçekleştirdik. CrowdStrike Next-Gen SIEM üzerinde exploitation aktivitesinin ürettiği logları, Endpoint Security tarafında post-exploitation aktivitelerine yönelik tespit ve engellemeleri, Exposure Management üzerinde ise Network Vulnerability Scanning sonuçlarını inceledik. Böylece aynı hedef için hem saldırı sırasında oluşan kanıtları hem de zafiyet durumuna ilişkin bulguları değerlendirdik.
Bu yaklaşım, InfinitumIT CROC hizmeti kapsamında MDR, threat intelligence, Vulnerability Management ve Purple Team çalışmalarının birlikte işletilmesinin operasyonel karşılığını ortaya koyuyor. Etkilenen sistemlerin erken belirlenmesi, tespit içeriğinin doğrulanması ve post-exploitation aktivitelerine müdahale edilmesi, patch süreci tamamlanana kadar riskin yönetilmesine katkı sağlıyor. Makalenin devamında, gerçek PoC testimizde oluşan logları ve Falcon ekosisteminin saldırı zinciri boyunca ürettiği sonuçları adım adım ele alıyoruz.
PHP2Shell zafiyetinin kapsamı ve test ortamı
PHP2Shell adıyla anılan CVE-2026-109618 ve CVE-2026-109619, PHP core içinde bulunan ve uygun koşullarda kimlik doğrulama gerektirmeden Remote Code Execution (RCE) sağlayabilen iki kritik zafiyettir. Her ikisi için CVSS skoru 9.2 olarak açıklanmıştır. Sorun, PHP üzerinde çalışan belirli bir CMS veya eklentiyle sınırlı değildir. Web request’i işleyen PHP runtime ve kullanılan yapılandırma, exposure durumunun değerlendirilmesinde belirleyicidir.
CVE-2026-109618, memory exhaustion sırasında kısmen hazırlanmış request verisinin geçersiz durumda kalmasıyla ilişkilidir. CVE-2026-109619 ise bir request için ayrılan memory alanı serbest bırakıldıktan sonra yaşamaya devam eden stale global state ile ilişkilidir. Bu durum, sonraki request sırasında use-after-free davranışına yol açabilir. Her iki zafiyette de application layer altındaki memory management davranışı önem taşır.
Zafiyetin root cause ayrıntılarını ve etkilenen PHP yapılarını ele alan inceleme, InfinitumIT Purple Team ekibimiz tarafından ayrıca yayımlandı. Bu makalede odağımız, gerçek PoC ile yapılan testin savunma tarafında ürettiği izler ve bunların operasyonel karşılığıdır.
Gerçek PoC ile doğrulanan senaryo
Testlerde hedef olarak INFNT-LAB-SRV01 isimli Windows sunucusu kullanıldı. Process loglarında Apache ve IIS üzerinden çalışan php-cgi.exe örnekleri görüldü. PHP2Shell PoC’siyle gerçekleştirilen exploitation aktivitesinin ardından, web sunucusu bağlamında command execution ve file transfer davranışları denendi. Böylece initial access sinyali ile post-exploitation aşamasındaki OS aktiviteleri birlikte değerlendirildi.
| Bileşen | Test kapsamı |
|---|---|
| Saldırgan sistem | Senaryo anlatımında 192.168.120.30 adresiyle temsil edilen PoC istemcisi |
| Hedef sistem | INFNT-LAB-SRV01 üzerinde Windows web sunucusu ortamı |
| Web ve PHP bileşenleri | Apache httpd.exe, IIS w3wp.exe ve php-cgi.exe; zafiyet listesinde PHP 8.3.35 |
| Gözlem ve koruma | Falcon Insight process telemetrisi ve IOA logları; Next-Gen SIEM log correlation |
| Exposure kontrolü | Exposure Management üzerinden Network Vulnerability Scanning |
Bu çalışma, PHP2Shell PoC’si kullanılarak gerçekleştirilen bir testtir. İki CVE’nin her biri için bağımsız bir exploit başarı oranı ölçümü değildir. Değerlendirme, test edilen davranışlar ve Falcon üzerinde görülen sonuçlar üzerinden yapılmıştır.
Next-Gen SIEM için log akışının hazırlanması
PHP2Shell’in exploitation aşamasındaki izlerini araştırmak için web sunucusunun error logları Next-Gen SIEM’e aktarıldı. Lab Test isimli bağlantı, Apache Httpserver ürünü için Push türünde yapılandırıldı. Bağlantıda apache-httpserver parser’ı ve aynı isimli repository kullanıldı. Active durumu ve veri alımının görünmesi, test sırasında log akışının çalıştığını gösterdi.
Bu akış, Falcon sensörünün endpointten topladığı process telemetrisini tamamlıyor. PHP request’inin işlenmesi sırasında oluşan hata Apache loglarından araştırılırken, command execution ve prevention sonuçları endpoint loglarından izlenebiliyor. Üçüncü taraf log alımı sağlanmadan bu loglara bağımlı dashboard ve korelasyon kurallarından sonuç beklenmemelidir.
Request startup aşamasında memory exhaustion tespiti
Testte CrowdStrike tarafından sunulan “Generic - Web - PHP Memory Exhaustion During Request Startup (CVE-2026-109618 & CVE-2026-109619)” isimli korelasyon kuralı tespit üretmiştir. İlgili detection, Medium severity ile ve Initial Access via Exploit Public-Facing Application tactic ve technique bilgisiyle gösterilmiştir.
Kuralın ayırt edici noktası, sıradan bir PHP memory error logundan daha dar bir örüntüyü aramasıdır. Memory exhaustion mesajının “in Unknown on line 0” ifadesiyle birlikte görülmesi, normal application script bağlamı oluşmadan, request startup aşamasında meydana gelen bir hataya işaret eder. Bu örüntü araştırma için değerli olup tek başına başarılı command execution gerçekleştiğini doğrulamaz.
Exploitation aktivitesinin loglarla incelenmesi
İlgili alarma ait Event summary alanı, tespitin dayandığı log source bilgisini göstermektedir.
İlgili hata, php-cgi.exe tarafından üretilen PHP Fatal error mesajını içermektedir. Logda görülen PHP memory limit değeri 134217728 bayt, yani 128 MiB idi. Mesajdaki “Unknown on line 0” bölümü, bu çalışmada kullanılan korelasyon kuralı açısından temel sinyali oluşturmaktadır.
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted
... in Unknown on line 0
Burada izlenen şey, PHP runtime’ın request’i işlerken bıraktığı error logudur. Bir web request’in access log içinde olağan görünmesi veya doğrudan High severity bir EDR alert’i üretmemesi, bu hata sinyalinin önemini ortadan kaldırmaz. Analist, error logunu client IP adresi, hedef sunucu ve yakın zamanlı process aktiviteleriyle birlikte ele almalıdır.
Üretim ortamında benzer bir eşleşme görüldüğünde, önce hatayı doğuran request ve aynı kaynaktan tekrarlanan denemeler incelenir. Ardından PHP ya da web sunucusu altından başlatılan command interpreter process’leri, beklenmedik network bağlantı aktiviteleri ve dosya yazma aktiviteleri araştırılır. Bu testte de log sinyalinin anlamı, sonraki bölümlerdeki process loglarıyla birlikte değerlendirilmiştir.
Emerging Threat Response dashboard bulguları
Next-Gen SIEM içindeki Emerging Threat Response dashboard’u, PHP2Shell için toplanan logları tek görünümde sunmaktadır. PHP Memory Exhaustion Events sayacı olayla ilgili üç event göstermektedir. Zaman grafiği ve ayrıntılı log tablosu, aynı test kapsamındaki memory exhaustion loglarının araştırılmasını kolaylaştırmaktadır.
Dashboard üzerinde event sayısının görülmesi, üç bağımsız başarılı ihlal gerçekleştiği anlamına gelmez. Bu sayı, seçili zaman aralığı ve veri kaynaklarında sorguya uyan event sayısını ifade eder. Bu üç log, PoC testimiz sırasında oluşan memory exhaustion event’lerini göstermektedir.
Dashboard’da sonuç bulunmaması, ortamın etkilenmediğini tek başına kanıtlamaz. Veri kaynağının kapsama alınması, parser’ın beklenen alanları üretmesi, zaman aralığı ve ilgili içeriğin etkinliği birlikte doğrulanmalıdır. Testimizde aktif Apache bağlantısı ve ham error logları, dashboard bulgularını desteklemektedir.
Apache üzerinde post-exploitation engellemeleri
Post-exploitation aşamasındaki kontrollü denemelerden birinde, Apache altında çalışan PHP process’i üzerinden file transfer amacıyla bir komut çalıştırıldı. Process tree üzerinde services.exe altında httpd.exe örnekleri, ardından php-cgi.exe ve cmd.exe görülmektedir. Bu ilişki, komutun web sunucusu bağlamından geldiğini belirlemek açısından önemli bulgulardandır. Aşağıdaki log, exploitation sonrasında gerçekleştirilen bu aktiviteye yönelik endpoint engellemesini göstermektedir.
İlgili komut satırı ile cmd.exe üzerinden certutil.exe çağrılarak HTTP adresinden x.txt dosyasının C:\Windows\Temp\lab_x.txt konumuna indirilmesi amaçlanmıştır. Certutil, meşru bir Windows bileşeni olmasına rağmen saldırganlar tarafından file transfer için de kullanılabilen bir araçtır. Buradaki değerlendirmede komutun tek başına varlığı kadar, PHP altından başlatılması ve web request ile ilişkili bağlamı önem taşımaktadır.
Falcon bu aktiviteyi PublicFacingAppExploitation IOA adıyla, High severity ile ve T1190 tekniğiyle ilişkilendirmiştir. Ayrıntı ekranındaki Action taken alanında Process blocked sonucu görüldü. Bu log, test edilen post-exploitation komutunun engellendiğini göstermektedir.
Gözlenen aksiyon, ilgili cmd.exe davranışı üzerindedir. Bu sonuç, PHP’deki memory corruption sorununun root cause’unun giderildiğini veya mümkün olan tüm PHP2Shell varyantlarının ilk HTTP request aşamasında önlendiğini ifade etmez. Endpoint üzerindeki engelleme, saldırının OS üzerindeki ilerleyişini sınırlayan savunma katmanıdır.
MDR analisti açısından bu aşamada inceleme, file transfer aktivitesinin tamamlanıp tamamlanmadığı ve daha önce başka bir dosya ya da process oluşup oluşmadığı sorularıyla sürdürülür. Yalnızca engellenen komuta bakılarak incident kapatılmamalıdır. PHP ve web sunucusunun yakın zamanlı aktiviteleri birlikte değerlendirilmelidir.
IIS üzerinde post-exploitation engellemeleri
İkinci örnekte, post-exploitation kapsamında gerçekleştirilen keşif (recon) aktivitesine yönelik engelleme incelenmiştir. IIS application pool bağlamındaki process tree üzerinde svchost.exe, w3wp.exe, php-cgi.exe ve cmd.exe görülmüştür. İlgili log DefaultAppPool kullanıcısıyla ilişkilidir; böylece Apache örneğinin yanında IIS üzerinde çalışan PHP’nin ürettiği post-exploitation davranışı da gözlemlenmiştir.
Denemede cmd.exe üzerinden aşağıdaki komut çalıştırılmaya çalışıldı. Bu komut, domain içindeki Domain Admins grubunu sorgulamaya yöneliktir. Web application pool bağlamından başlatılması, olağan web request işleme davranışının dışında bir reconnaissance aktivitesi oluşturulduğunu göstermektedir.
net.exe group "Domain Admins" /domain
Falcon, aktiviteyi ReconCommands IOA adıyla ve High severity ile işaretleyerek alarm üretmiştir. Action taken alanındaki Process blocked sonucu, bu uzaktan komut çalıştırma (RCE) denemesinin engellendiğini doğrulamaktadır.
Bu tespit, Domain Admins grubunun başarıyla listelendiğini veya privilege escalation gerçekleştiğini göstermemektedir. Savunma tarafında değerli olan bulgu, PHP runtime üzerinden başlatılan işletim sistemi komutunun root process ile birlikte görünür olması ve PHP2Shell sonrasındaki post-exploitation aşamasında müdahale edilebilmesidir.
SIEM ve endpoint tespitlerinin aynı case içinde değerlendirilmesi
Falcon Next-Gen SIEM arayüzünde Apache kaynaklı correlation logları ile endpoint security kaynaklı EDR tespitleri birlikte görülmektedir. Bu görünüm, exploitation aşamasındaki hata sinyalinden post-exploitation aktivitelerine geçişi araştırmak için ortak bir başlangıç noktası sağlamıştır.
Next-Gen SIEM üzerinde olayla ilgili oluşturulan INFNT-LAB-SRV01 PHP2Shell Exploitation isimli case’in Workbench görünümünde, web tespiti hedef sunucu ve kullanıcı bağlamlarıyla ilişkilendirilmiştir. DefaultAppPool ve sunucu hesabı altında görülen cmd.exe logları, ReconCommands ve PublicFacingAppExploitation gibi IOA’larla birlikte incelenmektedir.
Listede ApexCloudDetectMedium, ApexCloudDetectHigh ve ApexCloudDetectLowest gibi ek tespit adları da yer almaktadır. Aynı process veya davranış birden fazla mekanizma tarafından işaretlenebildiğinden, alert sayısı bağımsız saldırı sayısı olarak okunmamalıdır. Workbench ilişkilendirmesi analizi desteklemektedir.
Exposure Management ile Network Vulnerability Scanning
Saldırı davranışlarının görünürlüğüne ek olarak, hedef sistemin zafiyet durumu Exposure Management üzerinden değerlendirildi. Network scanning altında “INFNT-LAB Php2Shell Vulnerability Scan” isimli zafiyet taraması çalıştırılmıştır.
İlgili network zafiyet taraması 36 dakika 3 saniye sürmüştür. Tarama yalnızca test kapsamındaki INFNT-LAB-SRV01 web sunucusu üzerinde gerçekleştirilmiş ve toplam yedi zafiyet bulgusu raporlanmıştır. Bu bulgulardan dördü PHP2Shell ile ilişkilidir.
CrowdStrike Exposure Management / Vulnerabilities zafiyet yönetimi panelinden gerçekleştirilen kontrollerde PHP2Shell ile ilişkili zafiyetler INFNT-LAB-SRV01 sunucusu için görünmektedir. Her iki CVE için Critical CVSS ve ExPRT derecesi, 73/100 risk skoru ve Vulnerability confidence alanında Potential değeri görülmektedir.
Test sonuçları ve kurumlar için öncelikli aksiyonlar
Gerçek PHP2Shell PoC’siyle yapılan bu çalışmada üç farklı güvenlik sorusuna karşılık bulduk. Next-Gen SIEM, web sunucusundaki exploitation sinyalini görünür kıldı. Falcon Insight, PHP altından başlatılan şüpheli komutları process ilişkileriyle görünür kıldı; iki örnekte Process blocked aksiyonu görüldü. Exposure Management ise hedefteki PHP sürümünü iki CVE ile ilişkilendirerek zafiyet durumunun takibine katkı sağladı.
| Katman | Gözlenen sonuç | Operasyonel karşılığı |
|---|---|---|
| Exploitation sinyali | Üç PHP Memory Exhaustion event’i | Request ve error logları üzerinden araştırma |
| Post-exploitation file transfer | PublicFacingAppExploitation; Process blocked | Post-exploitation file transfer girişiminin engellenmesi |
| Post-exploitation reconnaissance | ReconCommands; Process blocked | Post-exploitation reconnaissance girişiminin engellenmesi |
| Network Vulnerability Scanning | Bir asset üzerinde toplam yedi bulgu; iki PHP2Shell CVE’si | Exposure durumunun doğrulanması ve patch uygulamasına öncelik verilmesi |
Kapsam ve güncelleme önceliği
EDR kapsamındaki web sunucuları belirlenmeli; kurum envanteriyle karşılaştırılarak kapsam dışında kalan web ve PHP sistemleri doğrulanmalıdır. İnternete açık sistemler öncelikli ele alınmalıdır.
Web request’i gerçekten işleyen PHP sürümü doğrulanmalı; aynı sunucudaki farklı kurulumlar, IIS FastCGI tanımları, application pool yapıları ve container imajları ayrı değerlendirilmelidir.
Desteklenen dallarda en az PHP 8.5.12, 8.4.27, 8.3.36 veya 8.2.35 düzeyine güncellenmeli; dağıtım üreticisinin backport patch’leri ayrıca doğrulanmalıdır. Güncelleme sonrasında ilgili worker ve servisler yenilenerek çalışan sürüm kontrol edilmelidir.
Falcon sensör sağlığı, prevention policy’ler ve web sunucusu log akışı doğrulanmalı; correlation rule’lar gerçek loglarla test edilmelidir.
Patch öncesi döneme yönelik retrospective threat hunting yapılmalı; şüpheli child process aktiviteleri, file write aktiviteleri ve outbound connection aktiviteleri araştırılmalı; iyileştirme sonrasında yeniden tarama gerçekleştirilmelidir.
Ekrandaki genel remediation önerisi PHP 8.5.12 veya üzerini işaretlese de testte listelenen 8.3.35 dalı için düzeltilmiş alt sınır 8.3.36’dır. Patch kararı, kullanılan dal ve üretici güvenlik duyurusu üzerinden verilmelidir. Endpoint üzerindeki başarılı engelleme, PHP güncellemesinin yerine geçmez.
InfinitumIT CROC kapsamında erken önlem ve müdahale
PHP2Shell gibi geniş etki alanına sahip bir zafiyette güvenlik operasyonunun ilk işi, kurumun hangi sistemlerinin risk altında olduğunu belirlemektir. InfinitumIT CROC hizmetinde MDR, SOC, threat intelligence, Vulnerability Management ve Purple Team doğrulamasını aynı operasyon içinde ele almak, duyurulan bir zafiyetin kurum üzerindeki somut karşılığını daha erken ortaya koyar.
MDR ekibi, EDR telemetrisi üzerinden web sunucusu process’lerini ve koruma kapsamını inceler. Kurumun uygulama envanteriyle yapılan karşılaştırma, sensörü bulunmayan ya da izleme kapsamına alınmamış sunucuların belirlenmesini sağlar. İnternet erişimi, PHP sürümü ve sunucunun iş kritikliği birlikte değerlendirilerek kontrollerin önceliği belirlenir.
Threat intelligence ve Vulnerability Management çalışmaları, yeni bilginin etkilenen asset listesine dönüştürülmesine yardımcı olur. Network Vulnerability Scanning gibi yeteneklerle bulunan sürüm ve servis bulguları doğrulanır, patch sorumluları ile paylaşılır ve iyileştirme süreci izlenir. Bu sayede yalnızca bir CVE bildirimi yapılmasıyla sınırlı kalınmadan, kurumun hangi asset üzerinde hangi aksiyonu alacağı netleştirilir.
Tespit tarafında MDR ve SOC, web ve PHP error loglarının SIEM’e ulaşmasını, correlation içeriğinin çalışmasını ve endpoint üzerindeki prevention policy’lerin uygun kapsamda uygulanmasını takip eder. Alert oluştuğunda analist, error logunu aynı sunucudaki process tree ve command line ile birleştirir. Incident kapsamına göre müdahale, kanıt koruma ve kurum bilgilendirmesi yürütülür.
Purple Team testleri bu kontrollerin gerçek saldırı davranışları karşısındaki sonucunu gösterir. Bu çalışmada kullanılan gerçek PHP2Shell PoC’si de log toplama, correlation ve endpoint engellemesini aynı senaryoda değerlendirmemize imkân vermiştir.
Bu senaryoda gördüğümüz değer, exposure bilgisi ile saldırı kanıtlarının aynı incelemeye taşınabilmesidir. Kurum açısından hedef; etkilenen sistemi erken belirlemek, exploitation sinyalini araştırmak, saldırının ilerleyişini sınırlamak ve kalıcı çözüm olan patch durumunu doğrulayarak operasyonu tamamlamaktır.
İlgili incelemeler ve teknik kaynaklar
- PHP güvenlik duyurusu ve düzeltilmiş sürümler
- PHP güvenlik duyurusu: RCE via OOM corruption
- PHP güvenlik duyurusu: RCE via stale global state
- InfinitumIT Purple Team PHP2Shell teknik incelemesi
Hakan Aksungur
InfinitumIT MDR