A Python RDP man-in-the-middle tool and library for intercepting, monitoring, and analyzing Remote Desktop Protocol connections.
PyRDP is a Python Remote Desktop Protocol (RDP) monster-in-the-middle (MITM) tool and library that intercepts and analyzes RDP connections. It captures credentials, monitors live sessions, records replays, and exfiltrates files, addressing the need for deep inspection of RDP traffic in security assessments and threat research.
Security professionals, penetration testers, red teamers, and malware researchers who need to analyze, intercept, or manipulate RDP connections for offensive or defensive purposes.
Developers choose PyRDP for its comprehensive feature set, including live session monitoring, replay capabilities, and payload automation, all built on a flexible Python library that supports both tooling and custom research workflows.
RDP monster-in-the-middle (mitm) and library for Python with the ability to watch connections live or after the fact
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Captures credentials, NetNTLM hashes, clipboard data, files, and records sessions, as outlined in the README's key tools like the MITM and player, making it a one-stop shop for RDP analysis.
Converter tool transforms replays to videos, JSON events, or PCAPs, enabling easy sharing and integration with other forensic tools, as detailed in the PyRDP Convert section.
PyRDP Player allows real-time viewing and interactive take-over of active RDP sessions, hiding attacker actions, which is essential for dynamic security assessments.
Featured in Black Hat Arsenal and developed by GoSecure, with a history of real-world use cases, indicating reliability and ongoing support from security experts.
Full installation requires additional packages like libavcodec and QT for GUI and video features, with separate slim versions, making deployment cumbersome on some systems, as noted in the Linux dependencies section.
Payload execution relies on hackish timing and fake key sequences, admitted in the README as not always 100% reliable, which can fail in dynamic RDP environments.
MITM on NLA-enforced servers often requires the server's private key or alternative methods like hash capture, reducing effectiveness if credentials are not obtainable, as explained in the NLA strategies section.
Advanced features like transparent proxying need Linux with root privileges and manual firewall config, limiting usability in restricted or multi-OS environments.