我想知道,在 Windows 等操作系统上,如果有人(非管理员)用 C++ 编写程序专门用于获取缓冲区溢出,他是否可以插入 shellcode 来获得管理员权限,而无需以管理员身份运行应用程序?我不想要代码,只想要理论
答案1
程序本身的缓冲区溢出不会导致普通用户权限提升到管理员。撇开进程隔离的技术原因不谈,想象一下如果这是可能的。那么网络上肯定会充斥着提供“rootmywinbox.exe”的下载
缓冲区溢出需要存在于以提升权限运行的某些操作系统服务中。例如,系统服务、文件系统代码、网络代码等。这始终意味着操作系统/服务中存在错误。此类错误相对罕见,但确实存在。如果你发现一个,你就会出名。
编程语言(例如 C++)与问题根本无关,除非您指的是程序本身的溢出,那么答案是否定的。