首页
社区
课程
招聘
[翻译]有志之士的Metasploit,第一部分(引子与概观)
2018-3-7 10:43 8205

[翻译]有志之士的Metasploit,第一部分(引子与概观)

2018-3-7 10:43
8205

原文链接

作者: OCCUPYTHEWEB

译者:阳春

翻译时间:2018/3/6

译者注:这是Metasploit的一系列使用教程,我打算逐篇翻译。另,转载请注明作者、译者以及出处。


欢迎回来,各位菜鸡同志们!

我已经写了许多使用Metasploit进行攻击的教程,包括《不留痕迹》和《内部架构探索》。此外,还有我的Metasploit命令攻击脚本备忘单。

这期开始,我将依序渐进开写一个学习和使用Metasploit的系列。第一部分涵盖对新手来说Metasploit非常基础的知识,其它人就当复习了。请记住一件事情,这对地球上最强大的黑客平台之一来说是迅速而肮脏的第一课。

Metasploit背景和安装

2003年,HD Moore开发了开源项目Metasploit。

2007年,Metasploit使用Ruby重构,原本用的是Perl。

2009年,Rapid7买下了它,这是一家生产了漏洞扫描器Nexpose的信息安全公司。

Metasploit当前版本是4.9.3,Kali Linux默认安装。BackTrack里也有。如果你们使用其它版本的Linux或者Unix(包括Mac OS),可以去Rapid7官网下载。

Windows使用者也可以从Rapid7获取Windows版本,不过我不建议在Windows上使用Metasploit。因为虽然可以下载安装,但是有些攻击框架的功能没能移植到Windows上,而且我在Null Byte这里的很多攻击方式也没法工作在Windows上。


Metasploit现有多种产品,包括Metasploit Pro(完整商业版)和社区版本(内建于Kali并且一直免费)。我们将专注于社区版本,并且我觉得你们大部分人不需要购买价值30,000美刀的Pro版本。

使用Metasploit的方式

有几种方式可以访问Metasploit。最通常的方式,也是我使用的方式,是通过Metasploit交互控制台。在Kali的命令行中输入msfconsole即可使用。以下是其它的方式:

Msfcli

首先,你可以从命令行使用Metasploit,即msfcli模式。看起来我们只是在控制台下使用命令行,实际上我们正使用着一个有特殊关键字和命令支持的交互对话框。通过msfcli,我们是真的在使用Linux命令行。

我们可以通过以下命令进入帮助页面:

kali > msfcli -h


现在从msfcli开始执行漏洞攻击程序(exploit),形式很简单:

kali > msfcli <the exploit> payload = <the payload> rhost = <IP> lhost = <IP> E

要执行的程序(execute)简写E。

在我的教程《创建免杀payloads》中,我们在命令行模式(msfcli)下使用msfencode和msfpayload命令。

使用msfcli的缺点在于它不像msfconsole有良好的支持,并且你只能用单条指令(shell),执行一些复杂的漏洞攻击程序(exploits)就不太可能了。

Armitage

如果你想通过图形界面使用Metasploit,那么你有好几个选择。首先是Raphael Mudge开发的Armitage(想必是指开创性网络黑客科幻小说Neuromancer的主角,这是一本所有黑客都必读的科幻小说)。

在Kali启动Armitage,简单键入:

kali > armitage


如果Armitage连接失败,尝试以下替代命令:

kali > service start postgresql

kali > service start metasploit

kali > service stop metasploit


Armitage是基于C/S架构的Metasploit图形界面。启动Metasploit作为服务端,Armitage作为客户端,你就有了一个可以使用Metasploit完整功能的完整——但不是完全直观——图形界面。也许你真的需要一个图形界面才能觉得舒服,我也不鄙视你们使用图形界面,但是精通命令行对一个自我尊重的黑客来说是很必要的。


模块

Metasploit有六种不同类型的模块。分别是:

  1.   payloads
  2.   exploits
  3.   post
  4.   nops
  5.   auxiliary
  6.   encoders

Payloads 指的是入侵一个系统后留在那里的代码。一些人称之为监听器、rootkits之类的。在Metasploit里面,叫playloads。这些payloads包括命令行工具,Meterpreter等等。payloads的类型有staged,inline,NoNX(绕过某些现代CPU的不可执行特性),PassiveX(绕过防火墙的限制出站规则),IPv6等等。

Exploits 指的是利用系统漏洞或者缺陷的攻击程序。它们针对特定的操作系统,而且经常是特定的SP(service pack),特定的服务,特定的端口,甚至特定的应用程序。它们按操作系统分类,所以Windows exploits无法用于Linux,反之亦然。

Post 指的是用来向目标系统发送漏洞攻击程序的模块。

NopsNo Operations的缩写。在X86中,通常用16进制的0x90表示。简言之,“什么也不做”。它可以成为创建缓冲区溢出的关键。我们可以使用show命令查看nops。

msf > show nops


Auxiliary 放的是各种不适合放在其它目录的模块(695)。包括了模糊测试工具,扫描器,拒绝服务攻击器等等。想深入了解这个模块,请参考我的文章《附加模块》。

Encoders 是一个让我们可以通过各种方式对payloads进行编码的模块,目标是绕过防病毒程序和其它的安全设备。我们可以键入以下命令查看encoders:

msf > show encoders


如你所见,Metasploit内建许多编码器。shikata_ga_nai是我最喜欢的之一,它可以对payload进行异或(XOR)以绕过杀毒软件和安全设备。

搜索

从Metasploit4发布开始,Metasploit加入了搜索功能。之前,你不得不通过msfcli然后grep来搜索模块,但是现在Rapid7已经添加了关键字和功能搜索。搜索功能的添加相当及时,例如,随着Metasploit的急速成长,要搜索超过1400个模块,简单的人眼搜索和grep搜索已经无法满足。

关键字搜索简洁而优雅。举个例子,我们可以通过type指定搜索的模块类型。

msf > search type:exploit


这样搜索的话,Metasploit返回所有的1295个攻击程序。嘛,也不是很有用。

假设我们知道攻击的目标是Sun Microsystems的Solaris(Sun的UNIX)机器,我们可以使用platform指定针对solaris系统的攻击程序。

msf > search type:exploit platform:solaris


现在我们缩小了目标范围,仅仅搜索针对solaris的攻击程序。

为了进一步精炼我们的搜索,假设攻击目标是Solaris RPC (sunrpc),并且我们只想看到哪些针对特定服务的攻击程序。我们可以添加关键字”sunrpc”如下:

msf > search type:exploit platform:solaris sunrpc


如你所见,结果缩小到了仅仅5个攻击模块。


Metasploit尚有许多我们未开发的功能,我将从简至繁继续《Metasploit系列》。

在此期间,也希望各位多看看我的Null Byte文章中的Metasploit大纲,坚持在hack like a pro上看我的Metasploit系列!


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-2-1 18:43 被admin编辑 ,原因: 图片本地化
收藏
点赞1
打赏
分享
最新回复 (2)
雪    币: 17842
活跃值: (59828)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
Editor 2018-3-7 10:59
2
0
感谢分享!
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hlmmf 2019-8-29 02:09
3
0
ky
游客
登录 | 注册 方可回帖
返回