该博客主要的目的是将自己最近安装的bro/zeek进行整理,如有不对的地方希望大佬指正。其整理如下:
首先,我的安装环境是虚拟机ubuntu16.4。
bro/zeek的安装方式有两种,一种是利用容器docker进行安装,一种是单独的安装方式。我将首先讲述第一种安装方式。
一、zeek-docker安装方式
1.安装docker,按照网站上的方式进行安装即可。
https://www.cnblogs.com/blog-rui/p/11244023.html
2.获取开源代码
git clone https://github.com/zeek/zeek-docker.git
这里可能会出现链接不上某个网址,因此需要更新源并且多试几次才能解决问题
3.进入git仓库
cd zeek-docker
4.生成docker镜像
make build-stamp_3.0.0
5.使用zeek进行解析
5.1 创建目录,便于存储后面需要解析的pcap文件,
mkdir /home/pcap
5.2 启动docker并且对于宿主机上的目录建立docker容器
sudo docker run -itd --rm --name lord_elmelloi -v /home/sj/pcap:/pcap broplatform/bro:3.0.0 /bin/bash
我已经完成了操作,因此会有这样信息显示。
-i 表示以交互式运行容器,
-t 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能等进去,即分配一个伪终端
– name 为创建容器命名
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录,即宿主机目录:容器中目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机中做修改,然后共享到容器上
-d 在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进入容器)
-p 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
-e 为容器设置环境变量
– network=host表示将主机的网络环境映射到容器中,容器的网络与主机相同
5.3进入docker并使用zeek解析pcap文件
sudo docker exec -it lord_elmelloi /bin/bash -c 'cd /pcap && zeek -r 2018-08-02-Hancitor-malspam-infection-traffic.pcap'
5.4解析成功,可以进入/home/sj/pcap进行查看
接卸的结果如图所示。
二、zeek单独安装方式
1.安装依赖包
sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev
2.下载所需安装包
不建议使用git clone --recursive https://github.com/zeek/zeek命令安装,因为使用命令非常缓慢。直接从官方网站上下载安装包,官方网址如下:
https://zeek.org/get-zeek/
3.使用命令安装
将自己下载的安装包进行解压,然后进入到解压后的文件夹下,使用命令依次操作:
./configure
make
sudo make install
在安装的过程中可能遇到依赖不匹配,因此要使用各种办法解决依赖问题,命令窗口中都有显示,针对具体问题进行具体解决。
4.使用zeekctl命令
(zeekctl命令主要时用来管理,但具体运用到什么地方暂时还不清楚,本文主要是使用zeek命令来离线分析pcap数据,这里只是在使用zeek的过程中使用到所以进行说明)
4.1进入/usr/local/zeek/bin使用
sudo python zeekctl
(使用./zeekctl会有相关的权限问题,进入zeekctl中也可以发现zeekctl是用python写的)
4.2初次需要使用install,然后使用start运行,zeek会生成相关的日志文件(目录在/usr/local/zeek/logs),用stop进行停止。
4.2.1其中可能遇到邮件无法发送的错误,需要将(/usr/local/zeek/etc/node.cfg)网络接口修改为自己电脑上的接口。
4.2.2出现错误时使用diag命令可以查看到更为准确的信息。
5.使用zeek命令
同样是进入到/usr/local/zeek/bin/,使用
sudo ./zeek local -r your.pcap或者sudo ./zeek local -r your.pcap LogAscii::use_json=T(生成json格式)
解析您的pcap数据,最后输出的文件在usr/local/zeek/bin/目录(自己查看了zeek命令所选项发现并没有相应的选项,所以并没有深究)。
6.注意事项
6.1进入usr/local/zeek/bin/并不能使用sudo python zeek运行zeek,使用zeek也一样,必须使用./zeek并加入所选项运行。为了避免权限的问题,我加入了sudo命令。
6.2zeek的配置文件在/usr/local/zeek/share/zeek/site/local.zeek中,可以根据自己的需要使用@load进行加载。
6.3加载的配置文件需要放入/usr/local/zeek/share/zeek/policy中才能起作用,否则执行zeekctl时会出现找不到相应的文件。