为了了解编写 PoC 所涉及的复杂性(并获得经验),可以进行补丁差异化并使用现实世界中的易受攻击的示例进行练习。现在请忽略制作自己的易受攻击程序的想法。
对于补丁差异,我看到操作系统可以处于 3 种状态,让我们以 Windows 7 为例:
- 普通状态(无服务包,无补丁)
- 部分修补(未更新到最新发布的补丁)
- 完全修补
设想
- 我的 vmware/vbox 系统处于状态 3(已完全修补)。
- 接下来,我转到 Microsoft 安全公告并选择一个漏洞(例如内核)。
- 现在我想恢复到有用的状态......
尽管它可能适用于普通状态 (1),但差异结果会更大/更难发现问题。其次,最新漏洞的错误可能是由以前的补丁/服务包引入的。
因此,如何从操作系统状态 3 转到状态 2,其中状态 2 是在解决问题的新补丁之前修补的系统?或者如果更方便,从状态 1 到状态 2。
更新
我意识到我的问题并不像我想象的那么清楚,希望这能澄清一点
我知道 vmware/vbox 的快照功能,但这不是我要找的。我真正的目标是
- 如何获取已更改二进制文件的旧版本?
- 如何知道要恢复到哪个版本?文件中有一些命名方案吗?
例子:
- 我的系统是完全最新的。
- 我在安全公告中找到了一个 KB-XXXXX,将其解压缩,它为我提供了一个名为 abc_005.dll 的更新后的 .dll
- 现在,我想让我的系统处于获取 dll 的先前(易受攻击)版本(例如 abc_004.dll)的状态。<- 我将如何做这部分?