免疫调试器 - !mona 建议

逆向工程 开发 免疫调试器 元破解
2021-06-28 21:37:58

我一直在阅读一些关于漏洞利用开发的教程,这些教程使用该!pvefindaddr命令来帮助创建独特的模式和发现偏移量。

我知道 mona 已经被替换了pvefindaddr——但是从我在示例中看到的,我正在执行的!pvefindaddr suggest命令在 perl 中为您提供了一个利用建议,同时!mona suggest基本上为您编写了一个 metasploit 模块。

我查看了以下选项:

!mona help suggest

而且似乎没有很多可用的选择。是否有可能建议您提供以 metasploit 模块以外的任何格式编写的漏洞利用程序?我似乎无法pvefindaddr在免疫中工作 - 我假设它不再有效,因为 mona 已经取代了它,所以我想知道 mona 是否有任何灵活性?

我尝试在安全堆栈交换中询问这个问题并被指出在这里!

1个回答

mona.py仅支持自动生成 Metasplpoit 模块。你不能让它以任何其他形式输出利用代码。

pvefindaddr 已经根据该信息建议了有效载荷布局,mona 更进一步。事实上,它会尝试生成一个完整的 Metasploit 模块,包括所有必要的指针和漏洞利用布局。

这可能部分是因为为了运行,该suggest命令使用的findmsp命令需要“Metasploit 模式”(因此名称为“find msp”),这是一种使用字符序列的文本模式,不会重复相同的 4字节偏移量,使得识别模式每个部分的偏移量变得非常容易。这种模式在 Metasploit 框架中被广泛使用,以简化漏洞利用开发。

此命令将自动运行 findmsp(因此您必须使用循环模式来触发崩溃),然后利用该信息来建议漏洞利用框架

您可以执行以下操作:

  1. 您总是可以从 Metasploit 模块中提取代码,或者用不同的语言(例如 perl)重写它。

  2. findmsp直接使用该命令(如前所述,suggest内部使用它来获取漏洞利用所需的信息),它将为您提供影响内存区域、指针、寄存器等的详细信息,因此您可以自己构建漏洞利用。

    在崩溃时,只需运行 findmsp,您将获得以下信息:

    • 可以找到循环模式的位置(查找模式的第一个字节)以及该模式的长度
    • 用 4 字节循环模式和模式中的偏移量覆盖寄存器以覆盖寄存器
    • 指向循环模式、偏移量和模式剩余大小的寄存器
    • SEH 记录被 4 个字节的循环、偏移量和大小覆盖
    • 当前线程堆栈上的指针,进入循环模式(偏移量 + 大小)
    • 堆栈上循环模式的部分,从模式开始的偏移量和模式的大小。

    在所有情况下,findmsp 将搜索循环模式的正常模式、大写、小写和 unicode 版本。

  3. 最后,pvefindaddr可能不适用于您的 Immunity Debugger 版本,因为它比pvefindaddr. 由于它现已弃用,因此不再使用更新版本的 Immunity Debugger 进行更新。您可以获取旧版本并使用它。