【译】Metasploit:Metasploit module 的正确打开方式



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

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

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

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

加载一个 Metasploit 模块

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

msf > use exploit/windows/smb/ms08_067_netapi

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

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

  • 哪个具体产品和哪个具体版本是存在漏洞的:关于一个具体漏洞,这是你应该明确的最基础的问题

  • 漏洞的类型是什么?漏洞是如何被利用的?基本上来说,你正在学习的是漏洞利用的副作用。例如:如果你正在尝试利用一个内存破坏(译者注:原文 memory corruption)漏洞,如果因为某些原因,利用失败了,你可能会让目标服务器直接崩溃掉。就算利用成功,得到了一个 Shell,当你已经完成了你想要在目标系统上做的事情,并在 Shell 中输入 exit 退出的时候,目标服务器也会崩溃掉。高层(译者注:原文 High level,个人理解相对于底层漏洞,一个不小心系统可能会直接 crash,但是如果高层的漏洞利用,如果只是一个 WEB 漏洞,那么肯定对操作系统造成不了什么影响)的漏洞一般来说比较安全,但是也不是百分之百安全。例如:某一个漏洞利用程序可能需要修改配置文件或安装可能导致应用程序中断的内容,这些可能成为对目标系统的永久性破坏。

  • 哪些目标环境是通过漏洞利用测试的? 当一个漏洞利用程序开发完成的时候,如果目标操作系统种类太多,通常情况下很难去在每一个可能的目标系统上进行测试。通常开发者仅会在他们手头现有的目标系统上进行测试。所以,如果你的目标系统不在支持的目标系统列表中的时候,请了解我们并不能保证漏洞利用程序会百分之百利用成功。最安全的做法是你可以先重新搭建一个和目标系统一模一样的靶场环境进行漏洞利用测试,测试通过后在进行实际的对目标系统的测试。

  • 服务器必须满足什么条件才可以被利用?通常,一个漏洞利用需要很多条件同时满足才可以成功。有些情况下,你可以使用 Metasploit 的 check 命令 来检查目标系统是否可以被利用,因为 Metasploit 将某一个事物标记为存在漏洞的时候,事实上是利用了目标的 BUG。对于使用 BrowserExploitServer mixin 的浏览器攻击程序,会在加载漏洞利用之前检查可利用的条件是否满足。但是自动化的检查并不是每个模块都有的,所以你应该在执行 exploit 命令之前先尝试搜集这些信息,这应该是一个攻击者的常识。例如:一个 WEB 应用的文件上传功能就很容易被滥用,被用来上传一个基于 WEB 的后门程序,但是这个漏洞要成功利用的条件是用户必须有对上传文件夹的访问权限。如果你的目标系统不满足这些必要条件,那就没有必要再进行尝试了。

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

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 中学到的有:

  • 搭建漏洞环境的步骤
  • 哪些目标环境已经被测试过
  • 该模块应该如何使用
  • 模块如何被检验并通过审核
  • 哪些问题是已经被确定的,其中可能就有你想要知道的
  • Demo
  • 其他的惊喜

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

  • 通过 Pull Request 的序号:如果你已经知道了具体的 Pull Request 序号,那么就很简单了,只需要访问如下连接
https://github.com/rapid7/metasploit-framework/pull/[PULL REQUEST NUMBER HERE]
  • 通过搜索(过滤器) 这个方法更加通用。首先你应该先访问:https://github.com/rapid7/metasploit-framework/pulls。在页面顶部,你将看到一个搜索输入框和一个默认的过滤器:is:pr is:open,这些默认值意味着你正在查看 Pull Request,并且你正在查看那些待定的 Pull Request (等待被合并到 Metasploit 中的 Pull Request)。因为你正在寻找已经被合并到 Metasploit 的模块,所以你需要按照如下操作:
  1. 选择已经关闭的 Pull Request
  2. 选择 “模块” 标签
  3. 在搜索框中,输入其他和你要搜索的模块相关的关键字。一般来说,模块的标题即可。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,233评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,013评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,030评论 0 241
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,827评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,221评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,542评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,814评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,513评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,225评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,497评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,998评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,342评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,986评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,812评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,560评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,461评论 2 266

推荐阅读更多精彩内容