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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
HashSiphon — يستخرج تجزئة NetNTLMv2 للمستخدم الحالي عبر تمرير مصادقة HTTP، متجنبًا استدعاءات SSPI المباشرة؛ بينما يفوّض الإصدار v2 المصادقة إلى خدمة BITS لكسر إسناد العملية. | Kitploit
أدوات/GitHubGitHub/ivancabrera02/hashsiphon
أدوات دفاعيةهجمات كلمات المرورجمع المعلوماتما بعد الاستغلالاختبار الاختراقالفريق الأحمر
GitHubivancabrera02/hashsiphon

HashSiphon

يستخرج تجزئة NetNTLMv2 للمستخدم الحالي عبر تمرير مصادقة HTTP، متجنبًا استدعاءات SSPI المباشرة؛ بينما يفوّض الإصدار v2 المصادقة إلى خدمة BITS لكسر إسناد العملية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

HashSiphon

استخراج تجزئة NTLM عبر تمرير المصادقة على طبقة HTTP، دون أي استدعاءات SSPI من عملية المهاجم.

يستخرج HashSiphon تجزئة NetNTLMv2 الخاصة بالمستخدم الحالي عبر التلاعب بتدفقات مصادقة HTTP بدلاً من استدعاء واجهات SSPI مباشرةً. يأتي بإصدارين: v1 يوجّه مصادقة NTLM عبر حزمة HTTP الخاصة بـ .NET داخل العملية نفسها، وv2 يفوّض المصادقة بالكامل إلى خدمة BITS (svchost.exe) في PID مختلف، مما يكسر الإسناد على مستوى العملية تماماً.

لماذا هذا مهم

كل أداة معروفة لاستخراج تجزئة NTLM ذاتياً Internal Monologue، وسكربتات SSPI اليدوية، ومشتقاتها تستدعي AcquireCredentialsHandle → InitializeSecurityContext → AcceptSecurityContext من عملية المهاجم نفسها. تقوم أنظمة EDR باعتراض هذه الدوال في SSPI ووسم سلسلة الاستدعاء.

يسلك HashSiphon مساراً مختلفاً جذرياً:

الجانبInternal MonologueHashSiphon v1HashSiphon v2
استدعاءات SSPI من PID المهاجم4+ استدعاءات مباشرة0 مباشر (WinHTTP يستدعي داخلياً)0 في أي عملية نملكها
عملية المصادقةPID المهاجمPID المهاجم (عبر حزمة HTTP)svchost.exe (خدمة BITS)
استيرادات واجهات الأمانتتطلب استيرادات DLL من SSPIلا شيء في شفرتنالا شيء في شفرتنا
سطح الكشفاعتراضات SSPI، أنماط استدعاء APIحركة مرور HTTP على loopbackمهمة BITS + حركة مرور loopback
إسناد العمليةPID المهاجمPID المهاجممكسور، PID مختلف تماماً

كيف يعمل

يشترك الإصداران في النواة نفسها: خادم TCP بسيط على 127.0.0.1 يتحدث قدراً كافياً من HTTP لإجراء تبادل تحدي-استجابة NTLM، مع تحدي مُتحكَّم به من 8 بايت بحيث تكون التجزئة المُلتقطة قابلة للكسر دون اتصال.

v1 — المصادقة الذاتية عبر HTTP (HashSiphon.ps1)

root@kitploit:~
┌──────────────────────────┐
│     PowerShell (PID X)   │
│                          │
│  ┌────────────────────┐  │          ┌──────────────────────┐
│  │ TCP Server (C#)    │◄─┼──────────┤ HttpWebRequest +     │
│  │ Loopback :random   │  │  HTTP    │ DefaultCredentials   │
│  │                    │──┼──────────►                      │
│  │ 1. Send 401+NTLM   │  │  NTLM    │ WinHTTP auto-auths   │
│  │ 2. Send Type 2     │  │  Type    │ using current user's │
│  │ 3. Capture Type 3  │  │  1/2/3   │ credentials          │
│  │ 4. Extract hash    │  │          │                      │
│  └────────────────────┘  │          └──────────────────────┘
└──────────────────────────┘
  1. يترجم خادم TCP بلغة C# عبر Add-Type، ويربط على 127.0.0.1:0 (منفذ يُخصصه نظام التشغيل)
  2. يتصل العميل عبر HttpWebRequest + CredentialCache.DefaultCredentials
  3. يستجيب الخادم بـ HTTP 401 مع WWW-Authenticate: NTLM لبدء التفاوض
  4. يرسل WinHTTP رسالة NTLM Type 1 → يرد الخادم بـ Type 2 مُصمَّم (تحدٍّ مُتحكَّم به) → يرسل WinHTTP رسالة Type 3
  5. يحلل الخادم رسالة Type 3 ويستخرج تجزئة NetNTLMv2

المقايضة: يستدعي WinHTTP داخلياً SSPI ضمن نفس PID، دون استيرادات مباشرة، لكن سلسلة الاستدعاء لا تزال تعود إلينا.

v2 — وكيل خدمة BITS (HashSiphonV2.ps1)

root@kitploit:~
┌─────────────────────┐         ┌───────────────────────────┐
│  PowerShell (PID X) │         │  svchost.exe (PID Y)      │
│                     │         │  BITS Service             │
│  ┌───────────────┐  │  HTTP   │                           │
│  │ TCP Server    │◄─┼─────────┤  BITS downloads from our  │
│  │ (Background   │  │  NTLM   │  server, auto-authenticates│
│  │  Runspace)    │──┼─────────►  using job owner's creds   │
│  └───────────────┘  │  Type   │                           │
│                     │  1/2/3  │  SSPI calls happen HERE,  │
│  Start-BitsTransfer─┼────────►│  not in PID X             │
│  (Trigger only)     │  COM    │                           │
└─────────────────────┘         └───────────────────────────┘
          │
          └── Our process: TcpListener + Start-BitsTransfer
              Zero SSPI. Zero security API imports.
  1. يبدأ خادم TCP بلغة C# نفسه في Runspace خلفي لـ PowerShell
  2. ينشئ Start-BitsTransfer مهمة تنزيل تشير إلى http://127.0.0.1:<port>/hashsiphon.bin
  3. تتصل خدمة BITS (svchost.exe، وهي PID مختلف تماماً) بخادمنا
  4. تصادق BITS باستخدام بيانات اعتماد مالك المهمة، ويُلتقط تبادل NTLM بواسطة خادمنا
  5. يعيد الخادم HTTP 200 مع جسم استجابة حتى تعتبر BITS النقل ناجحاً
  6. تُستخرج التجزئة من رسالة Type 3

الإنجاز: لا تستدعي عمليتنا SSPI أبداً، لا مباشرةً، ولا عبر WinHTTP، ولا على الإطلاق. تحدث حسابات NTLM بالكامل في svchost.exe. ترى اعتراضات SSPI في EDR سلسلة الاستدعاء في عملية خدمة BITS، وليس في عمليتنا.

الاستخدام

المتطلبات

  • Windows 10/11
  • PowerShell 5.1+
  • صلاحيات مستخدم عادي (لا حاجة إلى مسؤول)
  • خدمة BITS قيد التشغيل (افتراضياً على Windows)

تشغيل v1

root@kitploit:~
powershell -ExecutionPolicy Bypass -File HashSiphon.ps1

تشغيل v2

root@kitploit:~
powershell -ExecutionPolicy Bypass -File HashSiphonV2.ps1

المخرجات المتوقعة (v2)

root@kitploit:~
  [*] Compiling HashSiphon v2 server...
  [+] Server compiled

  HashSiphon v2.0 - BITS Service Proxy Authentication
  Auth by svchost.exe (BITS), not our process

  [1] NTLM HTTP server ready on 127.0.0.1:52847
  [2] Controlled challenge: 1122334455667788
  [3] Triggering BITS transfer to our server...
  [4] BITS transfer initiated

  [+] User:        ivan
  [+] Domain:      DESKTOP-ABCDEF
  [+] NT response: 280 bytes (NTLMv2)

  +----------------------------------------------------------+
  |     NetNTLMv2 HASH - Extracted via BITS service proxy!   |
  +----------------------------------------------------------+
  |  hashcat -m 5600 | john --format=netntlmv2               |
  +----------------------------------------------------------+

  ivan::DESKTOP-ABCDEF:1122334455667788:<NTProofStr>:<ClientBlob>

  +----------------------------------------------------------+
  |  ATTRIBUTION ANALYSIS                                    |
  +----------------------------------------------------------+
  |  Our PID:      844  (PowerShell)                         |
  |  Auth by:      BITS service (svchost.exe, PID 5500)      |
  |  SSPI calls:   Zero from PID 844                         |
  |  Our APIs:     TcpListener + Start-BitsTransfer only     |
  +----------------------------------------------------------+

سلوك الاحتياط

إذا فشلت BITS (الخدمة معطلة، الوحدة غير متاحة)، يعود v2 تلقائياً إلى تشغيل عملية powershell.exe فرعية مع Invoke-WebRequest -UseDefaultCredentials. لا يزال هذا يحقق فصل PID، رغم أن العملية الفرعية أكثر وضوحاً من BITS.

تنزيل الأداة