首页
论坛
课程
招聘
[翻译]有志之士的Metasploit,第三部分(Payloads)
2018-3-14 11:16 2317

[翻译]有志之士的Metasploit,第三部分(Payloads)

2018-3-14 11:16
2317

原文链接

作者: OCCUPYTHEWEB

译者:阳春

翻译时间:2018/3/10

译者注:转载请注明作者、译者和出处

欢迎回来,我的菜鸡同志们!


众所周知,Metasploit是每个黑客必须了解并且精通的漏洞攻击框架。它是我最喜欢的黑客工具之一。

Metasploit允许我们使用预设的已知漏洞(包括操作系统,浏览器和其它应用漏洞)攻击程序在目标系统植入后门(rootkit/listener/payload)。这些后门让我们在漏洞攻击后可以连接受害系统然后操控之。在这个教程里,我们认真看看Metasploit里的各种payload。

Metasploit有很多类型的payloads可以放到指定的系统上。我们最熟悉的有generic/shell/reverse_tcp windows/meterpreter/reverse_tcp 这些在之前的教程用过的payloads。今天我们看看这些玩意都是怎么工作的,Metasploit怎么给它们分类,以及各种类型的payloads都长什么样子。我希望了解这些有助于你们进行攻击时挑选合适的payload。


让我们近窥Metasploit的这些payloads。

Step 1. 启动Kali linux & 打开Metasploit

当我们在Kali打开Metasploit控制台之后,可以看到Metsploit列出了漏洞攻击模块,附加模块,发送攻击模块,payload模块,编码器模块和nops模块的数量。

参考下面截图,注意当前版本Metasploit共有335个payloads(你们看到的可能因版本不同而与我略有差异)。这是能应对各种情况的巨大宝库。

我们输入:

msf > show payloads

Metasploit详细列出了这335个payloads。

Step 2. Payloads种类

Metasploit的这335个payloads分成8个种类。

Inline

这种payloads都是单独的一个集合包。它们生来稳定,但是因为其较大,不太能放在易受攻击的内存小区域上。

Staged

这种payloads特别容易挤进小空间,在系统上立足,然后接其它队友上车。

Meterpreter

我们最想要放在受害系统上的最强悍的payload。它通过.dll注入常驻到内存,在系统硬盘上不会留下痕迹。为其特别设计的各种命令和脚本让我们可以在受害系统上为所欲为。

PassiveX

这些payload用来对付设置了出站过滤规则的防火墙。本质上,其利用IE浏览器的ActiveX隐藏出站通讯,使用同浏览器行为一致的HTTP通讯方式绕过防火墙。

NoNX

在一些CPU上,有一种自带的安全特性称为DEP(数据执行保护)。在Windows里叫不可执行(No eXecute,NX)。这个安全特性的作用是避免CPU上的纯数据被执行。NoNX的设计意图便是用来绕过现代CPU的这种特性。

Ord

此类payloads几乎适用于所有Windows系统。它们超级小,但不是很稳定。它们需要将.dll(动态链接库)载入到受感染的进程。

IPv6

顾名思义,用于IPv6网络的payloads。

Reflective DLL Injection

这些payload模块直接注入到正在内存中运行的进程,不会写入磁盘,因此几乎不会留下任何证据。

Step 3. Payload模块

如果我们细看Kali上的Metasploit目录就会发现,Metasploit给payloads分了三个目录。显而易见,八种payload被并到了三个目录下。

kali > cd /usr/share/Metasploit-framework/modules/payloads

kali > ls -l

Staged

分段式payloads使用微型片段(stagers,见下文)挤进小型的感染空间。也就是说,如果受害系统的感染缓冲区非常小,仅能允许小型代码片段执行,那么一个小的stager会被扔到内存里面。在立足之后,这个stager会把payload余下部分“接送”到感染的系统。

这些大的payloads片段包括Meterpreter和VNC注入器,它们有着庞大复杂的代码。通常分段式payload用“/”分割各个payload片段,比如windows/shell/tcp_bind。“tcp_bind”就是stager(见下文),“shell”就是staged。

不幸的是,这个约定不是人人遵守,所以我们常常不得不查看“info”或者目录来确定它们是不是一个分段式payload。

Stagers

小型片段Stagers的任务就是挤进小的内存区域然后把大的staged payload“接送”过去。它们善于在受害者身上“立个flag”,然后载入更大的payload。

Singles

常常指“inline payloads”,“单身狗” |_・) 是不需要stager的自洽单元。它们通常是稳定且较佳的选择,但很多时候因为太大了而塞不进感染系统的内存区。

现在来看看singles目录。

kali > cd singles

kali > ls -l

如你所见,singles按可入侵平台类型分类。如果想看windows平台的可用singles,输入:

kali > cd windows

kali > ls -l

我们在这个目录里看到了所有可用于Windows的singles payloads。我从中高亮了一条,shell_rever_tcp,这个模块我们用过很多次了。

Payloads是Metasploit的重要基本组件,提供了漏洞攻击完成后的控制能力。对它们的理解越深,你们的黑客之路就越顺。

今天就到此为止了。有空多刷刷我的Metasploit基础教程系列。来吧,常回来看看,我的菜鸡同志们!


第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

最后于 2018-3-14 16:33 被阳春编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回