IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 流量数据采集流量探针zeek-脚本入门 -> 正文阅读

[网络协议]流量数据采集流量探针zeek-脚本入门

zeek解析pcap流量文件

解析pcap文件

zeek -C -r /home/1.pcap

json格式解析pcap文件到当前目录下

zeek -C -r /home/1.pcap LogAscii::use_json=T

注意:需要zeek运行状态下

zeek脚本

概述

概述扩展名为.zeek

默认目录:share/zeek

放在share/zeek/site的不会在升级时被覆盖或者修改

zeek生成的事件可以参考:base/bif/event.bif.zeek

*.bif是zeek的内建函数文件,也是生成在线文档的基础。

zeek脚本语法参考:https://docs.zeek.org/en/current/script-reference/index.html

框架参考:https://docs.zeek.org/en/current/frameworks/index.html

默认脚本保存位置

/opt/zeek/share/zeek/base/protocols目录下,保存各个协议的具体解析脚本,

脚本示例

@load

定义脚本使用的库

例如:/opt/zeek/share/zeek/test-all-policy.zeek 中

使用了如下的这些库

module

定义命名空间

module TeamCymruMalwareHashRegistry;

例如:example.zeek文件中

export

解释自定义变量,作为脚本命令空间的一部分

重新定义了一个可枚举的常量,描述了将使用通知框架生成的通知类型。
定义一些常量用作阈值等

function

函数

event

针对特定事件执行的内容

file_hash事件处理程序,传递file,哈希算法的种类,哈希值
zeek执行异步操作不影响性能时使用when语句块

事件队列和事件处理器:zeek的脚本语言是事件驱动的,zeek的核心功能是把事件放入有序的事件队列中,允许事件处理程序在先到先服务的基础上处理事件。

当zeek检测到发起的dns请求时,触发dns_request事件,并传递数据

数据类型和数据结构

范围(scope)

声明变量的两种形式:

scope name: type

scope name = expression

expression的计算结果和type一样,例如:

local a:int

local a=10

全局变量

当脚本使用module关键字提供了命名空间时,必须更加注意全局声明以确保预期的效果。

在带有命名空间的脚本中声明全局变量时,两种可能的结果:

仅在命名空间的上下文可用

如果在export块中声明了全局变量,可以通过<module name>::<variable name>来对其他脚本生效

常量

const关键字,使用&redef的话,只能在解析时设置或者更改常量,以后(运行时)不可更改。redef常量不能在事件处理程序中更改。

举例:

base/protocols/http/main.zeek文件中:

module HTTP;

export {

## This setting changes if passwords used in Basic-Auth are captured or

## not.

const default_capture_password = F &redef;

}

如果想打开这个default_capture_password设置,需要在启动zeek之前在site/local.zeek添加如下行:

@load base/protocols/http

redef HTTP::default_capture_password = T;

局部变量

函数function内定义的local的局部变量,在函数结束后会被销毁。同理事件event中的变量在事件结束后会被销毁

数据结构原子类型

Data Type Description zh-cn

int 64 bit signed integer 64位有符号整数

count 64 bit unsigned integer 64位无符号整数

double double precision floating precision 双精度浮点

bool boolean (T/F) 布尔类型

addr IP address, IPv4 and IPv6 IP地址

port transport layer port 传输层端口

subnet CIDR subnet mask CIDR格式子网掩码

time absolute epoch time 绝对时间

interval a time interval 时间间隔

pattern regular expression 正则表达式

集合

储存相同数据类型的唯一元素。

可用的方法:add,delete,for ( i in ssl_ports )

for循环无法保证集合遍历的顺序

类似python字典,键-值映射,值不唯一,键唯一

local ssl_services: table[string] of port;

ssl_services = table(["SSH"] = 22/tcp, ["HTTPS"] = 443/tcp);

向量

类似python列表,有序

local v1: vector of count;

local v2 = vector(1, 2, 3, 4);

原子类型

addr:主机名定义的话zeek会发送dns查询,得到一个set[addr]

port:无符号整数/协议名(tcp,udp,icmp,unknown),协议大小顺序unknown < tcp < udp < icmp,例如65535/tcp<0/udp

subnet:cidr表示法

time:current_time系统时间, network_time来自实时流或者pcap最后处理数据包的时间戳

interval:usec, msec, sec, min, hr, or day

pattern:正则匹配

复合类型

记录数据类型:结合type关键词和record可以生成复合类型

type Service: record {

name: string;

ports: set[port];

rfc: count;

};

简单的使用更具描述性的名称定义数据结构:type string_array: table[count] of string;

自定义日志

https://docs.zeek.org/en/current/examples/scripting/index.html#custom-logging

抛出通知

https://docs.zeek.org/en/current/examples/scripting/index.html#raising-notices

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-12 17:02:28  更:2021-08-12 17:04:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 5:07:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计