写点什么

跨站脚本攻击 xss 利用 -beef 攻击 - 演示

作者:喀拉峻
  • 2022 年 2 月 09 日
  • 本文字数:1807 字

    阅读完需:约 6 分钟

0x0 环境

主机 A win10:10.51.20.60(wifi)

主机 A 中的虚拟机 kali(攻击者):192.168.110.129(NAT)

主机 A 中的虚拟机 win2003(受害者):192.168.110.132(NAT)

0x1 配置

0x11 beef 配置

 


Beef 的配置文件在 /usr/share/beef-xss/config.yaml

Host:kali IP

Port:beef 监听端口默认 3000

public:主机 A(接入外网的电脑 IP)

public_port:主机 A 中空闲的端口,我设置的是 20000

0x12 虚拟机端口映射

 



修改虚拟机网关的端口映射,简单来说,就是设置后,所有访问主机 A 的 20000 端口的请求都会被转发到 192.168.110.129 的 3000 端口,也就是 kali 的 3000 端口上

虚拟网络编辑器在 VM 编辑栏

① 200 多本网络安全系列电子书② 网络安全标准题库资料③ 项目源码④ 网络安全基础入门、Linux、web 安全、攻防方面的视频⑤ 网络安全学习路线图【戳此白嫖】

0x2 模拟攻击

0x21 kali

启动 beef

 


Beef 弹出浏览器打开 beef 的后台管理,这里注意,原本应该是打开上图中的地址,但出了点问题(最后总结会说),所以我们要把 ip 改成 kali 的 ip,也就是 192.168.110.129:3000/ui/authentication

用户名/密码:beef/beef

 


这就是 beef 的界面,复制 basic demo link:http://192.168.110.129:3000/demos/basic.html

 


0x22 win2003,win10

地址转换:

复制的地址是:http://192.168.110.129:3000/demos/basic.html

受害者 Win2003 输入的地址应该是端口映射后的地址:10.51.20.60:20000/demos/basic.html

成功打开,此时应该是成功了才对(。。。。。。)

 


查看 kali 中的 beef 管理界面,并没有 win2003 的信息(慌了。。。)

 


此时,我试了下在主机 A 中打开 hook 地址,成功了

 


再看 beef,有了主机 A 的信息了,hook 成功了(摸不着头脑???)

 



尝试利用 social engineering(社会工程学模块)骗取 facebook 密码

 


再打开主机 A 上的页面,成功了

 


输入 hello 后,再回到 kali 看攻击效果

 


0x3 总结,思考

0x31 关于 beef 配置的 host

根据参考文章,一开始 beef 配置的 host 我是没有改动,也就是默认的 0.0.0.0

但出现了如下图的问题,成功打开了 demo,但是 demo 上的 js 一直不成功,原因是无法连接(Error connection)

后来把 host 改成了 kali 的 ip,js 连接上了,但是 beef 的管理页面,也就是 127.0.0.1:3000/ui/panel 却无法打开了,试了下 192.168.110.129:3000/ui/authentication 倒是成功了,但是这其中的原因我还没明白

 


0x32 win2003 的失败

0x22 中说到,win2003 成功打开了 demo,但是 beef 这没有收到信息

换成主机 A 尝试成功后,我又转回来研究 2003 失败的原因,因为只有 ie,而且是旧版本的,没办法 F12 看具体的请求状况,我下了个 47 版本的火狐装上后,再次尝试访问 demo,这次 beef 成功收到信息了,也就是 2003 被成功 hook 住了(我又摸不着头脑了???)

 


Beef 页面

 


0x33 关于 beef 配置的 public

因为此次用的是 wifi,所以 beef 配置中的 public 填的是 wlan 的 ip 地址,如果是用网线,

应该要改成 192.168.110.1

 


0x34 实际环境攻击的想法

这次是虚拟机网络模拟攻击,如果在实际情况下

根据参考文档 A

需要一台能访问(有独立 ip)的主机

服务器装好 beef 后,要修改后台管理页面的 URL 和用户名密码,因为你能登陆管理页面,别人也能登陆

还要修改 host 为主机的独立 ip,port 自设要大于 1024

Public 和 public_port 不用设置

以下来自文档 A

### 指定某个网段,只有在这个网段的浏览器才能被hookpermitted\_hooking\_subnet: "0.0.0.0/0"### 指定某个网段,只有在这个网段的浏览器才能访问管理UIpermitted\_ui\_subnet: "0.0.0.0/0"### 上面这两项都是可以被绕过的,只要使用X-Forwarded-For首部绕过,一般不需要设置
### 设置beef服务器的主机, 如果有自己的域名, 那么可以设置自己的域名, 没有就使用默认host: "0.0.0.0"### 设置beef服务器监听的端口, 可以自己定一个,比如8080, 记得端口号需要大于1024port: "3000"### 受害浏览器轮询beef主机的时间, 默认为1秒,可以设置为更低。 xhr\_poll\_timeout: 1000#public: "" # public hostname/IP address#public_port: "" # experimental### 这是让BeEF运行在一个反向代理或者NAT环境下才需要设置的。
### 管理页面的URI, 默认是/ui, 建议修改,这样就不会让别人找到你的管理页面web\_ui\_basepath: "/ui"### hook_file 的名称, 建议修改, 可以修改为jquery.js之类的来提升隐蔽性hook_file: "/hook.js"### 管理页面登录的用户名和密码, 这个一定要改,两个都改是最好的credentials:user: "beef"passwd: "beef"
复制代码


用户头像

喀拉峻

关注

左手Java右手Python,中间纹个C++ 2021.06.26 加入

还未添加个人简介

评论

发布
暂无评论
跨站脚本攻击xss利用-beef攻击-演示