欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

分享一款用于创建DNS重绑定攻击的前端JavaScript工具包

来源:本站整理 作者:佚名 时间:2018-07-18 TAG: 我要投稿

注意:本软件仅适用于教育目的,请不要将其用于非法活动,工具作者和本站对用户个人行为不负任何责任。
今天给大家介绍的是一款名叫DNS Rebind Toolkit的工具包,这是一款前段JavaScript工具包,渗透测试人员可利用该工具来创建DNS重绑定攻击。

工具介绍
DNSRebind Toolkit是一款前端JavaScript框架,可用于对存在漏洞的主机或本地局域网服务进行DNS重绑定攻击,类似的服务包括Google Home、Roku、SonosWiFi扬声器、WiFi路由器、智能恒温器以及其他的物联网设备。在这款工具的帮助下,远程攻击者可绕过路由器的防火墙,然后直接与目标用户家庭网络内的设备进行交互,并提取出隐私信息,在某些情况下他们甚至还可以直接控制目标设备。
值得一提的是,渗透测试人员可利用该工具包创建自己的DNS重绑定攻击,该工具包在payloads/目录下提供了多种可用于现实攻击的Payload。
工具安装
克隆项目源码:
git clone https://github.com/brannondorsey/dns-rebind-toolkit.git
cd dns-rebind-toolkit
安装依赖组件
npm install
运行服务器:
sudo node server
API及工具使用
该工具包提供了两种JavaScript对象,可用于配合创建DNS重绑定攻击:
1.    DNSRebindAttack:这个对象可以用来对包含漏洞的服务器进行攻击。它可以创建、管理并于多个DNSRebindNode对象进行通信,DNSRebindAttack所生成的每一个Payload都必须包含一个DNSRebindNode对象。
2.    DNSRebindNode:这个静态类对象需要包含在每一个HTML Payload文件中,它可以对目标主机所运行的服务进行攻击,并与相应的DNSRebindAttack对象进行通信。
在对有防火墙保护的LAN主机进行攻击时,这两个脚本需要配合使用,基本的攻击过程如下:
1.    攻击者向目标用户发送一条指向恶意HTML页面的链接地址,并执行攻击。例如http://example.com/launcher.html,其中launcher.html包含了一个DNSRebindAttack实例。
2.    目标用户点击了恶意链接,并访问了恶意页面,其中http://example.com/launcher.html嵌入在一个iframe里面,页面此时便会触发攻击执行。
3.    DNSRebindAttack此时会搜索目标设备的本地IP地址(例如192.168.10.84),并根据这个IP地址来确定目标网络的IP地址范围(例如192.168.10.0-255)。
4.    launcher.html负责对目标子网的IP地址范围发动DNS重绑定攻击。
5.    DNSRebindAttack会在launcher.html页面中嵌入一个包含了payload.html的iframe,每一个iframe中都包含一个DNSRebindNode对象,用于对IP地址范围内的每一台主机(端口8008)进行攻击。
使用样例
一次攻击需要三个脚本和文件协同合作:
1.    一个HTML文件,其中包含DNSRebindAttack实例(例如launcher.html)。
2.    一个HTML文件,其中包含攻击Payload(例如payload.html),该文件需要通过DNSRebindAttack并根据目标IP地址嵌入到launcher.html中。
3.    一台DNS Rebind Toolkit服务器(server.js),用于传递文件并提取数据。
launcher.html
下面给出的是一个launcher.html文件样本,你可以在项目目录的examples/launcher.html中找到完整代码:
   
           Examplelauncher
   
   
       
       
       
       
       
        // DNSRebindAttack has a static method thatuses WebRTC to leak the
        // browser's IP address on the LAN. We'lluse this to guess the LAN's IP
        // subnet. If the local IP is 192.168.1.89,we'll launch 255 iframes
        // targetting all IP addresses from192.168.1.1-255
        DNSRebindAttack.getLocalIPAddress()
        .then(ip => launchRebindAttack(ip))
        .catch(err => {
            console.error(err)
            // Looks like our nifty WebRTC leaktrick didn't work (doesn't work
            // in some browsers). No biggie, mosthome networks are 192.168.1.1/24
            launchRebindAttack('192.168.1.1')
        })
        function launchRebindAttack(localIp) {
            // convert 192.168.1.1 into array from192.168.1.0 - 192.168.1.255
            const first3Octets =localIp.substring(0, localIp.lastIndexOf('.'))
            const ips =[...Array(256).keys()].map(octet => `${first3Octets}.${octet}`)

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载