信息安全保障技术实验二

信息安全保障技术实验二

一、实验原理

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

image-20210512144026476

图1

32位安装包在云班课中就有,名字叫Snort_13986.zip,64位的安装包叫to+64位+windows:Snort+npcap(64位).rar

单击Snort_2_9_11_1_Installer.exe运行,一直下一步就行,根据需要改一下软件的安装目录,但是目录中最好不要有中文,不要有空格

image-20210512144759610

图2

Ⅱ.验证安装

以管理员模式打开cmd

cd D:\Snort\bin  /*cd到snort安装的bin目录下*/
snort –W

image-20210512145456616

图3

显示出网卡信息则安装成功

image-20210512145758393

图4

在网络中查看网卡的对应关系,发现余下的三个网卡都叫Microsoft,只能根据前面的IP来对这三个网卡进行区分

ipconfig

image-20210510155702498

图5

在无线局域网适配器WLAN2的IPv6地址中找到44bb:78f9与网卡1相对应,所以之后的抓包都应该针对网卡1来进行

Ⅲ.安装Snort规则库

方法一:

去Snort的官网下载Snort的规则库,必须先注册成会员,才可以下载。具体下载地址为snort,往下拉到Rules,看见Registered是灰色的,我们点击Sign in,然后再回到这个页面进行下载(未注册是灰色的点不了)

image-20210512150545607

图6

方法二:

云班课内有已经下载号的压缩包,名字叫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

image-20210512151631819

图7

在242行左右找到dynamicpreprocessor directorydynamicengine,将自己的目录填入

dynamicpreprocessor directory D:\Snort\lib\snort_dynamicpreprocessor
dynamicengine D:\Snort\lib\snort_dynamicengine\sf_engine.dll

image-20210512184556803

图8

在522左右找到syslog进行如下修改

output alert_syslog: host=127.0.0.1:514, LOG_AUTH LOG_ALERT

image-20210512185138877

图9

2.试运行

snort –v –i1

image-20210512190124855

图10

3.修改Snort 工作为NIDS 模式

snort -dev -l "D:\Snort\log" -h 192.168.7.249/24 -c "D:\Snort\etc\snort.conf"

image-20210510162347049

图11

报了个小错,后面再改

4.修给配置文件(解决报错)

将访问配置文件中的黑白名单(及其具体部分)注释掉,但一般已经注释过了,只需要检查即可

image-20210512190946499

图12

将可能妨碍结果的除了 local.rules 之外的规则全部注释或删除

image-20210512191208158

图13

在文件中将报错的部分注释掉,将上一行的斜杠删去(不允许以斜杠结尾)

image-20210512191454692

图14

否则会报如下的错

image-20210510164639146

图15

将自己编写的规则保存在 local.rules 中

image-20210512191321706

图16
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

image-20210510204744303

图17

其中一个包

Ⅴ.分析抓到的包

1.警告日志

log文件夹下的alert.ids,记录了警告的信息,可以发现访问者(手机)的IP为192.168.7.97

image-20210510205106190

图18

2.分析HTTP报文

image-20210510205039901

图19

Mozilla/5.0 是浏览器的意思;

Accept-Encoding是指HTTP压缩: Web服务器和浏览器之间压缩传输的”文本内容“的方法。 HTTP采用通用的压缩算法,比如gzip来压缩HTML,Javascript, CSS文件。 能大大减少网络传输的数据量,提高了用户显示网页的速度

Android 11是手机的系统版本

使用的是XiaoMi/MiuiBrowser浏览器访问的网页

连接方式是保持连接

四、遇到的问题及解决方法

一开始我将snort安装在D:\Program Files下,中间有一个空格,在加载配置的时候会误认为是在Files\XXX,因此就会因为找不到对应的文件而报错,如下图所示:

image-20210512193903734

图20

根据网上的说法可以将D:\Program Files改写为D:\Progra~1,但是在243行这个位置还是识别不了(104行就可以)

image-20210512194139967

图21

解决方法最终只能是直接在D盘目录下重新装一次

五、实验体会

经过本次实验,我对Snort的入侵检测机制有了一定的了解,会自己写一些简单的入侵检测规则,结合课上所讲的知识,能看懂一些相对复杂的一些有固定用途的语句,根据之前老师讲的代码可以用java写一个简单的网站实现注册登录功能,可以大致读懂一个HTTP包,学会了怎么配Snort,利用其抓包,入侵检测等。

原文地址:https://www.cnblogs.com/wqnmlkb/p/14761462.html