snort是一个入侵检测/防御系统
snort分为三个模块,嗅探器,数据包记录器,网络安全入侵检测系统。嗅探器模式仅仅从网络上读取数据包作为连续不断的流显示在终端上。数据包记录模式把数据记录在硬盘上。网络入侵检测系统是最复杂的,可以配置的。我们可以让snort分析网络数据流以匹配用户的一些规则,并根据检测结果采取一定的动作。
安装snort,进入cmd,找到d:/snort/bin如下图:
snort -W 检查网卡信息。
./snort -v 把tcp/ip的包头信息显示在屏幕上。
./snort -vd 不仅显示tcp/ip也显示应用层数据。
./snort -vde不仅显示包头信息也显示数据链路层信息
./snort -dve -l ./log 把包记录在硬盘上,需要指定一个目录./log,./log目录必须存在要不然报错。
./snort -dev -l ./log -h 192.168.1.0/24这个命令告诉把进入c网络192168.1的所有包的数据链路层,tcp/ip,应用层的所有数据记录在./log目录上。
./snort -l ./log -b把所有的包记录在一个单一的二进制文件中。
./snort -dv -r package.log 把二进制文件包打印在屏幕上。
./snort -dvr package.log icmp 从日志文件中读取icmp包。
下面:
抓包命令:
snort.exe -A console -c D:snortinsnort.conf -k none -l D:snortlog -i 2
选用 -A console可以在屏幕上显示报警内容。
选用 -c 配置文件所在路径。
选用 -k 设置校验和模式。
选用 -l 设置数据包存放目录。
选用 -i 网卡标号
一些常用的命令参数如下:
用法:
snort -[options] <filters>
选项:
-A <alert> 设置报警模式,alert = full/fast/none/unsock,详解上一篇snort简介。
-b 用二进制文件保存网络数据包,以应付高吞吐量的网络。
-B <mask> 将IP地址信息抹掉,去隐私化。
-c <cf> 使用配置文件<cf>,这会使得snort进入IDS模式,并从<cf>中读取运行的配置信息。
-d 显示包的应用层数据。
-D 以后台进程运行snort。如无指定,Alerts将写到/var/log/snort/alert。
-e 显示数据链路层的信息。
-E 保存报警日志为windows事件日志。
-f 激活PCAP行缓冲(line buffering)。
-F <bpf> 指定BPF过滤器。
-g <gname> 初始化Snort后以组ID(group ID)运行。
-G <id> 为事件生成设置一个基础事件id值。
-h <hn> 设置本地网络为hn,如192.168.1.0/24。
-i <if> 设置网络接口为<if>。可以用-W选项查询网络接口列表,然后用接口序号index指定接口。如-i 2
-I 报警时附加上接口信息。
-J <port> 当以in-line模式运行时,这个选项将只捕获<port>端口的报文。
-k <checksum mode> 为all,noip,notcp,noudp,noicmp,or none设置校验和模式。
-K <logging mode> 设置保存文件的格式:pcap,ascii, none。pcap是默认格式,同于-b选项的格式。ascii是老的模式格式。none则关闭数据包记录。
-l <ld> 设置数据包文件存放目录<ld>。默认目录是/var/log/snort.
-L <fn> 设置二进制输出文件的文件名为<fn>。
-M 当以非后台模式daemon运行时,保存信息到syslog。
-m <mask> 设置snort输出文件的权限位。
-n <count> 出来<count>个报文后终止程序。
-N 关闭保存日志包功能。
-o 改变应用规则的顺序。从Alert-->Pass-->Log顺序改为Pass-->Alert-->Log,避免了设置大量BPF命令行参数来过滤alert规则。
-O 在ASCII数据包捕获模式下混淆IP地址。
-p 关闭混杂模式。
-P<snaplen> 设置snaplen,默认值是当前网卡的MTU。
-q 安静模式,不显示标志和状态报告。
-Q 当在线(in-line)运行时,从iptables/IPQ中读取数据包。
-r <tf> 从pcap格式的文件中读取数据包。
-R <name> 为snort pidfile增加下标。
-s 使snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。
-S <n=v> 为变量n设置值为v。
-t <chroot> 初始化后将Snort的根目录改变为<chroot>。
-T 以自检测模式启动Snort。
-u <uname> 初始化后改变Snort的UID。
-U 在时间戳上用UTC时间代替本地时间。
-v 从网络上读出数据包然后显示在你的控制台上。
-V 查看版本号并退出。
-w 如果运行在802.11网中,显示管理帧。
-W *WIN32 ONLY*列出可以网络接口。其中的Index或Device Name都可以用到-i选项中。
- X 显示包括数据链路层的原始数据包。
-y 在时间戳里显示年份。
-Z <path> 设置性能监视器(perfmon)路径。
-? 帮助信息。
长参数选项
--logid <0xid> Same as -G
--perfmon-file <file> Same as -Z
--pid-path <path> Specify the path for the Snort PID file
--snaplen <snap> Same as -P
--help Same as -?
--dynamic-engine-lib <file>
指定动态监测引擎文件
--dynamic-detection-lib <file>
指定一个动态规则库文件
--dynamic-detection-lib-dir <path>
指定所有动态规则库路径
--dump-dynamic-rules <path>
为所有加载的规则库创建根规则文件
--dynamic-preprocessor-lib <file>
指定动态预处理库文件
--dynamic-preprocessor-lib-dir <path>
指定动态预处理库路径
--dump-dynamic-preproc-genmsg <path>
为所有加载的预处理库生成gen-msg.map文件到路径<path>.
--alert-before-pass
在pass之前处理alert, drop, sdrop, or reject. 默认是pass before alert, drop, etc.
--treat-drop-as-alert
Converts drop, and reject rules into alert rules during startup. sdrop rules are not loaded.将drop处理为alert。
--process-all-events
Process all triggered events in group order, per Rule Ordering configuration. Default stops after first group.
--pid-path <path>
Specify the path for Snort's PID file. 为SnortPID文件指定路径。
--create-pidfile
Create PID file, even when not in Daemon mode. 创建PID文件。
--enable-inline-test
Runs snort in "inline test mode". This option cannot be used with -Q. 在线测试模式。