原文链接
作者: 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有六种不同类型的模块。分别是:
payloads
exploits
post
nops
auxiliary
encoders
Payloads 指的是入侵一个系统后留在那里的代码。一些人称之为监听器、rootkits之类的。在Metasploit里面,叫playloads。这些payloads包括命令行工具,Meterpreter等等。payloads的类型有staged,inline,NoNX(绕过某些现代CPU的不可执行特性),PassiveX(绕过防火墙的限制出站规则),IPv6等等。
Exploits 指的是利用系统漏洞或者缺陷的攻击程序。它们针对特定的操作系统,而且经常是特定的SP(service pack),特定的服务,特定的端口,甚至特定的应用程序。它们按操作系统分类,所以Windows exploits无法用于Linux,反之亦然。
Post 指的是用来向目标系统发送漏洞攻击程序的模块。
Nops 是No 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编辑
,原因: 图片本地化