BeEF安装
介绍
以下安装说明适用于基于Linux的操作系统。
从理论上讲,BeEF应该可以在任何可以运行Ruby 2.5+和NodeJS的操作系统上运行。但是,官方只支持MacOS和Linux。
此文档暂无MacOS安装说明。
前提
Ruby
前提条件:Ubuntu
BeEF需要Ruby 2.5(或更新版本)。有关安装Ruby和Ruby Developer工具的最新稳定版本的说明,请参阅操作系统文档。
如果您的操作系统包管理器不支持Ruby版本2.5,您可以为最新版本的Ruby添加brightbox ppa存储库:
$ sudo apt-add-repository -y ppa:brightbox/ruby-ng
或者,考虑使用Ruby环境管理器,比如rbenv或rvm。
这些命令行工具允许对不同的Ruby环境进行简单管理。
Bundler
前提条件:Ubuntu
Bundler对于在ruby项目中跟踪和安装正确的gems是非常重要。安装时,您可能会得到错误:
line 208: bundle: command not found
这只是意味着您没有安装捆绑器,只需运行以下命令即可解决此问题:
$ gem install bundler
资源
前提条件: Ubuntu, Docker
通过下载最新的存档来获取应用程序源代码:
$ wget https://github.com/beefproject/beef/archive/master.zip
或者从Github克隆Git存储库:
$ git clone https://github.com/beefproject/beef
Docker
前提条件:Docker
请按照Docker安装指南中的设置说明进行操作。
由于权限受限,强烈建议您在Ubuntu上安装BeEF时使用Ruby Environment Manager。请注意,如果使用Ruby Environment Manager,则不需要按照上述说明安装Ruby。
为了安装BeEF和RVM,需要先安装Git和Curl,因为Ubuntu并没有提供它们。
$ sudo apt-get install git
$ sudo apt-get install curl
要安装RVM,请首先转到https://rvm.io/rvm/install 并安装GPG密钥。然后安装RVM,没有依赖项:
$ \curl -sSL https://get.rvm.io | bash -s -- --autolibs=install-packages
现在,在应用程序用户$ HOME目录中,以root用户身份安装这些依赖项:
$ sudo .rvm/bin/rvm requirements
现在已经安装了依赖项,我们需要安装RVM和Ruby的稳定版本。作为应用程序用户输入:
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby
BeEF需要Ruby2.5.x。在导航到Beef目录之前,运行:
$ rvm install "ruby-2.5.3"
然后只需重新加载shell。
你可以通过运行以下程序来验证RVM和Ruby的安装:
$ rvm -v
$ ruby -v
在执行上述步骤之后,只需克隆存储库并按照下面的步骤安装BeEF。
安装
安装好合适的Ruby版本后,在BeEF目录中运行安装脚本:
$ ./install
该脚本将安装必需的操作系统软件包和所有必备的Ruby gem。
成功安装后,请确保阅读 文档上的“配置”介绍,以获取有关配置和保护BeEF的重要详细信息。
启动 BeEF
要启动BeEF,首先更改用户名和密码config.yaml,然后运行:
$ ./beef
测试
如果要安装测试前提条件,请运行:
$ bundle install --with test
这将安装必备的gem进行测试。
如果要运行测试服,请运行:
$ bundle exec rake
更新
由于Web浏览器开发的快节奏性质和webappsec格局,最好定期将BeEF更新到最新版本。
如果您正在使用GitHub存储库中的BeEF,则更新非常简单:
$ git pull
Docker安装
前提条件:Source Code, Docker
通过Docker运行BeEF可以减轻任何主机设置的麻烦,使安装过程像执行一些命令一样简单。
设置凭证
在构建Docker映像之前,必须设置凭证。默认情况下,BeEF的凭据设置为beef:beef
,但不允许使用默认凭据进行身份验证。因此,如果在不更改凭据的情况下构建映像,则将无法对容器的BeEF实例进行身份验证。
使用您喜欢的文本编辑器打开config.yaml
在BeEF根文件夹中找到的文件:
...SNIP...
credentials:
user: '<YOUR_USERNAME>'
passwd: '<YOUR_PASSWORD>'
...SNIP...
建立您的图像和容器
要建立您的形象:
$ docker build -t beef .
要运行容器:
# If you'd prefer the container to run backgrounded/detached just add the -d tag to the command below
$ docker run -p 3000:3000 -p 6789:6789 -p 61985:61985 -p 61986:61986 --name beef beef
要在不执行正常启动的情况下运行容器,而是在包装盒上生成shell,请执行以下操作:
$ docker run -p 3000:3000 -p 6789:6789 -p 61985:61985 -p 61986:61986 --name beef --entrypoint = / bin / bash -it Beef
在容器中的shell:
$ docker exec -it beef /bin/bash # You can replace /bin/bash to run an arbitrary command
要停止您的容器:
$ docker stop beef
要在停止后重新启动它:
$ docker start beef
故障排除
如果遇到此错误:
You must use Bundler 2 or greater with this lockfile.
The command '/bin/sh -c apk add --no-cache git curl libcurl curl-dev ruby-dev libffi-dev make g++ gcc musl-dev zlib-dev sqlite-dev && bundle install --system --clean --no-cache \
--gemfile=/beef/Gemfile $BUNDLER_ARGS && rm -rf /usr/local/bundle/cache' returned a non-zero code: 20
从您的BeEF目录中删除Gemfile.lock,然后重试。
连接到BEEF
运行Docker容器的IP地址可能因计算机而异。最简单的检查方法是运行:
$ docker exec -it beef ifconfig eth0
在这里,您需要在旁边查找IP地址inet
。例如,在下面的示例中,我需要导航到的地址是172.17.0.2
:
eth0 inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25 errors:0 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4466 (4.3 KiB) TX bytes:1770 (1.7 KiB)
确定容器的IP地址后,导航至 http://IP_ADDRESS:3000/ui/authentication
更新图像
每次您下载最新的源代码(git pull origin master
)或进行更新时/beef/update-beef
,都需要如上所述重建图像。
推荐文章: