实验三入侵检测技术

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验单元三. 网络扫描

5.2 开发设计型实验

一、实验目的和要求

1.windows平台上Snort的安装和使用

2.检测外部网络远程登录内部网的非法请求

3.检测ICMP攻击报文

二、实验内容和原理

Snort能够对网络上的数据包进行抓包分析,但区别于其它嗅探器的是,它能根据所定义的规则进行响应及处理。Snort 通过对获取的数据包,进行各规则的分析后,根据规则链,可采取Activation(报警并启动另外一个动态规则链)、Dynamic (由其它的规则包调用)、Alert(报警),Pass(忽略),Log(不报警但记录网络流量)五种响应的机制。

Snort有数据包嗅探,数据包分析,数据包检测,响应处理等多种功能,每个模块实现不同的功能,各模块都是用插件的方式和Snort相结合,功能扩展方便。例如,预处理插件的功能就是在规则匹配误用检测之前运行,完成TIP碎片重组,http解码,telnet解码等功能,处理插件完成检查协议各字段,关闭连接,攻击响应等功能,输出插件将得理后的各种情况以日志或警告的方式输出。

Snort通过在网络TCP/IP的5层结构的数据链路层进行抓取网络数据包,抓包时需将网卡设置为混杂模式,根据操作系统的不同采用libpcap或winpcap函数从网络中捕获数据包;然后将捕获的数据包送到包解码器进行解码。网络中的数据包有可能是以太网包、令牌环包、TCP/IP包、802.11包等格式。在这一过程包解码器将其解码成Snort认识的统一的格式;之后就将数据包送到预处理器进行处理,预处理包括能分片的数据包进行重新组装,处理一些明显的错误等问题。预处理的过程主要是通过插件来完成,比如Http预处理器完成对Http请求解码的规格化,Frag2事务处理器完成数据包的组装,Stream4预处理器用来使Snort状态化,端口扫描预处理器能检测端口扫描的能力等;对数据包进行了解码,过滤,预处理后,进入了Snort的最重要一环,进行规则的建立及根据规则进行检测。规则检测是Snort

中最重要的部分,作用是检测数据包中是否包含有入侵行为。例如规则alert tcp any any ->202.12.1.0/24 80(msg:”misc large tcp packet”;dsize:>3000;)这条规则的意思是,当一个流入202.12.1.0这个网段的TCP包长度超过3000B时就发出警报。规则语法涉及到协议的类型、内容、长度、报头等各种要素。处理规则文件的时候,用三维链表来存规则信息以便和后面的数据包进行匹配,三维链表一旦构建好了,就通过某种方法查找三维链表并进行匹配和发生响应。规则检测的处理能力需要根据规则的数量,运行Snort机器的性能,网络负载等因素决定;最后一步就是输出模块,经过检测后的数据包需要以各种形式将结果进行输出,输出形式可以是输出到alert文件、其它日志文件、数据库UNIX域或Socket等。

三、实验项目

(1)windows平台上Snort的安装和使用

(2)检测外部网络远程登录内部网的非法请求

(3)检测ICMP攻击报文

四、实验所需软硬件

1)仪器设备条件:PC及其网络环境;

2)物质条件:Windows、Linux、Snort;

3)相关文献资料:教学网站所提供的电子文档。

五、操作方法与实验步骤

(1)Windows环境下Snort安装配置

所需软件

1 安装appserv-win32-2.5.10.exe

2 测试是否安装成功

打开浏览器,地址为“http://localhost:8080/test”

3 安装WinPcap_4_1_2.exe

4 安装Snort_2_9_0_4_Inst all er.exe

默认即可,完成后打开命令行测试是否安装成功命令为“C:\Snort\bin>snort -W”(W大写),如下图

5 配置数据库

打开浏览器,输入地址“http://localhost:8080/”,如图所示

创建snort和acid两个账户

6 启用php对MySql的支持

7 安装ad odb465.zip

8 安装jpgraph-3.5.0b1.tar

9 安装acid-0.9.6b23.tar

10 配置snort

11 添加snort规则库snortrul es-snapshot-2903.tar

12 测试snort

命令行中输入以下命令

C:\Snort\bin>snort -c "C:\Snort\etc\snort.conf" -l "C:\Snort\log" -d -e -X -i 2 如果未报错则安装成功,如图所示

打开浏览器,打开acid页面,效果如下

点击Most frequent n Alert,效果如图

这是用snort –v命令所抓的包:

(2)检测外部网络远程登录内部网的非法请求

实验用的内部网络(192.168.65.0/24)中开了telnet server,但是该server只让内部主机使

用,不允许从外部网络访问。我开启服务的ip是192.168.65.10

1.编辑/tmp/snort-

2.

3.0RC2/rules/local.rules文件,在文件的最后添加如下规则:

alert tcp !192.168.65.0/24 any ->192.168.65.0/24 23(msg:"External net attempt to

access 192.168.0/24 telnet server";classtype:attempted-recon;)

在/tmp/snort-2.3.0RC2/目录下面新建log目录以存放警告信息:

[root@localhost snort-2.3.0RC2]#mkdir /tmp/snort-2.3.0RC2/log

2.运行snort命令进行入侵检测:

[root@localhost snort-2.3.0RC2]#snort -c ./etc/snort.conf -l log -D

此时,运行ps -aux|grep snort 可看到snort已经在后台运行:

[root@localhost snort-2.3.0RC2]#pa -aux|grep snort

root 11628 7.2 11.3 8404 7002 ? S 15:18 0.06 snort -c ./etc/snort.conf -l log -D

root 11631 6.0 1.1 2120 744 pts/1 S 15:19 0:00 snort snort

可以发现,log目录下生成一个alert文件,但此时该文件大小为0

[root@localhost snort-2.3.0RC2]#ls -l log

total 0

-rw ----- l root root 0 6月4 15:20 alert

3.让处于不同子网内的同学试图telnet到机器上:

相关文档
最新文档