Linux黑客Metasploit Development

【译】Metasploit:Metasploit module

2018-06-13  本文已影响48人  王一航


Metasploit 将一些难以理解或者难以设计出来的技术转换成了非常容易使用的东西。不夸张的说,只需要点击几下即可让你看起来像《黑客帝国》中的 Neo 一样狂拽酷炫吊炸天。

这样 Hacking 变得非常简单。然而,如果你以前没有接触过 Metasploit,那么你需要知道的是:没人能一次成功(译者注:原文为 Nobody makes their first jump,来自《黑客帝国》)。你会犯错误,有时很小,有时可能会是灾难性的......但愿不会。

在第一次进行利用的时候你很可能会面对失败,就像《黑客帝国》中的 Neo 一样。当然,要想达到你的目标,你必须学会适当地使用这些模块,我们会教你如何做。

在本篇文档中,我们不要求读者有 Exploit 开发的知识。当然如果有一些 Exploit 开发的经验,那当然再好不过了。
总的来说,在漏洞利用之前,实际上有一些“功课”需要做。

加载一个 Metasploit 模块

每一个 Metasploit 模块都会携带一些元数据来解释这个模块的用途,首先你需要加载目标模块。例如:

msf > use exploit/windows/smb/ms08_067_netapi

阅读一个模块的描述和参考文献

可能听起来让人惊讶,但是有时候我们仍然会被问道一些已经在文档中解释过的问题。所以,在你决定究竟一个模块是不是应该被使用的时候,你应该先在模块提供的文档和参考文献中寻找如下问题的答案:

你可以通过输入如下命令来查看模块的描述信息:

msf exploit(ms08_067_netapi) > info

目标列表(译者注:Target List,具体目标操作系统列表,包括版本等)

每一个 Metasploit 漏洞利用都有一个(可用)目标列表。
开发人员在公开发布漏洞利用程序之前,会进行一系列的测试。
如果目标系统不在这个列表中,最好假设该漏洞利用程序从未在该特定的设置上进行过测试。

如果漏洞利用程序支持自动选择目标系统,那么列表中的第一项就会是 “自动选择目标系统”(Automatic Targeting)(也就是索引为 0 的一项)。第一项总是会被默认选中,这意味着如果你以前并没有使用过这个漏洞利用程序那么你就永远不应该假设漏洞利用程序会为你自动选择目标系统,并且这个默认值并不一定是你正在测试的目标所使用的操作系统

"show options" 命令可以告诉我们哪些目标系统已经被选择,例如:

msf exploit(ms08_067_netapi) > show options

“show targets” 命令会列出所有该漏洞利用程序支持的目标操作系统列表

msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(windows/smb/ms08_067_netapi) > show targets 

Exploit targets:

   Id  Name
   --  ----
   0   Automatic Targeting
   1   Windows 2000 Universal
   2   Windows XP SP0/SP1 Universal
   3   Windows 2003 SP0 Universal
   4   Windows XP SP2 English (AlwaysOn NX)
   5   Windows XP SP2 English (NX)
   6   Windows XP SP3 English (AlwaysOn NX)
   7   Windows XP SP3 English (NX)
   8   Windows XP SP2 Arabic (NX)
   9   Windows XP SP2 Chinese - Traditional / Taiwan (NX)
   ...

检查所有选项

所有的 Metasploit 模块都预先配置了大部分的数据存储的选项。然而,它们可能并不适合于你正在测试的目标系统。你可以使用 “show options” 命令来进行一次快速检查:

msf exploit(ms08_067_netapi) > show options

然而,“show options” 仅为你显示所有的基础选项,一些逃避(译者注:原文 evasion,该选项主要用于逃避反病毒软件或者攻击检测系统的审查,例如在 WEB 漏洞的利用中可以通过随机 HTTP User-Agent 字段来逃避某些审查,例如 Pull Request 5872)和高级选项并不会被显示出来(使用 "show evasive" 和 “show advanced”),可以使用 set 命令来对数据存储选项进行配置:

msf exploit(ms08_067_netapi) > set

寻找模块对应的 Pull Request

Metasploit 仓库是托管在 GitHub 上的(嗯,其实就是你正在浏览的网站),开发者和贡献者在开发中严重依赖 GitHub。在一个模块被公开之前,它将会被作为一个 Pull Request 提交到 Metasploit 仓库,之后该 Pull Request 将会被测试以及被 Review。在一个模块的 Pull Request 页面,你将会找到你需要知道的关于该模块的 所有信息 ,你或许还能得到一些从模块描述或者一些别的博客文章中没有的信息。这些信息是非常有价值的!

你可以从 Pull Request 中学到的有:

有两种主要的方法可以找到一个指定模块的 Pull Request

https://github.com/rapid7/metasploit-framework/pull/[PULL REQUEST NUMBER HERE]
  1. 选择已经关闭的 Pull Request
  2. 选择 “模块” 标签
  3. 在搜索框中,输入其他和你要搜索的模块相关的关键字。一般来说,模块的标题即可。

注意:如果你想要找的模块是 2011 年写的,那么将不会有关于这个模块 Pull Request (译者注:可能是因为 2011 年才开始在 GitHub 上托管?或者 GitHub 2011 年才上线 Pull Request 功能?)

上一篇 下一篇

猜你喜欢

热点阅读