
انقطاعات شبكة ويندوز الجزئية على مستوى التطبيق بشكل C أصلي وفي صيغة BOF
انقطاعات شبكة Windows جزئية محددة النطاق على مستوى التطبيق للتحقق الحتمي في اختبارات الفريق الأحمر.
C أصلي • منصة تصفية Windows • IPv4 + IPv6 • تنظيف ديناميكي
بدء سريع • الملفات التعريفية • واجهة سطر الأوامر • كيف يعمل • البناء • BOF • التحقق
[!CAUTION] البيئات الخاضعة للرقابة فقط. شغّل DutchOven فقط على الأنظمة التي تملكها أو المصرّح لك صراحةً بتقييمها. فهو يغيّر سياسة شبكة Windows الحية ويتطلب رمز مسؤول (Administrator) مرفوعًا. راجع SECURITY.md قبل الاستخدام.
DutchOven هو أداة أولية صغيرة عمدًا للفريق الأحمر على Windows، تضع مسارات تنفيذية صريحة خلف بوابة شبكة حتمية. خلال كل فترة، تُحظر التطبيقات المطابقة لفترة زمنية محدودة ويُسمح لها بالمرور خلال الفترة المتبقية.
النتيجة هي انقطاع جزئي قابل للتكرار، وليس إيقاف خدمة أو قاعدة جدار حماية دائمة. فهو يوفّر طريقة خاضعة للرقابة لقياس منطق إعادة المحاولة، والتخزين المؤقت، وانتقالات حالة السلامة، والتسليم المتأخر، وسلوك الاسترداد بينما تظل العملية قيد التشغيل.
| خيار التصميم | القيمة للمشغّل |
|---|---|
| مرشحات WFP محددة النطاق على مستوى التطبيق | يقيّد التجربة على المسارات التي يوفّرها المشغّل |
| دورة تشغيل حظر/سماح موقوتة | ينتج تدهورًا قابلًا للقياس بدلًا من حالات متصل/غير متصل فقط |
| تغييرات ذرّية في IPv4 وIPv6 | يحافظ على عائلتي العناوين في الجدول الزمني نفسه |
| جلسة WFP ديناميكية | يزيل المرشحات والطبقة الفرعية المولّدة عند إغلاق جلسة المحرك |
| تنفيذ أصلي بلغة C | لا اعتماد على Go أو .NET أو تثبيت خدمة أو برنامج تشغيل مخصص |
| أهداف صريحة فقط | لا تعداد للمنتجات، ولا تخمين للعمليات، ولا قاعدة بيانات أهداف مضمّنة |
يتحكم DutchOven في تفويض اتصالات الصادرة الجديدة. الاتصال القائم الذي فوّضه WFP مسبقًا لا يُنهى بأثر رجعي؛ استخدم اتصال canary جديدًا أو أجبر الهدف بشكل مستقل على إعادة الاتصال عند التحقق من تدفق طويل الأمد دون انقطاع.
افتح نافذة PowerShell مرفوعة.
تحقق من الهدف المُحلَّل والتوقيت دون تغيير WFP:
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --dry-run
شغّل ملف تعريف brownout الافتراضي:
.\dutchoven.exe --app 'C:\Path\To\Target.exe'
هذا هو الاستدعاء الأدنى الكامل. --app هو العلم الوحيد المطلوب. يحجب الملف الشخصي الافتراضي الهدف لمدة 1.5 ثانية في كل فترة مدتها 5 ثوانٍ ويخرج بعد دقيقة واحدة.
استخدم Ctrl+C للتوقف مبكرًا. يزيل DutchOven الفلاتر النشطة قبل إغلاق جلسة WFP الخاصة به؛ الجلسة الديناميكية هي شبكة الأمان للتنظيف إذا تمت مقاطعة العملية.
تدمج ملفات التعريف جداول زمنية مفيدة حتى لا يحتاج المشغّلون إلى تحديد كل قيمة توقيت.
| ملف التعريف | الحجب | المرور | الفترة | المدة | الاستخدام المقصود |
|---|---|---|---|---|---|
light | 0.5 ث | 4.5 ث | 5 ث | 60 ث | مراقبة إعادة المحاولة منخفضة التأثير |
brownout | 1.5 ث | 3.5 ث | 5 ث | 60 ث | تجربة افتراضية متوازنة |
heavy | 3.5 ث | 1.5 ث | 5 ث | 60 ث | اختبار ضغط قائمة الانتظار والتعافي |
blackout | 5 ث | 0 ث | 5 ث | 30 ث | انقطاع كامل قصير ومحدود |
اختر ملف تعريف بعلم اختياري واحد:
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy
dutchoven --app <absolute.exe> [--app <absolute.exe> ...] [options]
| العَلم | مطلوب | الوصف |
|---|---|---|
--app <absolute.exe> | نعم | مسار الملف التنفيذي الهدف؛ كرّره لتطبيقات متعددة العمليات |
--profile <name> | لا | light أو brownout أو heavy أو blackout |
--period-ms <ms> | لا | تجاوز فترة الحظر/التمرير الكاملة |
--block-ms <ms> | لا | تجاوز الجزء المحظور من كل فترة |
--duration-ms <ms> | لا | تجاوز إجمالي وقت التشغيل المحدود |
--warmup-ms <ms> | لا | السماح بحركة المرور قبل أول فترة حظر |
--dry-run | لا | التحقق من الإعدادات وطباعتها دون فتح WFP |
--json | لا | إخراج الإعدادات وانتقالات الحالة بصيغة JSON Lines |
--help | لا | طباعة مساعدة الأمر |
اطبع إصدار البناء باستخدام dutchoven version.
تتجاوز أعلام التوقيت المتقدمة الملف الشخصي المحدد بغض النظر عن ترتيب الوسائط:
.\dutchoven.exe `
--app 'C:\Path\To\Target.exe' `
--period-ms 8000 `
--block-ms 2000 `
--duration-ms 120000 `
--warmup-ms 5000
JSON Lines مخصصة لأدوات اختبار البرامج وجمع الأدلة:
.\dutchoven.exe --app 'C:\Path\To\Target.exe' --profile heavy --json
يتم فرض حدود التوقيت بواسطة المحلل:
100–60000 ms1 ms حتى الفترة الكاملة900000 ms (15 دقيقة)60000 msexplicit executable path
│
▼
WFP application ID
│
├── ALE_AUTH_CONNECT_V4 ──┐
└── ALE_AUTH_CONNECT_V6 ──┤── BLOCK / PASS schedule
│
└── dynamic WFP session cleanup
تُحل أهداف Windows كـ Unicode وتُقنَّن إلى مسارها الطويل قبل أن يطلب DutchOven
هوية تطبيق من WFP. يمنع هذا أن يُنشئ اسم مسار مستعار بصيغة 8.3 مثل ADMINI~1 بصمت
مرشحًا لا يمكنه مطابقة هوية الصورة طويلة الصيغة الخاصة بالعملية.
تطبع وحدة التحكم انتقالات الحالة مع طوابع زمنية بالساعة الجدارية وطوابع زمنية نسبية إلى الجدول الزمني:
Targets: 1
C:\Path\To\Target.exe
Schedule: block=1500ms pass=3500ms period=5000ms duration=60000ms warmup=0ms
Profile: brownout
Mode: brownout
BLOCK cycle=1 filters=2 wall_ms=1786973903811 elapsed_ms=0
PASS cycle=1 wall_ms=1786973908813 elapsed_ms=5000
...
CLEAN filters=0 session=closed cycles=12 wall_ms=1786973963812 elapsed_ms=60000
يتضمن بناء Linux الافتراضي سلوك التحليل والتشغيل التجريبي. تتطلب بوابة WFP الحية البناء المتقاطع الأصلي لنظام Windows.
make check
make release
make check يشغّل الاختبارات المحمولة، ويُجري عمليات بناء متقاطعة لنواتج Windows، ويتحقق من عقد استيراد BOF. يُنتج make release نواتج إصدار مجرّدة من الرموز وSHA256SUMS ضمن artifacts/v<version>/.
المخرجات الأساسية:
| الناتج | الغرض |
|---|---|
build/dutchoven | محلّل POSIX وثنائي التشغيل التجريبي |
build/dutchoven_tests | اختبارات الوحدة الأساسية |
build-windows/dutchoven.exe | بوابة WFP الأصلية على Windows |
build-windows/dutchoven_tests.exe | ثنائي الاختبار الأصلي على Windows |
build-windows/windows_canary.exe | كاناري اختبار التكامل الموجّه |
bof/dutchoven.x64.o | ملف كائن Beacon x64 مُصدَّر بإصدار |
artifacts/v<version>/ | ملف EXE إصدار مجرّد من الرموز، وBOF، ومجاميع التحقق |
لا يرتبط الملف التنفيذي على Windows إلا بمكتبات نظام Windows: fwpuclnt وrpcrt4 وadvapi32.
يُغلّف BOF أداة DutchOven على هيئة نبضة قصيرة متزامنة تعمل ضمنيًا داخل Beacon x64. ابنِ كائن COFF، وحدّث الناتج المُصدَّر بإصدار، وتحقق من عقد استيراده باستخدام:
make bof
حمّل bof/dutchoven.cna في Script Manager الخاص بـ Cobalt Strike، ثم استدعِه من وحدة تحكم Beacon:
dutchoven "C:\Path\To\Target.exe"
dutchoven "C:\Path\To\Target.exe" heavy