6.1 浏览器漏洞利用框架(BeEF)
浏览器漏洞可能会被各种恶意软件利用,篡改浏览器的预期行为。这些漏洞都是常见的攻击路径,因为大多数主机系统都会用到某种形式的Web浏览器应用。让我们一起看一个用于利用浏览器漏洞的流行工具。
有许多很酷的渗透测试应用程序可以添加到你的黑客攻击兵器库中,比如我们最喜欢的工具之一,浏览器漏洞利用框架(BeEF,Browser Exploitation Framework) 。BeEF是一个基于浏览器的漏洞利用包,它会“钩住”一个或多个浏览器作为发起攻击的滩头堡。攻击者可以通过让用户访问一个定制URL来钩住用户,用户看到的依然是典型的Web页面,而攻击者已经访问了用户的会话。BeEF绕过了网络安全部署和基于主机系统的反病毒程序,它瞄准的是常见浏览器中找到的漏洞,比如IE和Firefox浏览器。
BeEF并没有包含在Kali Linux的1.0发布版本中,但可以在beefproject.com网站上下载。我们期望BeEF可以凭借它在渗透测试社区中的流行度加入到Kali Linux的未来某个版本中 1 。
1 Kali Linux 1.0.5(译本书时的最新版本)中是带有BeEF的。你可以浏览 Exploitation Tools > BeEF XSS Framework ,选择 beef 来启动。——译者注
要安装BeEF,以root用户身份打开Kali Linux上的命令行终端,调用如下命令:
apt-get update
apt-get install beef-xss
在运行apt-get update命令时,它可能会询问你是否要安装、更新或是覆盖某些旧文件。大多数情况下,你只要接受默认提示即可。当更新过程结束时,你可以用apt-get 来安装BeEF:
该过程结束时,你就已经在Kali Linux上安装好了BeEF。
要启动BeEF,你需要切换到/usr/share/beef-xss目录,并输入./beef来启动BeEF服务器。BeEF服务器启动后,用于管理BeEF及钩住受害者的URL会显示在终端窗口中:
要访问管理服务器,打开一个Web浏览器,访问/ui/panel链接。在将受害者引向BeEF的钩子时,将受害者重定向到BeEF服务器的钩子链接上,即hook.js 。你需要找到一个策略来让受害者访问你的钩子链接,如钓鱼或是社会工程学攻击,总之是要将用户重定向到BeEF上。
在这个例子中,我们会访问http://172.16.86.144:3000/ui/panel。默认的用户名和密码都是beef。
当用户点击“hook.js”或是重定向回“hook.js”网站时,BeEF服务器上的攻击者会看到钩住的浏览器。BeEF会将该新系统添加到目标列表中,当被钩住的受害者在线时,将他们显示出来。当离线受害者再次连接到因特网上时,他们就会成为可被攻击的对象,如果他们在重新使用因特网前访问过钩子链接。下一个截图显示的是BeEF的主界面以及可用于向被钩住的系统发起攻击的选项:
前面的例子显示了一个被钩住的Windows笔记本。BeEF可以显示细节信息,比如受害者使用的是否是Firefox、Windows 32系统、特定的浏览器插件、脚本等,以及是否启用了Java等其他有用信息。攻击者可以在被钩住的机器上执行命令,比如弄出一个钟声、抓取会话cookie、截屏、记录按键信息,甚至用被钩住的浏览器作为攻击其他系统的代理。另一个例子是用被钩住的系统登录到Facebook上,使用BeEF来捕捉会话cookie。攻击者可以回复已通过身份认证的会话,获得受害者Facebook账户的全部访问权限。邪恶和破坏的可能性是了无止境的。这个滩头堡可以允许攻击者不受限制地访问用户的浏览器以及获得拿到访问权限所需的所有信息。
BeEF会提供被钩住系统的细节信息,并记录被执行的命令。各个独立主机的详情和成功执行的命令的日志信息都会被复制到一个最终的可交付的报告中:
防御基于浏览器的渗透工具非常困难。最好的防御是保证所有基于浏览器的软件都被更新到了最新版本,打了安全补丁,并禁用了浏览器中的Flash和Java。此外,能够检测常见的基于应用的威胁的安全解决方案可以多提供一层安全加固,如下一代入侵防御系统(NGIPS,Next Generation Instrusion Prevention System) 。如BeEF等渗透工具的大多数受害者都是点击了伪装成可信团体的邮件或社交媒体访客中的链接的用户,而实际上这些链接都是用恶意链接、软件或代码等包装过的。