Seth : Perform A MitM Attack & Extract Clear Text Credentials From RDP Connections

Seth is a tool written in Python and Bash to MitM RDP connections by attempting to downgrade the connection in order to extract clear text credentials.

It was developed to raise awareness and educate about the importance of properly configured RDP connections in the context of pentests, workshops or talks. The author is Adrian Vollmer (SySS GmbH).

Usage

Run it like this:

$ ./seth.sh <INTERFACE><ATTACKER IP><VICTIM IP><GATEWAY IP|HOST IP>[<COMMAND>]

Unless the RDP host is on the same subnet as the victim machine, the last IP address must be that of the gateway.

The last parameter is optional. It can contain a command that is executed on the RDP host by simulating WIN+R via key press event injection. Keystroke injection depends on which keyboard layout the victim is using – currently it’s only reliable with the English US layout.

I suggest avoiding special characters by using powershell -enc <STRING>, where STRING is your UTF-16le and Base64 encoded command. However, calc should be pretty universal and gets the job done.

The shell script performs ARP spoofing to gain a Man-in-the-Middle position and redirects the traffic such that it runs through an RDP proxy. The proxy can be called separately.

Also Read – KaliTorify : Transparent Proxy Through Tor For Kali Linux OS

This can be useful if you want use Seth in combination with Responder. Use Responder to gain a Man-in-the-Middle position and run Seth at the same time. Run seth.py -h for more 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 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

Video Tutorial

Requirements

  • python3
  • tcpdump
  • arpspoofarpspoof is part of dsniff
  • openssl

Disclaimer

Use at your own risk. Do not use without full consent of everyone involved. For educational purposes only.

R K

Recent Posts

Kali Linux 2024.4 Released, What’s New?

Kali Linux 2024.4, the final release of 2024, brings a wide range of updates and…

17 hours ago

Lifetime-Amsi-EtwPatch : Disabling PowerShell’s AMSI And ETW Protections

This Go program applies a lifetime patch to PowerShell to disable ETW (Event Tracing for…

18 hours ago

GPOHunter – Active Directory Group Policy Security Analyzer

GPOHunter is a comprehensive tool designed to analyze and identify security misconfigurations in Active Directory…

3 days ago

2024 MITRE ATT&CK Evaluation Results – Cynet Became a Leader With 100% Detection & Protection

Across small-to-medium enterprises (SMEs) and managed service providers (MSPs), the top priority for cybersecurity leaders…

5 days ago

SecHub : Streamlining Security Across Software Development Lifecycles

The free and open-source security platform SecHub, provides a central API to test software with…

1 week ago

Hawker : The Comprehensive OSINT Toolkit For Cybersecurity Professionals

Don't worry if there are any bugs in the tool, we will try to fix…

1 week ago