文章总结: Snort是一款开源的网络入侵检测与防御系统,支持实时流量分析、攻击检测和数据包日志记录。它提供嗅探器、数据包日志和NIDS/NIPS三种模式,并配有多种参数如-v、-d、-l、-KASCII等,用于详细分析网络流量。用户可通过命令如sudosnort-dev-l.进行日志记录,并使用-r参数读取日志文件,便于后续分析。这有助于安全运营人员进行流量监控和威胁检测。 综合评分: 95 文章分类: 安全工具,网络安全
SOC的二三事——流量分析之Snort(1)
原创
01iver Sec
01iver的安全小圈
2025年10月28日 17:31 北京
1.与Snort初相识
SNORT 是一款基于规则的开放源代码网络入侵检测与防御系统(NIDS/NIPS)。它由 Martin Roesch 开发并维护,同时还有开源贡献者和 Cisco Talos 团队参与维护。官方描述为:”Snort 是世界上首屈一指的开放源代码入侵防御系统(IPS)。Snort IPS 使用一系列规则来定义恶意网络活动,并使用这些规则来查找匹配这些规则的报文,并向用户生成警报。”
1.1 Snort具有以下功能:
l实时流量分析
l攻击和探测检测
l数据包日志记录
l协议分析
l实时警报
l模块和插件
l预处理器
l跨平台支持(Linux和Windows)
1.2 Snort 模式
l嗅探器模式:在控制台应用程序中读取并提示 IP 数据包。
l数据包日志模式:记录所有访问网络的 IP 数据包(入站和出站)。
l网络入侵检测系统(NIDS)和网络入侵防御系统(NIPS)模式:根据用户定义的规则记录/丢弃被判定为恶意的数据包。
1.3 Snort基础参数
| | | | — | — | | 参数 | 描述 | | -V/–version | 查看版本 | | -c | 识别配置文件 | | -T | Snort 的自检参数允许使用此参数测试自己的设置 | | -q | 安静模式防止 Snort 显示默认横幅和有关您设置的初始信息 |
2.Snort嗅探器模式
和 tcpdump 一样,Snort 具有多种标志,能够查看它正在处理的包的各种数据。
嗅探模式参数:
| | | | — | — | | 参数 | 描述 | | -v | 详细模式。在控制台中显示 TCP/IP 输出。 | | -d | 显示数据包数据(payload)。 | | -e | 显示链路层(TCP/IP/UDP/ICMP)头部。 | | -X | 以十六进制显示完整数据包详情。 | | -i | 该参数用于指定要监听/嗅探的特定网络接口。当有多个接口时,可以选择一个特定的接口进行嗅探。 |
3.Snort数据包日志模式
我们可以使用 Snort 作为嗅探器,并通过日志模式记录捕获的数据包。你只需要使用数据包日志模式参数,Snort 会自动完成其余工作。
日志模式参数:
| | | | — | — | | 参数 | 描述 | | -l | 日志模式,目标日志和警报输出目录。默认输出文件夹是 /var/log/snort。默认操作是在 /var/log/snort 以 tcpdump 格式转储。 | | -K ASCII | 以 ASCII 格式记录数据包。 | | -r | 读取选项,在 Snort 中读取转储的日志。 | | -n | 指定将处理/读取的数据包数量。Snort 在读取指定数量的数据包后将停止。 |
注意:Snort 需要超级用户(root)权限来嗅探流量,所以一旦你使用 “sudo” 命令运行 snort,生成的日志文件将归属于 “root” 账户。因此,你需要 “root” 权限来调查这些日志文件。
调查生成的日志文件有两种不同的方法:
l提升权限 – 你可以提升权限来检查文件。你可以使用 “sudo” 命令以超级用户身份执行你的命令,使用以下命令 sudo command 。你也可以提升会话权限并切换到超级用户账户来检查生成的日志文件,使用以下命令: sudo su。
l更改文件/目录的所有权 – 你也可以将文件/文件夹的所有权更改为以你的用户身份读取: sudo chown username file 或 sudo chown username -R directory 。”-R” 参数有助于递归处理文件和目录。
v使用参数 “-l” 进行日志记录
数据包记录模式启动 Snort 实例:
sudo snort -dev -l .
执行后生成文件格式如下
v使用参数 “-K ASCII” 进行日志记录
在数据包记录器模式下启动 Snort 实例:
sudo snort -dev -K ASCII
执行后生成文件格式如下
二进制日志文件和 ASCII 日志文件的差异如下所示。(左侧:二进制格式。右侧:ASCII 格式)。
v使用参数”-r”读取生成的日志
以数据包读取模式启动 Snort 实例:
sudo snort -r filename
执行后能看到日志信息
使用 Wireshark 打开日志文件后查看效果如下
“-r” 参数也允许用户过滤二进制日志文件。您可以使用 “-r” 参数和伯克利包过滤器(BPF)来过滤处理过的日志,以查看特定的数据包。
sudo snort -r logname.log -X
sudo snort -r logname.log icmp
sudo snort -r logname.log tcp
sudo snort -r logname.log ‘udp and port 53’
查看原文:《SOC的二三事——流量分析之Snort(1)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论