
أداة WSUS MITM آلية تزيف حركة مرور Windows Update عبر ARP، وتقدّم ملفًا تنفيذيًا موقّعًا يحمل حمولة PowerShell، وترفع الصلاحيات إلى مستوى مسؤول محلي.
أتمتة هجوم WSUS
عادةً ما يكون الحصول على وصول إداري محلي إلى جهاز Windows المنضم إلى نطاق هو الخطوة الأولى أثناء اختبار الاختراق. في كثير من الحالات، يتم تكوين Windows Server Update Service (WSUS) لنشر التحديثات إلى العملاء عبر الشبكة المحلية باستخدام HTTP. بدون أمان HTTPS، يمكن للمهاجم شن هجوم رجل في المنتصف لتقديم تحديث إلى العميل، والذي سيتم تنفيذه بعد ذلك بصلاحيات SYSTEM. يمكن تقديم أي ملف تنفيذي موقّع من Microsoft كتحديث، بما في ذلك أمر مخصص يتم تنفيذ الملف التنفيذي به. إذا تمكن المهاجم من الحصول على شهادة TLS لخادم WSUS، يمكن أيضًا تنفيذ هذه التقنية عبر HTTPS (انظر ESC17 ومنشور مدونتنا).
لاستغلال هجوم WSUS تلقائيًا، تقوم هذه الأداة بانتحال عنوان IP الخاص بخادم WSUS على الشبكة باستخدام ARP، وعندما يطلب العميل المستهدف تحديثات Windows، تقدم له PsExec64.exe مع سكربت PowerShell محدد مسبقًا للحصول على صلاحيات المسؤول المحلي. يمكن تغيير كل من الملف التنفيذي الذي يتم تقديمه (الافتراضي: PsExec64.exe) والأمر الذي يتم تنفيذه إذا لزم الأمر.
افتراضيًا، يتحقق عميل Windows من وجود تحديثات كل 24 ساعة تقريبًا.
المتطلبات الأساسية:
النتيجة:
الميزات المنفذة:
باستخدام pipx (موصى به):
sudo apt install pipx python3-nftables
pipx ensurepath
pipx install wsuks --system-site-packages
sudo ln -s ~/.local/bin/wsuks /usr/sbin/wsuks
باستخدام poetry:
sudo apt install pipx git python3-nftables # poetry should still be installed with pipx, but apt will work as well
sudo pipx install poetry
sudo ln -s /root/.local/bin/poetry /usr/sbin/poetry
git clone https://github.com/NeffIsBack/wsuks
cd wsuks
sudo poetry install
❗يجب تشغيل wsuks بصلاحيات الجذر (root)❗
مع pipx، يمكنك ببساطة تشغيل sudo wsuks ... في أي مكان على النظام.
إذا كنت تستخدم poetry، فيجب أن تكون في مجلد wsuks وتبدأ كل أمر بـ sudo poetry run wsuks ...
تتطلب هذه الأداة تثبيت حزمة nftables، وهي الافتراضية على جميع الأنظمة المبنية على دبيان.\
يوجد 3 أوضاع/سيناريوهات هجوم مختلفة يمكن تشغيل wsuks بها:
إذا كان لديك بالفعل مستخدم دومين، سيقوم wsuks بتحليل GPOs على وحدة تحكم المجال للعثور على خادم WSUS.
سيتم تنفيذ سكربت PowerShell، والذي سيضيف مستخدم الدومين المقدم إلى مجموعة المسؤولين المحليين.
sudo wsuks -t 10.0.0.10 -u User -p Password -d domain.local --dc-ip 10.0.0.1
نصيحة: إذا كنت تريد فقط التحقق من وجود خادم WSUS، يمكنك استخدام العلم --only-discover.
سينفذ سكربت PowerShell المحدد مسبقًا الإجراءات التالية:
⚠ قبل تعيين LocalAccountTokenFilterPolicy إلى 1، يتم تخزين القيمة الأصلية في حقل وصف المستخدم بحيث يمكن استعادتها لاحقًا
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20
إذا كان لديك بالفعل مستخدم دومين وتعرف عنوان IP لخادم WSUS، فسيقوم wsuks ببساطة بإضافة المستخدم إلى مجموعة المسؤولين المحليين.
sudo wsuks -t 10.0.0.10 --WSUS-Server 10.0.0.20 -u User -d domain.local
إذا كانت الحركة المرورية تُعاد توجيهها بالفعل إلى جهاز المهاجم (على سبيل المثال عبر التحكم في DNS)، يمكن استخدام wsuks لتقديم الملف التنفيذي والأمر الخبيث فقط دون تنفيذ انتحال ARP والتوجيه بنفسه. سيؤدي هذا ببساطة إلى تشغيل خادم HTTP على الواجهة المقدمة.
sudo wsuks --serve-only
في حال تمكن المهاجم من الحصول على شهادة TLS (على سبيل المثال عبر ESC17) لخادم WSUS، يمكن تنفيذ الهجوم عبر HTTPS أيضًا.
ينطبق هذا على جميع السيناريوهات أعلاه، فقط أضف العلم --tls-cert مع مسار الشهادة.
sudo wsuks -t 10.0.0.10 --WSUS-Server secure.wsus.domain.local --tls-cert cert.pem
إليك عرض توضيحي قصير للهجوم مع خادم WSUS معروف:

في مستودع PyWSUS من GoSecure يمكنك العثور على توثيق رائع حول كيفية اكتشاف هذا الهجوم والتخفيف منه. كما كتبوا دليلًا رائعًا يوضح كيفية عمل هذا الهجوم بالتفصيل هنا.
بخصوص ESC17، يرجى الاطلاع على ويكي certipy للحصول على توصيات التخفيف.
أجزاء من هذه الأداة مبنية على المشاريع التالية: