snort端口扫描实验的简单介绍

hacker|
128

信息探测之SuperScan端口扫描实验

uperScan具有以下功能:

1.通过Ping来检验IP是否在线;

2.IP和域名相互转换;

3.检验目标计算机提供的服务类别;

4.检验一定范围目标计算机的是否在线和端口情况;

5.工具自定义列表检验目标计算机是否在线和端口情况;

6.自定义要检验的端口,并可以保存为端口列表文件;

7.软件自带一个木马端口列表trojans.lst,通过这个列表我们可以检测目标计算机是否有木马;同时,我们也可以自己定义修改这个木马端口列表

进入

换至“Scan”选项卡,点击左下的开始按钮开始进行之一次扫描。 扫描结果如图6。

之一次扫描完毕之后,点击“View Html Results”查看扫描报告

再次切换至“Host and Service Discovery”选项卡,同样仅选中“TCP Port Scan”复选框,但将“Scan Type”设置为“SYN”

同上,扫出

再次切换至“Host and Service Discovery”选项卡,仅选中“UDP Port Scan”

进行第三次扫描

centos下的snort如何在检测到各种攻击,并且将预警显示在base上,如端口扫描,arp欺骗,DDOS攻击等。

snort是一个强大的轻量级的 *** 入侵检测系统。它具有实时数据流量分析和日志IP *** 数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort具有很好的扩展性和可移植性。本文将讲述如何开发snort规则。

1.基础

snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。下面是一些最基本的东西:

snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。注意:由于排版的原因本文的例子有的分为两行。

snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行为(rule's action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。

这是一个例子:

alert tcp any any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access";)

表1.一条简单的snort规则

从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。

急需Snort对NMAP扫描检测的规则!望高手帮忙!

原著:Martin Roesch

翻译:Ni-ZhiQiang

前言

snort是一个强大的轻量级的 *** 入侵检测系统。它具有实时数据流量分析和日志IP *** 数据包的能力,能够进行协议分析,对内容进行搜索/匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort具有很好的扩展性和可移植性。本文将讲述如何开发snort规则。

1.基础

snort使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。下面是一些最基本的东西:

1).snort的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。注意:由于排版的原因本文的例子有的分为两行。

2).snort的每条规则都可以分成逻辑上的两个部分:规则头和规则选项。规则头包括:规则行为(rule's action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。

这是一个例子:

alert tcp any any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"mountd access"

表1.一条简单的snort规则

从开头到最左边的括号属于规则头部分,括号内的部分属于规则选项。规则选项中冒号前面的词叫做选项关键词(option keywords)。注意对于每条规则来说规则选项不是必需的,它们是为了更加详细地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,snort才会执行其规则行为。如果许多选项组合在一起,它们之间是逻辑与的关系。让我们从规则头开始。

1.1.include

snort使用的规则文件在命令行中指定,include关键词使这个规则文件可以包含其它规则文件中的规则,非常类似与C语言中的#include。snort会从被包含的文件读出其内容,取代include关键词。

格式:

include 文件路径/文件名

注意:行尾没有分号。

1.2.varriables

在snort规则文件中可以定义变量。

格式:

var namevalue

例子:

var MY_NET192.168.1.0/24,10.1.1.0/24]alert tcp any any - $MY_NET any (flags:S;msg:'SYNMETA packet"

表2.变量的定义和使用

规则变量名可以使用多种方式来修改,你可以使用$操作符来定义元变量(meta-variables)。这些修改方式可以结合变量修改操作符:?和-来使用。

1).$var:定义元变量

2).$(var):以变量var的内容作为变量名

3).$(var:-default):以变量var的内容作为变量名,如果var没有定义就使用default作为变量名

4).$(var:?message):使用变量var的内容作为变量名,如果不成功就打印错误信息message并退出。

例如:

var MY_NET $(MYU_NET:-192.168.1.0/24) tcp any any - $(MY_NET:?MY_NET is undefined!) 23

表3.高级变量应用

2.规则头(Rule Headers)

2.1.Rule Action

规则头包含一些信息,这些信息包括:哪些数据包、数据包的来源、什么类型的数据包,以及对匹配的数据包如何处理。每条规则的之一项就是规则行为(rule action)。规则行为告诉snort当发现匹配的数据包时,应该如何处理。在snort中,有五种默认的处理方式:alert、log、pass、activate和dynamic。

1).alert:使用选定的报警 *** 产生报警信息,并且记录数据包

2).log:记录数据包

3).pass:忽略数据包

4).activate:报警,接着打开其它的dynamic规则

5).dynamic:保持空闲状态,直到被activete规则激活,作为一条log规则

你也可以定义自己的规则类型,把它们和一个或者几个输出插件联系在一起。然后你就可以在snort规则中使用这些规则类型了。

这个例子将建立一个类型,它将只以tcpdump格式输出日志:

ruletype suspicious

{

type log

output log_tcpdump: suspocious.log

}

下面这个例子将建立一个类型,把日志发送到syslog和MySql数据库:

ruletype redalert

{

type alert

output alert_syslog:LOG_AUTH LOG_ALERT

output database:log,user=snort dbname=snort host=localhost

}

2.2.协议

每条规则的第二项就是协议项。当前,snort能够分析的协议是:TCP、UDP和ICMP。将来,可能提供对ARP、ICRP、GRE、OSPF、RIP、IPX等协议的支持。

2.3.IP地址

规则头下面的部分就是IP地址和端口信息。关键词any可以用来定义任意的IP地址。snort不支持对主机名的解析。所以地址只能使用数字/CIDR的形式。/24表示一个C类 *** ;/16表示一个B类 *** ;而/32表示一台特定的主机地址。例如:192.168.1.0/24表示从192.168.1.1到192.168.1.255的地址。

在规则中,可以使用使用否定操作符(negation operator)对IP地址进行操作。它告诉snort除了列出的IP地址外,匹配所有的IP地址。否定操作符使用!表示。例如,使用否定操作符可以很轻松地对表1的规则进行改写,使其对从外部 *** 向内的数据报警。

alert tcp !192.168.1.0/24 any - 192.168.1.0/24 111(content:"|00 01 86 a5|";msg:"external mountd access"

表4.使用IP地址否定操作符的规则

上面这条规则中的IP地址表示:所有IP源地址不是内部 *** 的地址,而目的地址是内部 *** 地址。

你也可以定义一个IP地址列表(IP list)。IP地址列表的格式如下:

[IP地址1/CIDR,IP地址/CIDR,....]

注意每个IP地址之间不能有空格。例如:

alert tcp ![192.168.1.0/24,10.1.1.1.0/24] any -[192.168.1.0/24,10.1.1.0/24] 111 (content:"|00 01 86 a5|";msg:"external mountd access"

2.4.端口号

在规则中,可以有几种方式来指定端口号,包括:any、静态端口号(static port)定义、端口范围,以及使用非操作定义。any表示任意合法的端口号;静态端口号表示单个的端口号,例如:111(portmapper)、23(telnet)、80(http)等。使用范围操作符:可以指定端口号范围。有几种方式来使用范围操作符:达到不同的目的,例如:

log udp any any - 192.168.1.0/24 1:1024

记录来自任何端口,其目的端口号在1到1024之间的UDP数据包

log tcp any any - 192.168.1.0/24 :600

记录来自任何端口,其目的端口号小于或者等于6000的TCP数据包

log tcp any :1024 - 192.168.1.0/24 500:

记录源端口号小于等于1024,目的端口号大于等于500的TCP数据包

表5.端口范围示例

你还可以使用逻辑非操作符!对端口进行非逻辑操作(port negation)。逻辑非操作符可以用于其它的规则类型(除了any类型,道理很简单)。例如,你如果要日志除了X-window系统端口之外的所有端口,可以使用下面的规则:

log tcp any any - 192.168.1.0/24 !6000:60 10

表6.对端口进行逻辑非操作

2.5.方向操作符(direction operator)

方向操作符-表示数据包的流向。它左边是数据包的源地址和源端口,右边是目的地址和端口。此外,还有一个双向操作符,它使snort对这条规则中,两个IP地址/端口之间双向的数据传输进行记录/分析,例如telnet或者POP3对话。下面的规则表示对一个telnet对话的双向数据传输进行记录:

log !192.168.1.0/24 any 192.168.1.0/24 23

表7.使用双向操作符的snort规则

activate/dynamic规则

activate/dynamic规则对扩展了snort功能。使用activate/dynamic规则对,你能够使用一条规则激活另一条规则。当一条特定的规则启动,如果你想要snort接着对符合条件的数据包进行记录时,使用activate/dynamic规则对非常方便。除了一个必需的选项activates外,激活规则(activate rule)非常类似于报警规则(alert rule)。动态规则(dynamic rule)和日志规则(log rule)也很相似,不过它需要一个选项:activated_by。动态规则还需要另一个选项:count。当一个激活规则启动,它就打开由activate/activated_by选项之后的数字指示的动态规则,记录count个数据包。

下面是一条activate/dynamic规则对的规则:

activate tcp !$HOME_NET any - $HOME_NET 143 (flagsA;content:"|E8C0FFFFFF|in|;activates:1;msg:"IMAP buffer overflow!"

表8.activate/dynamic规则对

这个规则使snort在检测到IMAP缓冲区溢出时发出报警,并且记录后续的50个从$HOME_NET之外,发往$HOME_NET的143号端口的数据包。如果缓冲区溢出成功,那么接下来50个发送到这个 *** 同一个服务端口(这个例子中是143号端口)的数据包中,会有很重要的数据,这些数据对以后的分析很有用处。

3.规则选项

规则选项构成了snort入侵检测引擎的核心,它们非常容易使用,同时又很强大和容易扩展。在每条snort规则中,选项之间使用分号进行分割。规则选项关键词和其参数之间使用冒号分割。截止到写本文为止(snort 1.7版),snort有23个规则选项关键词:

1).msg:在报警和日志中打印的消息

2).logto:把日志记录到一个用户指定的文件,而不是输出到标准的输出文件

3).ttl:测试IP包头的TTL域的值

4).tos:测试IP包头的TOS域的值

5).id:测试IP分组标志符(fragment ID)域是否是一个特定的值

6).ipoption:查看IP选项(IP option)域

7).fragbits:测试IP包头的分片位(fragmentation bit)

8).dsize:测试数据包包数据段的大小

9).flags:测试TCP标志(flag)是否是某个值

10).seq:测试TCP包的序列号是否是某个值

11).ack:测试TCP包的确认(acknowledgement)域是否为某个值

12).itype:测试ICMP数据包的类型(type)域

13).icode:测试ICMP数据包的编码(code)域

14).icmp_id:测试ICMP回送包的标志符(ICMP ECHO ID)是否为某个值

15).content:在数据包的数据段中搜索模式(pattern)

16).conten

snort入侵检测技术

#snort -v【开启snort的嗅探功能】

在win10上ping 192.168.67.130

在Ubuntu上抓取到数据包

ctrl+C退出:自动统计数据

root@bt:~# cd /etc/snort

root@bt:/etc/snort# ls

classification.config  reference.config  snort.conf        unicode.map

community-sid-msg.map  rules            snort.debian.conf

gen-msg.map            sid-msg.map      threshold.conf

root@bt:/etc/snort# snort -c snort.conf

打开snort的安装目录下,查看文件夹下的文件,打开snort.conf

拖到最下面发现有error------复制如图的内容

编辑文档进行改错:# vi /etc/snort/rules/community- *** tp.rules

按insert进入编辑模式--------把第13行的!去掉------按ESC----:wq-----保存

再root@bt:/etc/snort# snort -c snort.conf,拖到最下面直到没有错误为止,有错误就重复上述内容

在xp上运行nmap 对bt5进行扫描

Snort输出统计信息

进入日志文件目录/var/log/snort

输入vi alert查看报警信息

报警信息 

0条大神的评论

发表评论