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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cornershot — تعزيز رؤية الشبكة من وجهات نظر متعددة لمضيفين آخرين | Kitploit
أدوات/GitHubGitHub/zeronetworks/cornershot
الاستطلاعتحليل الثغرات الأمنيةجمع المعلوماتأمن الشبكاتاختبار الاختراق
GitHubzeronetworks/cornershot

cornershot

تعزيز رؤية الشبكة من وجهات نظر متعددة لمضيفين آخرين

عرض المستودع
311494منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

GitHub release (latest SemVer) GitHub all releases

ما هو CornerShot

في الحروب، CornerShot هو سلاح يسمح للجندي بالنظر حول الزاوية (وربما إطلاق النار) دون تعريض نفسه للخطر. بالمثل، تتيح حزمة CornerShot للشخص النظر إلى وصول الشبكة لمضيف بعيد دون الحاجة إلى امتيازات خاصة على ذلك المضيف.

باستخدام CornerShot، يمكن لـ المصدر، الذي لديه وصول شبكي إلى الناقل، تحديد ما إذا كان هناك وصول شبكي بين الناقل والهدف لمنفذ محدد p.

على سبيل المثال، لنفترض أن فريقًا أحمر يحاول الانتشار من مضيف مصدر "مخترق" A، إلى مضيف هدف X، حيث لا يملك المضيف A وصولاً إليه. إذا انتشروا عبر المضيف B، عندها فقط سيكتشفون أنه لا يوجد وصول شبكي بين المضيف B و X.

باستخدام CornerShot، يمكن للفريق اكتشاف أن المضيف C لديه بالفعل وصول إلى الهدف X، لذا يجب أن يتم الانتشار نحو الهدف X عبر المضيف C أولاً.

root@kitploit:~
+-----+        +-----+          +-----+
|     |        |     | filtered |     |
|  A  +-------->  B  +----X--->(p) X  |
|     |        |     |          |     |
+-----+        +-----+          +-(p)-+
 source        carrier          target
   +                               ^
   |                               |
   |           +-----+             |
   |           |     |   open      |
   +---------->+  C  +-------------+
               |     |
               +-----+

على غرار nmap، يميز CornerShot بين حالات المنافذ التالية: مفتوح، مغلق، مفلتر و غير معروف (إذا تعذر تحديده).

يوضح العرض التوضيحي التالي تشغيل CornerShot ضد مضيفين ناقلين 172.0.1.12 و 172.0.1.13، لتحديد ما إذا كان لديهما وصول شبكي إلى 192.168.200.1:

cornershot demo

اقرأ المزيد هنا.

حالات الاستخدام

نشر واحد لرؤية شبكة كاملة

قد تتطلب المهمة التي تبدو بسيطة لتحديد ما إذا كان المضيف B في الشبكة لديه وصول إلى المضيف C نشرًا كبيرًا لمستشعرات الشبكة، أو عوامل جهاز، أو جمع مجموعة كبيرة من قواعد جدار الحماية، وتكوينات الموجه، وسياسات المضيف.

يمكن لـ CornerShot تبسيط هذه العملية باستخدام عامل واحد (أو عدد قليل جدًا) يمكنه الاستعلام عن المضيفين الآخرين في الشبكة، لتحديد وصولهم إلى المضيفين البعيدين.

التحقق من مسارات BloodHound

تكافح فرق الأمن التي تستخدم BloodHound للعثور على مسارات تصعيد الامتيازات وتخفيفها داخل شبكتها، غالبًا مع ملايين المسارات المنطقية التي يكتشفها BloodHound.

ShotHound هي أداة تدمج CornerShot مع BloodHound، من أجل اكتشاف المسارات العملية التي يدعمها الوصول الشبكي.

البدء

يمكن استخدام CornerShot كحزمة، أو كوحدة مستقلة. المتطلبات الوحيدة هي Python 3 وحزمة impacket.

التثبيت

root@kitploit:~
pip install cornershot

الاستخدام المستقل

يتطلب الاستخدام الأساسي بيانات اعتماد مستخدم مجال صالح، واسم نطاق FQDN، وعنوان IP للناقل وعنوان IP للهدف.

root@kitploit:~
python -m cornershot <user> <password> <domain> <carrier> <target>

لمسح مجموعة من الناقلين ضد مجموعة من الأهداف، يمكن استخدام الشبكات الفرعية أو نطاقات IP مفصولة بفواصل:

root@kitploit:~
python -m cornershot <user> <password> <domain> 192.168.1.10-192.168.1.20 192.168.5.0/24,192.168.6.0/24

بشكل افتراضي، سيحاول CornerShot مسح المنافذ التالية: 135, 445, 3389, 5985, 5986. يمكن للمستخدم توفير قائمة مفصولة بفواصل من المنافذ ونطاقات المنافذ:

root@kitploit:~
python -m cornershot -tp 22,8080,45000-45005 <user> <password> <domain> <carrier> <target>

كحزمة

في الكود، يحتاج المرء إلى إنشاء كائن CornerShot مع اسم المستخدم وكلمة المرور واسم المجال لمستخدم مجال صالح. تتم إضافة الناقلين والأهداف والمنافذ عبر طريقة add_shots. بمجرد الاستعداد، يمكن استدعاء طريقة open_fire، التي تقوم فقط بإجراء استدعاءات RPC ذات الصلة بناءً على المنافذ المطلوبة.

root@kitploit:~
from cornershot import CornerShot
cs = CornerShot("username", "password", "fqdn")
cs.add_shots(carriers=["192.168.1.1"],targets=["192.168.1.2","192.168.1.3"])
results = cs.open_fire()

نتيجة open_fire هي قاموس بمفاتيح الناقلين، ولكل ناقل مجموعة أخرى من المفاتيح للأهداف، وأخيرًا، يحمل كل هدف قاموسًا للمنافذ وحالاتها الخاصة. هذا مثال على تنسيق النتيجة:

root@kitploit:~
{'carrier_1': 
	{'target_1': 
		{135: 'unknown', 445: 'filtered', 3389: 'filtered', 5986: 'filtered', 5985: 'filtered'},
	'target_2': 
		{135: 'unknown', 445: 'open', 5985: 'unknown', 5986: 'filtered', 3389: 'open'}
	}, 
'carrier_2': 
	{'target_1': 
		{3389: 'filtered', 135: 'filtered', 5985: 'filtered', 445: 'filtered', 5986: 'unknown'}, 
	'target_2': 
		{5985: 'filtered', 5986: 'filtered', 445: 'filtered', 135: 'filtered', 3389: 'open'}
	}
}

كيف يعمل CornerShot؟

يعتمد CornerShot على طرق استدعاء الإجراءات البعيدة (RPC) القياسية والموثقة جيدًا والمستخدمة من قبل خدمات Microsoft المتنوعة. باستخدام طرق تتطلب فقط حسابًا مصادقًا عليه في المجال، يستطيع CornerShot تشغيل حركة مرور شبكة من مضيف ناقل إلى هدف.

يستطيع CornerShot تحديد حالة منفذ البعيد عن طريق قياس الوقت الذي استغرقه استدعاء RPC، واستخدام أكواد خطأ مختلفة لكل طريقة RPC.

طرق RPC

قد يكون القارئ على دراية بـ "خلل الطابعة"، الذي اكتشفه Lee Christensen. على الرغم من أنه يسمى خللًا، إلا أنه سلوك موثق جيدًا لخدمة الطباعة، والذي يسمح لأي مستخدم مصادق عليه بإجبار خادم بعيد على المصادقة على أي جهاز، باستخدام طريقة RpcRemoteFindFirstPrinterChangeNotificationEx.

يستخدم CornerShot طرق RPC التالية من عدة بروتوكولات Microsoft (هناك العديد من الطرق الإضافية، سيتم تنفيذها في الإصدارات المستقبلية):

  • RPRN : RpcOpenPrinter
  • RRP : BaseRegSaveKey
  • EVEN : ElfrOpenBELW
  • EVEN6 : EvtRpcOpenLogHandle

يتم تنفيذ البروتوكولات نفسها عبر حزمة impacket الرائعة.

RpcOpenPrinter

تستقبل هذه الطريقة printerName كمعامل. يمكن أن يكون اسم printerName مسارًا لملف محلي، أو ملف بعيد، أو حتى طابعة ويب. من خلال توفير اسم يتوافق مع تنسيق WEB_PRINT_SERVER، من الممكن الاستعلام عن أي منفذ بعيد. أحد الأمثلة على اسم خادم طباعة ويب سيؤدي إلى تشغيل حركة مرور HTTP إلى مضيف ومنفذ بعيدين هو: "http://<target_ip>:<target_port>/printers/ppp/.printer".

BaseRegSaveKey

لاستخدام هذه الطريقة، نحتاج إلى نهج من خطوتين: أولاً، فتح مفتاح تسجيل على المضيف البعيد - مما يؤدي إلى مقبض صالح، وثانيًا، محاولة حفظ نسخة احتياطية من هذا المقبض إلى ملف بعيد. تستقبل طريقة BaseRegSaveKey مسار ملف يمكنها حفظ نسخة احتياطية من السجل فيه، مما يؤدي إلى تشغيل حركة مرور SMB عبر المنفذ 445 (و 135 كاحتياطي) إلى هدف. مفتاح التسجيل الذي يفتحه CornerShot هو HKEY_CURRENT_USER، وهو مفتوح للقراءة افتراضيًا على معظم مضيفات العملاء.

ElfrOpenBELW

تحاول هذه الوظيفة نسخ أحداث Windows احتياطيًا إلى مسار ملف، يمكن أن يكون بعيدًا - في هذه الحالة، ستحاول الخدمة الوصول إلى المضيف والمسار البعيدين.

EvtRpcOpenLogHandle

على غرار طريقة EVEN، فقط تستخدم هذه الطريقة إصدارًا مختلفًا من بروتوكول أحداث Windows، والذي يتم مباشرة عبر TCP - لا حاجة لفتح منفذ SMB.

تحديد حالة المنفذ

يقوم CornerShot بتقدير حالة المنافذ البعيدة بناءً على عوامل التوقيت ورسائل الخطأ المستلمة من طريقة RPC أو النقل الأساسي. من خلال التجربة مع مضيفات Windows مختلفة وبروتوكولات RPC متنوعة، توصلنا إلى 3 عتبات توقيت مختلفة أثبتت فعاليتها في معظم بيئات الشبكة. يتم توضيح هذه العتبات بشكل أفضل في الشكل التالي:

root@kitploit:~
                +                           +                 +     
                |                           |                 |
     unknown    |       open / closed       |     filtered    |  open
     /          |                           |                 |
     open       |                           |                 |
                |                           |                 |
  +-------------+------------------+-----------------+--------------+
  0            0.5                          20                40    Seconds
               MIN                        FILTERED           UPPER  

عتبة MIN هي 0.5 ثانية، الردود الأقل من هذه العتبة تعني إما خطأ في طريقة RPC الأساسية أو النقل الأساسي، أو قد يكون قد تم استلام رد من المضيف الهدف.

الردود الأقل من عتبة FILTERED البالغة 20 ثانية يمكن أن تشير إما إلى منفذ مفتوح أو مغلق، اعتمادًا على نوع رسالة الخطأ المستلمة للطريقة.

الردود بين عتبة FILTERED وعتبة UPPER البالغة 40 ثانية تشير إلى منفذ مفلتر لجميع الطرق التي تم اختبارها (حتى الآن...). والطلبات التي تستغرق أكثر من حد UPPER تشير إلى اتصال TCP مفتوح طويل.

دعم نظام التشغيل

سيؤدي تشغيل Corenershot ضد إصدارات وتكوينات نظام تشغيل مختلفة إلى نتائج مختلفة. ليست جميع إصدارات Windows تحتوي على نفس الأنابيب المسماة أو تتصرف بنفس الطريقة عند الاستعلام بنفس طريقة RPC. معظم أنظمة Windows خارج الصندوق لن تعرض SMB وخدمات RPC الأخرى عبر الشبكة، ومع ذلك، أظهرت التجربة أنه في البيئات الكبيرة، تميل هذه المنافذ إلى أن تكون مفتوحة وقابلة للوصول لمعظم الأصول.

يوضح الجدول التالي الدعم الافتراضي لبروتوكولات RPC المختلفة، بشرط أن تكون المنافذ المناسبة قابلة للوصول لمضيف الناقل وعدم إجراء أي تغييرات على تكوين المضيف:

* إذا كانت خدمة Webclient قيد التشغيل على جهاز عميل، يمكن مسح منافذ إضافية. حاليًا لا يدعم CornerShot هذا الخيار.

** بروتوكول RPRN مدعوم على مضيفات الخادم، ومع ذلك، فإن فتح طابعة ويب عن بعد لا يعمل (ولهذا لا يمكننا مسح أي منفذ هدف) - حتى نجد حلاً بديلاً 😉

المطورون

مساهمات إضافية من نوع RPC shots، أو أي مساهمة أخرى مرحب بها!

يتم تنفيذ جميع طرق RPC تحت /shots، وترث من فئة مجردة تسمى BaseRPCShot. يظهر المجلد /example كيفية إنشاء RPC shot مخصص واستخدامه في الكود.

الترخيص

يتم إصدار CornerShot بموجب ترخيص Apache 2.0. لمزيد من التفاصيل، راجع LICENSE.

اتصل بنا

يسعدنا سماع رأيك! للبق، التصحيحات، الاقتراحات حول هذه الحزمة، يرجى الاتصال بنا على [email protected]

تنزيل الأداة
نظام التشغيلبروتوكولات RPC المدعومةمنافذ الناقل المفتوحة المطلوبةمنافذ الهدف الممكن مسحها
Windows 7EVEN,EVEN6445 / 135 & منفذ TCP لـ even6445*
Windows 8EVEN,EVEN6445 / 135 & منفذ TCP لـ even6445*
Windows 10EVEN,EVEN6,RPRN445 / 135 & منفذ TCP لـ even6أي
Server 2008EVEN,EVEN6,RRP,RPRN**445 / 135 & منفذ TCP لـ even6445
Server 2012EVEN,EVEN6,RRP,RPRN**445 / 135 & منفذ TCP لـ even6445
Server 2016EVEN,EVEN6,RRP,RPRN**445 / 135 & منفذ TCP لـ even6445
Server 2019EVEN,EVEN6,RRP,RPRN**445 / 135 & منفذ TCP لـ even6445