20231911 马星 2023-2024-2 《网络攻防实践》实践报五告

1.实践内容

1.1 防火墙配置

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
①过滤ICMP数据包,使得主机不接收Ping包;
②只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问。

1.2 动手实践:Snort
使用Snort对给定pcap文件进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源;
②在snort.conf中配置明文输出报警日志文件;
③指定报警日志log目录(或缺省log目录=/var/log/snort)。

1.3 分析配置规则

分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

2.实践过程

本次实践选取kali虚拟机、Metasploitable2-Linux虚拟机、win2k虚拟机和Ubuntu虚拟机的IP地址。实践第一部分是使用 ifconfig命令分别查看四台虚拟机的IP地址。

虚拟机IP地址
kali192.168.1.101
Metasploitable2-Linux192.168.200.123
win2k192.168.200.124
Ubuntu192.168.43.120

在Kali虚拟机输入命令:ifconfig查看虚拟机IP地址:
在这里插入图片描述在win2k虚拟机输入命令ipcconfig/all看虚拟机IP地址:
在这里插入图片描述在Metasploitable2-Linux虚拟机输入命令ifcconfig看虚拟机IP地址:
在这里插入图片描述在Ubuntu虚拟机输入命令ifcconfig看虚拟机IP地址:

在这里插入图片描述2.1 防火墙的配置
2.1.1 IPTables规则列表的显示

1.在Kali虚拟机中,首先用sudo su提权;再运行命令iptables -L,查看防火墙的配置情况:
由结果可见可见,Kali虚拟机并没有任何的防火墙措施。
在这里插入图片描述2.1.2 过滤数据包
1.在WinXPattacker攻击机中ping 192.168.200.3(即Kali虚拟机的IP地址):
如图所示能够正常ping通。
在这里插入图片描述2.在Kali虚拟机中添加过滤icmp数据包的规则。
在命令行输入指令:iptables -A INPUT -p icmp -j DROP:
其中-A是追加新规则于指定链的尾部,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)。
在这里插入图片描述再次输入命令iptables -L,查看防火墙的配置情况:
在这里插入图片描述3.再次在WinXPattacker攻击机中ping 192.168.1.101(即Kali虚拟机的IP地址):
发现再次ping时没法ping通了。
在这里插入图片描述4.在Kali虚拟机中运行命令iptables -D INPUT -p icmp -j DROP,删除添加的规则:
在这里插入图片描述再次在WinXPattacker攻击机中ping 192.168.1.101(即Kali虚拟机的IP地址):
发现在删除添加的规则后再次ping时又可以ping通了。
在这里插入图片描述
2.1.3 特定IP地址访问主机
1.在WinXPattacker攻击机输入telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet连接成功。
在这里插入图片描述在Kali虚拟机命令行中输入指令:telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet连接成功。
在这里插入图片描述2.在Metasploitable2-Linux虚拟机中运行命令:iptables -P INPUT DROP:
在这里插入图片描述再次在WinXPattacker攻击机输入telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现WinXPattacker攻击机无法成功telnet连接。
在这里插入图片描述再次在Kali虚拟机命令行中输入指令:telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现Kali虚拟机无法成功telnet连接。
在这里插入图片描述在Metasploitable2-Linux虚拟机中进行删除操作,输入iptables -L,查看防火墙的配置情况:
在这里插入图片描述4.再次在WinXPattacker攻击机输入telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet连接还是无法成功。
在这里插入图片描述再次在Kali虚拟机命令行中输入指令:telnet 192.168.200.123(即Metasploitable2-Linux虚拟机的IP地址):
可以发现telnet又可以连接成功。
在这里插入图片描述
2.1.4 静态包过滤与报文状态检查
在INPUT、OUTPUT、FORWARD等规则链对应的Hook点上定义检查单个数据包的包头信息,并通过书序遍历规则链中由用户定义的检查链表,如果匹配则执行,不匹配则执行默认操作。
对路由转发数据包进行检查,当数据包源IP地址属于192.168.0.0\24 C类网段,且目的地址属于192.168.1.0/24 C类网段,执行目标操作ACCEPT。

1.在Kali虚拟机中输入指令iptables -t filter -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT:
在这里插入图片描述在Kali虚拟机中输入iptables -L,查看防火墙的配置情况:
在这里插入图片描述允许已建立网络连接和相关网络连接通过防火墙。并输入指令:
iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT:
在这里插入图片描述2.1.5 SNAT机制与DNAT机制的实现
将通过路由转发的网络连接的源IP地址修改为1.2.3.4
通过在Kali虚拟机中输入指令:iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4将路由转发的网络连接的源IP地址修改为1.2.3.4;
通过在Kali虚拟机中输入指令:iptables -t nat -A PREROUTING -i eth1 -j DNAT --to 1.2.3.4将路由转发的网络连接的目的地址修改为1.2.3.4:
在这里插入图片描述2.2 Snort入侵检测
在Kali虚拟机中运行指令:
snort -r /home/kali/Desktop/listen.pcap -c /etc/snort/snort.conf -K ascii:
上述指令是对 listen.pacp 进行入侵检测, 其中-K ascii是用来指定输出日志文件的为ASCII编码。
在这里插入图片描述在这里插入图片描述在这里插入图片描述snort会在默认目录 /var/log/snort 生成一个日志文件。
输入命令cd /var/log/snort 进入文件夹。
通过vim /var/log/snort 命令打开snort日志:
在这里插入图片描述点击alert,可以看到,本次攻击是用nmap发起的,还可以看到端口号等等
在这里插入图片描述2.3 分析蜜网网关的配置规则

通常数据控制一般包括两个方面,一个是防火墙对数据的控制,还有一个是IPS对异常数据的限制(snort_inline)。如下的三个链,分别是黑名单、白名单、防护名单(FenceList)。所以,大致在上面的功能之上,增加了:
①防火墙对源地址或者目的地址属于黑名单的主机,丢弃所有包。
②对于属于白名单的主机,接受且不记录。
③对于属于防护名单内的主机,禁止访问某些不希望被访问到的主机。

1.使用命令vim /etc/init.d/rc.firewall查看防火墙的文件:

在这里插入图片描述在这里插入图片描述2.为了获取IPTables的实际规则列表:
首先先输入cd /etc/init.d进入init.d文件;
再输入 iptables -t filter -L来查看规则列表。
在这里插入图片描述3.在命令行输入指令:vim snortd,可以看到参数选项:
在这里插入图片描述4.输入指令:vim hw-snort_inline可以看到Snort_inline运行时参数,-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置:
在这里插入图片描述输入命令chkconfig --list|grep查看服务情况:
可以发现NIDS的0~6都是off,说明是需要手动启动的,而防火墙和NIPS不全是off,是跟随系统启动的。
使用命令vim /etc/honeywall.conf打开配置文件,找到update variables,可以看到其值为no,不自动更新:
在这里插入图片描述

3.学习中遇到的问题及解决

  • 问题:在蜜网使用命令vim /etc/init.d/rc.firewall查看防火墙的文件时总是报错。
  • 问题解决方案:在使用命令之前要输入su -进行提权。

4.实践总结

本次实践我学会了防火墙的配置、动手实践Snort以及分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则。对蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求也有进一步的认识。

参考资料

《网络攻防技术与实践》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JavaEE初阶系列】——网络编程 UDP客户端/服务器 程序实现

目录 🚩UDP和TCP之间的区别 🎈TCP是有连接的 UDP是无连接的 🎈TCP是可靠传输 UDP是不可靠传输 🎈TCP是面向字节流 UDP是面向数据报 🎈TCP和UDP是全双工 👩🏻‍💻UDP的socket ap…

共享IP和独享IP如何选择,两者有何区别?

有跨境用户在选择共享IP和独享IP时会有疑问,不知道该如何进行选择,共享IP和独享IP各有其特点和应用场景,选择哪种方式主要取决于具体需求和预算。以下是对两者的详细比较: 首先两者的主要区别在于使用方式和安全性:共…

使用c语言libexpat开源库解析XML数据

1 libexpat简介 Expat 是一个用 C 语言编写的开源 XML 解析库,以其高性能和小巧的体积著称。Expat 兼容多种操作系统平台,包括但不限于 Windows、Linux、macOS 等。由于其跨平台特性和简单易用的API,Expat 成为了许多C/C程序员解析XML文档的…

git安装配置教程(小白保姆教程2024最新版)

目录 一、Git是什么?二、安装Git1.下载git2.安装git3.检测git 三、配置Git1.配置本地信息2.配置SSH1)SSH与SSH Key是什么?2)生成SSH Key3)获取ssh key公钥内容(id_rsa.pub)4)Github账号上添加公…

【java数据结构-二叉树(上)】

java数据结构-二叉树(上) 二叉树的概念二叉树的节点介绍 二叉树构造如何使用兄弟表示法构造二叉树两种特别的二叉树二叉树的基本性质: 二叉树的存储二叉树的遍历:前序遍历:中序遍历:后序遍历:层…

【随笔】Git 基础篇 -- 远程仓库 git clone(二十五)

💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大…

如何本地搭建开源导航页配置服务Dashy并发布到公网分享好友使用

文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。[点击跳转到网站] 简介 Dashy 是…

学习C++有没有必要学习boost库?

在深入学习C这一强大且灵活的编程语言的过程中,是否有必要学习Boost库是许多开发者会面临的一个重要问题。Boost库,被誉为C的“瑞士军刀”,以其丰富的工具集和强大的功能性深受广大C程序员的喜爱。本文将就此问题进行详细的探讨。 一、Boost…

前端开发基础(HTML5 + CSS3)【第一篇】:HTML标签之文字排版、图片、链接、音频、视频 涵盖了两个综合案例 做到了基础学得会,实战写的出

点击前往前端开发基础专栏: 文章目录 HTML5 CSS3 开发一、开发环境搭建下载 VS Code1. 2 插件的下载1.3 项目和文件的下载 二、 什么是 HTML2.1 标签的语法2.2 代码演示:2.3 小结 三 、HTML基本骨架3.1 快捷键生成HTML骨架3.2 代码展示3.3 小结 四、标…

阿里淘天一面凉经

电话面,秒挂。 由于答的依托。导致面试官一开始就准备要挂我了。后面问的参考性不大。 总结: 1.自我介绍 2.项目里自己体会比较多的,遇到困难比较大的技术实现。(没复习) 3.项目中什么场景下用到分布式锁&#xf…

【Vit】Vision Transformer 入门与理解

在学习VIT之前,建议先把 Transformer 搞明白了:【transformer】入门与理解 做了那些改进? 看图就比较明白了,VIT只用了Encoder的部分,把每一个图片裁剪成若干子图,然后把一个子图flatten一下,…

【MATLAB源码-第12期】基于matlab的4FSK(4CPFSK)的误码率BER理论值与实际值仿真。

1、算法描述 4FSK在频移键控(FSK)编码的基础上有所扩展。FSK是一种调制技术,它通过在不同频率上切换来表示不同的数字或符号。而4FSK则是FSK的一种变种,表示使用了4个不同的频率来传输信息。 在4FSK中,每个数字或符号…

基于Java的图书借阅网站, java+springboot+vue开发的图书借阅管理系统 - 毕业设计 - 课程设计

基于Java的图书借阅网站, javaspringbootvue开发的图书借阅管理系统 - 毕业设计 - 课程设计 文章目录 基于Java的图书借阅网站, javaspringbootvue开发的图书借阅管理系统 - 毕业设计 - 课程设计一、功能介绍二、代码结构三、部署运行1、后端运行步骤2、…

PaddleDetection 项目使用说明

PaddleDetection 项目使用说明 PaddleDetection 项目使用说明数据集处理相关模块环境搭建 PaddleDetection 项目使用说明 https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.7/configs/ppyoloe/README_cn.md 自己项目: https://download.csdn.net/d…

Cheat Engine ceserver 连接手机记录

按照流程 电脑端的 cheat engine 7.5不显示任何内容 换一个 cheatengine 就好了 真神奇 链接:https://pan.baidu.com/s/14nMRHPEJ7enygI2nQf86YQ?pwdkxma 提取码:kxma

C++ stl容器vector的底层模拟实现

目录 前言: 1.成员变量,容量与大小 2.构造函数 无参构造: 带参的使用值进行构造: 使用迭代器区间进行构造: 3.交换 4.拷贝构造 5.赋值重载 6.迭代器 7.扩容 reserve: resize: 8.…

通过pre标签进行json格式化展示,并实现搜索高亮和通过鼠标进行逐个定位的功能

功能说明 实现一个对json进行格式化的功能添加搜索框,回车进行关键词搜索,并对关键词高亮显示搜索到的多个关键词,回车逐一匹配监听json框,如果发生了编辑,需要在退出时提示,在得到用户确认的情况下再退出…

30天精通Linux系统编程-----第一天:底层文件I/O (建议收藏)

目录 1.什么是底层文件I/O 2.底层文件I/O常用库函数 2.1 write函数 2.2 read函数 2.3 open函数 2.4 close函数 2.5 lseek函数 2.6 ioctl函数 2.7 fcntl()函数 2.8 pread()函数 2.9 pwrite()函数 1.什么是底层文件I/O 底层I/O指的是与硬件设备之间的直接输入输出操作…

Pytest精通指南(04)前后置和测试用例执行优先级

文章目录 Pytest 固件核心概念Pytest 固件原理Pytest 固件分类方法级函数级类级模块级夹具优先级测试用例执行优先级固件不仅如此后续大有文章 Pytest 固件核心概念 在 pytest 测试框架中,固件是一个核心概念; 它是一种特殊的函数,用于在测试…

蓝桥杯物联网竞赛_STM32L071KBU6_全部工程及国赛省赛真题及代码

包含stm32L071kbu6全部实验工程、源码、原理图、官方提供参考代码及国、省赛真题及代码 链接:https://pan.baidu.com/s/1pXnsMHE0t4RLCeluFhFpAg?pwdq497 提取码:q497