Snort入门(二)
文章目录
- 1.6 读取pcap文件
- 1.6.1 命令行参数
- 1.6.2 Example
- 1.7 基本输出
- 1.7.1 Timing statistics 时间统计
- 1.7.2 Packet I/O Totals 总的流入流出包
- 1.7.3 Protocol Statistics 协议数据包
- 1.7.4 snort memory数据
- 1.7.5 Actions, Limits, Verdicts
- 1.8 Tunneling 协议支持
- 1.8.1 多个封装
- 1.8.2 Logging
- 1.9 Miscellaneous 杂项
- 1.9.1 作为后台程序运行snort
- 1.9.2 在规则存根创建模式下运行
- 1.9.3 混淆IP地址打印输出
- 1.9.4 指定多实例标识符
- 1.9.5 Snort 模式
- 1.10 控制套接字
- 1.11 配置信号值
- 1.12 更多信息
1.6 读取pcap文件
可以让Snort捕获数据包之后去分析,对测试和调试snort很有帮助
1.6.1 命令行参数
可以一次或者多次指定以下命令,--pcap-reset
and --pcap-show
用一次和多次的效果是一样的
1.6.2 Example
读取单个的pcap
snort -r foo.pcap
snort --pcap-single=foo.pcap
从文件中读取pcaps
cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-file=foo.txt
这将读取目录/home/foo/pcaps
下的所有文件foo1.pcap foo2.pcap
,请注意,Snort不会尝试确定该目录下的文件是否真的是pcap文件。
从命令行列表里读取pcaps
snort --pcap-list="foo1.pcap foo2.pcap f003.pcap"
在目录下读取pcaps
snort --pcap-dir="/home/foo/pcaps"
使用过滤器
cat foo.txt
foo1.pcap
foo2.pcap
/home/foo/pcapssnort --pcap-filter="*.pcap" --pcap-file=foo.txt
snort --pcap-filter="*.pcap" --pcap-dir=/home/foo/pcaps
以上的pcap文件必须要以.pcap
结尾
snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps
以上,第一个** *.pcap**只对文件foo.txt
中的pcaps有效,第二个过滤器*.cap
会覆盖第一个,应用在目录/home/foo/pcaps
上,里面所有的.cap
文件都会被处理。
snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps
这个梨子中,第一个filter将会应用在foo.txt上,而在目录/home/foo/pcaps
下的文件将不会使用任何过滤器,所有在这个目录下的文件都会包含进去
$ snort --pcap-filter="*.pcap" --pcap-file=foo.txt \
> --pcap-no-filter --pcap-dir=/home/foo/pcaps \
> --pcap-filter="*.cap" --pcap-dir=/home/foo/pcaps2
上面梨子中,第一个过滤器将会用在foo.txt上,目录/home/foo/pcaps
下将不会使用任何过滤器,目录/foo/pcaps2
将找到*.cap
的所有文件。
Reseting state 复位状态
snort --pcap-dir=/home/foo/pcaps --pcap-reset
在读取每个pcap之后,Snort将被重置为配置后状态,这意味着将刷新所有缓冲区,重置统计信息,等等
打印pcap
snort --pcap-dir=/home/foo/pcaps --pcap-show
1.7 基本输出
1.7.1 Timing statistics 时间统计
介绍基本的时间统计信息。它包括总秒数和数据包以及数据包处理速率。速率是基于整秒、分等,并且只在非零时显示。梨子:
1.7.2 Packet I/O Totals 总的流入流出包
显示基本的从DAQ获取和注入的数据包,如果你在读取pcap,那总数就是pcap的和,除非你使用了-pcap-reset
- Outstanding 会显示有多少包被缓冲等待处理
- pcap DAQs不显示过滤包
- injected数据包是主动响应的结果,可以配置为inline或者passive模式
Packet I/O Totals:
Received: 3716022
Analyzed: 3716022 (100.000%)
Dropped: 0 ( 0.000%)
Filtered: 0 ( 0.000%)
Outstanding: 0 ( 0.000%)
Injected: 0
1.7.3 Protocol Statistics 协议数据包
breakdown部分总结了所有协议的通信,如果开启了frag3
和stream5
这样的预处理程序,那么这个流量会有内部的“伪包”,总流量可能会大于I/O部分分析包的数量。
- 由于基本的编码完整性缺陷,磁盘计数被丢弃,这阻止了Snort解码数据包。
- Other include包包含Snort无法解码的封装。
- S5 G 1/2是客户端/服务器会话流5由于缓存限制刷新,会话超时,会话重置。
例子:
Breakdown by protocol (includes rebuilt packets):
Eth: 3722347 (100.000%)
VLAN: 0 ( 0.000%)
IP4: 1782394 ( 47.884%)
Frag: 3839 ( 0.103%)
ICMP: 38860 ( 1.044%)
UDP: 137162 ( 3.685%)
TCP: 1619621 ( 43.511%)
IP6: 1781159 ( 47.850%)
IP6 Ext: 1787327 ( 48.016%)
IP6 Opts: 6168 ( 0.166%)
Frag6: 3839 ( 0.103%)
ICMP6: 1650 ( 0.044%)
UDP6: 140446 ( 3.773%)
TCP6: 1619633 ( 43.511%)
Teredo: 18 ( 0.000%)
ICMP-IP: 0 ( 0.000%)
EAPOL: 0 ( 0.000%)
IP4/IP4: 0 ( 0.000%)
IP4/IP6: 0 ( 0.000%)
IP6/IP4: 0 ( 0.000%)
IP6/IP6: 0 ( 0.000%)
GRE: 202 ( 0.005%)
GRE Eth: 0 ( 0.000%)
GRE VLAN: 0 ( 0.000%)
GRE IP4: 0 ( 0.000%)
GRE IP6: 0 ( 0.000%)
GRE IP6 Ext: 0 ( 0.000%)
GRE PPTP: 202 ( 0.005%)
GRE ARP: 0 ( 0.000%)
GRE IPX: 0 ( 0.000%)
GRE Loop: 0 ( 0.000%)
MPLS: 0 ( 0.000%)
ARP: 104840 ( 2.817%)
IPX: 60 ( 0.002%)
Eth Loop: 0 ( 0.000%)
Eth Disc: 0 ( 0.000%)
IP4 Disc: 0 ( 0.000%)
IP6 Disc: 0 ( 0.000%)
TCP Disc: 0 ( 0.000%)
UDP Disc: 1385 ( 0.037%)
ICMP Disc: 0 ( 0.000%)
All Discard: 1385 ( 0.037%)
Other: 57876 ( 1.555%)
Bad Chk Sum: 32135 ( 0.863%)
Bad TTL: 0 ( 0.000%)
S5 G 1: 1494 ( 0.040%)
S5 G 2: 1654 ( 0.044%)
Total: 3722347
1.7.4 snort memory数据
在使用**mallinfo(3)**的系统上,将看到额外的统计信息。有关详细信息,请查看mallinfo的手册页
Example:
Memory usage summary:
Total non-mmapped bytes (arena): 415481856
Bytes in mapped regions (hblkhd): 409612288
Total allocated space (uordblks): 92130384
Total free space (fordblks): 323351472
Topmost releasable block (keepcost): 3200
1.7.5 Actions, Limits, Verdicts
操作(Actions)和判决(Verdict)计数显示了Snort对所分析的包所做的操作。此信息仅在IDS模式下输出(当使用-c <conf>
选项运行snort时)。
- Alerts是由规则操作确定的警报和已处理的块操作的数量。这里的block包括block、drop和reject操作。
Limits是由于现实世界对处理时间和可用内存的限制而产生的。这些指示没有发生的潜在行动:
- 由于配置检测:最大队列事件设置,规则匹配没有被处理。缺省值是5。
- 由于配置事件队列:max队列设置,事件无法存储在事件队列中。默认值为8。
- 由于配置事件队列:日志设置,事件没有被警告。缺省值是3。
- 事件limit:由于事件过滤器限制而未发出警报的事件。
- 警告limit:事件没有被警告,因为它们已经在会话中被触发了。
Snort会在每个数据包上做判决:
- Allow = Snort分析了数据包,但没有对其采取行动。
- Block = Snort没有转发数据包,因为block规则;需要区别block和Drop,Drop(Snort根本看都没看),Block(看了之后根据规则不让过)
- Replace = Snort修改过的包
- Whitelist = 任何分析程序都允许通过的数据包
- Blacklist = snort阻止通过的数据包
- Ignore = Snort允许流通过此Snort实例的w/o检查的数据包。
- Int Blklst = 被阻塞的GTP、Teredo、6in4或4in6封装的数据包。如果对给定协议设置了config tunnel_verdicts,则这些数据包将得到黑名单判决。
- Int Whtlst = 允许GTP、Teredo、6in4或4in6封装的数据包。如果为给定协议设置了config tunnel_verdicts,这些数据包可以获得白名单裁决。
Example:
Action Stats:
Alerts: 0 ( 0.000%)
Logged: 0 ( 0.000%)
Passed: 0 ( 0.000%)
Limits:
Match: 0
Queue: 0
Log: 0
Event: 0
Alert: 0
Verdicts:
Allow: 3716022 (100.000%)
Block: 0 ( 0.000%)
Replace: 0 ( 0.000%)
Whitelist: 0 ( 0.000%)
Blacklist: 0 ( 0.000%)
Ignore: 0 ( 0.000%)
1.8 Tunneling 协议支持
Snort可以支持很多tunnelling协议解码,比如:GRE,GRE上的PPTP,MPLS,…这些默认都是开启的
如果想关掉,
./configure --disable-gre
./configure --disable--mpls
1.8.1 多个封装
Snort不会解码多个封装。 诸如:
Eth IPv4 GRE IPv4 GRE IPv4 TCP Payload
or Eth IPv4 IPv6 IPv4 TCP Payload
这种不会被处理,并将返回一个告警
1.8.2 Logging
当前,仅记录数据包的封装部分,
Eth IP1 GRE IP2 TCP Payload
记录成,
Eth IP2 TCP Payload
和
Eth IP1 IP2 TCP Payload
记录成,
Eth IP2 TCP Payload
(??不大懂)
Note:目前,在需要字对齐的架构(例如SPARC)上不支持利用GRE和PPP的PPTP解码。
1.9 Miscellaneous 杂项
1.9.1 作为后台程序运行snort
如果要将Snort作为后台程序运行,则可以将-D
选项添加到前面几节中描述的任何组合。 请注意,如果您希望能够通过将SIGHUP
信号发送到后台程序来重启Snort,则在启动时必须指定Snort二进制文件的完整路径,例如:
/usr/local/bin/snort -d -h 192.168.1.0/24 \
-l /var/log/snortlogs -c /usr/local/etc/snort.conf -s -D
(出于安全考虑,不支持相对路径)
Snort PID 文件
当Snort作为后台程序运行时,该后台程序在日志目录中创建一个PID文件。 在Snort 2.6中,-pid-path
命令行选项使Snort将PID文件写入指定的目录中。
此外,即使未在后台程序模式下运行,--create-pidfile
选项也可用于强制创建PID文件。
PID文件将被锁定,以便其他snort进程无法启动。 使用--nolock-pidfile
选项将不锁定 PID文件。
如果您不希望在PID文件中包含接口名称,请使用--no-interface-pidfile
选项。
1.9.2 在规则存根创建模式下运行
如果需要将共享库规则存根转储到目录中,则必须使用–dump-dynamic-rules
命令行选项。 这些规则存根文件与共享对象规则一起使用。 (路径可以是相对的或绝对的)。
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules=/tmp
也可以使用配置选项dump-dynamic-rules-path
在snort.conf
中配置此路径,如下所示:
config dump-dynamic-rules-path: /tmp/sorules
命令行配置的路径优先于使用dump-dynamic-rules-path
配置的路径。
/usr/local/bin/snort -c /usr/local/etc/snort.conf \
--dump-dynamic-rules
snort.conf:
config dump-dynamic-rules-path: /tmp/sorules
在上述情况下,转储路径设置为
/tmp/sorules
1.9.3 混淆IP地址打印输出
如果需要将数据包日志发布到公共邮件列表,则可能需要使用-O
选项。 此选项在数据包打印输出中混淆了您的IP地址。 如果您不希望邮件列表中的人知道所涉及的IP地址,这将非常方便。 您也可以将-O
选项与-h
选项组合使用,仅模糊家庭网络上主机的IP地址。 如果您不在乎谁看到攻击主机的地址,这将很有用。 例如,您可以使用以下命令从日志文件中读取数据包并将其转储到屏幕,仅混淆来自192.168.1.0/24
C类网络的地址:
./snort -d -v -r snort.log -O -h 192.168.1.0/24
1.9.4 指定多实例标识符
在Snort v2.4中,添加了-G
命令行选项,该选项指定事件日志的实例标识符。 在不同的CPU上或在同一CPU但接口不同的情况下运行多个snort实例时,可以使用此选项。 每个Snort实例将使用指定的值来生成唯一的事件ID。 用户可以指定十进制值**(-G 1)或十六进制值,后跟0x(-G 0x11)**。 长选项--logid
也支持此功能。
1.9.5 Snort 模式
Snort可以在三种不同的模式下运行,即tap(passive),内联和内联测试。 Snort策略也可以在这三种模式下配置。
模式的解释
- Inline
Snort充当IPS允许触发丢弃规则。 可以使用命令行参数-Q
将Snort配置为以内联模式运行,配置snort config选项policy_mode
如下:
snort -Q
config policy_mode:inline
- Passive
当Snort处于Passive模式时,它充当IDS。Drop未加载的规则(没有–treat-drop-as-alert
)。 配置为Passive模式:
config policy_mode:tap
- Inline-Test
Inline-Test模式模拟snort的内联模式,允许评估内联行为而不影响流量。 Drop规则将被加载,并作为Wdrop(Would Drop)警报触发。 可以使用命令行选项**(–enable-inline-test)**或使用snort config选项将Snort配置为以内联测试模式运行,如下所示:
snort --enable-inline-test
config policy_mode:inline_test
(注意:–enable-inline-test
不能和-Q
连着用)
Table:不同模式下规则选项的行为
具有规则动作的不同模式的行为
1.10 控制套接字
可以将Snort配置为提供Unix套接字,该套接字可用于向正在运行的进程发出命令。 您必须使用--enable-control-socket
选项构建snort。 控制套接字功能仅在Linux上受支持。
可以使用命令行参数--cs-dir <path>
和snort config选项cs_dir
将Snort配置为使用控制套接字,如下所示:
snort --cs-dir <path>
config cs_dir:<path>
<path>
指定用来创建套接字的目录,
使用--enable-control-socket
选项配置时,将在同一bin目录中创建并安装命令snort控件,并将其与snort一起安装。
1.11 配置信号值
在某些系统上,snort使用的信号可能会被其他功能使用。 为避免冲突,对于非Windows系统,用户可以通过./configure
选项更改默认信号值。
- SIGNAL_SNORT_RELOAD
- SIGNAL_SNORT_DUMP_STATS
- SIGNAL_SNORT_ROTATE_STATS
- SIGNAL_SNORT_READ_ATTR_TBL
语法:
./configure SIGNAL_SNORT_RELOAD=<value/name> SIGNAL_SNORT_DUMP_STATS=<value/name>\
SIGNAL_SNORT_READ_ATTR_TBL=<value/name> SIGNAL_SNORT_ROTATE_STATS=<value/name>
您可以将这些信号设置为系统中用户定义的值或已知的信号名称。 以下示例将轮换状态信号更改为31并将重载属性表更改为信号SIGUSR2:
./configure SIGNAL_SNORT_ROTATE_STATS=31 SIGNAL_SNORT_READ_ATTR_TBL=SIGUSR2
如果多次分配同一信号,则在snort初始化期间将记录一条警告。 如果无法安装信号处理程序,则会记录一条警告,并且必须予以修复,否则该功能将丢失。
Snort中使用的信号:
1.12 更多信息
第2章包含有关配置文件中可用的许多配置选项的大量信息。 Snort手册页和snort -? 或snort --help包含可帮助您使Snort在几种不同模式下运行的信息。
Snort入门(二)相关推荐
- SQL基础使用入门(二): DML语句和DCL语句
SQL语句第二个类别--DML 语句 DML是数据操作语言的缩写,主要用来对数据表中数据记录实例对象进行操作,包括插入.删除.查找以及修改四大操作,这也是开发人员使用中最为频繁的操作. 1.插入记录 ...
- 文本分类入门(二)文本分类的方法
文本分类入门(二)文本分类的方法 文本分类问题与其它分类问题没有本质上的区别,其方法可以归结为根据待分类数据的某些特征来进行匹配,当然完全的匹配是不太可能的,因此必须(根据某种评价标准)选择最优的匹配 ...
- 转 Python爬虫入门二之爬虫基础了解
静觅 » Python爬虫入门二之爬虫基础了解 2.浏览网页的过程 在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张的图片以 ...
- java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...
java入门(二) 标识符 数据类型 类型转换 变量.常量.作用域 本次笔记引用B站:狂神说,虽然早就会了,现在回头来敲下基础,加深印象 1.标识符: java所有的组成部分都需要名字.类名丶变量名丶 ...
- MySQL入门 (二) : SELECT 基础查询
1 查询资料前的基本概念 1.1 表格.纪录与栏位 表格是资料库储存资料的基本元件,它是由一些栏位组合而成的,储存在表格中的每一笔纪录就拥有这些栏位的资料. 以储存城市资料的表格「city」来说,设计 ...
- 微信小程序入门二:底部导航tabBar
小程序底部导航栏组件tabBar,可以参考下官方的API:tabBar 先看代码 //app.json {"pages":["pages/index/index" ...
- conan入门(二):conan 服务配置-密码管理及策略
conan 服务配置 密码管理及策略配置 第一次以管理员身份(admin)使用默认密码(password)WEB登录入JFrog Artifactory后台时,系统就提示要求我修改密码,因为现有密码太 ...
- CSS入门二、美化页面元素
零.文章目录 CSS入门二.美化页面元素 1.字体属性 CSS Fonts (字体)属性用于定义字体系列.大小.粗细.和文字样式(如斜体) (1)字体系列font-family font-family ...
- Pascal游戏开发入门(二):渲染图片
Pascal游戏开发入门(二):渲染图片 渲染静态图片 新增一个Texture,然后Render出来 创建Texture,并获取尺寸 procedure TGame.Init(title: strin ...
- OpenGL入门二——变换
OpenGL入门二--变换 一.预备知识 二.实现 三.控制 四.预览与源码 一.预备知识 齐次坐标:https://blog.csdn.net/zhanxi1992/article/details/ ...
最新文章
- 前两天去A公司面试,面试管问的题目一下子闷了。很郁闷。重新答题。在这里分享一下...
- CB:南土所梁玉婷组-细菌群落的高稳定性和代谢能力促进了土壤中易分解碳的快速减少...
- php排版word文档试卷,word选择题选项排版
- slope one 推荐算法python 代码_java和python实现一个加权SlopeOne推荐算法
- 数据中心供配电技术巡展南京站成功举办
- python爬取mysql_Python如何爬取51cto数据并存入MySQL
- linux的各种版本,各种版本Linux系统下载
- 更新整理本人所有博文中提供的代码与工具(C++,2013.11)
- Android日志[基础篇]二 Android Studio修改LogCat日志的颜色
- (dijkstra算法+多权值)最短路径问题
- Airbnb搜索:Embedding表示学习
- 薪资被倒挂?是怒刷 LeetCode,还是另寻他路?
- 程序员如何更好地获取用户信息?
- 全国计算机等级考试题photoshop,全国计算机等级考试之一级Photoshop试题
- 2022京东年货节红包什么时候开始
- 安然数据集分析处理_用自然语言处理分析安然会计丑闻
- Android 拦截音量键并屏蔽系统的音量调节
- WORD中的项目符号实例详解(多图)
- 东莞比较好的java培训学校,先收藏了
- C语言基础课第五次作业
热门文章
- 对号入座:你的脸型适合哪种发型
- json.dumps 中的 ensure_ascii 参数
- 好无聊啊~ 来试试用Python采集下载漫画【附原码哟~】
- 古代文人诗词化用——检索两字符串的重复子串
- Android 中实现上下文菜单(Context menu)详解
- Java解析wav文件基本格式信息
- CF464D World of Darkraft - 2
- 注册icoke帐户换积分免费获得QQ3D秀(转)
- 基于52单片机的超声波测距模块(hc-sr04超声波测距模块+1602液晶显示器)
- 2011清华北大考博经验(经济和计量)【zz】