PcapMonkey提供使用Suricata和Zeek分析pcap的简便方法

PcapMonkey提供使用Suricata和Zeek分析pcap的简便方法

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

pcappcap文件夹中放入一个文件。

警告:文件应具有.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屏幕截图]

Leave a Reply

您的电子邮箱地址不会被公开。