beef搭建踩坑及隐匿


TL;DR

  • 搭建基础工具cs之后,想着怎么搭建个钓鱼平台,看了像是flash钓鱼、windows凭据钓鱼、google页面钓鱼、印象笔记钓鱼,发现xss平台beef也都有这些工具,那为何不搭建个beef平台更方便呢,之前搭建过beef,但都也只是简单测试用,并没有真正去有效使用,实战使用起来就会发现一些问题。

    中间过程

  • 首先第一个问题,因为要attack的是一个https网站,如果插入的为http://ip/hook.js,浏览器的安全策略不允许这样干,所以beef要开启https功能,开启https功能很简单,按照github上的wiki,修改config.yaml文件中的beef.http.https.enable 为true即可,但因为beef为不信任证书,所以网站加载hook.js还是不行,解决办法就是给申请一张受信任证书,那自然就想到letsencrypt的免费https证书,然后还有域名的话可以去freenom上申请(域名申请可以参考cs那篇文章,可以选择适当的域名,比如 cdn.domain.com 啥的),其实在这里除了自己申请域名之外也可以使用ngrok(参考)。
  • 第二个问题是证书出问题,自己在申请好证书之后,将beef_cert.pem和beef_key分别修改为fullchain.pem和privkey.pem,发现还是报错,查询了一会儿也没解决问题,一时陷入僵局。冷静思考了一会儿,想想自己之前搭建ctfd平台的时候,使用了nginx做了反向代理,当时的证书是没有这个问题的,那么尝试一下看行不行,结果是可行(参考https://shirmy.me/article/12)。
  • 第三个问题,beef默认端口是3000,最开始自己尝试使用官方的github的docker进行构建,但是每次修改config.yaml都要重新构建镜像,而构建这个镜像又非常耗时,所以最后还是使用install脚本进行安装和调试,在调试过程中,发现直接访问beef后台以及hook.js 没有问题,但是并没有上线,打开浏览器网络发现请求的是域名的3000端口,这个时候修改beef.http.public.port为443即可。
  • 本来以为处理这个问题应该很快,两三个小时就能搞定,结果断断续续花了两天时间才整完,当然在整个问题的解决过程当中自己也查看了beef的wiki,使自己对beef也有了更进一步的了解,只是http下的public和https让我一开始没怎么搞懂,费了半天劲。
  • 附上nginx配置截图
  • 然后看下beef的主要配置截图
  • 除此之后beef还可以和msf联动。可参考文章:
    https://blog.csdn.net/u014029795/article/details/116755248
    https://github.com/beefproject/beef/issues/1322
  • 完成联动之后就可以使用msf针对浏览器的一些exploit攻击。