zoukankan      html  css  js  c++  java
  • 信息安全保障技术实验二

    信息安全保障技术实验二

    一、实验原理

    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,利用其抓包,入侵检测等。

  • 相关阅读:
    数据库_连接查询
    日志
    日常小技巧
    『转载』OpenLayers 5 使用turf.js渲染克里金插值计算的等值面
    Openlayers3中如何优雅的表示等值面
    远程桌面拷贝超大文件
    turf.js intersect()裁剪存在空洞
    web worker示例demo
    meta标签作用
    geojson 标准格式学习
  • 原文地址:https://www.cnblogs.com/wqnmlkb/p/14761462.html
Copyright © 2011-2022 走看看