RDPY is an RDP Security Tool in Twisted Python with RDP Man in the Middle proxy support which can record sessions and Honeypot functionality.
RDPY is a pure Python implementation of the Microsoft RDP (Remote Desktop Protocol) protocol (client and server side). RDPY is built over the event driven network engine Twisted. RDPY support standard RDP security layer, RDP over SSL and NLA authentication (through ntlmv2 authentication protocol).
RDPY RDP Security Tool Features
RDPY provides the following RDP and VNC binaries:
- RDP Man In The Middle proxy which record session
- RDP Honeypot
- RDP Screenshoter
- RDP Client
- VNC Client
- VNC Screenshoter
- RSS Player
RDPY is fully implemented in python, except the bitmap decompression algorithm which is implemented in C for performance purposes.
RDPY Hacking RDP Binaries
rdpy-rdpclient is a simple RDP Qt4 client.
$ rdpy–rdpclient.py [–u username] [–p password] [–d domain] [–r rss_ouput_file] [...] XXX.XXX.XXX.XXX[:3389]
You can use rdpy-rdpclient in a Recorder Session Scenario, used in rdpy-rdphoneypot.
rdpy-vncclient is a simple VNC Qt4 client.
$ rdpy–vncclient.py [–p password] XXX.XXX.XXX.XXX[:5900]
rdpy-rdpscreenshot saves login screen in file.
$ rdpy–rdpscreenshot.py [–w width] [–l height] [–o output_file_path] XXX.XXX.XXX.XXX[:3389]
rdpy-vncscreenshot saves the first screen update in file.
$ rdpy–vncscreenshot.py [–p password] [–o output_file_path] XXX.XXX.XXX.XXX[:5900]
rdpy-rdpmitm is a RDP proxy allows you to do a Man In The Middle attack on RDP protocol. Record Session Scenario into rss file which can be replayed by rdpy-rssplayer.
$ rdpy–rdpmitm.py –o output_dir [–l listen_port] [–k private_key_file_path] [–c certificate_file_path] [–r (for XP or server 2003 client)] target_host[:target_port]
Output directory is used to save the rss file with following format (YYYYMMDDHHMMSS_ip_index.rss) The private key file and the certificate file are classic cryptographic files for SSL connections. The RDP protocol can negotiate its own security layer If one of both parameters are omitted, the server use standard RDP as security layer.
rdpy-rdphoneypot is an RDP honey Pot. Use Recorded Session Scenario to replay scenario through RDP Protocol.
$ rdpy–rdphoneypot.py [–l listen_port] [–k private_key_file_path] [–c certificate_file_path] rss_file_path_1 ... rss_file_path_N
The private key file and the certificate file are classic cryptographic files for SSL connections. The RDP protocol can negotiate its own security layer. If one of both parameters are omitted, the server use standard RDP as security layer. You can specify more than one files to match more common screen size.
rdpy-rssplayer is use to replay Record Session Scenario (rss) files generates by either rdpy-rdpmitm or rdpy-rdpclient binaries.
$ rdpy–rssplayer.py rss_file_path
You can download RDPY here: