8.1、概述
Zeus
等恶意软件及其变种会将自己注入用户浏览器,以窃取银行信息。这是一种 “浏览器中间人 ”攻击。之所以称之为 “浏览器中间人”,是因为攻击者将恶意软件注入了目标用户的浏览器中。
浏览器中间人恶意软件使用两种方法来窃取银行信息。它们要么在表单数据发送到服务器时捕获表单数据。例如,恶意软件可能会hook
Firefox
中的 PR_Write
以拦截 Firefox
发送的 HTTP POST
数据。或者,,它们将JavaScript
注入特定的网页来使用户认为网站在请求那些实际上是攻击者想要的信息。
Cobalt Strike 提供了第三种浏览器中间人攻击方法。它允许攻击者劫持所有经过身份验证的 Web 会话。一旦用户登录网站,攻击者就会要求用户的浏览器代表他们发出请求。由于用户的浏览器正在发出请求,它会自动的重新对任何用户已经登入的网站进行再次身份验证。我们把它称为一个 BrowserPivoting
。 Browser Pivoting
使攻击者可以用自己的浏览器通过目标的浏览器中继请求。
注:简单来说,浏览器跳板攻击可以让攻击者以受害主机上的终端用户的身份来访问浏览器上开着的 应用。攻击者可以继承目标用户对于网站的访问权限,相当于直接跳过了对于浏览器上的应用程 序的身份验证。
Cobalt Strike
的 Internet Explorer
Browser Pivoting 的实现是通过将一个 HTTP
代理服务器注入到受害者的浏览器。不要将此实现与改变用户的代理设置混淆了。此代理服务器不影响用户访问站点的方式。相反,此代理服务器供攻击者使用。所有通过它的请求都由受害者的浏览器完成。
# 8.2、设置
要设置Browser pivoting
,请通过 [beacon]-> Explore-> Browser Pivot
。选择要注入的 Internet Explorer
实例。你还可以决定将Browser Pivoting
代理服务器绑定到哪个端口。
注意你注入的进程非常重要。注入到Internet Explorer
来继承用户的经过身份验证的 web 会话。 Internet Explorer
的现代版本会为每个标签页派生单独的进程。如果你的目标使用一个现代版本的 Internet Explorer
,那么你必须注入与打开的选项卡关联的进程以继承会话状态。具体是那个标签页进程无关紧要(子选项卡共享会话状态)。
通过查看 Browser Pivoting
设置对话框中的 PPID
值识别Internet Explorer
选项卡进程。如果PPID
引用了 explorer.exe
,则进程与标签页无关。如果 PPID
引用了 iexplore.exe
,则进程与一个标签页相关联。Cobalt Strike
将在它认为你可以注入的进程旁边显示一个勾(√)。
设置完 Browser Pivoting
之后,请设置你的 web
浏览器代理,指向 Browser Pivoting
代理服务器。请记住,Cobalt Strike
的Browser Pivoting
服务器是一个 HTTP
代理服务器。
# 8.3、使用
Browser Pivoting
启动后,你就可以作为目标用户来浏览 web
。请注意,当你访问开启了SSL
的网站 时, Browser Pivoting
代理服务器会提供它的 SSL
证书。这是该技术发挥作用的必要条件。
当 Browser Pivoting
代理服务器检测到 SSL
错误时,它会要求你将一个主机添加到你的浏览器信任存储中。将这些主机添加到信任存储,然后按刷新以使受 SSL
保护的网站正确加载。
如果你的浏览器固定了目标站点的证书,你可能会发现无法让你的浏览器接受Browser Pivoting
代理服务器的SSL
证书。这是一个比较棘手的事情。一种选择是使用其他浏览器。开源的 Chromium
浏览器有一个可以忽略所有证书错误的命令行选项。这是 Browser Pivoting
技术使用的理想选择:
chromium --ignore-certificate-errors --proxy-server=[host]:[port]
上述命令可从 View -> Proxy Pivots
获取。选中 Browser Pivot HTTP Proxy
项并按 Tunnel
键。
要停止 Browser Pivot
代理服务器,请在其 Beacon
控制台中输入 browserpivot stop
。
如果用户关闭了你正在使用的标签页,你需要重新注入 Browser Pivoting
代理服务器。当无法连接到浏览器中的 Browser Pivoting
代理服务器时, Browser Pivoting
标签页将发出警告。
OpenJDK 11 存在一个 TLS 实施错误,在与 https:// 网站交互时会导致 ERR_SSL_PROTOCOL_ERROR (Chrome/Chromium) 和 SSL_ERROR_RX_RECORD_TOO_LONG (Firefox)。如果遇到这些错误,请将团队服务器上的jdk降级到 Oracle Java 1.8 或 OpenJDK 10。
# 8.4、Browser Pivoting工作原理
Internet Explorer
将其所有通信委托给一个名为WinINet
的库。任何程序都可以使用这个库,它为用户管理cookie、SSL
会话和服务器身份验证。Cobalt Strike
的 Browser Pivoting
利用了WinINet
基于每个进程透明的管理身份验证和重新身份验证的原理。
通过将Cobalt Strike
的 Browser Pivoting
技术注入到用户的Internet Explorer
实例中, 可以引发免费的透明再验证。
# 说明
本文由笔者在Cobalt Strike官方用户指南原文(https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/welcome_main.htm)基础上编译,如需转载请注明来源。