三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

西安电子科技大学网络对抗原理选修课实验2-基于Snort的入侵检测实验

西安电子科技大学网络对抗原理选修课实验2-基于Snort的入侵检测实验

目录

正式内容

修改配置文件

修改目录结构

正式实验


实验环境:windows11 x86_64

正式内容

网络对抗原理实验资料: https://pan.baidu.com/s/1JCwnzGBwYdpwsHxQbYvcPA 提取码: 1234 包含了报告所涉及的程序与文件,读者可以参考。

我充当主机1,也就是使用snort 检测网络。

首先我们下载了WinPcap4.1.3和snort2.9.16 (32 bit,下载32位软件以尝试适配WinPcap),在更改配置文件也就是snort.conf的部分内容之后,尝试运行snort2.9.16时,计算机提示说:此应用因为版本问题无法运行,请联系软件开发者。在网上查询一番之后,发现WinPcap是数十年前的产物,已经不再维护,适应不了windows11的版本,替代品是Npcap。于是我们就开始使用Npcap1.88以及Snort2.9.20尝试实验。

之后依据 ppt 内容,修改配置文件,也就是snort.conf。

修改配置文件

我做实验的时候不知道怎么修改配置文件,于是就一直尝试运行命令:

.\bin\snort.exe -T -c .\etc\snort.conf

之后,根据程序报错一点一点地更改配置文件,下面都是要更改的内容(配置文件的内容很多,不能全放进来):

读者可以在记事本或者VScode中打开 etc\snort.conf 文件,按 ctrl + f 搜索内容快速定位到要修改的位置,推荐搜索一行内容中的前几个单词,因为最后一个单词都是要修改的值,比如192.168.46.205/24 和 E:\Aapp\snort\rules,这些都是值。

ipvar HOME_NET 192.168.46.205/24 (ipconfig查看自己的ipv4地址以及子网掩码,查看之前应当连接同学的手机热点)

ipvar EXTERNAL_NET !$HOME_NET

# E:\Aapp\snort 替换为自己的下载地址

var RULE_PATH E:\Aapp\snort\rules

var SO_RULE_PATH E:\Aapp\snort\so_rules

var PREPROC_RULE_PATH E:\Aapp\snort\preproc_rules

var WHITE_LIST_PATH E:\Aapp\snort\rules

var BLACK_LIST_PATH E:\Aapp\snort\rules

dynamicpreprocessor directory E:/Aapp/snort/lib/snort_dynamicpreprocessor/

dynamicengine E:/Aapp/snort/lib/snort_dynamicengine/sf_engine.dll

dynamicdetection directory E:/Aapp/snort/lib/snort_dynamicrules

# 注释掉原来的output,加上ppt里面的output配置

# output unified2: filename merged.log, limit 128, nostamp, mpls_event_types, vlan_event_types

output unified2: filename snort.log, limit 128,mpls_event_types, vlan_event_types

# 注释一下的文件,否则程序会报错说找不到

# include classification.config

# include reference.config

# site specific rules

include $RULE_PATH/local.rules

# 剩下的这一片include全部注释

#include $RULE_PATH/app-detect.rules

#include $RULE_PATH/attack-responses.rules

….

# 注释最后一行的这个文件

# include threshold.conf

修改目录结构

然后修改文件结构(这一步也是通过程序不断报错而逐渐修改的)

把 etc\unicode.map 复制到根路径,因为报错说打不开文件:.\unicode.map,想到我运行命令的路径是在根路径,于是更改了这个文件的位置。

然后创建文件夹 so_rules,因为配置文件中有,我就加上了,但其实似乎没啥用。

然后在lib中添加成如上图所示的文件夹(只是新建文件夹,不需要往里面添加文件),这也是因为我看配置文件中提到了这个文件夹。

这是最后一张图片,在.\rules文件夹中添加如上的文件,都是因为在配置文件中提到过,然后运行程序时,提示说找不到这仨文件。

local.rules 这个文件是来写入一些规则的,在本次实验中我们写下两行规则:

alert icmp any any -> $HOME_NET any (msg:"ICMP Detective!!!"; sid:1000001; rev:1;)

alert tcp any any -> $HOME_NET 80 (msg:"HTTP Test NOW!!!"; sid:1000002; rev:1;)

一条规则写一行,不能中途换行。其中 any any 、$HOME_NET any、$HOME_NET 80等一对值应该分别代表IP地址和端口号。

(以上配置过程过多,我可能记不住导致漏写,读者要根据命令的报错信息修改配置文件)

最后再运行命令时:.\bin\snort.exe -T -c .\etc\snort.conf 发现报错:

ERROR: Active response: can't open ip!

说明配置成功。

正式实验

运行命令:.\bin\snort.exe -W 查看网卡信息

根据自己的ip地址,发现网卡应该是4号,这个数字就是命令参数 -i 之后的数字。

之后运行命令,注意带上-A console,否则日志会输出在log目录下(我自己查错查了10分钟才发现):

.\bin\snort.exe -i 4 -c .\etc\snort.conf -A console

之后我的同学(192.168.46.171)ping一下我的电脑(192.168.46.205),注意连接相同的手机热点:

205有输出:

171使用浏览器向205发送TCP请求报文:

205有输出:

← 返回列表