一,目录
- 关于Armitage在我们开始之前...
- 入门如何让任何女人与您交谈
- 用户界面之旅这么多漂亮的屏幕截图
- 主机管理您必须找到它们来破解它们。
- 剥削这是有趣的东西
- 剥削后,这是非常有趣的东西
- 机动性遍及网络并达到更多目标
- 团队Metasploit这是网络攻击管理!
- 脚本约束下一步...
1.关于阿米蒂奇
1.1什么是阿米蒂奇?
Armitage是用于Metasploit的可编写脚本的 红色团队协作工具,可可视化目标,推荐利用并在框架中公开高级利用后功能。
通过一个Metasploit实例,您的团队将:
- 使用相同的会话
- 共享主机,捕获的数据和下载的文件
- 通过共享事件日志进行通信。
- 运行机器人以自动化红队任务。
1.2钴击
Cobalt Strike是对手模拟和红队运作的工具集。截至2015年10月,Cobalt Strike不再与Armitage共享代码或依赖Metasploit框架。您可以使用Armitage通过Metasploit漏洞来发射Cobalt Strike的Beacon有效载荷。您也可以通过钴打击信标来引导Metasploit攻击。该视频的后半部分显示Armitage和Cobalt Strike一起工作:
http://www.youtube.com/embed/Hya5QRym1LY
1.3网络攻击管理
Armitage在黑客过程中组织了Metasploit的功能。具有发现,访问,利用后和操纵的功能。本节从较高层次描述了这些功能,本手册的其余部分详细介绍了这些功能。
Armitage的动态工作空间使您可以快速定义目标条件并在目标条件之间切换。使用它可以将数千个主机划分为目标集。Armitage还启动扫描并从许多安全扫描器导入数据。Armitage可视化您当前的目标,因此您将知道正在使用的主机以及会话所在的位置。
Armitage会推荐漏洞利用,并可以选择运行主动检查以告诉您哪些漏洞将起作用。如果这些选项失败,请使用“冰雹玛丽”攻击对目标释放Armitage的智能自动攻击。
进入后,Armitage将公开内置在Meterpreter代理中的开发后工具。单击菜单,您将升级特权,记录键击,转储密码哈希,浏览文件系统以及使用命令外壳。
Armitage使设置和使用枢轴变得很简单。您将使用受损的主机作为从内部攻击目标网络的跃点。Armitage使用Metasploit的SOCKS代理模块,使您可以通过数据透视表使用外部工具。这些功能使您可以通过网络进行操作。
本手册的其余部分围绕此过程进行组织,以您需要的顺序提供您需要知道的内容。
1.4必要词汇
要使用Armitage,它有助于理解Metasploit。您必须了解以下几点:
Metasploit是一个控制台驱动的应用程序。您在Armitage中所做的任何事情都会转换成Metasploit可以理解的命令。您可以绕过Armitage并自己键入命令(稍后介绍)。如果您迷失在控制台中,请键入help
并按Enter。
Metasploit将其功能展示为模块。每个扫描程序,漏洞利用程序和有效负载都可以作为模块使用。要启动模块,必须设置一个或多个选项来配置模块。此过程对于所有模块都是统一的,并且Armitage使您更轻松地进行此过程。
利用主机时,将在该主机上进行会话。Armitage知道如何与shell和meterpreter会话进行交互。
Meterpreter是一个高级代理,可以为您提供大量的利用后功能。构建Armitage是为了利用Meterpreter。稍后介绍使用Meterpreter的工作。
在Metasploit的偷跑当然在保持 进攻安全乡亲非常出色。我建议在进一步阅读之前阅读它。
2.入门
2.1要求
Armitage作为允许红色团队协作发生的客户端和服务器而存在。Armitage客户端软件包可用于Windows,MacOS X和Linux。Armitage不需要Metasploit框架的本地副本即可连接到团队服务器。
假设您想连接到Metasploit框架的本地实例,则编写这些入门说明。
安排要求如下:
- Metasploit框架及其依赖项。
- PostgreSQL数据库
- 地图
- 甲骨文的Java 1.7
为了快速安装所有依赖项,您有几个选择:
- 使用Linux发行版进行渗透测试,例如Kali Linux 或Pentoo Linux。
这些发行版附带Metasploit及其相关性为您安装。 - 使用由DarkOperator创建的MSF安装程序脚本。
此选项将设置一个使用Git进行更新的环境。 - 使用Rapid7提供的官方安装程序。
此选项将要求您向Rapid7注册以获取更新。
2.2 Kali Linux
Kali Linux随附安装了Metasploit框架。如果您想快速启动并运行Armitage,这是一个不错的选择。
设置说明(执行一次!)
- 打开一个终端
- 启动数据库:
service postgresql start
- 初始化数据库:
service metasploit start
- 停止metasploit服务:
service metasploit stop
- 安装/更新限制:
apt-get update ; apt-get install armitage
- 默认情况下使用Java 1.7(32位Kali):
update-java-alternatives --jre -s java-1.7.0-openjdk-i386
- 默认情况下使用Java 1.7(64位Kali):
update-java-alternatives --jre -s java-1.7.0-openjdk-amd64
如何开始仲裁
- 打开一个终端
- 启动PostgreSQL数据库:(
service postgresql start
在Kali Linux中不会自动发生) cd /path/to/armitage
./armitage
如何更新Metasploit
- 打开一个终端
msfupdate
service metasploit start
service metasploit stop
2.3 BackTrack Linux
BackTrack Linux不再是Armitage支持的环境。请移至Kali Linux。
如果要继续使用BackTrack Linux,则必须卸载Metasploit Framework并安装最新的依赖项。由于框架中的依赖项更改(超出了我的控制范围),如果更新Metasploit,则BackTrack Linux环境将无法工作。
卸载Metasploit框架:
cd /opt/metasploit
./uninstall
2.4 Linux
- 安装Metasploit框架及其依赖项
- 提取武器
- 转到安装了Armitage的文件夹
- 使用./armitage启动Armitage
2.5视窗
Windows不支持通过Metasploit框架运行Armitage的环境。您可以将Windows上的Armitage连接到Linux上托管的团队服务器。
2.6手动设置
如果您选择手动设置Metasploit框架及其依赖项,则以下一些硬性要求可以帮助您:
- 您需要一个PostgreSQL数据库。不支持其他数据库。
- msfrpcd必须在$ PATH中
- $ MSF_DATABASE_CONFIG必须指向YAML文件
- $ MSF_DATABASE_CONFIG必须可用于msfrpcd和armitage
- msgpack红宝石是必需的
请查看以下资源,以获取有关此方面的帮助:
- Darkoperator的MSF安装程序脚本(MacOS X,Ubuntu和Debian)
- 设置Metasploit开发环境
^-这些说明将您引向另一套说明来设置数据库。它们可能很好,但是不要使用提供的YAML文件。它使用Armitage无法解析或理解的许多YAML功能。请改用我提供的示例。
2.7更新Metasploit
运行时msfupdate
,这样做可能会破坏Armitage。Metasploit团队对他们提交给主要git存储库的内容持谨慎态度,并对错误报告非常敏感。话虽如此,事情仍然时有发生。有时,在我更新Armitage之前,框架会以不兼容的方式进行更改。
如果您运行msfupdate
并且Armitage停止工作,则有几种选择。
1)您可以msfupdate
稍后再运行,希望此问题得到解决。很多时候,这是一个有效的策略。
2)您可以将Metasploit降级为我对其进行测试的最新版本。查看针对Armitage测试的最新开发版本的更改日志文件。版本号位于发布日期旁边。降级Metasploit:
cd /path/to/metasploit/msf3
source ../scripts/setenv.sh
git pull
git checkout [commit id]
bundle install
3)使用Rapid7提供的安装程序重新安装Metasploit。Metasploit安装程序包括Metasploit的最新稳定版本。通常,此版本非常稳定。
如果您准备在重要的地方使用Armitage和Metasploit,请不要运行msfupdate
并认为它会起作用。坚持知道的原理或测试确保其正常工作所需的功能非常重要。如有疑问,请选择选项(2)或(3)。
2.8故障排除帮助
如果在将Armitage连接到Metasploit时遇到问题,请单击“ 帮助”按钮以获取故障排除建议。此按钮将带您进入Armitage启动故障排除指南。
2.9快速连接
如果您想在不填写设置对话框的情况下将Armitage快速连接到Metasploit服务器,请使用该--client
选项指定包含连接详细信息的文件。
java -jar armitage.jar --client connect.prop
这是一个示例connect.prop文件:
host=192.168.95.241
port=55553
user=mister
pass=bojangles
如果必须管理多个Armitage / Metasploit服务器,请考虑创建一个桌面快捷方式,该快捷方式将为每个服务器使用不同的属性文件调用此--client选项。
3.用户界面导览
3.1概述
Armitage用户界面具有三个主面板:模块,目标和选项卡。您可以单击这些面板之间的区域,以根据自己的喜好调整它们的大小。
3.2模块
模块浏览器使您可以启动Metasploit辅助模块,抛出漏洞,生成有效负载并运行漏洞利用后模块。在树中单击以找到所需的模块。双击模块以打开模块启动对话框。
Armitage会将模块配置为针对所选主机运行。这适用于辅助模块,漏洞利用和发布模块。
针对多个主机运行模块是Armitage的一大优势。在Metasploit控制台中,您必须为正在使用的每个主机配置并启动漏洞利用程序并发布模块。
您也可以搜索模块。在树下的搜索框中单击,键入通配符表达式(例如ssh_ *),然后按Enter。模块树将显示搜索结果,并已展开以快速查看。清除搜索框,然后按Enter键以将模块浏览器恢复到其原始状态。
3.3目标-图表视图
目标面板会向您显示目标。Armitage将每个目标表示为一台计算机,并在其下方显示其IP地址和其他有关该计算机的信息。计算机屏幕显示计算机正在运行的操作系统。
带有电震的红色计算机表示主机已损坏。
方向性绿线表示从一台主机到另一台主机的枢轴。透视允许Metasploit通过中间主机路由攻击和扫描。亮绿色线表示正在使用枢轴通信路径。
单击主机以将其选中。您可以通过在所需主机上单击并拖动一个框来选择多个主机。
右键单击主机以显示带有可用选项的菜单。附带的菜单将显示攻击和登录选项,现有会话的菜单以及编辑主机信息的选项。
只有在端口扫描显示Metasploit可以使用的开放端口之后,登录菜单才可用。该攻击菜单仅发现通过攻击后可 攻击在阿米蒂奇的顶部菜单。 当所选主机上存在Shell或Meterpreter会话时,将显示Shell和Meterpreter菜单。
目标面板中提供了几个键盘快捷键。要编辑它们,请转到Armitage- > Preferences。
- Ctrl Plus-放大
- Ctrl减号 -缩小
- Ctrl 0-重置缩放级别
- Ctrl A-选择所有主机
- 转义 -清除选择
- Ctrl C-将主机排列成一个圆圈
- Ctrl S-将主机排列到堆栈中
- Ctrl H-将主机排列到层次结构中。这仅在设置轴点时有效。
- Ctrl P-将主机导出到图像中
右键单击没有选定主机的目标区域,以配置目标区域的布局和缩放级别。
3.4目标-表格视图
如果主机很多,则很难使用图视图。对于这种情况,Armitage具有一个表格视图。转到 Armitage- > Set Target View- > Table View切换到此模式。阿米蒂奇会记住您的偏好。
单击任何表标题以对主机进行排序。突出显示一行并右键单击它以显示一个菜单,其中包含该主机的选项。
Armitage将使用会话将任何主机的IP地址加粗。如果使用了枢轴,则Armitage也会使其变粗体。
3.5标签
Armitage在模块和目标面板下方的选项卡中打开每个对话框,控制台和表格。单击 X按钮关闭选项卡。
您可以右键单击X按钮以在窗口中打开一个标签页,拍摄该标签页的屏幕快照,或关闭所有相同名称的标签页。
按住shift键并单击X,以关闭所有具有相同名称的标签。按住shift +控件,然后单击X以在其自己的窗口中打开选项卡。
您可以拖放选项卡以更改其顺序。
Armitage提供了几种键盘快捷键,使您的标签管理体验尽可能愉快。使用Ctrl + T可以截取活动标签的屏幕截图。使用Ctrl + D关闭活动选项卡。尝试按Ctrl + Left和Ctrl + Right快速切换选项卡。然后按Ctrl + W在其自己的窗口中打开当前选项卡。
3.6控制台
Metasploit控制台,Meterpreter控制台和外壳程序界面均使用控制台选项卡。控制台选项卡使您可以通过Armitage与这些界面进行交互。
控制台选项卡跟踪您的命令历史记录。使用向上箭头可循环显示先前键入的命令。该向下箭头移回到上一次键入命令。
在Metasploit控制台中,使用Tab键完成命令和参数。就像Armitage之外的Metasploit控制台一样。
使用Ctrl加号可以增大控制台字体的大小,按Ctrl减号可以减小的字体,按Ctrl 0可以重置它。此更改仅在当前控制台本地。访问Armitage- > “首选项”以永久更改字体。
按Ctrl F显示一个面板,可让您在控制台中搜索文本。
使用Ctrl A选择控制台缓冲区中的所有文本。
如果在控制台中单击模块或有效负载名称,则Armitage将发送一个use
或set PAYLOAD
命令。
要打开控制台进入查看 - > 控制台或按Ctrl + N键。
在MacOS X和Windows上,必须单击控制台底部的Editbox进行键入。Linux没有这个问题。永远记住,最好的Armitage体验是在Linux上。
Armitage控制台使用颜色来吸引您注意某些信息。要禁用颜色,请将console.show_colors.boolean首选项设置为false。您也可以通过Armitage- > Preferences来编辑颜色。这是Armitage调色板以及与每种颜色关联的首选项:
3.7记录
Armitage会为您记录所有控制台,外壳程序和事件日志的输出。Armitage按日期和主机组织这些日志。您可以在〜/ .armitage文件夹中找到这些日志。转到查看 -> 报告 -> 活动日志以打开此文件夹。
Armitage还将屏幕截图和网络摄像头快照的副本保存到此文件夹。
更改armitage.log_everything.boolean首选项键 false
以禁用此功能。
编辑armitage.log_data_here.folder以设置Armitage应该将所有内容记录到的文件夹。
3.8导出数据
Armitage和Metasploit共享一个数据库,以跟踪浏览器利用模块捕获的主机,服务,漏洞,凭据,掠夺和用户代理字符串。
要获取此数据,请转到查看 -> 报告 -> 导出数据。此选项将从Metasploit导出数据,并创建易于分析的XML和制表符分隔值(TSV)文件。
4.主机管理
4.1主机管理
Armitage在图形和表视图中显示主机。主机图标表示当时有关主机上操作系统的最佳猜测。该信息取自数据库。
要更改主机的显示的操作系统图标,请选择主机,单击鼠标右键,然后导航到 Host- > Operating System。为主机选择正确的操作系统。
您也可以在主机上粘贴标签。选择主机,右键单击并转到主机 - > 设置标签...。标签是用户指定的注释。Armitage将标签存储在数据库中。标签在图形视图和表格视图中均可见。标签会显示给所有团队成员。使用标签跟踪小笔记并协调动作。
要删除主机,请选择主机,右键单击并转到主机 -> 删除主机。这将从数据库中删除主机。
4.2动态工作区
Armitage的动态工作区功能使您可以在主机数据库中创建视图并在它们之间快速切换。使用工作区 -> 管理来管理动态工作区。您可以在此处添加,编辑和删除您创建的工作区。
要创建一个新的动态工作区,请按添加。您将看到以下对话框:
为您的动态工作区命名。叫什么都没关系。此说明适合您。
如果要将工作空间限制为来自某个网络的主机,请在“ 主机”字段中输入网络描述。网络描述可能是:10.10.0.0/16,以显示10.10.0.0-10.10.255.255之间的主机。用逗号和空格分隔多个网络。
您可以稍微欺骗一下网络描述。如果输入:192.168.95.0,则Armitage会假设您的意思是192.168.95.0-255。如果输入:192.168.0.0,则Armitage会假设您的意思是192.168.0.0-192.168.255.255。
填写“ 端口”字段,以包括具有某些服务的主机。使用逗号和空格分隔多个端口。
使用OS字段来指定您要在此工作空间中看到的操作系统。您可以输入部分名称,例如indows。Armitage将仅包括OS名称包含部分名称的主机。此值不区分大小写。用逗号和空格分隔多个操作系统。
使用标签字段显示带有您指定标签的主机。Armitage将主机标签中的每个单词视为一个单独的标签。您可以在此处指定任何这些标签。例如,如果主机10.10.10.3带有标签dc corp,则定义为显示dc或corp标签的工作空间将包括该主机。每个标签用逗号和空格分隔。
选择“ 仅具有会话的主机”以仅在此动态工作空间中包括具有会话的主机。
创建动态工作空间时,可以指定这些项目的任何组合。
每个工作区在“ 工作区”菜单中都有一个项目。使用这些菜单项在工作空间之间切换。您也可以使用Ctrl + 1至Ctrl + 9在前九个工作区之间切换。
使用工作区 -> 全部显示或Ctrl + Backspace显示整个数据库。
无论数据库中有多少主机,Armitage在任何给定时间都只会显示512台主机。如果您有成千上万的主机,请使用此功能将主机划分为有用的目标集。
4.3导入主机
要将主机信息添加到Metasploit,您可以导入它。该主机 - > 导入主机菜单接受下列文件:
- Acunetix XML
- Amap日志
- Amap日志-m
- Appscan XML
- 打p会话XML
- Foundstone XML
- IP360 ASPL
- IP360 XML v3
- Microsoft基准安全分析器
- Nessus NBE
- Nessus XML(v1和v2)
- NetSparker XML
- NeXpose简单XML
- NeXpose XML报告
- Nmap XML
- OpenVAS报告
- Qualys资产XML
- Qualys扫描XML
- 视网膜XML
您可以使用主机 -> 添加主机...手动添加主机。
4.4 Nmap扫描
您也可以从Armitage启动Nmap扫描,然后自动将结果导入Metasploit。该 主机 - > 的Nmap扫描菜单有几个扫描选项。
(可选)您可以输入db_Nmap
控制台以使用所选选项启动Nmap。
Nmap扫描不使用您设置的枢轴。
4.5 MSF扫描
Armitage将多个Metasploit扫描捆绑为一项功能,称为MSF扫描。此功能将扫描少数打开的端口。然后,使用为此目的而构建的Metasploit辅助模块枚举了几种常用服务。
突出显示一个或多个主机,单击鼠标右键,然后单击“ 扫描”以启动此功能。您也可以转到 主机 -> MSF扫描以启动它们。
这些扫描通过枢轴进行,并且也针对IPv6主机。这些扫描不会尝试在扫描之前发现主机是否还活着。为了节省时间,您应该首先进行主机发现(例如ARP扫描,ping扫描或DNS枚举),然后启动这些扫描以枚举发现的主机。
4.6 DNS枚举
另一个主机发现选项是枚举DNS服务器。转到主机 -> DNS枚举以执行此操作。Armitage将显示一个带有多个选项的模块启动器对话框。您将需要将DOMAIN选项设置为要枚举的域。您可能还希望将NS设置为您要枚举的DNS服务器的IP地址。
如果您正在攻击IPv6网络,则DNS枚举是发现网络上IPv6主机的一种选择。
4.7数据库维护
Metasploit将您所做的一切记录到数据库中。随着时间的流逝,您的数据库将充满很多东西。如果Armitage有性能问题,请尝试清除数据库。为此,请转到 主机 -> 清除数据库。
5.剥削
5.1远程利用
在进攻之前,您必须选择武器。Armitage使此过程变得容易。使用 Attacks- > Find Attacks为每个主机生成一个自定义的Attack菜单。
要利用主机:右键单击它,导航到Attack,然后选择一个利用。要显示正确的攻击,请确保为主机设置了操作系统。
该攻击能够满足最低限度的菜单本身的漏洞利用的排名 大。一些有用的攻击被评为良好,它们不会显示在攻击菜单中。您可以使用模块浏览器启动它们。
使用Armitage- > Set Exploit Rank更改最小利用等级。
(可选)如果您希望查看容易受到特定漏洞利用的主机,请在模块浏览器中浏览至该漏洞利用。右键单击该模块。选择相关目标。Armitage将创建一个动态工作空间,其中显示与突出显示的漏洞利用程序匹配的主机。突出显示所有主机,然后双击漏洞利用模块一次攻击所有主机。
5.2哪个漏洞?
学习使用哪些攻击以及何时使用。Metasploit中的一些漏洞利用实现了检查功能。这些检查功能连接到主机,并检查漏洞利用是否适用。如果有很多选择,Armitage可以使用这些检查功能来帮助您选择正确的漏洞利用。例如,使用Find Attacks后,侦听端口80的目标将显示多个Web应用程序利用。单击检查漏洞...菜单,对每个漏洞运行check命令。完成所有检查后,按Ctrl F并搜索 vulnerable
。这将引导您进行正确的利用。
单击主机并选择服务是发现漏洞的另一种方法。如果您有Nmap扫描结果,请查看信息字段并猜测正在使用的服务器软件。使用模块浏览器搜索与该软件相关的任何Metasploit模块。一个模块可以帮助您找到另一种利用所需的信息。Apache Tomcat就是一个例子。该tomcat_mgr_login 模块将搜索用户名和密码,你可以使用。一旦有了这个,就可以启动 tomcat_mgr_deploy漏洞利用程序在主机上获取shell。
5.3发射漏洞
Armitage使用此对话框来启动漏洞利用程序:
利用漏洞利用启动对话框,您可以配置模块的选项,并选择是否使用反向连接负载。
Armitage在表格中显示选项。双击值进行编辑。如果选项需要文件名,请双击该选项以打开文件选择器对话框。您也可以选中显示高级选项以查看和设置高级选项。
如果在表中看到SOMETHING✚,则意味着您可以双击该项目以启动一个对话框来帮助您配置其值。此约定适用于模块启动器和首选项对话框。
一些渗透测试人员将目标组织到文本文件中,以使其更易于跟踪。Armitage也可以利用这些文件。双击RHOST✚,然后选择目标文件。该文件每行必须包含一个IP地址。这是对所有这些主机发起攻击或采取行动的简便方法。
对于远程攻击,Armitage会为您选择有效负载。通常,Armitage将对Windows目标使用Meterpreter,对UNIX目标使用命令外壳有效载荷。
单击启动以运行漏洞利用程序。如果攻击成功,Armitage将使主机变红并用闪电将其包围。Metasploit还将向任何打开的控制台打印一条消息。
5.4自动利用
如果手动利用失败,则可以使用“冰雹玛丽”选项。攻击 -> 冰雹玛丽启动此功能。Armitage的Hail Mary功能是一个聪明的db_autopwn。它查找与您的目标相关的攻击,使用已知信息过滤这些攻击,然后将它们分类为最佳顺序。
此功能不会找到所有可能的外壳,但是如果您不知道尝试其他方法,则这是一个不错的选择。
http://www.youtube.com/embed/_m5Z5nC6B9k
5.5客户端漏洞
通过Armitage,您可以使用Metasploit的客户端漏洞。客户端攻击是一种攻击应用程序而不是远程服务的攻击。如果无法使远程利用发挥作用,则必须使用客户端攻击。
使用模块浏览器查找并启动客户端漏洞。搜索文件格式以查找在用户打开恶意文件时触发的漏洞利用。搜索浏览器,以发现服务器浏览器从Metasploit内置的Web服务器攻击的漏洞。
5.6客户端漏洞利用和有效载荷
如果启动单个客户端漏洞利用,则可以选择自定义附带的有效负载。Armitage为您选择了合理的默认值。
在渗透测试中,通常很容易让某人运行您的恶意程序包。困难的部分是要通过限制输出流量的网络设备。对于这些情况,有助于了解Meterpreter的有效载荷通信选项。有一些有效载荷说HTTP,HTTPS,甚至可以与IPv6主机通信。这些有效载荷为您提供了在艰难出口情况下的选择。
要设置有效负载,请在模块启动器的选项列中双击PAYLOAD。这将打开一个对话框,要求您选择有效负载。
突出显示有效载荷,然后单击“ 选择”。Armitage将为您更新PAYLOAD,DisablePayloadHandler,ExitOnSession,LHOST和LPORT值。欢迎您根据需要编辑这些值。
如果选择“ 为此负载启动处理程序”选项,则Armitage将设置负载选项以在利用程序启动时启动负载处理程序。如果未选择此值,则负责为有效负载设置一个多重/处理程序。
5.7有效载荷处理程序
有效负载处理程序是在Metasploit中运行的服务器。它的工作是等待有效负载连接到您的Metasploit并建立会话。
要快速启动有效负载处理程序,请导航至Armitage- > Listeners。绑定侦听器尝试连接到有效载荷以侦听连接。反向侦听器等待有效负载连接回您。
您可以设置外壳侦听器以接收来自netcat的连接。
转到查看 -> 作业以查看正在运行的处理程序。
5.8产生有效载荷
漏洞利用是巨大的,但是请不要忽略简单的东西。如果您可以获得运行程序的目标,那么您只需要一个可执行文件即可。Armitage可以从Metasploit的任何有效负载生成可执行文件。在模块浏览器中选择一个有效负载,双击它,选择输出类型,然后设置选项。单击启动后,将出现一个保存对话框,询问您将文件保存到何处。
要创建Windows木马二进制文件,请将输出类型设置为exe。将 模板选项设置为Windows可执行文件。如果您希望模板可执行文件继续正常运行,请设置KeepTemplateWorking。确保测试生成的二进制文件。某些模板可执行文件不会产生可运行的可执行文件。
请记住,如果您有有效载荷,则需要一个处理程序。使用multi / handler输出类型创建一个等待有效负载连接的处理程序。与Armitage- > Listeners菜单相比,此选项提供了更多的灵活性和有效负载选项。
如果您打算启动一个处理程序然后生成一个有效负载,那么这里的技巧将为您节省一些时间。首先,按照说明配置多重/处理程序。单击启动时,按住Shift键。这将告诉Armitage保持打开模块启动对话框。处理程序启动后,将输出类型更改为所需的值,然后 再次单击“ 启动”。这将生成具有与创建多重/处理程序相同的值的有效负载。
6.开发后
6.1管理会议
成功利用主机后,通过Armitage可以轻松管理Meterpreter代理。运行Meterpreter有效负载的主机将为每个Meterpreter会话提供一个Meterpreter N菜单。
如果您具有对主机的Shell访问权限,则将为每个Shell会话看到Shell N菜单。右键单击主机以访问此菜单。如果您有Windows Shell会话,则可以转到Shell N- > Meterpreter ...将会话升级到Meterpreter会话。如果您具有UNIX Shell,请转至 Shell N- > Upload使用UNIX printf命令上传文件。
您也可以按Ctrl + I选择要与之交互的会话。
6.2权限提升
一些漏洞导致对主机的管理访问。其他时候,您需要自己升级特权。为此,请使用Meterpreter N- > 访问 -> 升级特权菜单。这将在模块浏览器中突出显示特权升级模块。
在Windows XP / 2003 era主机上尝试使用getsystem post模块。
6.3代币窃取
另一个特权升级选项是令牌窃取。当用户登录Windows主机时,将生成令牌并充当临时cookie,以免用户在尝试访问其他资源时重新输入密码。令牌会一直持续到重启。您可以窃取这些令牌以承担该用户的权限。
要查看可用的令牌,请转到Meterpreter N- > 访问 -> 窃取令牌。Armitage将向您提供令牌列表。单击“ 窃取令牌” 以窃取一个。
如果要还原为原始令牌,请按还原为自身。“ 获取UID” 按钮显示您当前的用户ID。
6.4会话通过
利用主机后,复制访问权限应该是第一要务。Meterpreter N- > 访问 -> Pass Session会将meterpreter注入内存并为您执行。默认情况下,此选项配置为回调Armitage的默认Meterpreter侦听器。只需单击启动。
您也可以使用“ 通过会话”将抄表器发送给朋友。将LPORT和 LHOST设置为其Meterpreter multi / handler的值。
如果您的朋友使用Armitage,请让他们set
在“控制台”选项卡中键入并向您报告 LHOST和LPORT值。这些是其默认的Meterpreter侦听器的值。
6.5文件浏览器
Meterpreter为您提供了几种探索主机后的选择。其中之一是文件浏览器。该工具可让您上载,下载和删除文件。访问Meterpreter N- > 浏览 -> 浏览文件以访问文件浏览器。
右键单击文件以下载或删除它。如果要删除目录,请确保首先将其清空。
您可以下载整个文件夹或单个文件。转到查看 -> 下载以访问您下载的文件。
如果您具有系统特权,则可以使用文件浏览器修改文件时间戳。右键单击文件或目录,然后转到Timestomp菜单。此功能就像剪贴板一样。使用 获取MACE值来捕获当前文件的时间戳。右键单击另一个文件,然后使用“ 设置MACE值”更新该文件的时间戳。
6.6命令外壳
您可以通过Meterpreter N- > Interact- > Command Shell到达主机的命令Shell。在同一父菜单下也可以使用Meterpreter shell。
导航到Meterpreter N菜单以快速完成每个操作。在Meterpreter外壳窗口内单击鼠标右键可立即查看Meterpreter N菜单项。
关闭命令外壳选项卡以终止与命令外壳相关的进程。
6.7 VNC
要与目标主机上的桌面进行交互,请转到Meterpreter N- > Interact- > Desktop(VNC)。这会将VNC服务器登台到当前进程的内存中,并通过Meterpreter建立连接。Armitage将为您提供将本地VNC客户端连接到目标的详细信息。
6.8屏幕截图和网络摄像头间谍
要获取屏幕截图,请使用Meterpreter N- > 浏览 -> 屏幕截图。在同一位置有一个“ 网络摄像头拍摄”选项。此选项从用户的网络摄像头捕捉框架。
右键单击屏幕截图或网络摄像头拍摄的图像,以更改选项卡的缩放。即使您刷新图像,该缩放首选项也会保留。单击刷新以更新屏幕截图或从网络摄像头获取其他帧。单击“ 观看(10s)”以每十秒钟自动拍摄一张照片。
6.9流程管理和密钥记录
转到Meterpreter N- > 探索 -> 显示进程 以查看受害者的进程列表。使用“ 杀死”杀死突出显示的进程。
Meterpreter在内存中运行。可以将Meterpreter从一个过程转移到另一个过程。这称为迁移。突出显示一个进程,然后单击“ 迁移”以迁移到另一个进程。您的会话将拥有该过程的权限。
在此过程中,还可以从该过程的有利位置查看击键。突出显示一个过程,然后单击Log Keystrokes以启动一个模块,该模块可以迁移meterpreter并开始捕获击键。如果您从explorer.exe键入日志,您将看到用户在其桌面上键入的所有密钥。
如果您出于密钥记录的目的选择迁移进程,则应首先复制会话。如果Meterpreter进程处于关闭状态,则会话将消失。
6.10开发后模块
Metasploit也有几个开发后模块。在模块浏览器中导航post分支。双击一个模块,Armitage将显示一个启动对话框。 如果突出显示了受感染的主机,则Armitage将填充模块的SESSION变量。每个开发后模块将在其自己的选项卡中执行,并将其输出呈现给您。
要找出适用于会话的后模块:右键单击受损的主机,然后导航至Meterpreter N- > 探索 -> 后模块或Shell N- > 后模块。单击此菜单项将在模块浏览器中显示所有适用的后模块。
Metasploit将利用后的数据保存到Loot数据库中。要查看此数据,请转到 查看 -> 战利品。
您可以突出显示多个主机,并且Armitage将尝试针对所有主机运行选定的发布模块。Armitage将为每个会话的发布模块输出打开一个新选项卡。这可能会导致很多选项卡。按住shift键并单击其中一个选项卡上的X以关闭所有具有相同名称的选项卡。
7.机动
7.1旋转
Metasploit可以从受感染主机发起攻击,并在同一主机上接收会话。此功能称为枢转。
要创建一个支点,去Meterpreter就会ñ - > 枢转 - > 设置...。将出现一个对话框,要求您选择要在会话中旋转的子网。
设置数据透视后,Armitage会从数据透视主机到您创建的数据透视可到达的所有目标画一条绿线。使用枢轴时,该线将变为鲜绿色。
要将枢纽主机用于反向连接,请将漏洞利用启动对话框中的LHOST选项设置为枢纽主机的IP地址。
7.2扫描和外部工具
一旦访问了主机,最好探索并查看同一网络上还有什么。如果您设置了数据透视,则Metasploit将通过数据透视主机将TCP连接隧道传输到合格的主机。这些连接必须来自Metasploit。
要在与受感染主机相同的网络上查找主机,请右键单击受感染主机,然后转到 Meterpreter N- > ARP Scan或Ping Sweep。这将向您显示哪些主机还活着。突出显示出现的主机,单击鼠标右键,然后选择“ 扫描”以使用Armitage的MSF扫描功能扫描这些主机。这些扫描将兑现您设置的枢轴。
外部工具(例如Nmap)将不会使用您设置的枢轴。不过,您可以通过SOCKS代理将透视图与外部工具一起使用。转到Armitage- > SOCKS Proxy ... 以启动SOCKS代理服务器。
SOCKS4代理服务器是Metasploit中最有用的功能之一。启动此选项,您可以将您的Web浏览器设置为通过Metasploit连接到网站。这使您可以浏览本地网络上的内部站点。您还可以在Linux上配置代理链,以通过代理枢纽使用几乎所有程序。
7.3密码哈希
要收集Windows密码哈希,请访问Meterpreter N- > 访问 -> 转储哈希。您需要管理权限才能执行此操作。
有两个哈希转储选项。一种是lsass方法,另一种是注册表方法。lsass方法尝试从内存中获取密码哈希。此选项对Windows XP / 2003 era主机有效。注册表方法在现代Windows系统上效果很好。
您可以通过查看 -> 凭据查看收集的哈希。为了使您满意,此选项卡中的“ 导出”按钮将以pwdump格式导出凭据。您也可以使用“ 破解密码”按钮对凭据数据库中的哈希值运行开膛手约翰。
7.4哈希传递
当您登录Windows主机时,您的密码将被散列,并与存储的密码散列进行比较。如果它们匹配,那么您就进入了。尝试访问同一Windows域上的资源时,存储的哈希将发送到另一台主机,并用于对您进行身份验证。通过访问这些哈希,您可以使用此机制来接管同一域中的其他主机。这称为“哈希传递”攻击。
使用登录 - > PSEXEC试图对另一个Windows主机一通的哈希攻击。单击检查所有凭据,以使Armitage对主机尝试所有哈希和凭据。
哈希传递攻击尝试上载文件并创建立即运行的服务。只有管理员用户才能执行此操作。此外,您的目标必须位于同一活动目录域中,此攻击才能起作用。
7.5使用凭证
Armitage将在每个具有已知服务的主机上创建一个Login菜单。右键单击主机,然后导航到Login- > service。这将打开一个对话框,您可以在其中从Metasploit已知的凭据中选择用户名和密码。
登录成功后,某些服务(例如telnet和ssh)将为您提供会话。其他人不会。
选中“ 尝试所有凭据”选项,Metasploit将使用每个已知凭据登录服务。Metasploit会为您自动将每次成功登录添加到凭据表。
进入网络的最佳方法是通过有效的凭据。请记住,一项服务中成功的用户名/密码组合可能使您可以访问无法利用的另一台主机。
7.6密码蛮力
Metasploit可以尝试为您猜测服务的用户名和密码。通过模块浏览器可以轻松使用此功能。
Metasploit通过名为service_login的辅助模块支持强制暴力破解。login
在模块浏览器中键入搜索它们。
要通过SSH暴力破解用户名和密码,请在“模块”面板中浏览至“ auxiliary / scanner / ssh / ssh_login”,然后双击它。
如果您知道用户名,请设置USERNAME变量。如果您希望Metasploit暴力破解用户名,请为USER_FILE选择一个值。双击USER_FILE变量以调出文件选择器,您可以在其中选择包含用户名列表的文本文件。
Metasploit在[metasploit install] / data / wordlists目录中有许多与暴力破解相关的文件。
将PASS_FILE变量设置为包含尝试密码的列表的文本文件。
如果您只是强行强制使用一台主机,并且有很多用户名/密码可以尝试,我建议您使用外部工具,例如Hydra。Metasploit不会与单个主机建立多个并行连接以加快此过程。本课可以进一步进行-为每项工作使用正确的工具。
8.团队Metasploit
8.1远程连接
您可以使用Armitage连接到另一台主机上的现有Metasploit实例。使用远程Metasploit实例与使用本地实例相似。某些Armitage功能要求对本地文件具有读写权限才能正常工作。Armitage的团队服务器添加了这些功能,并使Armitage客户端可以远程使用Metaspoit。
连接到远程Metasploit,需要启动Metasploit RPC服务器和Armitage的团队服务器。
8.2多层Metasploit设置
该阿米蒂奇的Linux软件包中有一个teamserver脚本,你可以用它来启动Metasploit工具的RPC daemon并阿米蒂奇的一个指挥部队服务器。要运行它:
cd /path/to/armitage
./teamserver [external IP address] [password]
注意:在Kali Linux上,Armitage安装在/ usr / share / armitage中
该脚本假定armitage.jar位于当前文件夹中。确保外部IP地址正确(Armitage不会对其进行检查),并且您的团队可以访问攻击主机上的端口55553。而已。
Metasploit的RPC守护程序和Armitage团队服务器不是GUI程序。您可以通过SSH运行它们。
Armitage团队服务器通过SSL进行通信。启动团队服务器时,它将显示服务器指纹。这是服务器SSL证书的SHA-1哈希。当您的团队成员连接时,Armitage将显示服务器提供给他们的证书的哈希值。他们应该验证这些哈希是否匹配。
当团队服务器正在运行时,请勿连接到127.0.0.1。Armitage使用您要连接的IP地址来确定它应使用SSL(团队服务器,远程地址)还是非SSL(msfrpcd,localhost)。您可以在本地将Armitage连接到Teamserver,使用“主机”字段中的[external IP address]。
Armitage的红色团队协作设置对CPU敏感,并且喜欢RAM。确保团队服务器中有1.5GB的RAM。
8.3多层Metasploit
Armitage的红色团队协作模式增加了一些新功能。这些在这里描述:
查看 -> 事件日志可打开共享事件日志。您可以输入此日志并进行交流,就好像您使用的是IRC聊天室一样。在渗透测试中,此事件日志将帮助您重建重大事件。
多个用户可以同时使用任何Meterpreter会话。每个用户可以打开一个或多个命令外壳,浏览文件并获取受感染主机的屏幕截图。
Metasploit Shell会话在使用时会自动锁定和解锁。如果另一个用户正在与外壳进行交互,则Armitage将警告您它正在使用中。
http://www.youtube.com/embed/coF8dVLBnOQ
某些Metasploit模块要求您指定一个或多个文件。如果文件选项旁边有一个✚,则可以双击该选项名称以选择要使用的本地文件。Armitage将上载所选的本地文件,并为您将选项设置为其远程位置。通常,Armitage会尽力在您和共享的Metasploit服务器之间移动文件,以创建您在本地使用Metasploit的错觉。
渗透测试人员将发现此功能非常宝贵。假设您正在进行笔测试,并且遇到了一个您不太了解的系统。您可以联系您的公司,并要求您的本地专家加载Armitage并连接到同一Metasploit实例。他们将立即可以访问您的扫描数据,并且可以与您现有的会话进行无缝交互。
或者,假设您正在模拟网络钓鱼攻击并且可以访问主机。您的整个团队现在可以在同一主机上工作。一个人可以搜索数据,另一个人可以设置枢纽并搜索要攻击的内部主机,另一个人可以进行持久性工作。天空是这里的极限。
某些meterpreter命令可能缩短了输出。多人游戏Armitage从命令中获取初始输出,并将其输出到发送该命令的客户端。其他输出将被忽略(尽管该命令仍可正常执行)。此限制主要影响长时间运行的meterpreter脚本。
9.脚本约束
9.1 Cortana
Armitage包括Cortana,Cortana是一种通过DARPA的网络快速通道计划开发的脚本技术。使用Cortana,您可以编写红队机器人并使用新功能扩展Armitage。您也可以使用他人编写的脚本。
Cortana基于Sleep(一种可扩展的Perl风格的语言)的基础。Cortana脚本的后缀为.cna。
阅读《Cortana教程》以了解有关如何开发机器人和扩展Armitage的更多信息。
9.2独立机器人
Cormit的独立版本随Armitage一起分发。您可以将独立的Cortana解释器连接到Armitage团队服务器。
这是一个helloworld.cna Cortana脚本:
on ready { println("Hello World!"); quit(); }
要运行此脚本,您将需要启动Cortana。首先,独立的Cortana必须连接到团队服务器。团队服务器是必需的,因为Cortana机器人是另一个红色团队成员。如果要将多个用户连接到Metasploit,则必须启动团队服务器。
接下来,您将需要创建一个connect.prop文件来告诉Cortana如何连接到您启动的团队服务器。这是一个示例connect.prop文件:
host=127.0.0.1 port=55553 user=msf pass=password nick=MyBot
现在,启动您的机器人:
cd /path/to/metasploit/msf3/data/armitage
java -jar cortana.jar connect.prop helloworld.cna
9.3脚本管理
您不必独立运行Cortana机器人。您可以将任何机器人直接加载到Armitage中。将机器人加载到Armitage中时,无需启动团队服务器。Armitage能够独立于任何已加载的机器人取消其操作。
您也可以使用Cortana脚本扩展Armitage并为其添加新功能。Cortana脚本可以定义键盘快捷键,将菜单插入Armitage,并创建简单的用户界面。
要将脚本加载到Armitage中,请转到Armitage- > Scripts。按“ 加载”,然后选择要加载的脚本。每次启动Armitage时,以这种方式加载的脚本将可用。
bot和Cortana命令生成的输出在Cortana控制台中可用。转到查看 -> 脚本控制台。
9.4资源
Cortana是用于开发红队机器人和扩展Armitage的全功能环境。如果您想了解更多信息,请查看以下资源: