BeEF网络攻击

介绍

使用JavaScript hack,可以通过一个挂钩的浏览器发起网络攻击。

获取内部IP地址

存在两个模块来检索僵尸浏览器的主机系统正在使用的IP地址。

通过这些IP地址,可以想象内部网络寻址计划并更有效地利用其他BeEF模块。

  • Firefox和Chrome的“ 获取内部IP(WebRTC)”模块使用WebRTC检索每个网络接口的IP地址。

获取内部IP地址WebRTC

  • 在获取内部IP地址(Java)的模块使用的Java小程序来获取IP地址。由于Java引入了点击播放功能,因此用户必须允许未签名的Java小程序运行。
    • 请注意,现代Java(从Java 7u51开始)将完全拒绝执行未签名的Java小程序,并且还将拒绝自签名的Java小程序,除非将它们添加到例外列表中。

识别局域网子网

该识别局域网子网模块采用基于时间的XHR确定任何常用的局域网IP地址是否在僵尸的局域网络(一个或多个)上使用。

通过这些IP地址,可以想象内部寻址计划并更有效地利用其他BeEF模块。

此模块仅适用于Firefox和Chrome。

识别局域网子网

获取HTTP服务器

“ 获取HTTP服务器”模块从指定IP地址上的可预测路径(/favicon.ico、/favicon.png、/images/favicon.ico、/images/favicon.png)加载favicon图像,以检测僵尸网络上的Web服务器局域网。

通过这些IP地址,可以想象内部寻址计划并更有效地利用其他BeEF模块。

在Internet Explorer和Safari中,该模块对于用户应该是不可见的,但是对于其他浏览器,用户可能会注意到是否有任何扫描的主机弹出“ 401 Authentication Required”提示。

获取HTTP服务器

平扫

然后可以启动ping请求并识别网络上的活动主机。这些模块存在三个版本:

  • 该ping扫描基于时间的模块使用JavaScript XHR请求,以确定活动的主机。此模块仅在Firefox中有效。

  • 在平扫(FF)模块直接使用Java API发送请求和时间响应。该模块仅在安装Java的Firefox中有效。

  • 在平扫(Java)的模块加载未签名的Java小程序。由于Java引入了点击播放功能,因此用户必须允许未签名的Java小程序运行。

    • 请注意,Java(从Java 7u51开始)将完全拒绝执行未签名的Java小程序,并且还将拒绝自签名的Java小程序,除非将它们添加到列表中。

跨源扫描仪(CORS)

跨域扫描程序(CORS)模块将CORS请求发送到指定的IP范围,并为每个以允许的CORS策略标识的Web服务器返回IP地址、端口号、HTTP状态代码、页面标题和页面内容。

该模块应可在所有支持CORS的现代浏览器上使用。

跨源扫描仪

跨源扫描仪(Flash)

跨域扫描器(Flash)模块使用Flash将请求发送到指定的IP范围,并为每个用许可的Flash跨域策略标识的Web服务器返回IP地址、端口、页面标题和页面内容。

该模块仅在安装了Flash的Firefox和Chrome中有效。

DNS枚举

通过使用计时器,可以使用Firefox和Chrome检测给定的主机名是否存在:

  • 在第一种情况下,请求将花费更长的时间,因为将完成DNS解析,然后启动TCP连接(并且可能会失败)。
  • 在第二种情况下,DNS请求将快速返回错误,因此浏览器能够检测到没有此类DNS条目。

端口扫描

既然我们知道了挂钩系统的IP地址和几个主机名,启动端口扫描将很有趣。几位安全研究人员发现,通过使用Firefox和Chrome将图像加载到浏览器中,可以使用相同的定时破解来扫描端口。

此攻击已包含在“ 端口扫描程序”模块中。

网络指纹

“ 网络指纹”模块使用默认图像的URL来对网络上使用的设备进行指纹识别。

它嵌入了Web服务器(Apache,IIS)和网络设备(Linksys NAS,打印机等)的默认图片列表,并检查是否有列出的图片可用。

该模块应该在所有浏览器中都可以使用。

请注意,用户可能会注意到是否有任何扫描的主机弹出“ 401 Authentication Required”提示。

远程CSRF

CSRF仍然是开发人员很少考虑的漏洞,尤其是考虑到通过利用CSRF所造成的影响有多严重。

BeEF包含许多CSRF模块,尤其是针对个人路线(Linksys,Dlink等)的模块。在上一步中对网络进行指纹识别时,我们仅检测到其中一个路由器。

大多数CSRF攻击都允许修改管理员密码,但是有几种可用于获得反向外壳或打开包装盒上的外部端口的攻击。

您可以在模块页面中查看CSRF模块的列表。

IRC NAT固定

通过模拟来自浏览器的IRC通信,可以欺骗用户的防火墙打开TCP端口。

这种黑客称为NAT锁定,它包含在BeEF IRC NAT锁定模块中。

管理界面

网络图

Network -> Map管理员界面标签下的“网络地图” 显示了僵尸浏览器本地网络的动态地图。识别出的网络主机会自动添加到地图中。

僵尸浏览器的本地网络的网络地图

网络地图使用HTML5画布,该画布允许您将地图另存为图像。

将网络地图画布另存为图像

网络主机

  • C:
  • FF: Firefox
  • S: Safari
  • IE: Internet Explorer
发现

右键单击Network -> Hosts网格中的任意位置,将提供一个上下文菜单,其中提供了用于主机发现的选项。

主机发现

前两个菜单项(适用于Chrome和Firefox)尝试检测本地网络IP地址范围:

  • 获取内部IP(WebRTC)(C,FF)
  • 识别局域网子网(C,FF)

其余选项在用户指定的IP地址范围或常用LAN IP地址的预定义列表上执行主机发现:

  • 发现路由器(S,FF)
  • 发现Web服务器(所有)
  • 指纹HTTP(C,FF,IE,S)
  • 跨域CORS扫描(IE10 +,C,FF,S)
  • 跨源闪存扫描(C,FF)

发现后

Network -> Hosts面板中提供了已标识的网络主机。

右键单击网络主机,可以对主机或其本地子网中的所有主机执行各种操作,例如:

  • 扫描HTTP服务器(全部)
  • 指纹HTTP服务器(C,FF,IE,S)
  • 跨源扫描以启用CORS的HTTP服务器(IE10 +,C,FF,S)
  • 跨域扫描启用了Flash跨域HTTP服务器(C,FF)
  • 扫描打开的TCP端口(C,FF)

服务发现

网络服务

Network -> Services面板中提供了已标识的网络服务。

右键单击网络服务,可以执行各种操作,例如:

  • 指纹HTTP服务器
  • 跨源扫描主机,用于启用了CORS的HTTP服务器
  • 跨域扫描主机,用于启用Flash跨域HTTP服务器
  • 扫描是否包含远程文件(反向shell)
  • 扫描已知的易受攻击的Shell Shock CGI(反向Shell)

服务扫描

RESTful API

网络扩展RESTful API允许检索已标识的网络主机和服务。

 # Returns the entire list of network hosts for all zombies
curl http://127.0.0.1:3000/api/network/hosts?token=[token]

# Returns the entire list of network services for all zombies
curl http://127.0.0.1:3000/api/network/services?token=[token]

# Returns all hosts given a specific hooked browser id
curl http://127.0.0.1:3000/api/network/hosts/[id]?token=[token]

# Returns all services given a specific hooked browser id
curl http://127.0.0.1:3000/api/network/services/[id]?token=[token]

# Returns a specific network host given its id
curl http://127.0.0.1:3000/api/network/host/[id]?token=[token]

# Returns a specific network service given its id
curl http://127.0.0.1:3000/api/network/service/[id]?token=[token]

本文章首发在 网安wangan.com 网站上。

上一篇 下一篇
讨论数量: 0
只看当前版本


暂无话题~