防止浏览器利用 BeEF

信息安全 Web应用程序 网页浏览器 xss 浏览器劫持
2021-09-12 21:27:07

BeEF 是一个很棒的基于浏览器的开发工具。hook.js但是在某些情况下,当它被保存在 HTML 源的不可见 iframe 中时,人们会不知不觉地因为牛肉而上瘾。

那么我们如何才能检测到我们的浏览器实际上是被 BeEF 通信服务器钩住的呢?如果我们已经上钩了,那么有什么办法可以去掉这个钩子呢?

此外,感染了 BeEF 的人的浏览器如何反向并找到其通信服务器(发送传出流量的地方,如server:8080/ui/panel)?

2个回答

SANS ISC 提交了 Yara 规则来检测 BeEF,yarashop 可以将这些规则重新用于网络层作为预警检测系统。作者展示了如何利用 Volatility 读取内存捕获并查找与 BeEF 相关的签名和通信 -- https://isc.sans.edu/diary/When+Hunting+BeEF%2C+Yara+rules+%28Part+ 2%29/20505

为了删除 Javascript 挂钩,例如 BeEF,您通常只需要在重新启动所有浏览器进程之前清除重新打开的页面/选项卡、历史记录和缓存。但是,在一些持久性 BeEF 场景中,您还需要考虑其他离线浏览器存储,例如 HTML5 离线缓存。

您想寻找 BeEF 是对的,但您也需要更深入地挖掘。混淆 Javascript 很容易,并且很难修改检测器以捕获这些混淆。可以使用其他 Javascript 挂钩包,例如XSSFScanbox.js或 metasploit-framework 的辅助/收集/ browser_info模块来代替 BeEF。

最近被 Proofpoint 收购的 Emerging Threats 有一套 Snort 规则——https ://rules.emergingthreats.net/open/snort-2.9.0/rules/——其中许多涵盖 BeEF、XSS、Scanbox 等. 您将特别想查看emerging-trojan.rules 和emerging-web_client.rules 文件。BeEF 和 Scanbox 有特定的条目,以及从客户端(即浏览器)角度捕获活动 XSS 的通用条目。

这里有两篇文章讨论了威胁社区如何在这些 Javascript 挂钩技术上融合——https : //www.helpnetsecurity.com/2016/04/28/attackers-use-open-source/——http ://www .securityweek.com/attackers-increasingly-abuse-open-source-security-tools

如果唯一关心的是“hook.js”浏览器,例如 Mozilla、Firefox 有脚本阻止插件(例如noscript),如果您使用的是 IE,您可以启用脚本阻止,这会使任何 javascripts 没有实际意义。至于跟踪通信服务器,您可以使用 netstat:

netstat -an | findstr 8080

这只有在将端口设置为 8080 时才有效。最好的选择是将 findstr 更改为 ESTA。这将显示已建立的会话。如果浏览器已建立会话,您可以使用带有 pid 变量的 netstat 并在任务管理器中查看 PID:

netstat -ano | findstr ESTA