1. 介绍
Metasploit软件帮助安全专家和IT专家识别安全问题、验证漏洞修复情况,并管理由专家执行的安全评估。该产品提供真正的安全风险智能,帮助用户保护数据抵御攻击。
主要包含下面七大功能:
(1) 创建项目。
(2) 发现设备。
(3) 获取对主机的访问权限。
(4) 控制会话。
(5) 从目标主机收集证据。
(6) 清除会话 。
(7) 生成报告。
[出自:jiwo.org]
1.1. Metasploit优势
(1) 使用脚本语言RuBy开发,易于模块编写。
(2) 支持自定义模块导入功能 。
(3) 支持Web界面与命令行的操作。
(4) 支持Web 目标快速渗透测试 。
(5) 拥有国内CMS攻击模块,如DeDeCMS,ThinkPHP,eyou,Discuz,V5shop等。
(6) 具备自动化发现和自动化渗透功能 。
(7) 可以导入主流漏洞报告,如支持Nexpose、APPSCAN、AWVS、极光、天镜等扫描报告的导入并进行漏洞自动验证 。
(8) 自动化渗透测试,填入项目名称和目标IP就可以进行自动渗透(自动进行主机信息刺探,自动根据主机系统类型、端口、漏洞匹配漏洞模块进行渗透)。
(9) 集成Namp扫描工具,可自定义扫描参数 。
(10) 支持手动渗透测试,如对主机信息扫描,对单个主机或者单个漏洞渗透测试。
(11) 支持漏洞攻击重放,根据渗透发现的漏洞重放渗透过程。
(12) 支持VPN代理跳板式攻击,利用一台渗透成功机器作为跳板渗透同网段其它主机。
(13) 支持SCADA系统渗透,内置多种SCADA漏洞利用模块。
(14) 能够自动生成渗透测试报告,支持手动报告生成,并提供报告模版自定义报表。
(15) 具备Rapid7官方授权。
(16) 总模块数量不少于3300个,漏洞利用模块不少于1500个。
2. 安装和初始化设置
本指南将在Ubuntu Linux16.04 x64操作系统上安装Metasploit Pro版本。
2.1. 配置要求
2.1.1. 硬件要求
2GHz+处理器 2GB内存(推荐4GB,根据相同设备上的虚拟机目标可能需要更高配置)
500MB+可用磁盘空间
10/100Mbps网卡
2.1.2. 操作系统
WindowsXP、2003、Vista、2008Server和Windows7
RedHatEnterpriseLinux5.x、6.x-x86和x86_64
UbuntuLinux8.04、10.04-x86和x86_64
2.1.3. 浏览器版本
MozillaFirefox4.0+
MicrosoftInternetExplorer9
GoogleChrome10+
2.2. 安装指南
2.2.1. Windows操作系统
2.2.1.1. 步骤一
1.下载安装程序后,找到安装程序文件,然后双击安装程序图标。
2.出现“ 设置”屏幕时,单击“ 下一步”继续。
2.2.1.2. 步骤二
阅读许可协议。如果要继续,您必须接受许可协议。选择我接受许可协议选项,然后单击下一步继续。
2.2.1.3. 步骤三
选择Metasploit的安装目录。您选择的目录必须为空。单击“ 下一步”继续。
2.2.1.4. 步骤四
出现“ 禁用防病毒和防火墙”屏幕时,如果已禁用本地系统上的防病毒软件和防火墙,请单击“ 下一步”。如果您尚未禁用它们,则必须在此时禁用它们。
如果安装程序检测到启用了防病毒软件或防火墙,您将看到警告。单击“ 确定”关闭警告。在禁用防火墙和防病毒软件之前,安装程序将不允许您继续安装过程。如果您无法禁用它们,您将无法安装Metasploit。
2.2.1.5. 步骤五
输入Metasploit服务应使用的SSL端口,然后单击“ 下一步”。默认情况下,服务器使用端口3790进行HTTPS。如果端口已绑定到另一个进程,则可以使用netstat确定进程是否已在该端口上侦听并终止进程,或者您可以输入另一个端口,例如8080或442。
2.2.1.6. 步骤六
输入要用于生成SSL证书的Web服务器名称,以及证书在有效天数字段中应有效的天数。
2.2.1.7. 步骤七
选择是,信任证书将自签名的Metasploit SSL证书安装到操作系统的可信证书存储区。如果安装证书,则使用操作系统证书的浏览器(如Internet Explorer)将不会提示您有关不安全的SSL证书。
请注意,安装程序会创建一个临时证书颁发机构来生成证书,并立即将其丢弃,以防止网络钓鱼攻击和可能的证书重新签名。
2.2.1.8. 步骤八
1.安装程序已准备好安装Metasploit及其所有捆绑的依赖项。单击“ 下一步”继续。
2.安装完成后,单击“ 完成”按钮。
3.安装完成后,将出现一个窗口,提示您启动Metasploit Web UI。此时,您应启动Metasploit Web UI以创建用户帐户并激活许可证密钥。您无需重新启动系统即可首次启动Metasploit。
创建用户界面如下:
激活许可证密钥及激活成功界面:
2.2.2. Linux操作系统
以下Linux操作系统安装方案主要针对Ubuntu Linux16.04 x64 上安装MetasploitProfessional操作。
2.2.2.1. 步骤一
1.将安装程序的模式更改为可执行文件:
$ chmod +x desktop/metasploit-latest-linux-x64-installer.run。
2.运行安装程序:$ sudo ./metasploit-latest-linux-x64-installer.run。
3.出现安装界面。点击Forward(下一步)继续。
2.2.2.2. 步骤二
阅读许可协议。要继续,您必须接受许可协议。选择我接受许可协议选项,然后单击Forward(下一步)继续。
2.2.2.3. 步骤三
选择Metasploit的安装目录。您选择的目录必须为空。单击“ Forward(下一步)”继续。
2.2.2.4. 步骤四
选择是以将Metasploit注册为服务(推荐)。然后,单击“ Forward(下一步)”继续。
2.2.2.5. 步骤五
出现“ 禁用防病毒和防火墙”屏幕时,如果已禁用本地系统上的防病毒软件和防火墙,请单击“ 转发”。如果您尚未禁用它们,则必须在此时禁用它们。
2.2.2.6. 步骤六
1.输入Metasploit服务应使用的SSL端口,然后单击Forward。
2.输入要用于生成SSL证书的Web服务器名称,以及证书在有效天数字段中应有效的天数。
2.2.2.7. 步骤七
1.选择是,信任证书将自签名的Metasploit SSL证书安装到操作系统的可信证书存储区。如果安装证书,则使用操作系统证书的浏览器不会提示您有关不安全的SSL证书。
2.出现“ 准备安装”屏幕时,单击“ 转发”以开始安装过程。
3.安装完成后,单击“ 完成”按钮。
安装完成后,将出现一个窗口,提示您启动Metasploit Web UI。此时,您应启动Metasploit Web UI以创建用户帐户并激活许可证密钥。您无需重新启动系统即可首次启动Metasploit。
创建用户界面如下:
激活许可证密钥及激活成功界面:
3. 产品使用说明
3.1. Metasploit Pro工作流程
渗透测试的整个过程可以分为一系列步骤或阶段。根据您采用的方法,渗透测试可以分为四个阶段到七个阶段。阶段的名称可以有所不同,但通常包括侦察,扫描,开采,开采后,维护访问权限,报告和清理。
Metasploit Pro工作流程遵循渗透测试的一般步骤。除了侦察,您还可以从Metasploit Pro执行其他渗透测试步骤。
1.Create a project - 创建一个项目来存储从目标中收集的数据。
2.Gather information -使用发现扫描,Nexpose扫描或导入工具为Metasploit Pro提供目标列表以及正在运行的服务以及与这些目标相关联的开放端口。
3.Exploit -使用智能漏洞利用或手动漏洞利用对目标计算机发起攻击。此外,您可以运行蛮力攻击来提升帐户特权并获得对被利用机器的访问权限。
4.Perform post-exploitation -使用漏洞利用后模块或互动会话进行交互,以从受到感染的目标中收集更多信息。Metasploit Pro为您提供了多种工具,可用于与被利用机器上的打开会话进行交互。例如,您可以查看受感染目标上的共享文件系统,以标识有关内部应用程序的信息。您可以利用此信息来获取有关受感染系统的更多信息。
5.Clean up open sessions -使用“ 清理”选项关闭被利用目标上的所有打开的会话,并删除渗透测试期间使用的任何数据的任何证据。此步骤将还原目标系统上的原始设置。
6.Generate reports -使用报告引擎来创建详细介绍渗透测试结果的报告。Metasploit Pro提供了几种类型,可让您确定报告包括的信息类型。
3.1.1. 从Web界面访问Metasploit Pro
要访问Metasploit Pro 的Web界面,请打开浏览器,如果Metasploit Pro在本地计算机上运行,请访问https:// localhost:3790。如果Metasploit Pro在远程计算机上运行,则需要将localhost替换为远程计算机的地址。
要登录Web界面,您需要激活Metasploit Pro许可证密钥时创建的帐户的用户名和密码。如果您忘记了为该帐户设置的密码,则需要重设密码。
3.1.1.1. 支持的浏览器
如果用户界面无法正确显示其所有元素,请确保您使用的是以下列出的受支持的浏览器之一:
l 谷歌浏览器10+
l Mozilla Firefox 18+
l Internet Explorer 10+
l Iceweasel 18+
3.1.2. 从命令行访问Metasploit Pro
该临控制台通过命令行接口提供的Metasploit临的功能和用作替代Metasploit的网络用户界面。如果您以前是Metasploit Framework用户,则Pro Console可为您提供类似于msfconsole的功能。
您可以使用Pro Console执行以下任务:
l 创建和管理项目。
l 扫描并枚举主机。
l 导入和导出数据。
l 配置和运行模块。
l 运行自动化漏洞利用。
l 查看有关主机的信息。
l 从被利用的系统中收集证据。
您无法通过Pro Console执行所有Metasploit Pro任务。不支持的任务包括报告,社会工程,运行MetaModule,配置任务链,运行蛮力攻击和扫描Web应用程序。
3.1.3. 在Windows上启动Pro Console
要在Windows上启动控制台,请选择开始> Metasploit> Metasploit控制台。
您也可以从命令行启动控制台。要从命令行启动控制台,请输入以下内容:
$ cd /metasploit
$ console.bat
3.1.4. 在Linux上启动Pro Console
要在Linux上启动控制台,请打开终端并运行以下命令:
$ cd /opt/Metasploit/
$ sudo msfpro
3.2. 创建一个项目
项目包含工作空间,存储数据,并使您能够将项目分成逻辑组。通常,您对组织中的各个子网有不同的要求。因此,拥有多个项目来代表那些需求可能是有效的。
例如,您可能要为人力资源部门创建一个项目,为IT部门创建另一个项目。您对这些部门的要求可能相差很大,因此将目标分为不同的项目对您来说是合乎逻辑的。参与结束时,您可以为每个部门生成单独的报告,以进行比较分析并将发现的结果呈现给组织。
创建一个项目很容易。您可以单击“项目”页面上的“新建项目”按钮,也可以从全局工具栏中选择“项目”>“新建项目”。
当出现“ 新项目”页面时,您只需要提供一个项目名称。如果要自定义项目,还可以添加描述,指定网络范围并分配用户访问级别。
3.3. 获取目标数据
接下来要做的是将数据添加到项目中。有两种方法可以执行此操作:
l 运行发现扫描
l 导入您已经拥有的数据
3.4. 扫描目标
扫描是对主机进行指纹识别并枚举开放端口以了解网络中运行的服务的过程。通过扫描,您可以识别活动的系统以及可以与之通信的服务,从而可以制定有效的攻击计划。Metasploit拥有自己的内置发现扫描程序,该扫描程序使用Nmap执行基本的TCP端口扫描并收集有关目标主机的其他信息。
默认情况下,发现扫描包括UDP扫描,它将UDP探测发送到最常见的UDP端口,例如NETBIOS,DHCP,DNS和SNMP。扫描将测试大约250个通常用于外部服务的端口,并且在渗透测试期间通常会对其进行测试。
在发现扫描期间,Metasploit Pro自动将主机数据存储在项目中。您可以查看主机数据以获得对网络拓扑的更好理解,并确定利用每个目标的最佳方法。通常,网络拓扑可以洞悉目标已安装的应用程序和设备的类型。您可以收集的有关目标的信息越多,对您进行测试的调整就越多。
运行发现扫描很简单。在项目中,单击“扫描”按钮。
当出现“新发现扫描”表单时,在“目标地址”字段中输入要扫描的主机。您可以输入一个IP地址,带连字符的IP范围或标准CIDR表示法。每个项目都需要出现在换行符上。
您可以只在目标范围内运行扫描。但是,如果要微调扫描,可以配置高级选项。例如,您可以指定要从扫描中排除的主机,并从高级选项中设置扫描速度。
3.4.1. 发现扫描的工作方式
发现扫描可以分为四个不同的阶段:
l Ping scan
l Port scan
l OS and version detection
l Data import
3.4.1.1. Ping scan
发现扫描的第一阶段,即ping扫描,确定主机是否在线。发现扫描设置该-PI选项,该选项告诉Nmap执行标准的ICMP ping扫描。单个ICMP回显请求被发送到目标。如果有ICMP回显答复,则将主机视为“启动”或在线。如果主机在线,则发现扫描会将主机包括在端口扫描中。
3.4.1.2. Port scan
在第二阶段(端口扫描)中,Metasploit Pro运行Nmap来识别打开的端口,并且这些端口上的服务可用。Nmap将探测发送到各个端口,并对响应进行分类,以确定端口的当前状态。扫描涵盖了各种通常公开的端口,例如HTTP,telnet,SSH和FTP。
发现扫描使用默认的Nmap设置,但是您可以添加自定义Nmap选项以自定义Nmap扫描。例如,默认情况下,发现扫描运行TCP SYN扫描。如果要运行TCP Connect扫描而不是TCP SYN扫描,则可以提供该-sT选项。您指定的任何选项都会覆盖发现扫描使用的默认Nmap设置。
3.4.1.3. OS and version detection
发现扫描识别出打开的端口后,第三阶段开始。Nmap将各种探测发送到打开的端口,并根据系统对探测的响应方式来检测服务版本号和操作系统。操作系统和版本号提供有关系统的有价值的信息,并帮助您确定可能的漏洞并消除误报。
3.4.1.4. Data import
最后,在Nmap收集所有数据并创建报告之后,Metasploit Pro会将数据导入到项目中。Metasploit Pro使用服务信息发送针对发现的服务的其他模块,并探测目标以获取更多数据。例如,如果发现扫描使用telnet探针扫描目标,则目标系统可能会返回登录提示。登录提示可能表明该服务允许远程访问系统,因此,此时,您可能需要运行蛮力攻击来破解凭据。
3.4.2. 发现扫描中包含的端口
总共,发现扫描包括250多个端口,其中包括以下端口集:
l 标准和众所周知的端口,例如端口20、21、22、23、25、53、80和443。
l 服务的备用端口,例如端口8080和8442,它们是HTTP和Web服务可以使用的其他端口。
l 列出为模块中默认端口的端口。
如果没有看到要扫描的端口,则可以将端口手动添加到发现扫描中。例如,如果您知道您的公司在打开端口9998的情况下运行Web服务器,则需要将端口9998手动添加到发现扫描中。这样可以确保发现扫描包括可能打开的每个端口。
如果要扫描所有端口,可以将1-65535指定为端口范围。请记住,包含所有端口的发现扫描可能需要几个小时才能完成。
如果存在您不想扫描的端口,则可以将该端口排除在发现扫描之外。发现扫描不会扫描排除列表上的任何端口。例如,如果您的公司使用在端口1234上运行的应用程序,并且您不想影响该应用程序的性能,则可以将该端口添加到排除列表中。
3.4.3. 发现扫描选项
您可以为发现扫描配置以下选项:
3.4.3.1. 目标地址
定义要扫描的单个主机或网络范围。
3.4.3.2. 执行初始端口扫描
在发现扫描执行服务版本验证之前执行端口扫描。
3.4.3.3. 自定义Nmap参数
将标志和命令发送到Nmap可执行文件。发现扫描不支持以下Nmap的选项:-o,-i,-resume,-script,-datadir,和-stylesheet。
3.4.3.4. 其他TCP端口
将其他TCP端口附加到端口扫描。默认情况下,端口扫描覆盖的端口很小,但范围很广。如果要向扫描添加更多端口,请使用此选项。
3.4.3.5. 排除的TCP端口
从服务发现中排除某些TCP端口。默认情况下,端口扫描覆盖特定范围的端口。使用此选项可以添加要从扫描中排除的端口。
3.4.3.6. 自定义TCP端口范围
指定发现扫描使用的TCP端口范围,而不是默认端口。如果设置自定义TCP端口范围,则发现扫描将忽略所有默认端口,而改用您定义的范围。
3.4.3.7. 自定义TCP源范围
指定发现扫描使用的TCP源端口而不是默认端口。使用此选项测试防火墙规则。
3.4.3.8. 快速检测:仅通用TCP端口
在最常见的TCP端口上执行扫描,这减少了发现扫描扫描的端口数。
3.4.3.9. 端口扫描速度
控制Nmap计时选项。从以下时序模板中选择:
l Insane (5) -加快扫描速度。假设您使用的是快速网络,并且牺牲了速度的准确性。扫描延迟小于5毫秒。
l Aggressive (4) -加快扫描速度。假设您使用的是快速可靠的网络。扫描延迟小于10毫秒。
l Normal (3) -默认端口扫描速度,不影响扫描。
l Polite (2) -使用较少的带宽和目标资源来减慢扫描速度。
l Sneaky (1) -逃避IDS的速度。
l Paranoid (0) -用于逃避IDS的速度。
3.4.3.10. 端口扫描超时
确定Nmap在每个主机上花费的时间。默认值为5分钟。
3.4.3.11. UDP服务发现
设置发现扫描以查找网络上的所有服务。Metasploit使用自定义模块而不是Nmap来执行UDP服务发现。
3.4.3.12. 扫描SNMP社区字符串
启动后台任务,该任务会扫描响应各种社区字符串的设备。
3.4.3.13. 扫描H.323视频端点
扫描H.323设备。
3.4.3.14. 通过手指枚举用户
如果发现扫描检测到Finger协议,则查询用户名并尝试暴力破解用户列表。
3.4.3.15. 识别未知服务
设置发现扫描以查找网络上所有未知的服务和应用程序。
3.4.3.16. 单次扫描:单独扫描主机
在单个主机上运行扫描。发现扫描将完全扫描第一个主机,然后在信息移至下一个主机之前将其存储在数据库中。
3.4.3.17. 空运行:仅显示扫描信息
如果启用,此选项将准备扫描并显示发现扫描将在任务日志中使用的所有选项。但是,它不会启动扫描。
3.4.3.18. 网络扫描:运行Pro Web Scanner
自动运行Web扫描,Web审计和Web漏洞发现扫描。通常建议您不要启用此选项,除非您要对很少的主机进行扫描。如果要对大量主机运行发现扫描,则应与发现扫描分开运行Web扫描仪。
3.4.3.19. SMB用户名
定义发现扫描用来尝试登录SMB服务的SMB用户名。
3.4.3.20. SMB密码
定义发现扫描用于尝试登录SMB服务的SMB密码。
3.4.3.21. SMB网域
定义SMB服务器名称和共享名称。
3.4.4. 运行发现扫描
发现扫描运行Nmap以及一些特定于服务的模块,以识别运行中的系统并查找打开的端口和服务。至少,您需要指定要扫描的系统的地址。您还可以配置高级选项来微调不同的扫描阶段。例如,您可以绕过端口扫描阶段并转到版本检测,也可以单独扫描每个主机以加快将主机导入项目的速度。此外,这些高级设置使您可以选择端口,目标服务,扫描速度和扫描模式。
由于发现扫描主要利用Nmap,因此您可以指定其他Nmap选项来自定义扫描。例如,如果要更改扫描技术,则可以为要使用的技术提供Nmap命令行选项,发现扫描将应用这些设置而不是默认设置。有关Nmap选项的更多信息,请访问Nmap文档。
要运行发现扫描:
1. 在项目中,单击概述选项卡。
2. 出现“ 概述”页面时,单击“ 扫描”按钮。
您也可以从“ 分析”页面访问“ 扫描”按钮。
3. 当出现“ 新发现扫描”页面时,在“ 目标地址”字段中输入要包括在扫描中的目标地址。
您可以输入一个IP地址,地址范围或CIDR表示法。如果有多个地址或地址范围,请使用换行符分隔每个条目。
4. 此时,您可以启动扫描。但是,如果要微调扫描,可以单击“ 显示高级选项”按钮以显示可以为发现扫描设置的其他选项。例如,您可以指定要明确包含在扫描中或从扫描中排除的IP地址。
有关可用扫描选项的更多信息,请参阅发现扫描选项。
5. 准备好运行扫描时,请单击启动扫描按钮。
发现扫描启动后,任务日志将显示并显示进度状态和扫描状态。如果扫描成功完成而没有错误,则状态为“完成”。否则,错误将显示在任务日志中,并且扫描标记为“失败”。
3.4.5. 查看扫描结果
查看发现扫描收集的数据的最佳方法是从“ 主机”页面。要查看“主机”页面,请选择“ 主机”>“分析”。每个主机将具有以下状态之一:scanned,cracked,shelled,或looted。对于最近扫描的主机,最简单的识别方法是按日期和状态对其进行排序。
3.4.5.1. 从发现扫描收集的数据
您会注意到,对于每个扫描或导入的主机,将显示以下信息(如果有):
l IP地址
l 主机名
l 作业系统
l 主动服务
l 主机上次更新的时间戳
l 主机状态
3.4.5.2. 解码主机状态
主机状态描述了主机最近发生的当前事件。状态有一个等级顺序。
Scanned -表示已执行发现扫描,Nexpose扫描或导入。
Shelled -指示在主机上打开了会话。
Looted -表示文件或屏幕快照是从主机获取的。
Cracked -表示来自主机的密码哈希已解密为纯文本。
3.5. 导入数据
如果您正在使用漏洞扫描程序,则可以将漏洞报告导入Metasploit项目以进行验证。导入的漏洞数据还包括主机元数据,您可以对其进行分析以识别其他攻击路线。Metasploit支持多种第三方漏洞扫描程序,包括Nessus,Qualys和Core Impact。
您也可以将数据从一个Metasploit项目导出和导入到另一个项目中。这使您可以在项目和其他团队成员之间共享发现。
要将数据导入项目,请单击“快速任务”栏中的“ 导入”按钮。出现“ 导入数据”页面时,选择“ 从Nexpose 导入”或“ 从文件导入”选项。根据您选择的选项,表格显示您需要配置以导入文件的选项。
例如,如果选择从Nexpose导入,则需要选择要用于运行扫描或导入站点的控制台。如果选择导入文件,则需要浏览到文件的位置。
3.5.1. 从漏洞扫描仪导入数据
Metasploit允许您从第三方漏洞扫描程序(例如Nessus,Core Impact和Qualys)导入扫描报告。导入扫描报告时,会将主机数据(例如每个主机的操作系统,服务和发现的漏洞)导入到项目中。
要从第三方漏洞扫描器导入扫描报告:
1. 在项目中,单击概述或分析选项卡。
2. 单击快速任务栏中的导入按钮。
3. 出现“ 导入数据”页面时,选择“ 从文件”径向按钮。
4. 单击选择按钮以打开“ 文件上传”窗口。
5. 当出现“ 文件上载”窗口时,浏览到要导入的文件的位置,选择它,然后单击“ 打开”按钮。
6. 配置任何其他设置(可选):
Excluded Addresses -输入您不想包含在导入中的任何主机。您可以输入单个主机,IP范围或CIDR表示法。每个项目必须出现在新行上。
Don't change existing hosts -如果您不想覆盖项目中已经存在的主机的数据,请选择此选项。
Automatic tagging -输入要应用到导入主机的任何标记。您也可以选择通过操作系统选项自动标签添加OS标签,如os_windows,os_linux或os_unknown标签,每个进口的主机。
7. 单击导入数据按钮开始导入。
出现任务日志,并向您显示导入状态。导入完成后,任务日志将显示“已完成”状态。要查看导入的数据,请选择“ 分析”>“主机”以转到“ 主机”页面。使用更新的列对主机进行排序,以按最近更新的顺序查看所有最近导入的主机。
3.5.2. 支持的第三方扫描报告
Metasploit支持市场上的大多数主要扫描仪,包括Rapid7自己的Nexpose以及其他工具,例如Qualys和Core Impact。支持以下扫描报告:
l Foundstone Network Inventory XML
l Microsoft MBSA SecScan XML
l nCircle IP360 XMLv3 and ASPL
l NetSparker XML
l Nessus NBE
l Nessus XML v1 and v2
l Qualys Asset XML
l Qualys Scan XML
l Burp Sessions XML
l Burp Issues XML
l Acunetix XML
l AppScan XML
l Nmap XML
l Retina XML
l Amap Log
l Critical Watch VM XML
l IP Address List
l Libpcap Network Capture
l Spiceworks Inventory Summary CSV
l Core Impact XML
3.6. 查看和管理主机数据
您可以在项目级别或主机级别查看主机数据。在项目级别,Metasploit提供了已添加到项目中的所有主机的高级视图。要访问项目视图,请选择分析>主机。项目视图最初显示“主机”列表,该列表显示每个主机的指纹以及枚举的端口和服务。您还可以查看项目的所有注释,服务,漏洞和捕获的数据。要访问其他视图,请在项目视图中单击其选项卡。
要查看主机的详细信息,可以单击主机的IP地址以访问单个主机视图。这是深入查看特定主机的漏洞和凭据的好方法。
3.7. 运行漏洞扫描
在将目标数据添加到项目后,您可以运行漏洞扫描以查明可以利用的安全漏洞。漏洞扫描程序利用漏洞数据库并检查以发现目标计算机上存在的已知漏洞和配置错误。这些信息可以帮助您确定潜在的攻击媒介,并制定和制定攻击计划,从而使您能够在利用过程中危及目标。
与Nexpose的集成使您可以直接从Metasploit Web界面启动漏洞扫描。Nexpose扫描可识别在每个主机上运行的活动服务,打开的端口和应用程序,并尝试根据已知服务和应用程序的属性来识别可能存在的漏洞。Nexpose在扫描报告中披露结果,您可以将其与Metasploit共享以进行验证。
要运行Nexpose扫描,请单击快速任务栏中的Nexpose按钮。
当出现Nexpose配置表单时,您需要配置并选择要用于执行扫描的控制台。与发现扫描类似,您需要定义要扫描的主机。您还需要选择一个可用的扫描模板,该模板定义Nexpose使用的审核级别。
要查看Nexpose发现的所有潜在漏洞,请选择“ 分析”>“漏洞”。您可以单击漏洞名称以查看可用于利用该漏洞的模块。
3.8. 利用已知漏洞
在收集了有关目标的信息并确定了潜在的漏洞之后,可以进入开发阶段。利用只是针对发现的漏洞运行利用的过程。成功的利用漏洞尝试提供对目标系统的访问,因此您可以执行诸如窃取密码哈希和下载配置文件之类的事情。它们还使您能够识别和验证漏洞带来的风险。
Metasploit提供了几种可用于执行利用的不同方法:自动利用和手动利用。
3.8.1. 自动利用
自动利用功能可以交叉引用开放服务,漏洞参考和指纹以找到匹配的利用。所有匹配的漏洞利用都被添加到了一个攻击计划中,该计划基本上确定了所有可以运行的漏洞利用。自动利用漏洞的简单目标是通过利用Metasploit为目标主机提供的数据来尽可能快地进行会话。
要运行自动利用,请单击快速任务栏中的利用按钮。
至少,您需要提供要利用的主机以及每种利用的最低可靠性。可以设置最低可靠性,以确保启动的漏洞利用程序的安全性。可靠性级别越高,使用的漏洞利用就越不可能使服务崩溃或对目标产生负面影响。有关每个模块排名的说明,请查看此页面。
3.8.2. 手工开发
手动利用漏洞提供了更具针对性和方法性的漏洞利用方法。它使您可以一次运行一个选择的漏洞利用程序。如果存在要利用的特定漏洞,此方法特别有用。例如,如果您知道Windows XP目标上的SMB服务器没有MS08-067修补程序,则可能要尝试运行相应的模块来利用它。
要搜索模块,请选择“ 模块”>“搜索”,然后输入要运行的模块的名称。查找确切模块匹配的最佳方法是按漏洞参考进行搜索。例如,如果要搜索ms08-067,则可以搜索“ ms08-067”。您还可以按以下模块路径进行搜索:exploit/windows/smb/ms08_067_netapi。
查找漏洞利用程序的最简单方法之一就是直接从漏洞页面上。要查看项目中的所有漏洞,请选择“ 分析”>“漏洞”。您可以单击漏洞名称以查看可用于利用该漏洞的相关模块。
单个漏洞视图显示了可以针对主机运行的漏洞利用列表。您可以单击利用按钮以打开模块的配置页面。
3.9. 配置通用漏洞利用模块设置
每个模块都有自己的选项集,可以根据您的需求进行定制。这里列出的可能性太多。但是,以下是一些通常用于配置模块的选项:
l Payload Type -指定漏洞利用将传递给目标的有效负载类型。选择以下有效负载类型之一:
· Command -命令执行有效负载,使您能够在远程计算机上执行命令。
· Meterpreter -高级有效负载,提供命令行,使您可以即时传递命令并注入扩展。
l Connection Type -指定您希望Metasploit实例连接到目标的方式。选择以下连接类型之一:
· Auto -检测到NAT时自动使用绑定连接;否则,将使用反向连接。
· Bind -使用绑定连接,当目标位于防火墙或NAT网关后面时,此连接很有用。
· Reverse -使用反向连接,这在系统无法启动与目标的连接时非常有用。
l LHOST -定义本地主机的地址。
l LPORT -定义要用于反向连接的端口。
l RHOST -定义目标地址。
l RPORT -定义要攻击的远程端口。
l Target Settings -指定目标操作系统和版本。
l Exploit Timeout -以分钟为单位定义超时。
3.10. 剥削后的证据
成功利用漏洞的任何利用都会导致开放会话,您可以使用该会话从目标中提取信息。攻击的真正价值取决于您可以从目标中收集的数据,例如密码哈希,系统文件,和屏幕截图,以及如何利用这些数据来访问其他系统。
要查看打开的会话列表,请选择“ 会话”选项卡。单击会话ID以查看可以针对主机运行的利用后任务。
要从被利用的系统收集证据,请单击“ 收集”按钮。
显示所有打开的会话的列表,并向您显示可以收集的证据类型。
3.11. 暴力破解和重用密码
获取目标的最流行方法之一是使用密码攻击。您可以使用Bruteforce或Reusing Credentials进行密码攻击。
3.12. 清理会话
完成打开的会话后,可以清理会话以删除可能遗留在系统上的任何证据并终止会话。要清理会话,请转到“ 会话”页面,然后单击清理按钮。
当出现“ 会话清理”页面时,选择要关闭的会话,然后单击“ 清理会话”按钮。
3.13. 生成报告
在渗透测试的最后,您将要创建一个包含渗透测试结果的可交付成果。Metasploit提供了许多报告,您可以使用这些报告来编译测试结果并将数据合并为可分发的有形格式。每个报告将您的发现组织到相关部分,显示统计数据的图表,并总结主要发现。
3.13.1. 报告的通知中心状态
生成报告时,通知中心会在报告开始生成,完成生成或在生成过程中遇到错误时提醒您。通知中心显示为全局工具栏右上角的图标,并显示未读通知的总数。您可以单击“通知中心”图标以显示警报列表。
通知中心显示报告的以下状态:
l 报告已开始 -此状态表明报告已开始生成。
l 报告已完成 -此状态表明报告已生成,没有错误,可供您查看和下载。您可以单击警报以打开报告。当您从“通知中心”打开报告时,它将显示报告的统一视图并显示可用于其的格式。您可以单击任何一种格式图标来查看所选格式的报告。
l 报告问题 -此状态表示报告存在问题,无法完成。您将需要查看报告日志以解决问题。
3.13.2. 生成标准报告
1.打开包含要用于创建报告的数据的项目。
2.从项目选项卡栏中选择报告>创建标准报告。
将显示“报告”页面,其中已选中“生成标准报告”选项卡。
3.单击报告类型下拉菜单,然后选择要生成的报告。
4.选择您要为报告生成的文件格式。
您可以同时为报告生成多种格式。大多数报告可以生成为PDF,Word,RTF或HTML文档。但是,Web应用程序评估报告不能作为Word文件生成。
5.在报告名称字段中输入报告的名称。(可选的)
如果您未指定名称,则Metasploit Pro将使用报告类型和时间戳。例如,审核报告将命名为Audit-20140106140552。
6.使用“包含的”地址明确定义要包含在报告中的主机。(可选的)
例如,如果只想在报告中包括特定主机,则应在“包含的地址”字段中定义这些主机。所有其他主机将不包含在报告中。
7.使用“排除的地址”显式定义要从报告中排除的主机。(可选)
例如,如果您只想从报告中排除特定主机,则应在“排除的地址”字段中指定这些主机。所有其他主机将包含在报告中。
8.点击广告系列下拉菜单,然后选择要用于创建报告的广告系列。(仅社会工程报告)
该报告表单仅显示项目中存储的活动。
9.单击封面徽标下拉列表,然后在报告的封面上选择要使用的徽标。
如果尚未将徽标上载到项目,则必须将要使用的徽标上载到项目的“自定义报告抵押”区域。
10.选择要包括在报告中的报告部分。
11.启用或禁用任何报告选项,以管理报告中显示的数据。
报告表单显示适用于所选报告类型的选项。以下报告选项可能可用:
· Mask discovered passwords -从报告中删除所有凭据,包括纯文本密码,哈希和SSH密钥。该报告显示用户名和空白密码。
· Include session details -显示Metasploit Pro能够打开的每个会话的详细信息,例如Metasploit Pro用于获取会话的会话类型和攻击模块。
· Include charts and graphs -包括视觉辅助工具(如饼图),以伴随报告中的统计结果。
· Include web page HTML (in addition to image preview) -包括原始页面代码作为原始文本以及渲染的预览图像。(仅“社会工程学活动详细信息”报告)
12.输入您要在报告生成后将报告发送到的电子邮件地址。您可以使用逗号或分号来分隔多个电子邮件地址。
要通过电子邮件发送报告,您必须通过“全局设置”配置活动的邮件服务器。
13.生成报告。
开始生成报告后,Web界面会将您重定向到“查看报告”选项卡。此时,您可以从“报告”页面导航到Metasploit Pro中的其他区域。报告生成完成时,通知中心将通知您。
报告生成完成后,您可以单击“通知中心”图标以查看通知消息,也可以从“项目”选项卡栏中选择“报告”>“显示报告”以访问“报告”区域。
如果在报告生成期间发生错误,则可以查看报告日志以识别并排除发生的任何错误。
3.13.3. 生成报告的其他格式
1.打开包含要为其生成其他格式的报告的项目。
2.从“项目”选项卡栏中选择“显示报告”。该展会报告显示页面。
3.查找包含要为其生成其他格式的报告的行。
4.该行显示了该报告可用的元数据和文件格式。彩色的格式按钮表示格式已经生成。白色的格式按钮表示尚未为报告生成格式。
5.单击报告名称以将其打开。
6.统一报告视图将打开并显示报告预览。报表可用的格式将显示在侧栏中。具有彩色图标和复选框的格式已经生成。尚未生成灰色的格式。
7.单击要为报告生成的文件格式。一次只能生成一种格式。
8.开始生成报告后,格式按钮将替换为进度指示器。当报表可供您查看或下载时,格式按钮将重新出现。
9.此时,您可以从“报告”页面导航到Metasploit Pro中的其他区域。报告生成完成时,通知中心将通知您。
10.报告生成完成后,您可以单击“通知中心”图标以查看最新的通知消息,也可以从“项目”选项卡栏中选择“报告”>“显示报告”以访问“报告”区域。
11.如果在报告生成期间发生错误,则可以查看报告日志以识别并排除发生的任何错误。
3.13.4. 生成MetaModule报告
MetaModule提供了一个指导界面,可引导您完成一项渗透测试任务。每个MetaModule都利用了模块的核心功能,例如密码测试,但是使您能够以最少的设置快速配置和运行模块。每个MetaModule都有一个专门的报告,其中包含特定于MetaModule运行的数据。
MetaModule报告是从MetaModule内部配置的,并在运行MetaModule时生成。MetaModule生成报告后,您可以从“报告”区域查看报告。
3.13.5. 生成自定义报告
使用用户上载的Jasper报告模板创建自定义报告。该模板定义了报告的布局以及报告所包含的部分。您可以使用iReport之类的工具从头开始创建报告模板。
在生成定制报告之前,必须将要使用的模板上载到项目的“ 定制报告抵押”区域。如果项目不包含任何自定义报告模板,则不会加载“新的自定义报告”表单。而是,该窗体显示警告,该项目不包含任何模板。您必须上载有效的JRXML模板才能继续。
3.13.5.1. 上载自定义模板
创建自定义模板后,您需要将其上传到要用于生成自定义报告的项目中。模板仅对您上传到的项目可用。因此,如果要在多个项目中使用模板,则需要将模板导入到每个项目中。
当您查看“新建自定义报告”表单时,该模板将在“报告模板”下拉菜单中可用。
要上传模板:
1.打开要用于存储自定义模板的项目。
2.从项目选项卡栏中选择报告>创建自定义报告。
3.将显示“报告”页面,并选中“生成自定义报告”选项卡。
4.找到“自定义报告抵押品”区域。
如果您的项目不包含任何模板,则“新建自定义报告”页面将不会显示该表单。
5.单击上载自定义报告抵押按钮。
出现“上传”窗口。
6.单击选择文件按钮。
在打开的对话框窗口。
7.浏览到徽标文件的位置。
8.选择模板,然后单击“打开”按钮。
模板必须具有JRXML扩展名。
9.在“描述性名称”字段中输入模板的名称。(可选的)
10.如果未指定名称,则“自定义报告抵押”区域将显示原始文件名。
11.单击提交按钮。
该模板出现在“自定义报告抵押”区域下。
3.13.5.2. 生成自定义报告
1.打开包含要用于创建报告的数据的项目。
2.从项目选项卡栏中选择报告>创建自定义报告。出现“新自定义报告”页面。
3.选择要用于创建报告的模板。
4.选择您要为报告生成的文件格式。
您可以选择多种格式。报表的所有格式将同时生成。
5.在报告名称字段中输入报告的名称。(可选的)
如果您未指定名称,则Metasploit Pro将使用报告类型和时间戳。例如,自定义报告将命名为Custom-20140106140552。
6.使用“包含的”地址明确定义要包含在报告中的主机。(可选的)
例如,如果只想在报告中包括特定主机,则应在“包含的地址”字段中定义这些主机。所有其他主机将不包含在报告中。
7.使用“排除的地址”显式定义要从报告中排除的主机。(可选)
例如,如果您只想从报告中排除特定主机,则应在“排除的地址”字段中指定这些主机。所有其他主机将包含在报告中。
8.单击“封面徽标”下拉菜单,然后选择要在报告封面上显示的徽标。(可选的)
如果您未选择徽标,则报告将使用默认的Rapid7徽标。
9.在报告生成后,输入要将报告发送到的电子邮件地址。(可选的)
您可以使用逗号或分号来分隔多个电子邮件地址。
要通过电子邮件发送报告,您必须通过“全局设置”配置活动的邮件服务器。
10.生成报告。
开始生成报告后,Web界面会将您重定向到“查看报告”选项卡。此时,您可以从“报告”页面导航到Metasploit Pro中的其他区域。报告生成完成时,通知中心将通知您。
报告生成完成后,您可以单击“通知中心”图标以查看通知消息,也可以从“项目”选项卡栏中选择“报告”>“显示报告”以访问“报告”区域。
如果在报告生成期间发生错误,则可以查看报告日志以识别并排除发生的任何错误。
3.13.5.3. 下载自定义报告模板
1.打开包含您要下载的自定义报告模板的项目。
2.从项目选项卡栏中选择报告>创建自定义报告。
将显示“报告”页面,并选中“生成自定义报告”选项卡。
3.找到“自定义报告抵押品”区域。
4.找到包含要下载的自定义报告模板的行。
该行显示可用于自定义报告模板的元数据和操作。
5.单击下载链接。
下载过程将自动开始。
如果未将浏览器配置为自动下载文件,则会出现一个对话框,提示您保存或运行文件。您将需要将模板保存到计算机。
3.13.5.4. 删除自定义报告模板
1.打开包含您要删除的自定义报告模板的项目。
2.从项目选项卡栏中选择报告>创建自定义报告。
将显示“报告”页面,并选中“生成自定义报告”选项卡。
3.找到“自定义报告抵押品”区域。
4.找到包含要删除的自定义报告模板的行。
5.点击删除链接。
浏览器将提示您确认要删除自定义报告模板。
3.13.5.5. 下载示例模板
Metasploit Pro为您提供了一个示例模板,您可以在创建自己的模板时将其用作参考。该模板提供了一些简单的示例,向您展示了如何查询数据,例如项目中的主机IP地址,名称,操作系统,服务计数和漏洞计数,并在表格中显示该信息。此外,您可以看到在报表中添加标题和页脚的示例。
要下载示例模板:
1.打开任何项目。
2.从“项目”选项卡栏中选择“报告”>“显示报告”。
出现“报告”页面。
3.滚动到“报告”页面的底部。
4.单击报告表下方的“下载示例模板”链接。
下载过程将自动开始。
如果未将浏览器配置为自动下载文件,则会出现一个对话框,提示您保存或运行文件。您将需要将报告保存到计算机。
3.13.6. 下载报告
1.打开包含要下载的报告的项目。
2.从“项目”选项卡栏中选择“报告”>“显示报告”。出现“报告”页面。
3.找到包含要查看的报告的行。
该行显示为报告生成的元数据和文件格式。彩色的格式按钮表示报告适用于该格式。白色的格式按钮表示尚未为报告生成格式。
如果尚未生成所需的格式,则可以单击格式按钮以运行报告。
4.单击报告名称以将其打开。统一报告视图将打开并显示报告预览。
5.选择您要下载的格式。
报表可用的格式将在其旁边具有一个活动复选框。
6.单击“报告操作”区域下的“下载”按钮。
下载过程将自动开始。
如果未将浏览器配置为自动下载文件,则会出现一个对话框,提示您保存或运行文件。您将需要将报告保存到计算机。
3.13.7. 查看报告
1.打开包含要查看的报告的项目。
2.从“项目”选项卡栏中选择“报告”>“显示报告”。出现“报告”页面。
3.找到包含要查看的报告的行。
该行显示为报告生成的元数据和文件格式。
4.单击您想要查看报告的格式。
该报告将在您的浏览器中打开。
3.13.8. 通过电子邮件发送报告
您可以通过在生成报告后立即通过电子邮件发送报告来快速共享报告。标准和自定义报告生成表单均具有“ 电子邮件报告”字段,使您可以定义电子邮件收件人列表。
只要您为Metasploit Pro实例配置了有效的邮件服务器,该报告就会自动发送到您列出的电子邮件中。
3.13.9. 设置邮件服务器
为了利用电子邮件功能,您必须有权访问本地邮件服务器或Web邮件服务器。您需要运行邮件服务器的地址和端口,托管邮件服务的域名以及邮件服务器的凭据。
3.13.10. 克隆报告配置
您可以克隆报告以复制现有报告的配置。报告克隆使您可以重用并重新运行以前生成的报告。您可以修改配置或直接运行它。
克隆报告:
1.打开包含要删除的报告的项目。
2.从“项目”选项卡栏中选择“报告”>“显示报告”。
出现“报告”页面。
3.查找包含要克隆的报表的行。
4.单击“操作”列下的“克隆”链接。
出现“新报告”表单。该表单保留您用于生成原始报告的配置设置。
3.13.11. 删除报告
删除报告后,该报告将从“报告”目录中永久删除,并且您将不再能够从Web界面的“报告”区域中查看它。删除报表之前,请确保已拥有报表中所需的数据。
删除报告:
1.打开包含要删除的报告的项目。
2.从“项目”选项卡栏中选择“报告”>“显示报告”。
出现“报告”页面。
3.选择一个或多个要删除的报告。
4.单击快速任务栏中的删除按钮。
浏览器将要求您确认要删除该报告。
5.选择确定以删除报告。
4. Metasploit pro支持功能
Feature
|
Pro
|
Scan data import
|
✔
|
Discovery scan
|
✔
|
Manual exploitation
|
✔
|
Data export
|
✔
|
Nexpose scan integration
|
✔
|
Session management
|
✔
|
Credential management
|
✔
|
Proxy pivot
|
✔
|
Post-exploitation modules
|
✔
|
Web interface
|
✔
|
Session clean up
|
✔
|
Bruteforce
|
✔
|
Evidence collection
|
✔
|
Audit Report
|
✔
|
Activity Report
|
✔
|
Compromised and Vulnerable Hosts Report
|
✔
|
Credentials Report
|
✔
|
Services Report
|
✔
|
Exploitation workflow
|
✔
|
Credentials reuse
|
✔
|
Anti-virus evasion
|
✔
|
IPS/IDS evasion
|
✔
|
Session rerun
|
✔
|
Task replay
|
✔
|
PCI Report
|
✔
|
FISMA Report
|
✔
|
Tagging data
|
✔
|
Quick PenTest Wizard
|
✔
|
Vulnerability Validation Wizard
|
✔
|
Phishing Wizard
|
✔
|
Web App Testing Wizard
|
✔
|
VPN pivoting
|
✔
|
Payload generator
|
✔
|
Post-exploitation macros
|
✔
|
Persistent sessions
|
✔
|
Team collaboration
|
✔
|
Social engineering
|
✔
|
MetaModules
|
✔
|
Web app testing
|
✔
|
Task chains
|
✔
|
Custom reporting
|
✔
|
Social Engineering Report
|
✔
|
Web Application Assessment Report
|
✔
|
Project Sonar integration
|
✔
|
Back up and restore
|
✔
|
5. 模块和漏洞数据库支持
安全专业人员和研究人员可以查看超过140,000个漏洞和3,000个漏洞的技术详细信息。我们的漏洞管理工具InsightVM使用这些漏洞。这些漏洞包含在Metasploit框架中,并由我们的渗透测试工具Metasploit Pro使用。我们的漏洞和漏洞利用数据库经常更新,包含最新的安全研究。详见:
https://www.rapid7.com/db/?type=metasploit