Metasploit介绍
Metasploit是一个开源的、用Ruby脚本语言写的渗透测试框架(Metasploit Framework,MSF),该框架集成了很多可用的渗透利用工具,用户可以在这个框架下进行一系列的渗透测试,利用现有的装备(Payload),如Meterpreter等进一步获取对方的Shell。Metasploit功能强大,可以帮助安全人员评估系统安全性,发现系统的安全漏洞,对漏洞的防范措施进行验证,并提供真正的安全风险情报,因此几乎每一个从事渗透测试的人都会接触到它,是渗透测试最常用的工具。
Kali系统自带有Metasploit工具,无须用户自己安装,直接使用即可. 十分方便。Metasploit工具为用户提供了多种用户界面供用户使用,分别是Armitage(Metasploit图形管理工具)、MSFConsole(Metasploit控制终端)和MSFCli(Metasploit命令行),在目前使用的Kali 3.0版本中MSFCli命令行工具已经被废弃,不再提供,因此本节只介绍Metasploit图形界面和控制终端的使用。
图形界面Armitage
Armitage是Metasploit框架提供的一个带图形用户界面的管理工具,由Raphael Mudge开发,用户可通过Armitage图形界面与Metasploit框架进行交互, 调用Metaploit的功能模块,实现各种安全渗透测试。此外, Armitage工具包含了多个Metasploit控制台,可支持多个Meterpreter会话。
Armitage工具是用Java语言开发的,通过命令行的方式使用Metasploit难度较高,需要记忆的命令过多,而Armitage完美地解决了这一问题,用户只需要简单地点击菜单,就可以实现对目标主机的安全测试和攻击。Armitage良好的图形展示界面,使得攻击过程更加直观,用户体验更好。因其操作的简单性,尤其适合Metasploit初学者对目标系统进行安全测试和攻击。
Armitage工具的使用步骤如下:
1.启动Armitage工具
Armitage工具位于Kali系统应用菜单栏“Applications”下面的漏洞利用类工具“Exploitation Tools”
Armitage工具是Metasploit框架提供的一个供用户使用的图形用户接口,其底层依赖的还是Metasploit服务,因此在使用Armitage工具的时候会去连接底层的Metasploit服务,该服务的端口为55553,默认的用户名为msf,密码为空。
因此在使用Armitage之前,首先要开启Metasploit服务,早先的Armitage版本在启动时要事先手动启动Metasploit服务,而现在用户只需要单击“连接Connect”按钮, Armitage工具会自动启动Metasploit服务并连接服务
图5-3 启动Metasploit服务
图5-3询问用户是否启动Metasploit服务,单击“Yes”按钮,启动Metasploit服务,接下来Armitage会自动去连接Metasploit服务
连接Metasploit服务后, Armitage工具启动成功,进入其主界面,如图5-5所示。另外,用户也可以直接在“终端Terminal”中通过命令“armitage”来启动它。
Armitage工具的界面很简洁,左上角是Metasploit提供的一些进行渗透的模块,右上角显示的是扫描到的目标主机,下面是一个Metasploit控制终端,前面提到过Armitage可以挂载多个Metasploit控制终端,所以这里可以开启多个Metasploit控制终端。事实上使用Armitage跟直接使用Metasploit控制终端的差别不大,区别是在Armitage中可以从图形界面上选择用于渗透的模块,而控制终端需要通过命令显示并选择渗透模块。
## 2、发现目标主机
Armitage主界面中,没有显示任何目标主机,下面采用Armitage工具来发现目标主机,单击“Hosts”->“Nmap Scan”->“Quick Scan”命令,调用Nmap工具来执行目标网段的快速扫描
在弹出的对话框中输入要扫描的网段,这里输入Kali虚拟机和Metasploitable靶机所在的网段“192.168.137.0/24”,
点击“OK”按钮确定, Armitage将调用Nmap对目标网段进行扫描,在扫描的过程中,发现的主机将会显示在右上角的目标主机显示窗体中,用主机的IP地址来标识
目标网段扫描结束,将会弹出消息框提醒用户扫描结束,同时在消息框中会提示用户下一步的操作,即调用“Attacks”->“Find Attacks”命令来发现目标主机可被利用的漏洞。
## 3、扫描目标主机的操作系统类型
用户会发现扫描到的目标主机显示的图标全是黑色的,这是因为还没有识别目标主机的操作系统类型,无法显示Windows系统或Linux系统的图标,因此可利用Armitage进一步判断目标主机的操作系统类型以Metasploitable靶机为例,其IP地址为“192.168.137.129”,选中IP地址为“192.168.137.129”的主机,点击菜单命令“Hosts”->“Nmap Scan”->“Quick Scan(OS detect)”,将探测目标主机的操作系统类型,执行“Quick Scan(OS detect)”命令后,将弹出图5-10所示的对话框,在该对话框中可输入要探测的网段或主机的地址。可以看到,如果选择了某个主机,该主机的IP地址将自动出现在对话框中。
目标主机操作系统类型探测结束,其主机对应的图标将会变成操作系统对应的图标类型
## 4、发现目标主机可以利用的漏洞
要利用漏洞,首先要发现目标主机有哪些漏洞可被利用,目标主机的隔离与其硬件资源、操作系统版本、安装的软件版本以及开放的服务端口休减程关,在Armitage工具的图形用户界面中,可点击菜单命令“Attacks”->“TheAttacks”来发现目标主机存在的漏洞,
漏洞扫描结束,弹出的消息框,提示扫描结束,同时告诉用户目标主机的右键弹出菜单中多了一个与该目标主机关联的“Attack”子菜单
需要提醒用户的是,该“Attack”子菜单是与目标主机对应的,不同的目标主机发现的可利用的漏洞不同,相应的“Attack”子菜单中的命令也会不一样,存在差别。Metasploitable靶机系统Attack菜单中的命令
在图5-15中可以看到靶机系统可以利用的漏洞对应的攻击模块。从图5-15可以看出目标主机的右键弹出菜单中有五个选项,其中“Login” “Services”“Scan”和“Host”四个选项是在执行“Find Attacks”命令前就有的,而“Attack”选项是在执行“Find Attacks”命令后产生的。
## 5、对目标主机进行攻击
下面简单演示一下利用Armitage对发现的靶机系统漏洞进行攻击的过程.在要攻击的目标主机上单击右键,在弹出菜单中选择“Attack”->“ftp”->“ proftpd_133c_backdoor ”命令
“ Proftpd_133c_backdoor ”命令可以利用 proftpd_133c软件中的后门,从而获取FTP服务器的访问权。Proftpd是一款运行于Unix平台或是类Unix平台(如Linux,FreeBSD等)上的开放源码的FTP服务器软件,是原来世界上使用为广泛的FTP服务器软件Wu-ftpd的改进版,改进后的Proftpd在配置和管里的使用上更加简单方便。但是在2010年11月28日到2010年12月2日之]发行的供用户下载使用的proftpd-1.3.3c. tar.[bz2lgz]版本的文档中被恶意地植了一个后门,该后门可被利用来非法访问FTP服务器。
执行“ Proffpd_133c_backdoor ”命令后将弹出所示的攻击模块选项置对话框。
可对攻击模块的选项进行配置,比如配置本地主机的IP地址、本地主机运行进程的端口号、远程主机的IP地址、要攻击的远程服务端口号等。如图5-17所示,因为攻击的是FTP服务器,所以远程服务的端口号为21。配置好攻击模块的选项后,单击“Launch”按钮执行攻击
在MSF的控制终端中可以看到命令的执行过程,最后向目标主机的21号端口发送了 Proftpd_133c后门控制命令,获取对 Proftpd 服务进程的访问控制,接下来就可以利用FTP命令来访问目标主机上的FTP服务了。