在进行漏洞利用开发时,该进程始终依赖于受害者机器的内存地址。
作为漏洞利用开发人员,您必须设置攻击者\受害者机器的环境并尝试使用它。漏洞利用开发人员在从易受攻击的应用程序中获取 shell 的过程中的主要线索是内存地址(主要是 DLL 和缓冲区位置),他通过将应用程序附加到调试器(通常由 CPU 寄存器(例如 EIP )指向, ESP 等)。
如果最终目标是制作概念验证代码以证明此应用程序易受攻击,这很好。但是,据我所知,这些地址不是永久性的,并且可以在机器之间更改。如果您正在为一家公司进行黑盒渗透测试,您将无法将调试器附加到他们的应用程序以获取正确的跳转地址。这同样适用于来自exploit-db的公共漏洞利用,因为那里的大多数漏洞利用都需要对地址和偏移量进行一些修复。
所以我的问题是:作为渗透测试人员而不是作为漏洞利用开发人员,渗透测试人员如何从编写这样的漏洞(或从漏洞利用数据库下载漏洞)中受益?