查看原文
其他

渗透测试之客户端攻击

计算机与网络安全 计算机与网络安全 2022-06-01

一次性进群,长期免费索取教程,没有付费教程。

教程列表见微信公众号底部菜单

进微信群回复公众号:微信群;QQ群:16004488


微信公众号:计算机与网络安全

ID:Computer-network

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


一个成功的解决策略是直接把客户端应用程序作为攻击目标。用户发动与客户端应用程序的交互,允许攻击者利用现有用户和应用程序之间的信任优势。社会工程学方法的使用将提高客户端攻击成功的可能性。


客户端攻击的目标系统通常是缺乏安全控制装置(尤其是防火墙和入侵检测系统)的企业系统。如果这些攻击是成功的,并且建立了持久稳定的通信,那么客户端设备可以发起攻击,一旦其重新连接到该目标网络上。

一、使用恶意脚本攻击系统


客户端脚本(如JavaScript、VBScript、PowerShell)被开发成移动的应用逻辑程序、并且在从服务器到客户端的计算机上操作。从攻击者或测试者的角度来看,使用这些脚本有以下几个优点:


  • 它们已经是目标操作环境的一部分;攻击者不需要传输大型编译器,或其他辅助文件(如加密软件)到目标系统。

  • 脚本语言设计的目的是便于计算机操作,如配置管理和系统管理等。例如,它们可以用来发现和更改系统配置、访问注册表、执行程序、接入网络服务和数据库、并通过HTTP或电子邮件传输二进制文件。这样的标准脚本操作可以很容易地为测试者所使用。

  • 因为它们原产于该操作系统环境,所以它们通常不会触发防病毒警报。

  • 它们很容易被使用,因为编写该脚本仅需要一个简单的文本编辑器。使用脚本发起攻击毫无障碍。

从历史上看,JavaScript是用来发动攻击的首选脚本语言,这是因为JavaScript广泛用于大多数目标系统。由于JavaScript攻击的特点已经众所周知,我们将重点关注Kali如何使用最新的脚本语言:VBScript和PowerShell,使攻击变得容易。


(一)使用VBScript进行攻击


VBScript(Visual Basic Scripting Edition,可视化基本编辑脚本)是一个由微软开发的活动脚本语言(Active Scripting language)。它被设计成一个轻量级、可以执行小程序的微软本地语言。自Windows 98以来,VBScript就被默认安装在Microsoft Windows发布的每一个桌面版本中,这使它成为客户端攻击的首选目标。


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

注意,V指定输出为一个VBS宏脚本。输出将显示为两个特定部分的文本文件,如下图所示。


调用msfpayload

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


宏代码的信息框

接下来,复制shellcode到实际的文档中。shellcode部分摘录如下图所示。


shellcode部分摘录

shellcode被看作一个可用于执行攻击的脚本,所以你可能希望通过最小化字体大小和制作颜色匹配文档的背景等方式,来隐藏、混淆shellcode。


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

当文件发送到目标,一旦其打开,目标即会弹出安全警告;因此,攻击者将使用社会工程学迫使预定的受害者选择Enable(启用)选项。最常见的方法之一,就是在已配置的Microsoft Word文档或Excel电子表格中嵌入宏用来玩这个游戏。


启动该文件将创建一个相反的TCP命令解释器,并返回给攻击者,允许攻击者用于维持和目标的持久稳定连接,并执行随后的后期利用活动。


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


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


使用Metasploit创建后门

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

这允许将可执行文件放置在微软的启用了宏的文件里的,并发送给客户端。VBScript可用于执行反向外壳和更改系统注册表,以确保命令解释器保持持久稳定性。我们发现这种类型的攻击是绕过网络安全控制最有效的方法之一,并可用于维护一个安全的网络连接。


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


(二)使用Windows PowerShell攻击系统


Windows PowerShell是一个用于系统管理的命令行外壳解释器及脚本语言。基于.NET框架,它扩展了VBScript的可用功能。该语言本身很容易扩展,因为它建立在.NET库上,你可以从C#或者VB.NET语言中合并代码。你也可以利用第三方数据库。尽管具有扩展性,但它还是一种简洁的语言。仅用10行PowerShell代码就可完成超过100行的VBScript代码所实现的功能!


也许,PowerShell最大的优点是,在大多数基于Windows的现代操作系统(Windows 7及其更高的版本)上默认使用,且不能被删除。


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


为了发起攻击,我们将使用Metasploit框架的PowerShell Payload Web Delivery模块。该模块的目的是为了在目标系统上快速建立会话。该攻击不写入磁盘,因此不可能触发客户端防病毒检测。发起攻击和可用模块的选项如下图所示。


Metasploit框架的模块选项

Metasploit框架将生成一个可嵌入文档和发动攻击的单行宏,代码如下所示:

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

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


使用schtask命令让psh_web_delivery持久稳定是可能的。以下命令将创建一个预定任务,MSOfficeMngmt,其登录系统后将执行powershell.exe(默认情况下,位于Windows\system32目录下):

其他的PowerShell脚本,旨在支持后期利用活动的脚本,在Kali的PowerSploit目录中可以找到。尽管PowerShell有很好的灵活性,但仍具有不足之处。


例如,如果包含宏的文件,被最终用户在一个持久机制应用之前关闭,则连接丢失。


更重要的是,脚本VBScript和PowerShell只在微软环境中有用。为了扩展客户端的攻击范围,我们需要寻找一个可以被利用的通用客户端漏洞,而不考虑其操作系统环境。这种漏洞的一个具体实例是跨站点脚本。


二、跨站点脚本框架


跨站点脚本(Cross-Site Scripting,XSS)漏洞,据说是最常见的、能在网站上找到的、可利用的漏洞。据估计,它们存在于高达80%的所有应用程序上。


XSS漏洞发生在应用程序中,通常是基于Web的,同源策略(same-origin policy)违反了信任的概念,并且显示由用户提供的尚未消毒的内容,用以删除恶意语句。


至少有两个主要类型的XSS漏洞:非持久的(non-persistent)和持久的(persistent)。


最常见的类型是非持久的或反映漏洞的。当由客户端提供的数据被服务器直接使用并显示响应时,这些漏洞将会产生。此种漏洞的攻击,可以通过电子邮件,或第三方网站提供一个似乎值得信赖,但包含XSS攻击代码的URL而发生。如果可信站点很容易受到这种特定的攻击,在执行环节可能导致受害者的浏览器执行恶意脚本,并可能会俘获受害者。


持久的(存储)XSS漏洞将出现,当攻击者提供的数据被服务器保存,然后在他们浏览网页的过程中,永久地显示在其信任的网页中。这通常发生在网上留言板和博客中,这里允许用户张贴HTML格式的消息。一个攻击者可以将恶意脚本放入网页,其对即将到来的用户是不可见的,但其可以入侵受影响网页的访客。


一些存在于Kali Linux上的工具可以找到XSS漏洞,包括xsser和各种各样的漏洞扫描器。然而,也有一些工具可以让测试者充分利用XSS漏洞,并展示该漏洞的严重性。


跨站点脚本框架(Cross-Site Scripting Framework,XSSF)是一个多平台的安全工具,其利用XSS漏洞在目标上创建通信通道,并支持攻击模块,包括以下内容:


  • 对目标浏览器(指纹和以前访问URL)、目标主机(检测虚拟机,获取系统信息,注册密钥和无线密钥)和内部网络进行侦察。

  • 发送弹出的警报消息到目标系统。这种简单的“攻击”可用来展示XSS的脆弱性,然而,更复杂的警报可以模拟登录提示和捕获用户的身份认证凭证。

  • 窃取信息记录程序,使攻击者冒充目标。

  • 重定向目标来查看不同的网页。一个恶意的网页可以自动下载漏洞,并且利用到目标系统上。

  • 加载PDF文件或Java小程序到目标系统上,或者窃取数据,如从安卓移动设备中窃取SD卡的内容。

  • 发动Metasploit攻击,包括browser_autopwn,以及拒绝服务攻击。

  • 发动社会工程攻击,其中包括自动完成盗窃、点击劫持(clickjacking)、假闪存更新、网络钓鱼和标签绑架等。


此外,XSSF隧道(XSSF Tunnel)功能允许攻击者冒充受害者,使用他们的凭证浏览网站与会话。这可能是一种有效的、用来访问企业内部局域网的方法。


该API是有据可查的,可以很容易地创建新的攻击模块。因为它是用Ruby编写的,该API集成了Metasploit的框架,允许攻击者发动更多的攻击。


使用XSSF,支持一个攻击,必须进行安装和配置,具体步骤如下:


1、XSSF并不是来自于Kali。首先,用户必须打开一个终端窗口,并设置相应的目录,使用下面的命令:

2、可使用以下命令安装XSSF:

确保你使用svn export,而不是svn checkout,因为后一个命令将打破现有的MSF svn文件。成功安装后显示如下图所示的提示。


成功安装XSSF框架

3、使用load xssf命令从Metasploit框架控制台,加载XSSF插件,如下图所示。


加载XSSF插件

4、通过输入helpxssf命令,确定XSSF已经装载,如下图所示。


输入helpxssf命令确定XSSF已经装载

5、使用以下命令,从控制台访问与插件相关联的URL:

上述命令的执行结果如下图所示,你可以看到几个URL标识。


运行xssf_urls命令

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


  • Generic XSS injection(通用XSS注入):这是你正试图让受害者点击或执行的目标。

  • XSSF test page(XSSF测试页):XSSF可以访问本地测试页面,这极易受到XSS攻击。在实际测试中,发动攻击之前,还可以用于验证攻击和结果。

  • XSSF Tunnel Proxy(XSSF隧道代理):XSSF允许攻击者使用受损主机的身份进行网上冲浪,同时保留他们的安全身份标识。

  • XSSF logs page(XSSF登录页面):这个记录了攻击和收到的信息。不幸的是,日志页面提供了一个非常暗的背景,并且很难看到返回的信息。在测试过程中,我们通常通过命令行访问日志信息,这更直观,并可以编写脚本。

  • XSSF statistics page(XSSF统计页面)。

  • XSSF help page(XSSF帮助页面)。


我们将使用有漏洞的Web应用程序——Mutillidae,来证明XSSF。Mutillidae是Metasploitable项目的一部分,可以从http://sourceforge.net/projects/metasploitable/files/Metasploitable2/下载文件。


6、一旦Mutillidae被打开,会导航到博客页面;此页面是已知的XSS攻击漏洞(你可以使用漏洞扫描工具Mutillidae,识别其他潜在的插入点)。


发动针对目标客户端的攻击,不定期发布到博客。替代方法,输入包含目标的URL和端口的脚本元素:

更好图显示了攻击代码的位置在目标网站的博客页面中。


包含恶意代码的博客页面

当这些代码被输入且受害者点击保存博客条目(Save Blog Entry)时,他们的系统将被侵入。从Metasploit框架的控制台,测试者可以使用xssf_victims和xssf_information命令获取每个受害者的信息。在执行xssf_victims命令时,每个受害者的信息均被显示,如下图所示。


执行xssf_victims命令显示受害者信息

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

审查选项之后,警报可以迅速通过命令行发送,如下图所示。


给受害者报警

受害者将看到一条消息,如下图所示。

受害者看到消息

一般来说,大多数测试者和他们的客户验证跨站点脚本,使用这种简单的警告消息。这证明了一个“漏洞”的存在。


然而,简单的警报缺乏情绪的影响。通常情况下,它们确定的是一个真正的漏洞,但客户并不响应和处理该漏洞,因为警报消息不被认为是一个显著的威胁。幸运的是,XSSF允许测试者“提高赌注”,并表现出更复杂、更危险的攻击。


通过使用以下命令,XSSF可以窃取信息记录程序:

运行上述命令的执行结果如下图所示。


偷取信息记录程序

当攻击已经完成时,该信息记录程序,可以通过审查XSSF日志页面上的结果,或直接在命令行上使用命令发现,如下图所示。


查看信息记录程序

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


  • check_connected:此命令检查受害人是否已经打开了任何社交网站(Gmail、Facebook或Twitter)。

  • csrf:它启动一个跨站点请求伪造攻击。

  • keylogger:该命令调用客户端上的一个键盘记录器。

  • load_applet与load_pdf:这两个命令加载客户端上的恶意Java小程序和PDF文件,并调用它们启动预配置恶意软件。

  • redirect:它将客户端重定向到指定的Web页面。

  • webcam_capture:此命令从客户机的网络摄像头捕捉图像。

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


XSSF也可以与ettercap一起用于入侵内部网络。例如,ettercap可以用来与恶意页面连接以取代</head>数据,通过将以下代码放在一个名为attack的过滤器中来实现。

使用以下命令将过滤器脚本转换成二进制文件:

发动针对网络上所有用户的这种攻击,执行ettercap,使用以下命令:

XSSF(特别是当集成到Metasploit框架时)是一个非常强大的利用XSS漏洞的工具。然而,一个新的明星最近出现了,其可以帮助你实现类似的攻击,它就是BeEF(浏览器开发框架)。


三、浏览器开发框架——BeEF


BeEF(Brower Exploitation Framework)是一种开发工具,专注于一个特定的客户端应用程序:Web浏览器。


BeEF允许攻击者使用如XSS或SQL注入的攻击,将JavaScript代码注入到脆弱的HTML代码。这种攻击代码被称为钩(hook)。破坏是由浏览器执行钩时实现的。浏览器(僵尸)连接回BeEF应用程序,其提供给浏览器的JavaScript命令或模块。


BeEF的模块执行任务如下:


  • 指纹识别和受损浏览器的侦察。它也可以作为一个平台,用来评估存在于不同浏览器上的攻击和它们的行为。


需要注意的是,BeEF允许我们在同一客户端上钩住多个浏览器,以及在一个域内的多个客户端,并在利用和后期利用阶段管理它们。


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

  • 在客户端上检测软件(仅限互联网浏览器),并获得在程序文件(Program Files)和程序文件(x86)目录里的目录列表。这可以识别其他可以被利用的应用程序,以维持我们在客户端上的状态。

  • 使用受损系统的网络摄像头摄取照片,这些照片在报告中有重要的影响。

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

  • 实现浏览器击键记录。

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

  • 从Metasploit框架发动攻击。

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


因为BeEF是用Ruby编写的,它支持多个操作系统(Linux、Window和OS X)。更重要的是,它很容易在BeEF及其扩展功能中定制新模块。


安装和配置浏览器开发框架


BeEF不是Kali分支的一部分,但是,它已经打包带有所依赖的项,以支持在Kali中的自动安装。要安装BeEF,可使用下面的命令:

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


1、编辑位于/usr/share/beef-xss/config.yaml中的主要配置文件以便阅读。

2、编辑位于/usr/share/beef-xss/extensions/metasploit/config.yml中的文件。你需要为Metasploit框架编辑行:host、callback_host、os'custom',以及包括你的IP地址和位置的path。一个正确编辑后的config.yml文件如下图所示。


正确编辑的config.yml文件

3、开启msfconsole,并加载msgrpc模块,如下图所示。确保已包含密码:


加载msgrpc模块

4、使用以下命令启动BeEF:

5、如果消息显示成功连接到Metasploit(Successful connection with Metaspliot),同时显示Metasploit攻击已经加载,说明BeEF启动成功。成功启动后的消息如下图所示。


BeEF启动成功

当你重启BeEF,可用-x开关复位该数据库。


在这个例子中,BeEF服务器运行在192.168.222.129,并且“钩URL网址”(我们希望目标是激活)是在192.168.222.129:80/hook.js上。


大部分管理和BeEF的管理是通过Web界面完成的。要访问控制面板,首先访问http://:3000/ui/panel。


默认的登录凭证是Username:beef和Password:beef,如下图所示,除非这些在config.yaml中发生了变化。

项目BeEF登录页面

四、BeEF浏览器的演练


当BeEF控制面板启动时,它将显示开始(Getting Started)屏幕;包含链接到在线网站,以及演示可用于验证各种攻击的页面。BeEF控制面板的显示如下图所示。


BeEF控制面板

如果你已经钩到一个受害者,则接口将被分为两个面板:


  • 面板的左侧是带钩浏览器(Hooked Browsers),测试人员可以看到每一个连接浏览器,列出了有关其主机操作系统的信息:浏览器类型、IP地址,以及安装的插件。因为BeEF设置了一个信息记录程序来识别受害者,它可以参考这些信息来保持受害者名单的一致性。

  • 面板的右侧所有的动作已被启动,并且获得了结果。在Commands选项卡中,我们看到一个使用不同攻击向量的分类存储库,其可以攻击上钩的浏览器。此视图将根据不同浏览器的类型和版本而有所不同。


BeEF采用颜色编码方案,描述关于特定的目标及其可用的基础命令。使用的颜色如下:


  • 绿色(Green):表明该命令模块对目标工作,将被受害者检测到。

  • 橙色(Orange):表示该命令模块对目标工作,它可能被受害者检测到。

  • 灰色(Gray):表明该命令模块尚未得到目标验证。

  • 红色(Red):表明该命令模块针对目标不工作。它可以被使用,但不能保证成功,它的使用可能被目标检测到。


必须对这些指标持有怀疑态度,因为变化的客户端环境可以使一些命令失效,或可能导致其他意想不到的结果。


要启动一个攻击或拦截一个受害者,我们需要用户点击上钩的网址,其形式如<IP ADDRESS>:<PORT>/hook.js。可以通过使用各种手段来实现,其中包括:


  • 最初的XSS漏洞。

  • 中间人攻击(尤其是那些使用BeEF Shank,an ARP欺骗工具,专门针对内部

  • 网络中内部站点的攻击)。

  • 社会工程攻击,包括BeEF网络克隆工具和大量电子邮件,由假冒的iFrame定制的钩点,或二维码生成器。


一旦浏览器被钩住,它将被称为僵尸。从Hooked Browsers面板上,命令接口的左侧选择该僵尸的IP地址,然后参考可用命令。


在下图所示的例子中,有几种不同的攻击均可用于带钩浏览器的管理选项。一个最简单的攻击选择是使用社会工程Clippy攻击。


当Clippy从Commands下的Module Tree被选出时,一个具体的Clippy在最右侧的面板启动,如下图所示。它允许你调整图像,提供文本和将在本地发动的可执行文件,如果受害者点击了提供的链接。在默认情况下,自定义文本通知受害者他们的浏览器已过期,为他们提供更新,下载可执行(无恶意的)文件,然后感谢执行升级的用户。所有这些选项可以由测试人员更改。


Clippy攻击

当执行Clippy时,受害者将在他们的浏览器上看到一条消息,如下图所示。


在Clippy攻击中,受害者看到信息

这是一个非常有效的社会工程攻击。在与客户的测试中,我们有大约70%的成功率(客户端下载一个无恶意的指标文件)。


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


DeEF简单有效地获取用户账户密码

一个更有趣的攻击是Pretty Theft,其要求用户提供最热门网站的用户名和密码。例如,对于Facebook的Pretty Theft选项,可以由测试人员进行配置,如下图所示。


Pretty Theft选项

当执行攻击时,受害者呈现一个似乎合法的弹出,如下图所示。


受害者看到的要求输入Facebook密码的界面

在BeEF中,测试人员审查该攻击的历史记录,可以在Command results列的data字段中获得用户名和密码,如下图所示。


从历史数据中发现用户名及密码

(一)整合BeEF和Metasploit攻击


BeEF和Metasploit框架均是用Ruby开发的,并且可以一起使用来攻击目标。由于其使用客户端和服务端的指纹识别确定目标,所以browser_autopwn是一个最成功的攻击。


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

等到所有相关的漏洞利用加载完毕。在下图所示的例子中,有18个漏洞利用被加载。同样也记录了该攻击目标的URL。在这个例子中,目标URL是http://192.168.43.130:8080/ICprp4Tnf4Z:


加载browser_autopwn利用

有几种方法可以直接让浏览器点击目标URL,但是,如果我们已经连接了目标浏览器,可以使用BeEF的redirect功能。在BeEF的控制面板中,进入Browser|Hooked Domain|Redirect Browser。当出现提示时,使用此模块指向目标URL,然后执行该攻击。


在Metasploit的控制台中,你将看到所选的攻击针对目标成功发起。一个成功的攻击将打开一个Meterpreter会话,如下图所示。


一个成功的攻击打开的Meterpreter会话

在受损目标上查看打开的会话列表,输入sessions-l.。以交互方式与一个特定的会话连接,例如,会话1,输入sessions-i 1。


(二)用BeEF作为隧道代理


隧道是一个在交付协议中封装有效载荷协议的过程,如IP。使用隧道,你可以在网络上传输不兼容的协议,或者,你也可以绕过被配置为阻止特定协议的防火墙。BeEF可以被配置为隧道代理,模仿一个反向HTTP代理:浏览器会话变成隧道,带钩浏览器变成出口点。当内部网络已被破坏时,这个配置是相当有用的,因为隧道代理可以被用于:


  • 浏览通过身份验证网站的、受害者浏览器的安全内容(客户端SSL证书、认证的信息记录程序、NTLM散列函数,等等)。

  • 使用受害者浏览器的安全内容,爬已经上钩的域。

  • 便于使用的工具,如SQL注入。


要使用隧道代理,选择带钩浏览器,你希望的目标并且右键单击其IP地址。在弹出的对话框中,选择Use as Proxy的选项,如下图所示。


使用隧道代理

配置浏览器,使用BeEF隧道代理作为HTTP代理。在默认情况下,该代理的地址是127.0.0.1,端口号是6789。


如果你访问一个目标网站,使用设置为HTTP代理的浏览器,所有生成的请求/响应对将被存储在BeEF的数据库中,其可以被分析,导航到Rider|History(日志摘录如下图所示)。


日志摘录

一旦攻击已经完成,有一些机制来确保该连接被持久保留,其中包括:


  • 确认关闭(Confirm close):当他们试图关闭一个项目时,一个模块弹出,呈现给受害者:Confirm Navigation-are you sure you want to leave this page?(确认导航——你确定你想离开这个页面吗?)。如果用户选择Leave this Page(离开这个页面),它将失效,会继续弹出Confirm Navigation。

  • 下弹出模块(Pop-under module):这是配置在config.yaml中的自动运行模块。如果受害者关闭主浏览器选项卡,此模块试图打开一个小下弹出窗口,用于保持带钩浏览器。这可以通过弹出窗口阻止程序来阻止。

  • iFrame键盘记录器(iFrame keylogger):重写所有的网页链接到iFrame,并覆盖100%的原始高度和宽度。为实现最大化效果,它应该被附加到JavaScript键盘记录器中。理想情况下,你会加载带钩域的登录页面。

  • 人在浏览器中(Man-in-the-browser):此模块可确保受害者点击任何链接后,出现的下一个页面也将被钩。避免这种行为的唯一途径是在地址栏中输入一个新的地址。


最后,虽然BeEF提供了一个极好的模块系列来执行侦察,同时用于杀链的利用和后期利用阶段,但BeEF已知的默认活动(/hook.js和服务器头信息)被用于检测攻击,这降低了其有效性。测试人员将不得不伪装自己的攻击,使用Base64编码、空格编码、随机的变量和删除注释,以确保其在未来有完整的有效性。


五、结语


我们研究了针对系统的攻击,通常是从被保护网络中孤立出来的。这些客户端攻击,重点放在特定应用程序的漏洞上。我们回顾了恶意脚本,尤其是VBScript和PowerShell,其在测试和破坏Windows网络中特别有用。然后,我们也研究了跨站脚本框架,它可以破解XSS漏洞,以及BeEF工具,其目标是攻击网络浏览器的漏洞。XSSF和BeEF与侦察、利用和后期利用工具的整合集成,在Kali上提供了综合的攻击平台。

    微信公众号:计算机与网络安全

    ID:Computer-network

    【推荐书籍】

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存