网络信息安全_网络攻防实验_snort+BASE入侵检测系统_snort规则_ICMP/TCP攻击


一、实验环境

系统环境:
VMware Workstation
Ubuntu 18.04 LTS
Wimdows10
软件环境:
Mysql / Apache2 / PHP 5.5 / SNORT / Barnyard2 / BASE

二、实验步骤

1.搭建 snort+BASE 入侵检测系统

1.1 安装snort

  1. 安装 DAQ
    在这里插入图片描述在这里插入图片描述在这里插入图片描述2)安装snort
    在这里插入图片描述在这里插入图片描述3) 测试

在这里插入图片描述4) 创建用户环境&配置文件目录&复制配置文件

在这里插入图片描述
在这里插入图片描述
5) 手动修改 snort.conf 配置
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述6) 添加本地规则

1. sudo vi /etc/snort/rules/local.rules
2. alert icmp any any -> $HOME_NET any (msg:"ICMP Test detected!!!"; classtype:icmpevent; sid:10000001; rev:001; GID:1; )
3. sudo vi /etc/snort/sid-msg.map
4. #v2
5. 1 || 10000001 || 001 || icmp-event || 0 || ICMP Test detected || url,tools.ietf.org/html/rfc792
  1. 测试配置文件
    在这里插入图片描述8) 测试功能
    sudo snort -A console -q -u snort -g snort -c /etc/snort/snort.conf -i ens33
    首先查看主机 ip 地址

在这里插入图片描述
在这里插入图片描述此时从外面 ping 网口 ens33 的 IP, snort 会记录受到攻击,信息保存在
/var/log/snort 中,文件名为 snort.log.xxx
在这里插入图片描述
在这里插入图片描述

1.2 安装Barnyard2

  1. 安装 mysql
1. sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool
  1. 解压编译
    在这里插入图片描述
    在这里插入图片描述
2. ./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu
3. ./configure --with-mysql --with-mysql-libraries=/usr/lib/i386-linux-gnu
4. sudo make && sudo make install
  1. 测试
    在这里插入图片描述4) 设置配置文件
5. sudo cp ~/barnyard2-2-1.13/etc/barnyard2.conf /etc/snort/
6. # the /var/log/barnyard2 folder is never used or referenced
7. # but barnyard2 will error without it existing
8. sudo mkdir /var/log/barnyard2
9. sudo chown snort.snort /var/log/barnyard2
10. sudo touch /var/log/snort/barnyard2.waldo
11. sudo chown snort.snort /var/log/snort/barnyard2.waldo
  1. 配置数据库
12. ubuntu@ubuntu:~$ mysql -u root -p
13. mysql> create database snort;
14. mysql> use snort;
15. mysql> source ~/barnyard2-2-1.13/schemas/create_mysql;
16. mysql> CREATE USER 'snort'@'localhost' IDENTIFIED BY '123456';
17. mysql> grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';
18. mysql> exit;
  1. 添加数据库配置
1. sudo vi /etc/snort/barnyard2.conf
2. #在末尾添加数据库配置
3. output database: log, mysql, user=snort password=123456 dbname=snort host=localhost senso
r name=sensor01
4. 修改 barnyard2.conf 权限防止被修改
5. sudo chmod o-r /etc/snort/barnyard2.conf 
  1. 测试
1. # 开启 snort,并向 eth1 发送 ping 数据包
2. sudo snort -q -u snort -g snort -c /etc/snort/snort.conf -i ens33
3. # 开启 barnyard2,将日志信息存入数据库
4. # 1.连续处理模式,设置 barnyard2.waldo 为书签
5. sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -
w /var/log/snort/barnyard2.waldo -g snort -u snort
6. # 2.文件处理模式,处理单个日志文件
7. sudo barnyard2 -c /etc/snort/barnyard2.conf -o /var/log/snort/snort.log.xxx
8. # 查看数据库条目数量,看是否增加
9. mysql -u snort -p -D snort -e "select count(*) from event"

在这里插入图片描述在这里插入图片描述

1.3 安装 PulledPork

  1. 解压并安装
1. tar xzvf pulledpork-v0.7.3.tar.gz
2. cd pulledpork-v0.7.3/
3. sudo cp pulledpork.pl /usr/local/bin
4. sudo chmod +x /usr/local/bin/pulledpork.pl
5. sudo cp etc/*.conf /etc/snort
  1. 测试
6. ubuntu@ubuntu:~$ pulledpork.pl -V
7. PulledPork v0.7.3 - Making signature updates great again!
  1. 配置
8. sudo vi /etc/snort/pulledpork.conf
9. #第 19 行:输入注册账户生成的 oinkcode,若没有则注释掉
10. #第 29 行:取消注释可下载针对新兴威胁的规则
11. #第 74 行:更改为:
12. rule_path = /etc/snort/rules/snort.rules
13. #第 89 行:更改为:
14. local_rules = /etc/snort/rules/local.rules
15. #第 92 行:更改为:
16. sid_msg = /etc/snort/sid-msg.map
17. #第 96 行:更改为:
18. sid_msg_version = 2
19. #第 119 行:更改为:
20. config_path = /etc/snort/snort.conf
21. #第 133 行:更改为:
22. distro = Ubuntu-12-04
23. #第 141 行:更改为:
24. black_list = /etc/snort/rules/iplists/black_list.rules
25. #第 150 行:更改为:
26. 19. IPRVersion = /etc/snort/rules/iplists
27. sudo vi /etc/snort/snort.conf
28. #第 548 行添加
29. include $RULE_PATH/snort.rules
  1. 更新规则
1. sudo /usr/local/bin/pulledpork.pl -c /etc/snort/pulledpork.conf -l
  1. 测试规则
 1. sudo snort -T -c /etc/snort/snort.conf -i eth0

1.4 创建服务

  1. 创建 Snort 服务
1. sudo vi /lib/systemd/system/snort.service
2. [Unit]
3. Description=Snort NIDS Daemon
4. After=syslog.target network.target
5. [Service]
6. Type=simple
7. Restart=always
8. ExecStart=/usr/local/bin/snort -q -u snort -g snort -c /etc/snort/snort.conf -i ens33
9. [Install]
10. WantedBy=multi-user.target
11. sudo systemctl enable snort
12. sudo systemctl start snort
13. sudo systemctl status snort
  1. 创建 Barnyard2 服务
1. sudo vi /lib/systemd/system/barnyard2.service
2. [Unit]
3. Description=Barnyard2 Daemon
4. After=syslog.target network.target
5. [Service]
6. Type=simple
7. Restart=always
8. ExecStart=/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -q -
w /var/log/snort/barnyard2.waldo -g snort -u snort -D -a /var/log/snort/archived_logs --pidpath=/var/run
9. [Install]
10. WantedBy=multi-user.target
11. sudo systemctl enable barnyard2
12. sudo systemctl start barnyard2
13. sudo systemctl status barnyard2

1.5 安装 BASE

  1. 解压
1. tar xzvf base-1.4.5.tar.gz
2. sudo mv base-1.4.5 /var/www/html/base/
  1. 配置
3. cd /var/www/html/base
4. sudo cp base_conf.php.dist base_conf.php
3.
5. sudo vi /var/www/html/base/base_conf.php
6. $BASE_Language = 'simplified_chinese'; # line 27
7. $BASE_urlpath = '/base'; # line 50
8. $DBlib_path = '/usr/share/php/adodb/'; #line 80
$alert_dbname = 'snort'; # line 102
9. $alert_host = 'localhost';
10. $alert_port = '';
11. $alert_user = 'snort';
12. $alert_password = '123456'; # line 106
13. // $graph_font_name = "Verdana";
14. // $graph_font_name = "DejaVuSans";
15. // $graph_font_name = "Image_Graph_Font";
16. $graph_font_name = "";
17.
18. sudo chown -R www-data:www-data /var/www/html/base
19. sudo chmod o-r /var/www/html/base/base_conf.php
20.
21. sudo service apache2 restart

在这里插入图片描述浏览器访问 http://localhost/base 进行访问
根据提示进行最后的配置,进入 mainpage

在这里插入图片描述

2.编写 snort 规则并开启 snort

  1. snort 规则
    Snort 规则被分成两个逻辑部分:规则头和规则选项。 规则头包含规则的
    动作,协议,源和目标 ip 地址与网络掩码,以源和目标端口信息; 规则选项
    部分包含报警消息内容和要检查的包的具体部分。
    Alert:使用选择的报警方法生成一个警报,然后记录(log)这个包。 Alert
    动作用来在一个包符合规则条件时发送告警消息。告警的发送有多种方式,
    例如可以发送到文件或者控制台。
    Snort 当前分析可疑包的 ip 协议有四种: tcp 、 udp、 icmp 和 ip。
  2. 编写三个 snort 规则
  1. 当它检测到电脑被大数据包攻击时,会发出一个报警
  2. 当它检测到电脑被网页访问时,会发出一个报警
  3. 当它检测到电脑被泛洪攻击时,会发出一个报警
    具体编写内容如下图所示:
    首先,运行命令 sudo gedit /etc/snort/rules/local.rules 打开文件:写入规则。

在这里插入图片描述在这里插入图片描述然后, 执行命令 sudo gedit /etc/snort/sid-msg.map,打开文件,写入镜像
信息。

在这里插入图片描述
3. 开启 snort 和 barnyard2
开启 snort,并向 eth1 发送 ping 数据包
执行命令 sudo snort -q -u snort -g snort -c /etc/snort/snort.conf -i ens33
开启 barnyard2,将日志信息存入数据库
连续处理模式,设置 barnyard2.waldo 为书签
执行命令 sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f
snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort
如下图所示:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3.大数据包攻击

Snort 规则:

1. alert icmp any any -> $HOME_NET any (msg:"ICMP pkt is big"; classtype:icmpevent;dsize:>200; sid:10000001; rev:001; GID:1; )

用 Windows10 的终端 ping ubuntu 的地址,设置发送数据包的大小,分
别发送大于 200 和小于 200 的数据包。当发送的数据包小于 200 时,视为小
数据包,此时不能检测,不发出报警; 当发送的数据包大于 200 时,被视为
大数据包,此时电脑检测出来,并发送一个报警。如下图所示:
在这里插入图片描述在这里插入图片描述接下来,访问浏览器 http://localhost/base,查看基于安全分析引擎(BASE),
我们可以看到电脑检测到了 ICMP 攻击。

在这里插入图片描述查看 ICMP 的详细信息, 可以看到 ID,特征,时间戳,来源地址,目标地
址和第四层协议等信息, 如下图所示:

在这里插入图片描述

4.TCP 攻击

Snort 规则:

alert tcp $HOME_NET any -> any 80 (msg: "示例警告"; classtype:miscattack;sid: 10000002; rev:001;)

用 Windows10 访问 192.168.59.136 网页,即发送了 TCP 消息,虚拟机
检测到 TCP,发出一个报警。如下图所示:
在这里插入图片描述在这里插入图片描述
接下来,访问浏览器 http://localhost/base,查看基本安全分析引擎(BASE),
我们可以看到电脑检测到了 TCP 攻击。
在这里插入图片描述查看 TCP 的详细信息,可以看到 ID,特征,时间戳,来源地址,目标地址
和第四层协议等信息,如下图所示:
在这里插入图片描述

5.泛洪攻击

Snort 规则:

alert tcp any any -> $HOME_NET any (msg:"synflood";flags:S; threshold:type both,track by_dst,count
3,seconds 10;classtype:misc-attack; sid:10000003; rev:001; GID:1; )

用另一个虚拟机进行 syn-flood 攻击, 如果 10 秒内超过 3 个包就发出警
报。 执行 sudo hping3 -p 22 -S --rand-source --flood 192.168.254.133 命令进行
攻击。
在执行上句命令之前,需要先执行 sudo apt install hping3 命令。
如下图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述检测到 TCP 泛洪攻击,发出一个报警。如下图所示:

在这里插入图片描述接下来,访问浏览器 http://localhost/base,查看基于安全分析引擎(BASE),
我们可以看到电脑检测到了 TCP 攻击。
查看 TCP 的详细信息,可以看到 ID,特征,时间戳,来源地址,目标地址
和第四层协议等信息,如下图所示:

在这里插入图片描述

三、结果分析

上述实验完成了大数据包攻击, TCP 攻击和泛洪攻击的入侵检测,电脑在遭
受到攻击时,会发出一个警报,如下图:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
并且将入侵消息记录在了基本安全分析引擎(BASE)中,如下图所示:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 13
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手可摘辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值