西安电子科技大学网络对抗原理选修课实验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有输出:
