信息安全保障技术实验二
信息安全保障技术实验二
一、实验原理
Snort 有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是复杂的,而且是可配置的。我们可以让 Snort 分析网络数据流以匹配用户定义的一些规则,并根据检测结果取一定的动作。
实验要求 Snort 工作在 NIDS 模式,即网络入侵检测模式。D:\使用下面命令行可以启动这种模式:
Snort -dev -l D:\Snort\log -h 192.168.7.249/24 -c D:\Snort\etc\Snort.conf
Snort.conf 是规则集文件。Snort 会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果不指定输出目录,Snort 就输出到D:\Snort\log 目录。
二、实验内容
写一个 Snort 规则,当它检测到你的电脑被其他的电脑通过 HTTP 协议访问时,会发出一个报警。
三、实验步骤
Ⅰ.安装 Snort
如下图所示,我电脑上之前安装的wincap(wireshark带的)是32位的,所以snort也要装32位的,装了64位的会报错:
无法定位程序输入点pcap_inject于动态链接库于snort.exe
32位安装包在云班课中就有,名字叫
Snort_13986.zip
,64位的安装包叫to+64位+windows:Snort+npcap(64位).rar
单击
Snort_2_9_11_1_Installer.exe
运行,一直下一步就行,根据需要改一下软件的安装目录,但是目录中最好不要有中文,不要有空格
Ⅱ.验证安装
以管理员模式打开cmd
cd D:\Snort\bin /*cd到snort安装的bin目录下*/
snort –W
显示出网卡信息则安装成功
在网络中查看网卡的对应关系,发现余下的三个网卡都叫Microsoft,只能根据前面的IP来对这三个网卡进行区分
ipconfig
在无线局域网适配器WLAN2的IPv6地址中找到
44bb:78f9
与网卡1相对应,所以之后的抓包都应该针对网卡1来进行
Ⅲ.安装Snort规则库
方法一:
去Snort的官网下载Snort的规则库,必须先注册成会员,才可以下载。具体下载地址为snort,往下拉到Rules,看见Registered是灰色的,我们点击Sign in,然后再回到这个页面进行下载(未注册是灰色的点不了)
方法二:
云班课内有已经下载号的压缩包,名字叫
snortrules-snapshot-29160.tar.gz
下载成功后将压缩包解压(解压两次)Snort的安装文件夹内,点击全部是,将会替换成新的规则库
Ⅳ.修改配置文件
1.修改文件
打开
D:\Snort\etc\snort.conf
,在104行左右找RULE_PATH,SO_RULE_PATH,PREPROC_RULE_PATH这三个变量,将自己电脑上对应的目录填入
var RULE_PATH D:\Snort\rules
var SO_RULE_PATH D:\Snort\so_rules
var PREPROC_RULE_PATH D:\Snort\preproc_rules
在242行左右找到
dynamicpreprocessor directory
和dynamicengine
,将自己的目录填入
dynamicpreprocessor directory D:\Snort\lib\snort_dynamicpreprocessor
dynamicengine D:\Snort\lib\snort_dynamicengine\sf_engine.dll
在522左右找到
syslog
进行如下修改
output alert_syslog: host=127.0.0.1:514, LOG_AUTH LOG_ALERT
2.试运行
snort –v –i1
3.修改Snort 工作为NIDS 模式
snort -dev -l "D:\Snort\log" -h 192.168.7.249/24 -c "D:\Snort\etc\snort.conf"
报了个小错,后面再改
4.修给配置文件(解决报错)
将访问配置文件中的黑白名单(及其具体部分)注释掉,但一般已经注释过了,只需要检查即可
将可能妨碍结果的除了 local.rules 之外的规则全部注释或删除
在文件中将报错的部分注释掉,将上一行的斜杠删去(不允许以斜杠结尾)
否则会报如下的错
将自己编写的规则保存在 local.rules 中
alert tcp ![192.168.7.249/32] any -> 192.168.7.249/32 8080 (logto:”is1204”;msg:”this is is1204”; sid:1000001)
意思是除了本机之外的所有主机再任何端口访问呢本机的8080端口(http的默认端口)的tcp包,就识别为攻击,logto 表示将产生的信息记录到文件,msg 表示在屏幕上打印一个信息,sid 表示一个规则编号,如果不在规则中编写这个编号,则执行过程中会出错,而且这个编号是唯一的能够标识一个规则的凭证,1000000以上用于用户自行编写的规则。
5.搭建一个web网站
网址为http://192.168.7.249:8080/webtest_war_exploded/register.jsp
6.使用手机访问,抓包
抓包指令如下
snort -i1 -dev -A fast -l D:\Snort\log -c D:\Snort\etc\snort.conf
其中一个包
Ⅴ.分析抓到的包
1.警告日志
log文件夹下的
alert.ids
,记录了警告的信息,可以发现访问者(手机)的IP为192.168.7.97
2.分析HTTP报文
Mozilla/5.0 是浏览器的意思;
Accept-Encoding是指HTTP压缩: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascript, CSS文件。 能大大减少网络传输的数据量,提高了用户显示网页的速度
Android 11是手机的系统版本
使用的是XiaoMi/MiuiBrowser浏览器访问的网页
连接方式是保持连接
四、遇到的问题及解决方法
一开始我将snort安装在
D:\Program Files
下,中间有一个空格,在加载配置的时候会误认为是在Files\XXX
,因此就会因为找不到对应的文件而报错,如下图所示:
根据网上的说法可以将
D:\Program Files
改写为D:\Progra~1
,但是在243行这个位置还是识别不了(104行就可以)
解决方法最终只能是直接在D盘目录下重新装一次
五、实验体会
经过本次实验,我对Snort的入侵检测机制有了一定的了解,会自己写一些简单的入侵检测规则,结合课上所讲的知识,能看懂一些相对复杂的一些有固定用途的语句,根据之前老师讲的代码可以用java写一个简单的网站实现注册登录功能,可以大致读懂一个HTTP包,学会了怎么配Snort,利用其抓包,入侵检测等。