XSS Payload如此强大,为了使用方便,有安全研究者将许多功能封装起来,成为XSS攻击平台。这些攻击平台主要目的是为了演示XSS的危害,以及方便渗透测试使用。下面介绍了几个常见的XSS攻击平台。

开源的XSS平台项目

XSS Platform

XSS Platform 是一个非常经典的XSS渗透测试管理系统,原作者在2011年所开发,由于后来长时间没有人维护,导致目前在PHP7环境下无法运行。该项目作者将源码移植到了PHP7环境中,同时增加安装功能。

项目地址:https://github.com/78778443/xssplatform

BlueLotus_XSSReceiver

其安装起来相比较于xss-platform更加简单,如果说xss-platform是一个多人使用的堡垒,而BlueLotus_XSS更像是一个人使用的瑞士军刀。其界面布局清新、数据可阅读性好、IP获取准确、IP地址定位精准、轻量级(无需数据库)、对数据存储进行加密。

项目地址:https://github.com/asw3asw/BlueLotus_XSSReceiver

Medusa

Medusa是一个红队武器库平台,目前包括XSS平台、协同平台、CVE监控、免杀生成、DNSLOG、钓鱼邮件等功能。

项目地址:https://github.com/Ascotbe/Medusa

官方文档:http://medusa.ascotbe.com/Documentation/#/

在线的XSS平台

并不推荐使用在线的XSS平台,毕竟敏感信息要传输到陌生人的服务器上,而且服务器端测试代码存在不可控性

BeEF-XSS

BeEF-XSS的介绍

BeEF-XSS,全称The Browser Exploitation Framework(浏览器攻击框架),是一款非常强大的web框架攻击平台,集成了许多payload,可以实现许多功能!

BeEF的架构图如下:

img

zombie即受害者浏览器。zombie 是被 hook的,如果浏览器访问有钩子(由 js 编写)的页面,就会被 hook,勾连的服务器会执行初始代码返回一些信息,接着 zombie 会每隔一段时间(默认为 1 秒)就会向BeEF 服务器发送一个请求,询问是否有新的代码需要执行。BeEF 服务器本质上就像一个 Web 应用,分为前端 UI 和,后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示,BeEF 持有者可以通过浏览器来登录 BeEF 的后端管理 UI 或者切换到他的工作目录中使用脚本启动。

BeEF-XSS使用的基本流程

第一次启动需要设置登录密码。

image-20211116144858252

登录页面,用户名为beef

image-20211116145812328

在漏洞页面中插入BeEF的hook脚本

image-20211116154259761

在BeEF-XSS主页面中可以看到受害者的浏览器正式上线,接着就可以使用Command模块对其进行利用

image-20211116151644248

BeEF-XSS主页面基本介绍:

  • Hocked Browers
    • online browers 在线浏览器
    • offline browers 离线浏览器
  • Detials
    • 浏览器、插件版本信息,操作系统信息
  • Logs
    • 浏览器动作:焦点变化,鼠标单击,信息输入
  • Commands
    • 绿色模块:命令模块针对目标浏览器工作,并且受害者不可见
    • 橙色模块:命令模块针对目标浏览器工作,但受害者可见
    • 灰色模块:命令模块尚未针对该目标浏览器进行验证
    • 红色模块:命令模块不适用目标浏览器,有些红色模块也可以执行
  • Network
    • 能够自动生成网络拓扑图

BeEF-XSS模块的利用

弹窗提示

可以使用alert或prompt进行弹窗。

使用模块:Browser -> Hooked Domain -> Create Alert Dialog

使用模块:Browser -> Hooked Domain -> Create Prompt Dialog

获取Cookie值

使用模块:Browser -> Hooked Domain -> Get Cookie

image-20211116155936182

image-20211116160001489

网页重定向

使用模块:Browser -> Hooked Domain -> Redirect Browser

image-20211116161448680

受害者的网页便会重定向到我们给定的URL。

但是这样一来受害者的浏览器便会脱离BeEF的控制,那么我们可以使用iFrame框架的方式进行重定向。

使用模块:Browser -> Hooked Domain -> Redirect Browser(iFrame)

image-20211116161943261

键盘记录

使用模块:Misc -> iFrame Event Key Logger

image-20211116175226073

image-20211116175342133

点击劫持

使用模块:Social Engineering -> Clickjacking

image-20211116164726334

每当鼠标点击在页面上点击时,就会自动执行js代码。

社工弹窗钓鱼

Flash更新页面钓鱼

使用模块:Social Engineering -> Fake Flash Update

image-20211116165540546

通知栏钓鱼

使用模块:Social Engineering -> Notifaction Bar(Chrome)

使用模块:Social Engineering -> Notifaction Bar(Firefox)

使用模块:Social Engineering -> Notifaction Bar(IE)

登录页面钓鱼

Google Mail登录

使用模块:Social Engineering -> Google Phishing

弹窗登录

弹窗页面有:Facebook、LinkedIn、Windows、YouTube、Yammer、IOS、Generic

使用模块:Social Engineering -> Pretty Theft

持久化控制

浏览器中间人攻击

常规页面与MitB(浏览器中间人攻击)中毒页面的区别在于,MitB会异步加载资源,同时保持勾连活动。对于用户来说一切都好像在正常页面中操作一样,很难察觉到有异常。这里要注意一下,如果用户单击了跨域链接,MitB会在浏览器中打开一个新的标签页,并把响应的内容放在新的标签页。

使用模块:Persistencr -> Man-In-The-Browser

IFrame内嵌框架

IFrame是HTML中的一个标签,可以创建包含另外一个文档的内联框架。为了持久的控制,可以创建一个全屏(整个浏览器)的IFrame来把页面放进去。BeEF的作者建议如果想持久化,内嵌框架是首选方案,原因如下:第一,可以完全控制内嵌框架的DOM内容。第二,内嵌框架主要用于在当前页面嵌入其他文档的事实,为持久化提供了直接了当的方法。

使用模块:Persistencr -> CreateForeground iFrame

另外,BeEF还可以结合MSF进行渗透测试,这会在之后使用MSF的时候进行讲解。

参考资料