我正在编写python中应该是一个非常简单的UAC Bypass应用程序。经过研究和分析,Windows 7,8和8.1中存在相同的DLL搜索顺序劫持漏洞。
首先,忘记所有的准备工作。例如,我在本地存储了一个带有.dll的.cab文件,它将启动cmd.exe。这一点是将它写入TEMP目录,使用WUSA将其解压缩到目标文件夹,然后执行易受攻击的应用程序。
我说忘记准备的原因是因为它还没有进入我的问题清单。假设目标程序是“program.exe”。当我双击“program.exe”时,它会像它应该生成CMD。此外,当我打开CMD并键入“program.exe”时,会发生同样的事情,我从被劫持的DLL中获取cmd.exe shell。
然而,在我的问题上。即使我什么都不做,但是:
import os
os.sytem("program.exe") #Same thing with subprocess.call and Popen
我得到了原始程序,而不是被劫持的程序。这很奇怪,因为当我只是双击或通过正常的CMD执行它时它可以正常工作。
有什么我想念的吗?为什么这会在其他场景中工作,而不是在python中?
正如您所看到的,相同的安全上下文......一个用被劫持的DLL执行,另一个用于启动正常程序。为什么呢?