目录导航
Pcapmonkey它将提供使用最新版本的Suricata和Zeek分析pcap的简便方法。它还可以使用新的Elasticsearch Common Schema或原始字段名称将Suricata和Zeek日志保存在Elasticsearch中。
pcapmonkey对大多数图像使用默认的docker容器,其目的是易于使用。
项目地址
GitHub: github.com/certego/PcapMonkey
安装和卸载
安装Docker-CE和docker-compose:
卸载
要卸载并删除所有文件,请使用以下命令删除所有容器
sudo docker-compose down -v
比您可以安全地删除此存储库
基本用法
启动Elasticsearch堆栈
要启动Elasticsearch,Logstash和Kibana,请运行以下命令
sudo docker-compose up -d elasticsearch logstash kibana
使用以下命令检查一切是否正常:
sudo docker-compose ps
输出应为以下内容:
Name Command State Ports
---------------------------------------------------------------------------------------------------------
pcapopt_elasticsearch /usr/local/bin/docker-entr ... Up (health: starting) 9200/tcp, 9300/tcp
pcapopt_logstash /usr/local/bin/docker-entr ... Up
pcapopt_kibana /usr/local/bin/dumb-init - ... Up (health: starting) 127.0.0.1:5601->5601/tcp
Kibana和elasticsearch可能要花几分钟才能开始。您可以通过docker-compose ps
等待并等待starting
消失来监视进度。
当一切正常运行后,您可以转到http:// localhost:5601打开Kibana Web界面。首次访问时,您应该看到以下屏幕

单击“自行浏览”以关闭窗口。
现在我们可以导入panoptikon索引模式,它们将用于访问我们的pcap数据。为此,请单击管理图标(齿轮):

点击“保存的对象”:

比打开导入对话框并kibana.ndjson
从该存储库导入文件。现在回到软件,发现您应该看到两个索引模式称为pcapmonkey*
和pcapmonkey_original_ts*
。
管理Suricata签名
使用以下命令下载所有Open ET规则:
sudo docker-compose run --entrypoint='suricata-update -f' suricata
此命令将下载规则并在中创建规则文件./config/suricata/rules/suricata.rules
。
如果要测试自定义规则,请将其添加到./config/suricata/rules/custom.rules
文件中。
分析PCAP
pcap
在pcap
文件夹中放入一个文件。
警告:文件应具有.pcap
扩展名,如果使用.pcapng
扩展名,则重命名文件
启动zeek和suricata容器:
sudo docker-compose up zeek suricata
容器将在控制台上打印输出,并在完成处理pcap时退出。您可以在Kibana上查看结果:http://localhost:5601
在Kibana有两种指数的模式:pcapmonkey*
和pcapmonkey_original_ts*
你可以选择那些从下拉菜单:

您可以从这些索引模式中看到zeek和suricata日志。pcapmonkey*
使用默认时间戳字段(@timestamp
)显示日志。这意味着日志数据在读取时就是索引。原始pcap时间保存在该timestamp
字段中。
同时pcapotikon_original_ts*
使用原始的pcap时间作为默认时间戳,因此您可以看到真实的时间轴。默认情况下,Kibana会显示最后15分钟的数据,因此,如果您要分析旧的pcap,请记住使用页面右上方的菜单来扩大搜索时间窗口。
完成停止所有操作后,请执行以下操作:
sudo docker-compose stop
Zeek提取文件
文件提取插件会自动加载到Zeek中,提取的文件可以在中找到./zeek/extracted_files
。插件配置在此文件中./config/zeek/site/file-extraction/config.zeek
。您可以在以下文件中添加其他文件类型:
示例:要添加Microsoft Office文件提取,请将以下行添加到./config/zeek/site/file-extraction/config.zeek
:
@load ./plugins/extract-ms-office.zeek
您可以在中找到所有受支持的文件类型.config/zeek/site/file-extraction/plugins
。
清理数据
要清理磁盘上的日志(logs文件夹中的所有内容),请运行以下脚本:
(sudo) ./clean_logs.sh
sudo
如果您以超级用户身份运行docker,则可能需要,因为日志文件是由zeek和suricata容器编写的。
如果您分析了相同的pcap数十次(以测试suricata规则),则可能会从elasticsearch中删除旧数据。为此,您可以打开Kibana Web界面并遵循以下路径:
Management -> Index Management -> select `panoptikon_original_ts` -> click "manage index" -> delete index
高级用法
轻量级使用:放弃Elasticsearch(黑客方式)
如果您更喜欢使用命令行,则可以在./logs
目录中找到suricata和zeek日志。
如果您不想浪费时间开始filebeat / elasticsearch / kibana,请转到./zeek/site/local.zeek
并注释掉第一行(@load policy/tuning/json-logs.zeek
)。然后开始分析新的pcap并享受纯文本,制表符分隔的zeek日志。awk
一路走,
即使您想直接使用日志文件,我也建议保留其.json
格式并使用jq
实用程序对其进行查询。您可以在这里阅读相当不错的jq
入门书
导入Windows事件日志
可以使用以下命令.evtx
在index上的elasticsearch中导入文件windows_events
:首先确保已启动并运行elasticsearch:
sudo docker-compose elasticsearch kibana
然后将每个.evtx
要导入的文件放入文件夹中,import_event_logs
然后运行以下命令:
sudo docker-compose -f docker-compose.yaml -f docker-compose-evtxtoelk.yaml up evtxtoelk
或者,您可以使用以下脚本执行相同的操作:
sudo ./import_event_logs.sh
现在,您可以在windows_events_original_ts
和中找到事件日志windows_events
。像suricata / zeek日志一样,它们通过事件的原始时间戳和摄取时间戳进行索引
使用弹性通用架构
如果您想使用ECS(弹性通用模式)来处理您的Zeek和Suricata日志,则还应该启动 filebeat
使用filebeat容器启动Elasticsearch:
sudo docker-compose up -d elasticsearch filebeat kibana
您可以filebeat-*
在Elasticsearch的索引中看到您的日志:[Todo屏幕截图]