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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
SSH-Snake — SSH-Snake هي أداة ذاتية الانتشار، ذاتية التكرار، بدون ملفات تقوم بأتمتة مهمة ما بعد الاستغلال لاكتشاف مفاتيح SSH الخاصة والمضيفين. | Kitploit
أدوات/GitHubGitHub/megamansec/ssh-snake
تصعيد الامتيازاتالاستطلاعتخطيط الشبكةالحركة الجانبيةجمع المعلوماتما بعد الاستغلالاختبار الاختراقالفريق الأحمرArchived
GitHubmegamansec/ssh-snake

SSH-Snake

SSH-Snake هي أداة ذاتية الانتشار، ذاتية التكرار، بدون ملفات تقوم بأتمتة مهمة ما بعد الاستغلال لاكتشاف مفاتيح SSH الخاصة والمضيفين.

2.3k221منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SSH-Snake: التنقل الآلي في الشبكة عبر SSH

🐍 SSH-Snake هي أداة قوية مصممة لأداء التنقل التلقائي في الشبكة باستخدام مفاتيح SSH الخاصة المُكتشفة على الأنظمة، بهدف إنشاء خريطة شاملة للشبكة وتبعياتها، وتحديد مدى إمكانية اختراق الشبكة باستخدام SSH ومفاتيح SSH الخاصة بدءًا من نظام معين.

يمكن لـ SSH-Snake الكشف تلقائيًا عن العلاقة بين الأنظمة المتصلة عبر SSH، وهو الأمر الذي يتطلب عادةً قدرًا هائلاً من الوقت والجهد لإجرائه يدويًا.

بمعنى آخر، يقوم SSH-Snake بالمهام التالية تلقائيًا وبشكل متكرر:

  1. على النظام الحالي، ابحث عن أي مفاتيح SSH خاصة،
  2. على النظام الحالي، ابحث عن أي مضيفات أو وجهات (user@host) التي قد تُقبل فيها المفاتيح الخاصة،
  3. حاول الاتصال عبر SSH بجميع الوجهات باستخدام جميع المفاتيح الخاصة المُكتشفة،
  4. إذا تم الاتصال بنجاح بوجهة ما، كرر الخطوات #1 - #4 على النظام المتصل به.

إنه ذاتي التكاثر وذاتي الانتشار تمامًا - وبدون ملفات تمامًا. من نواحٍ كثيرة، SSH-Snake هي في الواقع دودة: فهي تنسخ نفسها وتنتشر من نظام إلى آخر بقدر ما تستطيع.

بدلاً من القفز يدويًا بين الأنظمة باستخدام مفاتيح SSH كما لو كانت لعبة سوبر ماريو، دع SSH-Snake تقوم بالعمل نيابة عنك.

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

للحصول على نظرة متعمقة حول كيفية عمل هذا السكريبت فعليًا، والتفاصيل التقنية، والاكتشافات المثيرة للاهتمام، وقرارات التصميم، والقياس، والدروس المستفادة، راجع هذا المنشور في المدونة. هذا البرنامج من كتابة Joshua Rogers.

Screenshots

لقطة شاشة مصغرة من مخرجات SSH-Snake في شبكة صغيرة جدًا.

رسم بياني يوضح العلاقة بين الأنظمة باستخدام SSHتشير العقد الزرقاء إلى أن الوجهة يمكنها الاتصال بنفسها (user@host<-->user@host). تشير الحواف الحمراء إلى أن الاتصال ثنائي الاتجاه (user1@host1<-->user2@host2).

رسم بياني يوضح العلاقة بين الأنظمة باستخدام SSHتشير العقد الخضراء إلى مضيف (بدون اسم مستخدم) يمكنه الاتصال بنفسه (host1<-->host1). تشير الحواف الخضراء إلى أن الاتصال ثنائي الاتجاه (host1<-->host2). المضيف الرمادي في الزاوية اليمنى العليا هو المضيف الذي تم تنفيذ السكريبت عليه في البداية.

رسم بياني يوضح العلاقة بين الأنظمة باستخدام SSHتشير العقد الزرقاء إلى أن الوجهة يمكنها الاتصال بنفسها (user@host<-->user@host). تشير الحواف الحمراء إلى أن الاتصال ثنائي الاتجاه (user1@host1<-->user2@host2).

استخدام وتشغيل SSH-Snake

يمكن تنزيل SSH-Snake أو تمريره إلى bash:

root@kitploit:~
wget https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh
bash ./Snake.nocomments.sh

أو

root@kitploit:~
curl https://raw.githubusercontent.com/MegaManSec/SSH-Snake/main/Snake.nocomments.sh | bash

حول SSH-Snake

يحاكي SSH-Snake بسلاسة ما سيفعله الخصم البشري لاكتشاف مفاتيح SSH الخاصة والوجهات التي يمكن استخدامها للاتصال بها. مكتوب بالكامل بلغة Bash، ويعمل مع مجموعة صغيرة من التبعيات المتوفرة بشكل شائع على أنظمة لينكس (وماك أو إس) الرئيسية: bash, ssh, coreutils, awk, uniq, sort, grep, tr, find, و cat. مطلوب getent أو dscacheutil. مطلوب sed فقط للنظام الأول جدًا. وبالمثل، يمكن أيضًا استخدام sudo, hostname, , , , , , و ، ولكنها ليست مطلوبة (ويتعامل السكريبت مع الحالات التي لا تكون فيها موجودة بشكل أنيق). إذا تم اكتشاف نظام بدون أي من الحزم المطلوبة، فإنه يفشل بلطف، ويحذر المستخدم من أن الفحص لا يمكن أن يستمر على هذا النظام المعين (ويتراجع، مستمرًا من النظام السابق).

SSH-Snake هي بلا ملفات تمامًا: بعد أن يقوم المستخدم بتشغيل السكريبت، يتم تمريره إلى bash الوجهات عبر stdin ووسائط bash (عبر SSH). لا يوجد دليل مادي على وجود السكريبت على أي من الأنظمة الممسوحة ضوئيًا: الدليل الوحيد على تشغيل السكريبت هو في شجرة العمليات، والكمية الكبيرة من محاولات SSH غير الصالحة التي ستحدث حتمًا.

يتبع SSH-Snake نهج البحث في العمق أولاً في الاكتشاف: بمجرد الاتصال بنظام واحد، يحاول الاتصال بشكل أبعد من ذلك النظام قبل التراجع.

يأتي اسم SSH-Snake من حقيقة أن مخرجات السكريبت تشبه ثعبانًا يتلوى صعودًا وهبوطًا في الشبكة. ولكن على عكس لعبة الثعبان، لن يموت SSH-Snake عندما يعض ذيله (يتصل بنظام قام بفحصه بالفعل أو يقوم بفحصه حاليًا): سيقوم ببساطة بطباعة كيفية اتصاله هناك كالمعتاد، ولكنه سيعود ولن يعيد فحص الوجهة (لتجنب التكرار اللانهائي).

تم اختبار SSH-Snake على إصدارات مختلفة من لينكس، وماك أو إس (مع تثبيت Homebrew Bash). إذا واجهت نظام تشغيل قائم على لينكس غير متوافق معه، فيرجى تقديم تقرير.

الميزات

  • الاتصال عبر SSH بشكل متكرر من نظام إلى آخر باستخدام مفاتيح SSH الخاصة المحلية،
  • العبور والانتشار/النسخ بدون ملفات لسكريبت SSH-Snake باستخدام stdin ووسائط bash فقط للأنظمة البعيدة،
  • رفع الصلاحيات تلقائيًا إلى الجذر باستخدام sudo إذا أمكن،
  • اكتشاف ملفات مفاتيح SSH الخاصة من إدخالات .bash_history،
  • اكتشاف مفاتيح SSH الخاصة من الملفات والمجلدات شائعة الاستخدام،
  • تسريب مفاتيح SSH الخاصة كمخرجات للسكريبت،
  • تنفيذ أوامر مخصصة قابلة للتكوين على كل نظام،
  • نظام معياري قابل للتوصيل والتشغيل لاكتشاف المفاتيح والأنظمة الخاصة،
  • اكتشاف المضيفات من نطاقات IP، وعمليات تسجيل الدخول الأخيرة، والمضيفات المعروفة، وملفات تكوين SSH، والمزيد،
  • القدرة على اكتشاف متى تم فحص نظام بالفعل أو قيد الفحص بحيث يمكن لشبكة مثل A->B->C أيضًا اكتشاف C->A ولكن لا تعود إلى A->B->C-A->B->C->A->B->....،
  • القدرة على إنشاء تصورات بيانية للشبكة من مخرجات السكريبت،
  • ... والمزيد.

الإعدادات

يأتي SSH-Snake مع بعض الإعدادات العامة التي يمكن تكوينها. هذه الإعدادات موثقة في SETTINGS.md#general-settings.

يأتي SSH-Snake أيضًا مع مجموعة متنوعة من الاستراتيجيات القابلة للتكوين/التوصيل والتشغيل (وظائف) والتي يمكن استخدامها لاكتشاف مفاتيح SSH الخاصة على النظام واكتشاف المضيفات والوجهات لمحاولة الاتصال بها. تم توفير إعدادات افتراضية معقولة، ومع ذلك إذا كنت ترغب في إجراء فحص بأكبر قدر ممكن من الدقة، فإن تمكين المزيد من تقنيات الاكتشاف يمكن أن يساعد. إذا كان الفحص يستغرق وقتًا طويلاً، فإن تعطيل بعض تقنيات الاكتشاف يمكن أن يساعد. باستثناء استراتيجية واحدة (find_ssh_keys)، يمكن تشغيل/إيقاف كل استراتيجية. هذه موثقة في SETTINGS.md#configurable-discovery-strategies.

فهم المخرجات

تحتوي المخرجات الخام لـ SSH-Snake على مزيج من المعلومات حول المفاتيح الخاصة المُكتشفة والوجهات ورسائل الخطأ.

يمكن العثور على شرح مفصل للمخرجات الكاملة لـ SSH-Snake في OUTPUT.md.

يمكن العثور على مثال للمخرجات في example-output.log.

تصور علاقات النظام

يمكن استخدام مخرجات SSH-Snake لإنشاء رسوم بيانية/تصورات للشبكة التي يجتازها السكريبت.

يمكن العثور على شرح مفصل حول كيفية إنشاء وتفسير الصور/التصورات من مخرجات SSH-Snake في GRAPHICS.md.

أدوات أخرى

بالإضافة إلى القدرة على إنشاء تصورات للشبكة التي يجتازها SSH-Snake، يتم توفير ثلاث أدوات أخرى. وهي:

  1. forward-lookup-host.py: بالنظر إلى مضيف مصدر أو وجهة، حدد جميع الأنظمة التي يمكن الوصول إليها بشكل مباشر أو غير مباشر (أي من خلال نظام ثالث).
  2. reverse-lookup-host.py: بالنظر إلى مضيف وجهة أو وجهة، حدد جميع الأنظمة التي يمكنها الوصول إليه بشكل مباشر أو غير مباشر.
  3. shortest-path-create-chain.py: بالنظر إلى المضيف أو الوجهة A و B، حدد أقصر مسار يربط بينهما.

تقوم الأداة الثالثة أيضًا بإنشاء أمر يمكن استخدامه للاتصال من الوجهة A إلى الوجهة B. على سبيل المثال:

root@kitploit:~
$ python3 tools/shortest-path-create-chain.py --file output.log --src '[email protected]' --dest '[email protected]'

Shortest path from [email protected] to [email protected]: [email protected]>[email protected]>[email protected]>[email protected]

[..]

ssh -i "/home/jrogers/.ssh/key" [email protected] 'sudo ssh -i "/root/.ssh/id_rsa" [email protected] 'ssh -i "/tmp/key" [email protected]''

Snake.sh مقابل Snake.nocomments.sh

نظرًا لأن السكريبت كبير جدًا، فإن تحميله في here-document (وهو ما يفعله تلقائيًا لأن السكريبت هو في الواقع كواين) يتسبب في كتابة bash لملف مؤقت (لأنه أكبر من 65535 بايت).

لتقليل الحجم بحيث يظل بدون ملفات بنسبة 100%، يحتوي Snake.nocomments.sh على إصدار تمت فيه إزالة جميع التعليقات والمسافات البيضاء غير الضرورية والأسطر الفارغة. هذا يقلل من حجم الملف بحيث لا يتم إنشاء الملف المؤقت بواسطة bash.

الأخطاء / المشكلات

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

أنا مهتم بشكل خاص بأي مخرجات [line] مثيرة للاهتمام مرتبطة بأخطاء لم يتم التقاطها بواسطة السكريبت.

القيود

  • IPv4 فقط: مثل جميع أفضل البرامج، لا يدعم السكريبت IPv6. لا أتخيل أنه سيكون هناك دعم لهذا في أي وقت قريب.
  • المنفذ 22 فقط: هناك افتراض عام بأن SSH يعمل على المنفذ 22.
  • GNU coreutils: يعتمد السكريبت بشكل كبير على GNU coreutils. لم أقرر مقدار (إن وجد) GNU-ism المستخدم في السكريبت.
  • لا يبحث السكريبت حاليًا عن مقابس وكيل SSH.
تنزيل الأداة
ip
timeout
arp
ifconfig
ipconfig
xargs