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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
NachoVPN — خادم SSL-VPN لذيذ، لكنه خبيث 🌮. | Kitploit
أدوات/GitHubGitHub/amberwolfcyber/nachovpn
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالأمن الشبكاتاختبار الاختراقالفريق الأحمرتطوير الحمولاتالهجوم العدائي
GitHubamberwolfcyber/nachovpn

NachoVPN

خادم SSL-VPN لذيذ، لكنه خبيث 🌮.

عرض المستودع
267314منذ 6 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

NachoVPN 🌮🔒

NachoVPN هو إثبات مفهوم (Proof of Concept) يوضح استغلال عملاء SSL-VPN باستخدام خادم VPN خادع.

يستخدم بنية قائمة على الإضافات بحيث يمكن للمجتمع المساهمة في دعم منتجات SSL-VPN إضافية. وهو يدعم حاليًا العديد من منتجات VPN المؤسسية الشائعة، مثل Cisco AnyConnect وSonicWall NetExtender وPalo Alto GlobalProtect وIvanti Connect Secure.

لمزيد من التفاصيل، راجع مقالة المدونة، وعرض HackFest Hollywood 2024 [الشرائح|الفيديو].

التثبيت

المتطلبات

  • Python 3.9 أو أحدث
  • Docker (اختياري)
  • osslsigncode (لينكس فقط)
  • msitools (لينكس فقط)
  • python3-netfilter (لينكس فقط)
  • git

الإعداد على لينكس

تم بناء NachoVPN واختباره على Ubuntu 22.04.

  • ثبّت python3-nftables و nftables

  • اختياريًا، استخدم setcap لتجنب الحاجة إلى sudo:

    root@kitploit:~
    sudo setcap 'cap_net_raw,cap_net_bind_service,cap_net_admin=eip' /usr/bin/python3.10
    
  • فعّل إعادة توجيه IP:

    root@kitploit:~
    sudo sysctl -w net.ipv4.ip_forward=1
    

التثبيت من المصدر

يمكن تثبيت NachoVPN من GitHub باستخدام pip. لاحظ أن هذا يتطلب تثبيت git.

أولاً، أنشئ بيئة افتراضية.

على لينكس، تأكد من أن البيئة الافتراضية لديها إمكانية الوصول إلى site-packages الخاصة بالنظام، حتى يعمل nftables:

root@kitploit:~
python3 -m venv env --system-site-packages
source env/bin/activate

على ويندوز، تكون nftables (وبالتالي إعادة توجيه الحزم) معطلة، لذا استخدم:

root@kitploit:~
python -m venv env
.\env\Scripts\activate

ثم ثبّت NachoVPN:

root@kitploit:~
pip install git+https://github.com/AmberWolfCyber/NachoVPN.git

إذا كنت تفضل استخدام Docker، يمكنك سحب الحاوية من GitHub Container Registry:

root@kitploit:~
docker pull ghcr.io/AmberWolfCyber/nachovpn:release

البناء للتوزيع

بناء ملف wheel

أولاً، استنسخ هذا المستودع، وثبّت setuptools و wheel عبر pip. يمكنك بعد ذلك تشغيل السكربت setup.py:

root@kitploit:~
git clone https://github.com/AmberWolfCyber/NachoVPN
pip install -U setuptools wheel
python setup.py bdist_wheel

سيؤدي هذا إلى إنشاء ملف wheel في مجلد dist، والذي يمكن تثبيته باستخدام pip:

root@kitploit:~
pip install dist/nachovpn-1.0.0-py3-none-any.whl

البناء للتطوير المحلي

بدلاً من ذلك، للتطوير المحلي يمكنك تثبيت الحزمة في الوضع القابل للتحرير باستخدام:

root@kitploit:~
pip install -e .

بناء صورة حاوية

يمكنك بناء صورة الحاوية باستخدام الأمر التالي:

root@kitploit:~
docker build -t nachovpn:latest .

التشغيل

لتشغيل الخادم بشكل مستقل، استخدم:

root@kitploit:~
python -m nachovpn.server

بدلاً من ذلك، يمكنك تشغيل الخادم باستخدام Docker:

root@kitploit:~
docker run -e SERVER_FQDN=connect.nachovpn.local -e EXTERNAL_IP=1.2.3.4 -v ./certs:/app/certs -p 80:80 -p 443:443 --rm -it nachovpn

سيؤدي هذا إلى إنشاء شهادة لـ SERVER_FQDN باستخدام certbot، وحفظها في مجلد certs، الذي قمنا بتركيبه داخل الحاوية.

بدلاً من ذلك، ولأغراض الاختبار، يمكنك تخطي إنشاء الشهادة عن طريق تعيين متغير البيئة SKIP_CERTBOT.

سيؤدي هذا إلى إنشاء شهادة موقّعة ذاتيًا بدلاً من ذلك.

root@kitploit:~
docker run -e SERVER_FQDN=connect.nachovpn.local -e SKIP_CERTBOT=1 -e EXTERNAL_IP=1.2.3.4 -p 443:443 --rm -it nachovpn

يتم أيضًا توفير ملف docker-compose كمثال للراحة.

التصحيح

يمكنك تشغيل nachovpn باستخدام وسيطات سطر الأوامر -d أو --debug لزيادة مستوى تفصيل السجلات، مما يساعد في التصحيح.

بدلاً من ذلك، إذا كانت السجلات مزعجة للغاية، يمكنك استخدام وسيطة سطر الأوامر q أو --quiet بدلاً من ذلك.

الإضافات

يدعم NachoVPN الإضافات والإمكانيات التالية:

معالجات URI

  • يمكن تشغيل معالج URI الخاص بـ Ivanti Connect Secure (Pulse Secure) بزيارة الرابط /pulse على خادم NachoVPN.
  • يمكن تشغيل معالج URI الخاص بـ SonicWall NetExtender بزيارة الرابط /sonicwall على خادم NachoVPN. يتطلب ذلك تثبيت SonicWall Connect Agent على جهاز العميل.
  • يمكن تشغيل معالج URI الخاص بـ Delinea بزيارة الرابط /delinea على خادم NachoVPN.

ملاحظات التشغيل

  • يُوصى باستخدام شهادة TLS موقعة من مرجع شهادات موثوق. تقوم حاوية Docker بأتمتة هذه العملية نيابةً عنك باستخدام certbot. إذا لم تستخدم شهادة موثوقة، فسيقوم NachoVPN بتوليد شهادة موقّعة ذاتيًا بدلاً من ذلك، الأمر الذي سيؤدي في معظم الحالات إما إلى ظهور تحذير شهادة للعميل، أو رفض الاتصال ما لم تعدّل إعدادات العميل لقبول الشهادات الموقّعة ذاتيًا. بالنسبة لإضافة Palo Alto GlobalProtect، سيؤدي هذا أيضًا إلى فشل مثبّت MSI.
  • من أجل محاكاة شهادة توقيع كود صالحة لإضافة SonicWall، سيقوم NachoVPN بتوقيع الحمولة NACAgent.exe بشهادة موقّعة ذاتيًا. لأغراض الاختبار، يمكنك تنزيل وتثبيت شهادة المرجع المصدق (CA) هذه من /sonicwall/ca.crt قبل تشغيل الاستغلال. لحالات الاستخدام في الإنتاج، ستحتاج إلى الحصول على شهادة توقيع كود صالحة من مرجع مصدق عام، وتوقيع الحمولة NACAgent.exe الخاصة بك، ووضعها في مجلد payloads (أو تركيبها كوحدة تخزين في /app/payloads، إذا كنت تستخدم Docker).
  • للراحة، يتم توليد حمولة NACAgent.exe افتراضية لإضافة SonicWall، وكتابتها في مجلد payloads. تقوم هذه الحمولة ببساطة بتشغيل عملية cmd.exe جديدة على سطح مكتب المستخدم الحالي، بصلاحيات SYSTEM.
  • تتطلب إضافة Palo Alto GlobalProtect وجود مثبتات MSI وملف msi_version.txt في مجلد . يمكنك إضافتها يدويًا، أو تشغيل السكربت لتنزيلها.

تعطيل إضافة

لتعطيل إضافة، أضفها إلى متغير البيئة DISABLED_PLUGINS. على سبيل المثال:

root@kitploit:~
DISABLED_PLUGINS=CiscoPlugin,SonicWallPlugin

متغيرات البيئة

يتم تكوين NachoVPN باستخدام متغيرات البيئة. وهذا يجعلها متوافقة بسهولة مع عمليات النشر المعبأة في حاويات.

متغيرات البيئة العامة:

متغيرات البيئة الخاصة بإضافة معينة:

التخفيفات

نوصي بالإجراءات التخفيفية التالية:

  • تأكد من تحديث عملاء SSL-VPN إلى أحدث إصدار متاح من البائع.
  • معظم عملاء VPN يدعمون مفهوم تقييد ملف تعريف VPN لنقطة نهاية محددة، أو استخدام وضع VPN الدائم الاتصال. يجب تفعيل ذلك حيثما أمكن.
  • لسوء الحظ، في بعض الحالات يمكن لمستخدم محلي خبيث إزالة هذا التقييد، لذلك يُنصح أيضًا باستخدام قواعد جدار حماية على المضيف لتقييد عناوين IP التي يمكن لعميل VPN التواصل معها.
  • فكر في استخدام سياسة التحكم في التطبيقات، مثل WDAC، أو حل EDR لضمان أن عميل VPN يمكنه تنفيذ البرامج والسكربتات المعتمدة فقط.
  • قم بكشف والتنبيه على عملاء VPN الذين ينفذون عمليات فرعية غير قياسية.

المراجع

  • مدونة AmberWolf: NachoVPN
  • HackFest Hollywood 2024: Very Pwnable Networks: استغلال أفضل عملاء VPN للشركات للحصول على قذائف Root و SYSTEM عن بُعد، Rich Warren & David Cash [الفيديو]
  • BlackHat 2008: استغلال الحافة: إساءة استخدام شبكات SSL VPN، Mike Zusman
  • BlackHat 2019: اختراق الشبكة الداخلية للشركات مثل NSA، Orange Tsai & Meh Chang
  • NCC Group: بناء اتصالات جديدة: استغلال عميل Cisco AnyConnect لإسقاط وتشغيل الحمولات، David Cash & Julian Storr
  • مشروع OpenConnect

المساهمة

نرحب بالمساهمات! يرجى فتح issue أو تقديم Pull Request.

إذا كنت مهتمًا بتطوير إضافة جديدة، يمكنك إلقاء نظرة على ExamplePlugin للبدء.

الترخيص

NachoVPN مرخصة بموجب رخصة MIT. راجع ملف LICENSE للحصول على التفاصيل.

تنزيل الأداة
الإضافةالمنتجCVERCE على ويندوزRCE على macOSصلاحيات مميزةمعالج URIالتقاط الحزمعرض توضيحي
CiscoCisco AnyConnectN/A✅✅❌❌✅ويندوز / macOS
SonicWallSonicWall NetExtenderCVE-2024-29014✅❌✅✅❌ويندوز
PaloAltoPalo Alto GlobalProtectCVE-2024-5921 (إصلاح جزئي)✅✅✅❌✅ويندوز / macOS / iOS
PulseSecureIvanti Connect SecureCVE-2020-8241 (تم تجاوزه)✅✅✅✅ (ويندوز فقط - معطّل افتراضيًا في 22.8R1)✅ويندوز
NetskopeNetskopeCVE-2025-0309✅❌✅❌❌ويندوز
DelineaProtocol HandlerCVE-2026-????✅✅❌✅❌ويندوز
downloads
msi_downloader.py
  • لتنفيذ هجوم تخفيض الإصدار (downgrade) على Palo Alto GlobalProtect، تأكد من وجود GlobalProtect.msi.old و GlobalProtect64.msi.old في مجلد downloads. يجب أن تحتوي هذه الملفات على مثبتات MSI غير معدّلة لإصدار أقدم من 6.2.6 (مثل 6.2.5).
  • المتغيرالوصفالافتراضي
    SERVER_FQDNاسم النطاق المؤهل بالكامل للخادم.connect.nachovpn.local
    EXTERNAL_IPعنوان IP الخارجي للخادم.127.0.0.1
    WRITE_PCAPما إذا كان سيتم كتابة ملفات PCAP الملتقطة إلى القرص.false
    DISABLED_PLUGINSقائمة مفصولة بفواصل بالإضافات المطلوب تعطيلها.
    USE_DYNAMIC_SERVER_THUMBPRINTما إذا كان سيتم حساب بصمة شهادة الخادم ديناميكيًا من الخادم (مفيد إذا كان خلف وكيل).false
    SERVER_SHA1_THUMBPRINTيسمح بتجاوز بصمة SHA1 المحسوبة لشهادة الخادم.
    SERVER_MD5_THUMBPRINTيسمح بتجاوز بصمة MD5 المحسوبة لشهادة الخادم.
    SMB_ENABLEDيقوم بتمكين مشاركة SMB، المتاحة عبر النفق على \\10.10.0.1\<SMB_SHARE_NAME>false
    SMB_SHARE_NAMEالاسم الذي سيتم استخدامه لمشاركة SMBSHARE
    SMB_SHARE_PATHمسار المجلد الذي سيتم استخدامه لمشاركة SMBsmb
    TUNNEL_PRIVATEعند تعيينه إلى true، يقوم بتمكين النفق ولكن يعطل إعادة توجيه الإنترنت لعملاء VPN. يمكن للعملاء الوصول إلى مشاركة SMB فقط.false
    TUNNEL_FULLعند تعيينه إلى true، يقوم بتمكين النفق الكامل ويسمح لعملاء VPN بالوصول إلى الإنترنت. يتضمن أيضًا ضمناً TUNNEL_PRIVATE=true.false
    المتغيرالوصفالافتراضي
    VPN_NAMEاسم ملف تعريف VPN، الذي يُعرض على العميل لـ Cisco AnyConnect.NachoVPN
    PULSE_LOGON_SCRIPTالمسار إلى سكربت تسجيل الدخول الخاص بـ Pulse Secure.C:\Windows\System32\calc.exe
    PULSE_LOGON_SCRIPT_MACOSالمسار إلى سكربت تسجيل الدخول الخاص بـ Pulse Secure لنظام macOS.
    PULSE_DNS_SUFFIXلاحقة DNS التي سيتم استخدامها لاتصالات Pulse Secure.nachovpn.local
    PULSE_USERNAMEاسم المستخدم الذي سيتم ملؤه مسبقًا في نافذة تسجيل دخول Pulse Secure.
    PULSE_SAVE_CONNECTIONما إذا كان سيتم حفظ اتصال Pulse Secure في عميل المستخدم.false
    PULSE_ANONYMOUS_AUTHما إذا كان سيتم استخدام مصادقة مجهولة لاتصالات Pulse Secure. إذا تم تعيينه إلى true، فلن يُطلب من المستخدم اسم مستخدم أو كلمة مرور.false
    PULSE_HOST_CHECKER_RULES_FILEملف JSON يحتوي على قائمة بقواعد فحص المضيف المستندة إلى السجل (registry) لـ ICS. انظر المثال في src/nachovpn/plugins/pulse/test/example_rules.json
    PALO_ALTO_MSI_ADD_FILEالمسار إلى ملف سيتم إضافته إلى مثبّت MSI الخاص بـ Palo Alto.
    PALO_ALTO_MSI_COMMANDالأمر الذي سيتم تنفيذه بواسطة مثبّت MSI الخاص بـ Palo Alto.net user pwnd Passw0rd123! /add && net localgroup administrators pwnd /add
    PALO_ALTO_FORCE_PATCHما إذا كان سيتم فرض تصحيح مثبّت MSI إذا كان موجودًا بالفعل في مجلد payloads.false
    PALO_ALTO_PKG_COMMANDالأمر الذي سيتم تنفيذه بواسطة مثبّت PKG الخاص بـ Palo Alto على macOS.touch /tmp/pwnd
    CISCO_COMMAND_WINالأمر الذي سيتم تنفيذه بواسطة سكربت OnConnect.vbs الخاص بـ Cisco AnyConnect على ويندوز.calc.exe
    CISCO_COMMAND_MACOSالأمر الذي سيتم تنفيذه بواسطة سكربت OnConnect.sh الخاص بـ Cisco AnyConnect على macOS.touch /tmp/pwnd