搜档网
当前位置:搜档网 › 第三章 使用Snort规则

第三章 使用Snort规则

第三章 使用Snort规则
第三章 使用Snort规则

第三章使用Snort规则

如同病毒,大多数入侵行为都具有某种特征,Snort的规则就是用这些特征的有关信息构建的。在第1章中我们提到,你可以用蜜罐来取得入侵者所用的工具和技术的信息,以及他们都做了什么。此外,还有入侵者会利用的已知的系统弱点数据库,如果入侵者试图利用这些弱点来实施攻击,也可以作为一些特征。这些特征可能出现在包的头部,也可能在数据载荷中。Snort的检测系统是基于规则的,而规则是基于入侵特征的。Snort规则可以用来检测数据包的不同部分。Snort 1.x可以分析第3层和第4层的信息,但是不能分析应用层协议。Snort v 2.x增加了对应用层头部分析的支持。所有的数据包根据类型的不同按顺序与规则比对。

规则可以用来产生告警信息、记录日志,或使包通过(pass):对Snort 来说,也就是悄悄丢弃(drop),通过在这里的意义与防火墙或路由器上的意义是不同的,在防火墙和路由其中,通过和丢弃是两个相反的概念。Snort规则用简明易懂的语法书写,大多数规则写在一个单行中。当然你也可以行末用反斜线将一条规则划分为多个行。规则文件通常放在配置文件snort.conf文件中,你也可以用其他规则文件,然后用主配置文件引用它们。

本章将提供给你不同类型规则的信息以及规则的基本结构。在本章的最后,你可以找到一些用来检测入侵活动的规则的例子。读完本章以及后面两章后,你所获得的信息就可以使你建立一个基本的Snort入侵检测系统了。

3.1 TCP/IP 网络分层

在你开始书写规则之前,我们先来简要讨论一下TCP/IP的网络层次结构nort规则是常重要的,因为Snort规则依赖于这些层中的协议。

TCP/IP协议族分为5层,这些层之间相互作用来完成通讯处理工作,它们是:

1、物理层

2、数据链路层,某些文章中也把它们叫做网络接口层。物理层和数据链路

层由物理介质、网络接口适配器和网络适配器驱动所构成。以太网地址在数据链路层定义。

3、网络层,也就是IP层。这一层负责点到点的数据通信并提供数据完整

性。在这一层,所有的主机以IP地址来区分彼此。除了IP协议之外,这一层的主要协议还有ICMP。关于IP协议的更多信息参见RFC791,关于ICMP协议的更多信息查看RFC792。

4、传输层,也就是TCP/UDP层。TCP(传输控制协议)用来建立从源到目

的的可靠的、面向连接的数据传输。而UDP(用户数据报协议)提供无连接的数据传输,UDP在进行数据传输的时候,并不提供数据送达的保证,常用在可以容忍数据丢失的情况下。参见RFC 768获取UDP的更多信息。参见RFC 793来获得更多的关于TCP的信息。

5、应用层,包含提供用户与网络接口的应用程序,例如Telnet、Web浏

览器、ftp客户端等。这些应用程序常有自己用来进行数据通信的应用层协议。

Snort规则可以在网络层和传输层进行操作,另外也有一些方法来探测数据链路层和应用层的异常。Snort规则的第二个部分显示了对应的协议,你很快将了解如何书写这些规则。

3.2 第一个不可用的规则

这里有个非常不好用的规则,事实上,也许是最差的规则,但是它可以很好的检测Snort是否正常工作,并可以产生告警:

alert ip any any -> any any (msg: "IP Packet detected";)你可以在你第一次安装Snort的时候在snort.conf的末尾加上这条规

则,这个规则可以使每当捕获一个IP包都产生告警信息,如果你就这样离开的话,你的硬盘空间很快就会被填满。这个规则之所以不可用,是因为它不信任任何信息。难道你用一个永久规则的目的就是为了检测Snort是否在工作吗?它应该是用来在你安装完Snort后做测试,以确定其工作正常,然后就去掉这条规则。下面的部分你可以了解Snort规则的不同部分,但为完整性起见,下面将简要解释一下刚才的那条规则所用的语句:

●“alert”表示如果包与条件匹配,就产生一个告警信息。条件由下面

的语句定义。

●“ip”表示规则将被用在所有的IP包上。

●第一个“any”是对IP包源地址部分的条件定义,表示来自任何一个

IP地址的IP包都符合条件,任何IP包都符合本条件。

●第二个“any”用来定义端口号,因为端口号与IP层无关,任何IP包

都符合条件。

●“->”符号表示数据包传送的方向。

●第3个“any”用来定义目的地址的条件,any表示这条规则并不关心

所有包的目的地址。

●第4个“any”用来定义目的端口条件,再说明一次,因为IP层与端口

无关。

●最后一部分是规则的选项,,并包含一条将被纪录的告警消息。

下一条规则不想前面那个那么糟糕,它将对所有捕获的ICMP包产生告警。重申一次,这条规则也是来检测Snort是否正常工作的。

如果你想测试Snort,就发送一个ping(在UNIX机器中,基本上是发送ECHO请求)包。再次重复,它应该是用来在你安装完Snort后做测试,以确定其工作正常,然后就去掉这条规则。以下面的命令为例,你可以向你的网关或

其他什么主机发送ICMP包。

ping 192.168.2.1

注意,192.168.2.1是与Snort机器在同一网络的网关、路由器或其他机器。你可以在你安装Snort的机器上运行这个命令,这个命令在UNIX和Windows机器上都可以运行。

3.3 CIDR

RFC 1519定义了无类域间路由或称CIDR。目前有将不同的地址类(比如A和B)做更好的利用的趋势。在CIDR的支持下,你可以用任意长度的掩码,这在基于地址类的网络中是不行的,因为基于类的网络中,掩码的长度是固定的。使用CIDR的时候,网络地址的后面附加上掩码所用的位数,例如192.168.1.0/24表示一个网络的网络地址是192.168.1.0,掩码是24位。24位掩码相当于255.255.255.0。表示一个主机可以用到所有的掩码位,也就是32位。下面的规则表示:只有发送到IP地址为192.168.2.113的主机的ICMP包才会触发告警:

alert icmp any any -> 192.168.1.113/32 any \

(msg: "Ping with TTL=100"; ttl:100;)

3.4 规则的结构

你已经看到了一些规则,尽管它们不那么好,但在某种意义上还是有用的。现在让我们来看一下Snort规则的结构。所有的Snort规则都可以分为两个逻辑组成部分:规则头部和规则选项。参见图3-1

图3-1 Snort 规则的基本结构。

规则的头部包含规则所做的动作的信息,也包含与包所比对的一些条件。选项部分通常包含一个告警消息以及包的那个部分被用来产生这个消息。一条规则

可以用来探测一个或多个类型的入侵活动,一个好的规则可以来探测多种入侵特征。

Snort规则头部的主要结构如图3-2所示:

图3-2 Snort规则头部结构

动作部分表示,当规则与包比对并符合条件是,会采取什么类型的动作。通常的动作时产生告警或记录日志或向其他规则发出请求。你可以来本章的后面了解关于动作的更多信息。

协议部分用来在一个特定协议的包上应用规则。这是规则所涉及的第一个条件。一些可以用到的协议如:IP,ICMP,UDP等等。

地址部分定义源或目的地址。地址可以是一个主机,一些主机的地址或者网络地址。你也可以用这些部分将某些地址从网络中排除。后面将详细讨论。注意,在规则中有两个地址段,依赖于方向段决定地址是源或者是目的,例如,方向段的值是“->”那么左边的地址就是源地址,右边的地址是目的地址。

如果协议是TCP或UDP,端口部分用来确定规则所对应的包的源及目的端口。如果是网络层协议,如IP或ICMP,端口号就没有意义了。

方向部分用来确定那一边的地址和端口是源,哪一边是目的。

例如,我们来看一下第2章曾经用到过的这样一个规则,当它探测到TTL 为100的ICMP ping包的时候,就会产生告警:

alert icmp any any -> any any (msg: "Ping with TTL=100"; \

ttl: 100;)

括号之前的部分叫做规则头部,括号中的部分叫做规则选项。头部依次包括下面部分:

●规则的动作:在这个规则中,动作是alert(告警),就是如果符合下面

的条件,就会产生一个告警。记住如果产生告警,默认的情况下是会记

录日志的。

●协议:在这个规则中,协议是ICMP,也就是说这条规则仅仅对ICMP

包有效,如果一个包的协议不是ICMP, Snort探测引擎就不理会这个包以节省CPU时间。协议部分在你对某种协议的包应用Snort规则的时候是非常重要的。

●源地址和源端口。在这个例子中,它们都被设置成了any,也就是这条

规则将被应用在来自任何地方的ICMP包上,当然,端口号与ICMP是没有什么关系的,仅仅和TCP和UDP有关系。

●方向。在这个例子中,方向用->表示从左向右的方向,表示在这个符号

的左面部分是源,右面是目的,也表示规则应用在从源到目的的包上。

如果是<-,那么就相反。注意,也可以用<>来表示规则将应用在所有方向上。

●目的地址和端口。这个例子中,它们也都是“any”,表示规则并不关心

它们的目的地址。在这个规则中,由于any的作用,方向段并没有实际的作用,因为它将被应用在所有方向的ICMP包上。

在括号中的选项部分表示:如果包符合TTL=100的条件就产生一条包含文字:“Ping with TTL=100”的告警。TTL是IP包头部字段。参见RFC 791或者附录C。

3.5规则头部

如前面提到的,规则的头部包括括号前面的一些部分,现在让我们从动作开始来详细的看一下规则头部的每个部分。

3.5.1 规则动作

动作是Snort规则中的第一个部分,它表示规则的条件符合的时候,将会有什么样的动作产生。Snort有5个预定义的动作,你也可以定义自己的动作,需要注意的是,Snort 1.x和2.x对规则的应用是不同的,在1.x

中,只要包符合第一个条件,它就会做出动作,然后就不再管它,尽管它可能符合多个条件;在2.x中,只有包和所有相应规则比对后,才根据最严重的情况发出告警。

3.5.1.1 pass

这个动作告诉Snort不理会这个包,这个动作在你不想检查特定的包的时候可以加快Snort的操作速度。例如,如果你在网络中有一台包含一些弱点的主机,用来检测网络安全漏洞,可能会希望不理会对这台机器的攻击,pass规则这时就可以用到了。

3.5.1.2 Log

Log动作用来记录包,记录包有不同的方式,例如,可以记录到文件或者数据库,这将在以后讨论。根据命令行参数和配置文件,包可以被记录为不同的详细程度。你可以用“snort - ?”命令来查看你所用版本Snort的命令行可用参数。

3.5.1.3 Alert

Alert动作用来在一个包符合规则条件时发送告警消息。告警的发送有多种方式,例如可以发送到文件或者控制台。Log动作与Alert动作的不同在于:Alert动作是发送告警然后记录包,Log动作仅仅记录包。

3.5.1.4 Activate

Activate动作用来产生告警然后激活其它规则来进行进一步的检验。如下面所说的,动态规则就是用于这个目的。当你需要对捕获的包进行进一步检验的时候,就可以用activate动作。

3.5.1.5 Dynamic

Dynamic规则动作由其它用activate动作的规则调用,在正常情况下,他们不会被用来检测包。一个动态规则仅能被一个“activate”动作激活。

3.5.1.6 自定义动作

除了以上动作外,你也可以定义自己的动作,以用于不同的目的,例如:

●向Syslog发送消息。Syslog是系统日志守护进程,它在/var/log

中创建日志文件,这些文件的位置可以通过修改/etc/syslog.conf

来改变。你可以在UNIX系统中用命令“man syslog”或者“man

syslog.conf”来获得更多信息。Syslog相当于Windows中的事

件查看器。

●向如HP OpenView或Open NMS(https://www.sodocs.net/doc/b3184784.html,)

等网管系统发送SNMP trap。

●在一个包上应用多个动作。如你前面所看到的,一个规则仅仅规定了

一个动作,自定义动作可以用来产生多个动作。例如,你可以在发送

SNMP trap的同时记录Syslog。

●将数据记录到XML文件中。

将信息记录到数据库中,Snort可以将数据记录到MySQL, Postgress SQL, Oracle 和 Microsoft SQL server中。

这些新的动作类型在配置文件snort.conf中定义。一个新动作用下面的通

用结构来定义:

ruletype action_name

{

action definition

}

关键字ruletype后面跟随动作的名称,两个大括号中是实际的动作定义,类似于C语言中的函数。例如,我们定义一个叫做smb_db_alert的动作,用来向workstation.list中的主机发送SMB告警,同时在MySQL中的“Snort”

数据库记录,如下所示:

ruletype smb_db_alert

{

type alert

output alert_smb: workstation.list

output database: log, mysql, user=rr password=rr \

dbname=snort host=localhost

}

这些规则的类型我们会在下一章详细讨论,通常它们与配置和输出插件有关。

3.5.2 协议

协议是Snort规则中的第二部分,这一部分将显示那种类型的包将与该规则比对。到目前为止,Snort可以支持以下协议:

●IP

●ICMP

●TCP

●UDP

如果协议是IP,Snort检测包中的数据链路层头部来确定包的类型,如果协议类型是其他任何一种,Snort检测IP头部来确定协议类型。不同的包头部将在附录C中讨论。

协议部分仅仅在规则头部的条件中起作用。规则中的选项部分可以附加与协议无关的条件。如下面协议为ICMP的规则:

alert icmp any any -> any any (msg: "Ping with TTL=100"; \

ttl: 100;)

选项部分检测TTL值,它并不是ICMP头部的内容,而是IP头部内容。

这就是说选项部分可以检测属于其它协议的一些参数。常用协议的头部和相关分析见附录C。

3.5.3 地址

在Snort规则中,有两个地址部分,用来检测包的来源和目的地。地址可以是一个主机地址或者网络地址。你可以用关键字any来指定所有的地址。地址后面用斜线来附加一个数字,表示掩码的位数。比如

192.168.2.0/24代表一个C类网络192.168.2.0,其子网掩码是255.255.255.0。记住下面的一些子网掩码:

●如果子网掩码是24位,它是一个C类网络。

●如果子网掩码是16位,它是一个B类网络。

●如果子网掩码是24位,它是一个A类网络。

●表示一个主机用32位掩码。

根据CIDR的支持,你可以用任何位数的掩码。参考RFC 791取得关于IP地址和子网掩码的信息。CIDR的更多信息参考RFC 1519。

前面我们提到,Snort规则中有两个地址段,其中一个是源地址,另外一个是目的地址。方向段指明那个是源地址,哪个是目的地址。参考方向段部分的叙述来了解更多信息。

下面是一个在Snort规则中地址部分的例子:

●192.168.1.3/32定义一个地址为192.168.1.3的主机。

●192.168.1.0/24定义从192.168.1.0到192.168.1.255的C

类网络地址,子网掩码是24位,相当于255.255.255.0。

●152.168.0.0/24定义从152.168.0.0到192.168.255.255的

B类网络地址,子网掩码是16位,相当于255.255.0.0。

●10.0.0.0/8定义从10.0.0.0到10.255.255.255的A类网络地

址,子网掩码是8位,相当于255.0.0.0。

●192.168.1.16/28定义从192.168.1.16到192.168.1.31的

网络地址,子网掩码是28位,相当于255.255.255.240。在这16个地址中有14个可以用作主机地址,因为还有一个网络地址和一个广播地址,注意,在任何网络中的一个地址总是网络地址,最后一个

是广播地址。在这个例子中192.168.1.16是网络地址,

192.168.1.31是广播地址。

例,你可以用下面的规则,使到web服务器192.168.1.10/32的80端口的TTL为100的数据包触发告警:

alert tcp any any -> 192.168.1.10/32 80 (msg: "TTL=100"; \

ttl: 100;)

这个规则仅仅用来示例IP地址是如何在Snort规则中应用的。

3.5.3.1 排除某些地址

Snort提供一种机制,可以是你用否定符号“!”,也就是感叹号,来排除某些地址,这个符号用来限制Snort 不对某些源或目的地址的包做检测。例如,西面的规则将检测除了来自C类网络192.168.2.0之外所有的包:

alert icmp ![192.168.2.0/24] any -> any any \

(msg: "Ping with TTL=100"; ttl: 100;)

当你想测试不包括你自己的网络的其它的包的时候,这个规则非常有用,这也意味着你信任自己所在网络的所有人!

3.5.3.2 地址列表

你也可以在Snort规则中指定一个地址的列表,比如,你的网络中包含两个C类网络:192.168.2.0和192.168.8.0,你想对除了这两个网络之外的

其它地址应用规则,你可以用下面的规则,其中两个地址用逗号分隔:alert icmp ![192.168.2.0/24,192.168.8.0/24] any -> any \

any (msg: "Ping with TTL=100"; ttl: 100;)

注意,方括号是与否定符号以器用的,如果没有否定符号,你可以不用方括

号。

3.5.1 端口号

端口号用来在进出特定的某个或一系列端口的包上运用规则,例如,你可以用源端口23来对来自Telnet服务器的包应用规则。你可以用关键字any来对

包应用规则,而不管它的端口号。段口号仅仅对TCP和UDP协议有意义,如果你选择的协议是IP或者ICMP,端口号就不起作用。下面的规则用来检测来自C 类网络192.168.2.0/24中的Telnet服务器,并包含“confidential”(机密)的包:

alert tcp 192.168.2.0/24 23 -> any any \

(content: "confidential"; msg: "Detected confidential";)

同类的规则也可以用在这个网络中来自或者去向任何Telnet服务器的包,我们改以下方向段为任何方向,如下所示:

alert tcp 192.168.2.0/24 23 <> any any \

(content: "confidential"; msg: "Detected confidential";)当你想仅对某种类型的包应用规则的时候,端口号是非常有用的。例如,一种攻击仅与HTTP web服务器相关,你可以在规则中设置端口号80来检测试图进行这种攻击的人,这样Snort规则仅仅监视web服务,不对其它的TCP包应用规则。制订良好的规则一定能提高IDS的性能。

3.5.

4.1 端口范围

你也可以在规则中的端口段设置一系列的端口,而不只是一个。用冒号分隔起始和结束。例如下面的规则将对来自1024-2048的所有UDP包告警:alert udp any 1024:2048 -> any any (msg: “UDP ports”;)

3.5.

4.2 上限与下限

你可以仅用一个起始端口号或结束端口号来表示端口列表,例如:1024表示比1024小,包含1024的所有端口,1000:表示比1000大,包括1000的所有端口。

3.5.

4.3 否定符

与地址段相同,你也可以在Snort规则中的端口段用否定符号来排除一个或多个端口。下面的规则将记录除了53段口外的其它所有UDP通信。

log udp any !53 -> any any log udp

但是你不能用逗号来分隔多个端口,如53,54这样的表示是不允许的,但是你可以用53:54来表示一个端口范围。

3.5.

4.4 共用端口号。

共用端口号是提供给一些公用应用的,表3-1列举了其中一些及应用。

端口号描述

20 FTP数据

21 FTP

22 SSH或安全Shell

23 Telnet

25 SMTP或类似于Sendmail的e-mail服务器

37 NTP(网络时钟协议,用来同步网络主机时间)

53 DNS 服务器

67 BootP/DHCP客户端

68 BootP/DHCP服务器

69 TFTP

80 HTTP,web服务器

110 POP3,供类似于OE的邮件客户端使用

161 SNMP

162 SNMP trap

443 HTTPS或安全HTTP

514 Syslog

在UNIX平台上,你可以查看/etc/services文件,可以看到更多的端口的定义。RFC 1700中包含详细列表。目前ICANN负责管理这些端口

号,你可以在https://www.sodocs.net/doc/b3184784.html,获得更多信息。

3.5.5 方向段

在Snort规则中,方向段确定源和目的。下面是方向段的相关规定:

->表示左边的地址和端口是源而右边的是目的。

<-表示右边的地址和端口是源而左边的是目的。

<>表示规则将被应用在两个方向上,在你想同时监视服务器和客户端的时候,可以用到这个标示。例如,你可以监视往来POP或者Telnet服务器的数据流。

3.6 规则选项

Snort规则的选项在头部的后面,在一对圆括号里面,其中可能包含一个选项,也可能包含用分号分隔的多个选项,这些选项的关系是逻辑与的关系,只有当选项中的条件都满足的时候,规则动作才会被执行。在前面的例子中,你已经来规则中应用了msg和ttl的选项。所有的选项都是由关键字来定义的,一些选项中还会包含变量值。一个选项包含两个主要部分:一个关键字和变量值。关键字和变量值由冒号分隔。如你前面看到的:

msg: "Detected confidential";

在这个选项中,关键字是msg,而"Detected confidential"是变量值。

本部分的后面将叙述在Snort规则的选项部分的各种关键字:

3.6.1 关键字ack

Tcp头部中包含一个32位的Acknowldege Number字段,这个字段表示希望对端发送的下一个Tcp包的序列号。仅当TCP头部的ACK标志位被设为1的时候,这个字段才起作用。关于TCP头部的详细资料,参考附录C或者RFC 793。

类似于nmap的工具用TCP头部的这个特征来扫描计算机,例如,在这些工具所用的技术中,它们向目标主机发送至80端口,ACK标志为1,序列号为0的TCP包,这样目标主机就不会接受这个包,并发回一个RST标志为1的包,当nmap受到这个包的时候,就知道那台主机是存在的。当目标主机不对ICMP 做出回应的时候,这个方法可以起到作用。

为了探测到这种TCP ping,你可以用类似于下面的规则来产生告警信息:alert tcp any any -> 192.168.1.0/24 any (flags: A; \

ack: 0; msg: "TCP ping detected";)

这条规则的作用是在当你收到标志位A为1而acknowledgement段的值为0的TCP包的时候,发送一个告警信息。表3-2列举了其他的TCP标志位。在本规则中,定义包的目的是192.168.1.0/24,你可以用其它的值。关键字ack基本上用来探测这种类型的攻击,一般情况下,如果A位为1,Ack的值是不等于0的。

3.6.2 关键字classtype

Snort规则可以分配类别和优先级以便区分,为全面了解关键字classtype,首先我们来看被snort.conf用include关键字所引用的classifacation.config文件,该文件的每一行都遵循下面的语法:config classification: name,description,priority

其中name用来表示类别名称,在Snort规则中用classtype关键字来指定,description是对类别的简单描述。Priority是这个类别的默认优先级,用数字表示,并可以在Snort选项中用关键字priority改变。你也可以把这些语句放在snort.conf中。下面是一个例子:

config classification: DoS,Denial of Service Attack,2

上面的一行中,定义了一个类别DoS,其优先级为2。在第6章中,你将看

到在基于web的Snort分析工具ACID中用到这个类别。现在让我们在规则中

应用这个类别,如下例,优先级为默认值:

alert udp any any -> 192.168.1.0/24 6838 (msg:"DoS"; \

content: "server"; classtype:DoS;)

我们改变这个规则,可以覆盖默认优先级:

alert udp any any -> 192.168.1.0/24 6838 (msg:"DoS"; \

content: "server"; classtype:DoS; priority:1)

分类和优先级的意义在于,我们可以了解告警是否紧急,这在我们要对威胁

性高的告警提高警惕的时候非常有用。

如果你看到在第6章中讨论的ACID浏览器窗口,就可以看到图3-3中所示的classifacation栏,在窗口中间的第二列是所捕获数据包的分类。其他的一些分析工具也用关键字classification来区分入侵行为的类别。典型的classification.conf文件如下所示,这个文件与Snort1.9.0共同发行,

你可以在这个文件中增加自己的分类并在自己的规则中应用。

# $Id: classification.config,v 1.10 2002/08/11 23:37:18 cazz Exp $

# The following includes information for prioritizing rules

#

# Each classification includes a shortname, a description, and a

default

# priority for that classification.

#

# This allows alerts to be classified and prioritized. You can specify

# what priority each classification has. Any rule can override the

default

# priority for that rule.

#

# Here are a few example rules:

#

# alert TCP any any -> any 80 (msg: "EXPLOIT ntpdx overflow";

# dsize: > 128; classtype:attempted-admin; priority:10;

#

# alert TCP any any -> any 25 (msg:"SMTP expn root"; flags:A+; \

# content:"expn root"; nocase; classtype:attempted-recon;)

#

# The first rule will set its type to "attempted-admin" and override

# the default priority for that type to 10.

#

# The second rule set its type to "attempted-recon" and set its

# priority to the default for that type.

#

#

# config classification:shortname,short description,priority

#

config classification: not-suspicious,Not Suspicious Traffic,3

config classification: unknown,Unknown Traffic,3

config classification: bad-unknown,Potentially Bad Traffic, 2

config classification: attempted-recon,Attempted Information Leak,2 config classification: successful-recon-limited,Information Leak,2 config classification: successful-recon-largescale,Large Scale Information Leak,2

config classification: attempted-dos,Attempted Denial of Service,2 config classification: successful-dos,Denial of Service,2

config classification: attempted-user,Attempted User Privilege Gain,1 config classification: unsuccessful-user,Unsuccessful User Privilege Gain,1

config classification: successful-user,Successful User Privilege Gain,1 config classification: attempted-admin,Attempted Administrator

Privilege Gain,1

config classification: successful-admin,Successful Administrator Privilege Gain,1

# NEW CLASSIFICATIONS

config classification: rpc-portmap-decode,Decode of an RPC Query,2 config classification: shellcode-detect,Executable code was detected,1 config classification: string-detect,A suspicious string was detected,3 config classification: suspicious-filename-detect,A suspicious filename was detected,2

config classification: suspicious-login,An attempted login using a suspicious username was detected,2

config classification: system-call-detect,A system call was detected,2 config classification: tcp-connection,A TCP connection was detected,4 config classification: trojan-activity,A Network Trojan was detected, 1 config classification: unusual-client-port-connection,A client was

using an unusual port,2

config classification: network-scan,Detection of a Network Scan,3

config classification: denial-of-service,Detection of a Denial of Service Attack,2

config classification: non-standard-protocol,Detection of a nonstandard protocol or event,2

config classification: protocol-command-decode,Generic Protocol Command Decode,3

config classification: web-application-activity,access to a potentially

vulnerable web application,2

config classification: web-application-attack,Web Application Attack,1

config classification: misc-activity,Misc activity,3

config classification: misc-attack,Misc Attack,2

config classification: icmp-event,Generic ICMP event,3

config classification: kickass-porn,SCORE! Get the lotion!,1

config classification: policy-violation,Potential Corporate Privacy

Violation,1

config classification: default-login-attempt,Attempt to login by a

default username and password,2

3.6.3关键字content

Snort的一个重要特征就是它可以在包的里面发现数据特征,这些特征可能以ASCII字符的形式出现,也可能是16进制字符所表示的二进制数据。如同病毒,入侵者的行为也通常会在数据包中表现某种特征,关键字content就使用来发现这些特征的。Snort1.x版本不支持应用层协议,但是用content 与offset关键字联合使用,也可以找到应用层的数据。

下面的规则可以检测离开网络192.168.1.0并在数据段含有“GET”的TCP 包。在HTTP相关的攻击中,GET是经常被用到的一个关键字。然而,这个规则仅仅能够使你了解如何用关键字content来工作。

alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any \

(content: "GET"; msg: "GET matched";)

以下的规则作用与上面一条相同,但是特征以16进制表示。

alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any \

(content: "|47 45 54|"; msg: "GET matched";)

16进值的数字47与ASCII字符G的值相等,45与E相等,54与T相等。你可以在同一条规则中同时用ASCII和16进制来进行特征比对。用16进值表示时,应当用双竖线||将字符包括进去。

在用content关键字的时候,要记住以下的原则:

内容比对是

snort中文手册

<< Back to https://www.sodocs.net/doc/b3184784.html, Snort 中文手册 摘要 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。(2003-12-11 16:39:12) Snort 用户手册 第一章 snort简介 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。 嗅探器 所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的 控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令: ./snort -v 使用这个命令将使snort只输出IP和TCP/UDP/ICMP的包头信息。如

./snort -vd 这条命令使snort在输出包头信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令: ./snort -vde 注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价: ./snort -d -v –e 数据包记录器 如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort 就会自动记录数据包: ./snort -dev -l ./log 当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1 如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络: ./snort -dev -l ./log -h 192.168.1.0/24 这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。 如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:

IDS SNORT ACID搭建流程

IDS-Snort+ACID搭建流程 >ACID入侵数据库分析控制台,通过WEB界面来查看snort数据的工具。为了使用ACID,用户系统中必须安装Snort,Apache,MYSQL,PHP。他们之间的关系如下: 1:当入侵者进入用户的网络后,snort根据规则检测到入侵行为后,根据其配置文件/etc/ snort/snort.conf的配置,将信息记录到MYSQL数据库中。 2:用户使用浏览器连接到IDS服务器,请求ACID页面。 3:PHP连接到数据库,提取信息。 4:Apache响应浏览器,用户就可以在浏览器中查看,操作等。 将Apache MYSQL PHP装上 安装ACID 以上软件包的作用: Snort主程序,不用说了。 安装过程中,会创建: /etc/snort存放规则和配置文件 /var/log/snort存放日志 /usr/share/doc/snort-xxx snort文档文件README就在这里。

/usr/sbin/snort-plain主程序文件 /etc/rc.d/init.d/snortd start restart stop脚本。 Snort-mysql代替系统snort的主程序文件,使snort可以支持mysql数据库。 Php-acid ACID软件包。里面一堆的以PHP写的网页。 Php-adodb跟PHP访问数据库有关,在/ar/www/adodb。 Php-jpgraph JPG图像函数库,ACID采用它来创建入侵数据的图表。分析图就是靠它来创建的,使用户能更直观的去分析。/var/www/jpgraph-xxx 安装完后创建一个PHP测试页,看看APACHE和PHP安装是否成功。 /var/www/html Vi index.php 配置MYSQL 启动MYSQL,service mysqld start 会提示需要设置root密码 Mysqladmin–u root password test 创建两个库snort_log snort_archive

Snort详细安装步骤

S n o r t详细安装步骤Prepared on 21 November 2021

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 二、软件:Snort 、WinPcap 规则库: 实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS 四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 、和WinPcap 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点 击下一步: 选择安装的 位置,默认 的路径为 c:/Snort/, 点击下一 步,安装完 成。软件跳 出提示需要 安装 WinPcap 以 上 2.安装 WinPcap 点击 WinPcap安装包进行安装 点击下一步继续: 点击同意使用条款: 选择是否让WinPcap自启动,点击安装: 安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:)

输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库: 3.安装Snort规则库 首先我们去Snort的官网下载Snort的规则库,必须先注册成会员,才可以下载。具体下载地址为,往下拉到Rules,看见Registered是灰色的,我们点击Sign in: 注册成功后,返回到这个界面就可以下载了。下载成功后将压缩包解压到 Snort的安装文件夹内:点击全部是,将会替换成最新的规则库。 4.修改配置文件 用文件编辑器打开d:\snort\etc\,这里用的是Notepad++,用win自带的写字板也是可以的。找到以下四个变量var RULE_PATH,dynamicpreprocessor,dynamicengine,alert_syslog分别在后面添加如下路径: var RULE_PATH d:\snort\rules var SO_RULE_PATH d:\snort\so_rules var PREPROC_RULE_PATH d:\snort\preproc_rules dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicengine d:\snort\lib\snort_dynamicengine\ output alert_syslog: host=:514, LOG_AUTH LOG_ALERT 到现在位置配置完成,同样回到cmd中找到d:/Snort/bin/运行snort –v –i1(1是指你联网的网卡编号默认是1)开始捕获数据,如下: 运行一段时间后按Ctrl+c中断出来可以看见日志报告:

snort实验

实验7 基于snort的IDS配置实验 1.实验目的 通过配置和使用Snort,了解入侵检测的基本概念和方法,掌握入侵检测工具的使用方法,能够对其进行配置。 2.实验原理 2.1 入侵检测基本概念 入侵检测系统(Intrusion Detection System简称为IDS)工作在计算机网络系统中的关键节点上,通过实时地收集和分析计算机网络或系统中的信息,来检查是否出现违反安全策略的行为和是否存在入侵的迹象,进而达到提示入侵、预防攻击的目的。入侵检测系统作为一种主动防护的网络安全技术,有效扩展了系统维护人员的安全管理能力,例如安全审计、监视、攻击识别和响应的能力。通过利用入侵检测系统,可以有效地防止或减轻来自网络的威胁,它已经成为防火墙之后的又一道安全屏障,并在各种不同的环境中发挥关键作用。 1.入侵检测系统分类 根据采集数据源的不同,IDS可分为基于网络的入侵检测系统(Network-based IDS,简称NIDS)和基于主机的入侵检测系统(Host-based IDS,简称HIDS)。 NIDS使用监听的方式,在网络通信的原始数据包中寻找符合网络入侵模版的数据包。NIDS的网络分析引擎放置在需要保护的网段内,独立于被保护的机器之外,不会影响这些机器的CPU、I/O与磁盘等资源的使用,也不会影响业务系统的性能。NIDS一般保护的是整个网段。 HIDS安装在被保护的机器上,在主机系统的审计日志或系统操作中查找信息源进行智能分析和判断,例如操作系统日志、系统进程、文件访问和注册表访问等信息。由于HIDS 安装在需要保护的主机系统上,这将影响应用系统的运行效率。HIDS对主机系统固有的日志与监视能力有很高的依赖性,它一般保护的是其所在的系统。 NIDS和HIDS各有优缺点,联合使用这两种方式可以实现更好的检测效果。 2.入侵检测系统的实现技术 入侵检测系统的实现技术可以简单的分为两大类:基于特征的检测(Signature-based)和基于异常的检测(Anomaly-based)。 基于特征的检测技术主要包括模式匹配和协议分析两种检测方法: 模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式知识库进行比较,以发

Snort-入侵检测系统规则集的优化

Snort-入侵检测系统规则集的优化 陈金柱1李逸波2朱乾坤3 (1.海军航空工程学院学员旅,山东烟台,264001; 2.海军航空工程学院自动控制系,山东烟台,264001; 3.海军航空工程学院网络中心,山东烟台,264001) 摘要:随着网络的发展,入侵检测系统将成为一个重要瓶颈。本文根据TCP/IP协议的特点对Snort-入侵检测系统规则集进行了优化设计。 关键词:Snort,入侵检测系统,规则集 0 引言 入侵检测系统(IDS)从计算机网络系统的若干关键点收集信息(如系统日志、审计数据和网络数据包等),然后通过分析这些信息来判断网络系统中是否有违反安全策略的行为和是否存在攻击。入侵检测依赖于两个假设:①用户和程序的活动是可以观察的。例如:系统审计机制。②正常活动和入侵(异常)活动有截然不同的行为。异常的活动被标识为入侵。入侵检测系统有多种分类。 根据检测方法,入侵检测分为两种类型①:误用检测(misuse detection)和异常检测(anomaly detection)。误用检测是将已知的攻击方式以某种形式存储在知识库中,然后通过判断知识库中的入侵模式是否出现来实施检测,如果出现,说明发生了入侵。该方法的优点是检测准确率较高,缺点是只对已知攻击类型和已知系统安全漏洞进行检测。而异常检测是指将用户正常的习惯行为特征存储到特征数据库中,然后将用户当前行为特征与特征数据库中的特征进行比较,若两者偏差足够大,则说明发生了异常。这种方法的优点是能检测未知的攻击类型,缺点是误检率较高。 根据检测的数据源,入侵检测系统可以分为基于主机的入侵检测系统和基于网络的入侵检测系统。基于主机的入侵检测系统是通过分析审计数据和系统日志来发现可能的入侵。基于网络的入侵检测系统是通过分析网络数据包来检测可能的入侵。下面介绍一个免费的轻量级的入侵检测系统——Snort。 1 Snort入侵检测系统 Snort是一种基于网络的入侵检测系统,通过误用检测规则来检测攻击。Snort规则就是使用“一种简单的、轻量级的描述语言”来描述网络上带有攻击标识的数据包。Snort规则文件是Snort的核心,是Snort的攻击知识库。如果只有Snort的可执行程序,而没有规则文件,那么Snort就不能真正实现入侵检测功能,即不能识别任何攻击。 Snort规则在逻辑上分为两部分:规则头(Rule Header)和规则选项(Rule Option)。规则头定义了规则的行为、所匹配网络包的协议、源地址、目标地址及其网络掩码、源端口和目标端口等信息;规则选项则包含了所要显示给用户查看的警告信息以及用来判定此数据包的其他信息(如:tcp的flags字段,数据字段的内容等)②。 下面是一个简单的规则: alert tcp any any ->192.168.1.0/24 111(content:“|00 01 86 a5”|;msg:“mountd access”;) 上例中,括号左边部分为规则头,括号里面部分为规则选项,规则选项中冒号前的部分称为选项关键字(Option Keyword),这里需要注意的是规则选项并不是任何规则都必需的,它只是用来明确地定义表示的是某种攻击、需要采取某种行为(如警告等)。只有当组成规则的各个元素都为真时才能触发相应的操作。综合起来考虑,规则里限制数据包的各元素的关系是逻辑与;同时规则库中的各条规则之间的关系可以被认为一个大的逻辑或(进行逻辑或操作的各元素只要有一个为真时,整个表达式即为真)。 如图1,所有规则按照规则头排列成主链,然后根据规则选项把规则插入到这个链表中,构成规则集,这样每一个选项节点就对应一条规则。规则头节点主要记录了规则头信息,包括源IP/端口、目标IP/端口,并用指针指向下一个规则头节点、附属于它的规则选项列表和规则头列表结构。规则选项节点存放所有规则选项的信息和处理插件的处理函数列表(option function),分别指向规则头节点的指针和关联选项节点的指针。

Snort详细安装步骤

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 软件:Snort 2.9.5.5、WinPcap 4.1.1 规则库: snortrules-snapshot-2970.tar.gz 二、实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS

四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 2.9.5.5、snortrules-snapshot-2970.tar.gz 和WinPcap 4.1.3 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点击下一步:

选择安装的位置,默认的路径为c:/Snort/,点击下一步,安装完成。软件跳出提示需要安装WinPcap 4.1.1以上 2.安装WinPcap 点击WinPcap安装包进行安装 点击下一步继续:

点击同意使用条款: 选择是否让WinPcap自启动,点击安装:

安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:) 输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库:

Snort中文手册范本

Snort 用户手册 Snail.W 第一章 snort简介 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。嗅探器所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP信息打印在屏幕上,只需要输入下面的命令:./snort -v 使用这个命令将使snort只输出IP和TCP/UDP/ICMP的信息。如果你要看到应用层的数据,可以使用:./snort -vd 这条命令使snort在输出信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令:./snort -vde 注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价:./snort -d -v –e 数据包记录器如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包:./snort -dev -l ./log 当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1 如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络:./snort -dev -l ./log -h 192.168.1.0/24 这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:./snort -l ./log -b 注意此处的命令行和上面的有很大的不同。我们勿需指定本地网络,因为所有的东西都被记录到一个单一的文件。你也不必冗余模式或者使用-d、-e功能选项,因为数据包中的所有容都会被记录到日志文件中。你可以使用任何支持tcpdump二进制格式的嗅探器程序从这个文件中读出数据包,例如:tcpdump或者Ethereal。使用-r功能开关,也能使snort读出包的数据。snort在所有运行模式下都能够处理tcpdump格式的文件。例如:如果你想在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上,可以输入下面的命令:./snort -dv -r packet.log 在日志包和入侵检测模式下,通过BPF(BSD Packet Filter)接口,你可以使用许多方式维护日志文件中的数据。例如,你只想从日志文件中提取ICMP 包,只需要输入下面的命令行:./snort -dvr packet.log icmp 网络入侵检测系统snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,snort就输出到/var/log/snort目录。注意:如果你想长期使用snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。此外,在绝大多数情况下,也没有必要记录数据链路层的,所以-e选项也可以不用:./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf 这是使用snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。网络入侵检测模式下的输出选项在NIDS模式下,有很多的方式来配置snort的输出。在默认情况下,snort以ASCII格式记录日志,使用full报警机制。如果使用full报警机制,snort会在之后打印报警消息。如果你不需要日志包,可以使用-N选项。 snort有6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中有4个可以在命令行

snort入侵检测实验报告

实验:入侵检测系统(Snort)的安装与配置 一、实验目的 学会WINDOWS下SNORT的安装与配置 二、实验环境 WinXP虚拟机 三、实验步骤与结果 一.在“我的电脑”中C盘中建立文件夹“zhangxiaohong” 二.安装WinPcap,运行,默认安装。 三.安装mysql,运行5.0.22,选择自定义安装选择安装路径C:\zhangxiaohong\mysql 下,安装时注意:端口设置为3306(以后要用到),密码本实验设置成123 四.安装apache 1.运行 2.2.4,安装到c:\zhangxiaohong\Apache 2.安装Apache,配置成功一个普通网站服务器 3.出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续 4.确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续 5.将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续 6.选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选 择Custom,有更多可选项。按“Next”继续 7.出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”, 选择“ This feature, and all subfeatures, will be installed on local hard

drive.” 8.即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选 “Change...”,手动指定安装目录。 9.我这里选择安装在“C:\zhangxiaohong\Apache”,各位自行选取了,一般建 议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。 10.返回刚才的界面,选“Next”继续。 11.好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打 “.0.1”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功。 12. 五.安装和配置PHP53、安装winpcap 1.解压php-5. 2.5-Win32到c:\zhangxiaohong\php 2.添加gd图形库支持 复制c:\zhangxiaohong\php\和c: \zhangxiaohong\php\文件到C:\Windows\system32复制c: \zhangxiaohong\php\到C:\Windows文件夹并重命名为, 修改,分别去掉“extension=”和“extension=”前的分号, 3.并指定extension_dir="c:\zhangxiaohong\php\ext", 4.同时复制c:\zhangxiaohong\php\ext下的与到C:\Windows\system32 在C:\zhangxiaohong\apache\conf\中添加 LoadModule php5_module c:/zhangxiaohong AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .html AddType application/x-httpd-php .htm 5.重启Apache服务 在C:\zhangxiaohong\apache\htdocs目录下新建(文件内容为:)并使用访问测试是否能够显示当前Apache服务器的信息,如果能够显示表明Apache和php工作基本正常 六.安装snort 1.运行 安装在C:\zhangxiaohong\Snort下即可, 运行C:\zhangxiaohong\Snort\bin\或者在DOS中找到该位置, 如果安装 Snort成功会出现一个可爱的小猪 2.并按照以下修改C:\zhangxiaohong\Snort\etc\文件 3.打开文件

Snort 命令参数详解

用法: snort -[options] 选项: -A 设置报警模式,alert = full/fast/none/unsock,详解上一篇snort简介。 -b 用二进制文件保存网络数据包,以应付高吞吐量的网络。 -B 将IP地址信息抹掉,去隐私化。 -c 使用配置文件,这会使得snort进入IDS模式,并从中读取运行的配置信息。-d 显示包的应用层数据。 -D 以后台进程运行snort。如无指定,Alerts将写到/var/log/snort/alert。 -e 显示数据链路层的信息。 -E 保存报警日志为windows事件日志。 -f 激活PCAP行缓冲(line buffering)。 -F 指定BPF过滤器。 -g 初始化Snort后以组ID(group ID)运行。 -G 为事件生成设置一个基础事件id值。 -h 设置本地网络为hn,如192.168.1.0/24。 -i 设置网络接口为。可以用-W选项查询网络接口列表,然后用接口序号index指定接口。如-i 2 -I 报警时附加上接口信息。 -J 当以in-line模式运行时,这个选项将只捕获端口的报文。 -k 为all,noip,notcp,noudp,noicmp,or none设置校验和模式。 -K 设置保存文件的格式:pcap,ascii,none。pcap是默认格式,同于-b选项的格式。ascii是老的模式格式。none则关闭数据包记录。 -l 设置数据包文件存放目录。默认目录是/var/log/snort. -L 设置二进制输出文件的文件名为。 -M 当以非后台模式daemon运行时,保存信息到syslog。 -m 设置snort输出文件的权限位。 -n 出来个报文后终止程序。 -N 关闭保存日志包功能。 -o 改变应用规则的顺序。从Alert-->Pass-->Log顺序改为Pass-->Alert-->Log,避免了设置大量BPF命令行参数来过滤alert规则。 -O 在ASCII数据包捕获模式下混淆IP地址。 -p 关闭混杂模式。 -P设置snaplen,默认值是当前网卡的MTU。 -q 安静模式,不显示标志和状态报告。 -Q 当在线(in-line)运行时,从iptables/IPQ中读取数据包。 -r 从pcap格式的文件中读取数据包。 -R 为snort pidfile增加下标。 -s 使snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。 -S 为变量n设置值为v。 -t 初始化后将Snort的根目录改变为。 -T 以自检测模式启动Snort。 -u 初始化后改变Snort的UID。

使用SNORT观察网络数据包和TCP链接

任课教师:舒挺,张芳 《计算机网络》 (2013-2014学年第2学期) 实 验 报 告 学号:2012329620006 姓名:章钰沁 班级:12级计算机科学与技术(1)班

实验三:使用SNORT观察网络数据包和TCP链接 一、实验内容和要求 ●学会安装使用自由软件SNORT ●截获以太网数据包,并分析和描述TCP连接的三个阶段。 ●截获ARP协议数据包并进行分析 二、实验步骤 第一部分安装snort 1、下载snort-2_0_4.exe 网址:https://www.sodocs.net/doc/b3184784.html,/dl/binaries/win32/snort-2_0_4.exe 2、下载WinPcap_3_0.exe http://winpcap.polito.it/install/bin/WinPcap_3_0.exe 3、安装snort和winpcap 4、打开DOS命令窗口COMMAND。进入snort的安装目录。Cd /snort/bin 5、执行snort –ev 出现以下屏幕,表示安装完成并能正常使用

6、用ctrl +C结束。 7、观察一个完整的TCP连接。 第二部分 1、在snort的工作目录中使用命令 snort –dev –l /snort/log 开始snort并将相应的log文件记录在log目录下。 2、另开一个命令窗口,键入命令 FTP https://www.sodocs.net/doc/b3184784.html, 3、观察ftp命令窗口 4、打开相应的log目录 5、查找到相应的TCP连接,并用文本分析器打开。对照ftp命令窗口中出现的结果,分析刚 才的TCP连接过程。

第三部分 观察ARP协议 1、同二,打开SNORT并记录。 2、在另一命令窗口执行以下命令: arp –a 观察高速缓存 telnet 192.168.0.3 discard 注:和一个在ARP缓存中不存在的主机进行telnet连接。 quit 3、quit 4、分析所捕获的数据包,并且写出arp的全过程。

snort规则选项

snort规则选项 规则选项组成了入侵检测引擎的核心,既易用又强大还灵活。所有的snort规则选项用分号";"隔开。规则选项关键字和它们的参数用冒号":"分开。按照这种写法,snort中有42个规则选 项关键字。 msg - 在报警和包日志中打印一个消息。 logto - 把包记录到用户指定的文件中而不是记录到标准输出。 ttl - 检查ip头的ttl的值。 tos 检查IP头中TOS字段的值。 id - 检查ip头的分片id值。 ipoption 查看IP选项字段的特定编码。 fragbits 检查IP头的分段位。 dsize - 检查包的净荷尺寸的值。 flags -检查tcp flags的值。 seq - 检查tcp顺序号的值。 ack - 检查tcp应答(acknowledgement)的值。 window 测试TCP窗口域的特殊值。 itype - 检查icmp type的值。 icode - 检查icmp code的值。 icmp_id - 检查ICMP ECHO ID的值。 icmp_seq - 检查ICMP ECHO 顺序号的值。 content - 在包的净荷中搜索指定的样式。 content-list 在数据包载荷中搜索一个模式集合。 offset - content选项的修饰符,设定开始搜索的位置。 depth - content选项的修饰符,设定搜索的最大深度。 nocase - 指定对content字符串大小写不敏感。 session - 记录指定会话的应用层信息的内容。 rpc - 监视特定应用/进程调用的RPC服务。 resp - 主动反应(切断连接等)。 react - 响应动作(阻塞web站点)。 reference - 外部攻击参考ids。 sid - snort规则id。 rev - 规则版本号。 classtype - 规则类别标识。 priority - 规则优先级标识号。 uricontent - 在数据包的URI部分搜索一个内容。 tag - 规则的高级记录行为。 ip_proto - IP头的协议字段值。 sameip - 判定源IP和目的IP是否相等。 stateless - 忽略刘状态的有效性。 regex - 通配符模式匹配。 distance - 强迫关系模式匹配所跳过的距离。 within - 强迫关系模式匹配所在的范围。

snort-windows平台安装

安装环境 主要硬件: ProLiant DL365 G1 2200MHZ*2 1024MB667MHZ * 4 主要软件: Windows Server 2003 + Sp2 MS SQL 2000 + Sp4 相关软件及下载地址: Apache_2.2.6-win32-x86 https://www.sodocs.net/doc/b3184784.html, Php-5.2.4-Win32 https://www.sodocs.net/doc/b3184784.html,/downloads.php Snort_2_8_0_Installer https://www.sodocs.net/doc/b3184784.html,/dl/binaries/win32/ WinPcap_4_0_1 http://winpcap.polito.it/ base-1.3.8 https://www.sodocs.net/doc/b3184784.html,/project/showfiles.php?group_id=103348 ActivePerl-5.6.1.635-MSWin32-x86 adodb502a https://www.sodocs.net/doc/b3184784.html,/project/showfiles.php?group_id=42718 jpgraph-2.2 http://www.aditus.nu/jpgraph/jpdownload.php php5.2-win32-200710150430 https://www.sodocs.net/doc/b3184784.html,/ eventwatchnt_v233 oinkmaster-2.0 https://www.sodocs.net/doc/b3184784.html,/download.shtml 配置过程 先看一下软件在安装的过程中需要选择安装路径或解压缩路径时的大致目录结构 D:\win-ids>tree Folder PATH listing Volume serial number is 0006EE50 9C9B:B24B D:. +---adodb +---apache \_____D:\win-ids\apache\htdocs\base +---eventwatchnt +---oinkmaster +---perl +---php +---snort 1 安装apache 1.1: 设置server information,根据自己的实际情况进行修改 https://www.sodocs.net/doc/b3184784.html, https://www.sodocs.net/doc/b3184784.html, admin@https://www.sodocs.net/doc/b3184784.html, “For all user on port 80…” 1.2安装路径 d:\win-ids\apache 完毕后应该可以看到apache在系统托盘上的图标了,在浏览器中打开http://127.0.0.1看是否有成功页面的提示?

snort实验:编写snort规则

目录 1 实验细节 (1) 2 实验描述 (1) 3 环境配置 (1) 3.1 安装daq所需程序 (1) 3.1.1 安装flex (1) 3.1.2 安装bison (1) 3.1.3 安装libpcap-dev (2) 3.2 安装daq (2) 3.3 安装snort所需程序 (2) 3.3.1 安装libpcre3-dev (3) 3.3.2 安装libdumbnet-dev (3) 3.3.3 安装zlib1g-dev (3) 3.4 安装snort (3) 3.5 配置snort (4) 3.6 增加路径 (6) 3.7 安装xampp (6) 3.8 测试 (7) 4 实验任务 (7) 4.1 snort三种工作模式 (7) 4.2 snort规则定义 (8) 4.3 任务一 (9) 4.4 任务二 (11) 5 实验问题 (13) 6 实验总结 (13)

1 实验细节 不需要材料,可以参考互联网上的资料。 2 实验描述 对于网络安全而言,入侵检测是一件非常重要的事。入侵检测系统(IDS)用于检测网络中非法与恶意的请求。 Snort是一款免费、开源的网络入侵防御系统(Network Intrusion Prevention System,NIPS)和网络入侵检测系统(Network Intrusion Detection System,NIDS)工具,用于管理和防御黑客入侵Web 站点、应用程序和支持Internet的程序。本实验为了了解snort入侵检测系统中,对于外界访问本机系统依据规则提出警告等相关操作。查阅资料,编写具有防护警告的snort rules,了解snort运行机理。 3 环境配置 3.1 安装daq所需程序 snort使用数据采集器(daq)监听防火墙数据包队列,所以按照daq。需预装的程序有:flex、bison、libcap。 3.1.1 安装flex 3.1.2 安装bison

实训-Snort安装与配置

Snort安装与配置 Snort是免费NIPS及NIDS软件,具有对数据流量分析和对网络数据包进行协议分析处理的能力,通过灵活可定制的规则库(Rules),可对处理的报文内容进行搜索和匹配,能够检测出各种攻击,并进行实时预警。 Snort支持三种工作模式:嗅探器、数据包记录器、网络入侵检测系统,支持多种操作系统,如Fedora、Centos、FreeBSD、Windows等,本次实训使用Centos 7,安装Snort 2.9.11.1。实训任务 在Centos 7系统上安装Snort 3并配置规则。 实训目的 1.掌握在Centos 7系统上安装Snort 3的方法; 2.深刻理解入侵检测系统的作用和用法; 3.明白入侵检测规则的配置。 实训步骤 1.安装Centos 7 Minimal系统 安装过程不做过多叙述,这里配置2GB内存,20GB硬盘。 2.基础环境配置 根据实际网络连接情况配置网卡信息,使虚拟机能够连接网络。 # vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="eno16777736" UUID="51b90454-dc80-46ee-93a0-22608569f413" DEVICE="eno16777736" ONBOOT="yes" IPADDR="192.168.88.222" PREFIX="24" GATEWAY="192.168.88.2" DNS1=114.114.114.114 ~

Snort简明使用手册

Snort简明使用手册2007-03-22 22:28Snort2.6——USAGE(中文) 1.0 开始使用snort Snort不是很难使用,但是也存在着很多的命令行选项需要掌握,并且它们中许多很多时候并不能一起使用。这个文件的目的就是使新人能够更简单的使用snort。 在我们进行下一步之前,有一些关于snort的基本概念需要了解。snort能够配置成三种模式运行: 嗅探器(sniffer),包记录器(packet logger)和网络入侵检测系统(NIDS)。嗅探模式(sniffer mode)简单的读取网络中的数据包,并以连续的数据流显示在控制台上。包记录模式(packet logger mode)把捕获的数据包记录在磁盘上。网络入侵检测模式(NIDS mode)是最复杂的、有机的配置,在这个模式下,snort分析网络中的数据,并通过使用用户自定义的规则集进行模式匹配,并根据匹配的结果执行多种操作。 2.0 嗅探模式(sniffer mode) 首先,让我们从基础开始。如果你只是想要在屏幕上打印出TCP/IP的包头信息(嗅探模式),使用下面的命令: ./snort –v 使用这个命令运行snort,将只显示IP和TCP/UDP/ICMP头信息,而不显示任何其它信息。如果你想要查看传输的有效负载信息,可以使用如下命令: ./snort –vd 这条命令在打印协议头信息的同时也打印相应的包数据。如果你想要一个更详细的现实,可以使用下面的命令来打印出数据链路层头信息: ./snort –vde (注:这些选项参数能够分开或者拆散成任和结合的方式。比如上一个命令也可以写做这种方式: ./snort -d -v –e 来达到同样的效果) 3.0 包记录模式(PACKET LOGGER MODE) 好的,上面的命令运行的都相当的好。但是如果你想要记录包到磁盘上,你需要指定一个记录目录,然后snort将自动的进入包记录模式: ./snort -dev -l ./log 当然,这里假设你在当前目录下有一个叫做“log”的目录。如果没有这个目录,snort将退出并返回错误信息。当snort以这种模式运行,它收集所有捕获的数据包,并根据数据包中一个主机的IP地址放入对应的目录中。 如果你只是简单的指定“-l”选项,你可能会发现snort有时使用远程计算机的地址作为存放数据包的目录,有时使用本地主机的地址。为了比较本地的网络,你需要告诉snort本地网络的信息: ./snort -dev -l ./log -h 192.168.1.0/24 这条指令让snort能够记录数据链路信息和TCP/IP头和应用数据到目录./log,并且记录和 192.168.1.0段C类网络相关的包信息。所有进来的包将记录到记录文件夹中对应的子文件夹中,子文件夹以远程主机(非192.168.1主机)的地址命名。注意,如果两个主机都是在本地网络内,然后他们将根据两个中高的端口号来记录,在端口号相等的情况下,将使用源地址来记录。 如果你在一个高速网络中,又或你想要使用一个更紧凑的格式来记录数据包为以后的分析所用,你可以考虑使用“二进制模式”来记录。二进制模式采用“tcpdump 格式”来记录数据包到指定目录下的单

相关主题