20232831 2023-2024-2 《网络攻防实践》第5次作业

news2024/11/29 11:30:21

目录

  • 20232831 2023-2024-2 《网络攻防实践》第5次作业
    • 1.实验内容
      • (1)防火墙配置(具体IP配置参考自己的IP设置)
      • (2)动手实践:Snort
      • (3)分析配置规则
    • 2.实验过程
    • 3.学习中遇到的问题及解决
    • 4.学习感悟、思考等
    • 参考资料


20232831 2023-2024-2 《网络攻防实践》第5次作业

1.实验内容

(1)防火墙配置(具体IP配置参考自己的IP设置)

任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:

①过滤ICMP数据包,使得主机不接收Ping包;
②只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问

(2)动手实践:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

(3)分析配置规则

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

2.实验过程

(1)防火墙配置(具体IP配置参考自己的IP设置)
①过滤ICMP数据包,使得主机不接收Ping包

虚拟机名称IP地址
Kali-Linux攻击机(Vmnet8网段192.168.200.4
Metasploitable-Linux靶机 (Vmnet1网段192.168.200.123

首先,打开Kali和Metasploitable-Linux,并使用以下代码在Kali虚拟机上进行iptables的安装

sudo apt-get install iptables

在这里插入图片描述

安装完毕后,使用以下命令进行打开iptables,可以先查看到已经存在的默认规则

sudo iptables -L

在这里插入图片描述
完成工具的安装后,先测试攻击机与靶机之间的连通性,发现二者是能够互ping的,这样才能进一步进行实验,即过滤Icmp,从而阻止二者互ping。
在这里插入图片描述
在这里插入图片描述

使用以下命令,使得Kali主机过滤掉所有的ICMP包,这样就无法建立ping连接,即无法互ping。

sudo iptables -A INPUT -p icmp -j DROP

在这里插入图片描述
再次互ping,可以发现icmp包全部不见,因为已经被过滤掉了,所以无法接受icmp,导致互ping失败
在这里插入图片描述
在这里插入图片描述
在Kali中打开wireshark可以发现,icmp包均被防火墙拦截,因此无法从kali攻击机发出
在这里插入图片描述
②只允许特定IP地址

虚拟机名称IP地址
Kali-Linux攻击机(Vmnet8网段192.168.200.4
Metasploitable-Linux靶机 (Vmnet1网段192.168.200.123
WinXPattacker靶机 (Vmnet8网段192.168.200.2

首先,为了进行该部分的测试,得在Kali上安装两个工具,分别是FTP(21号端口)和Telnet(23号端口)两个工具
使用以下命令进行FTP和Telnet的安装与端口的打开

sudo apt-get install xinetd telnetd #安装telnet
sudo apt-get install vsftpd #安装ftp

/etc/init.d/xinetd start #开启telnet
/etc/init.d/xinetd status

/etc/init.d/vsftpd start #开启ftp
/etc/init.d/vsftpd status

在这里插入图片描述
在这里插入图片描述
在Metasploitable-Linux和WinXPattacker上使用ftp进行Kali的连接,均可连接上

ftp 192.168.200.4

在这里插入图片描述
在这里插入图片描述
再分别使用以下命令进行telnet远程连接,结果发现二者均被拒绝,猜测是仅仅打开telnet服务是无法使用的

telnet 192.168.200.4

在这里插入图片描述
在这里插入图片描述
进过查询资料以及chatgpt得知,仅仅打开telnet服务是不够的,还需要检查Kali虚拟机的防火墙状态,只有关闭防火墙才能使用telnet服务:

sudo apt-get install ufw #安装ufw命令
sudo ufw status #查看防火墙状态

在这里插入图片描述
然而,防火墙是关着的,因此还得查找原因

查找得知,原因也许还可能是

/etc/inetd.conf文件没有telnet相关内容

因此,打开以下文件,查看是否存在telnet的配置信息,如果没有则需要手动配置(一定得用sudo,否则权限不够,无法 修改文件)
修改 /etc/inetd.conf

sudo vim /etc/inetd.conf

添加以下内容:

telnet    stream     tcp    nowait    telnetd    /usr/sbin/tcpd    /usr/sbin/in.telnetd

在这里插入图片描述

在这里插入图片描述

修改/etc/xinetd.conf

sudo  vim  /etc/xinetd.conf

将全文内容修改替换为以下内容:

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d

在这里插入图片描述

此外,还需要添加默认的telnet配置
修改/etc/xinetd.d/telnet

sudo  vim  /etc/xinetd.d/telnet

添加以下内容:

# default: on
# description: The telnet server serves telnet sessions; it uses \
# unencrypted username/password pairs for authentication.
service telnet
{    
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}

在这里插入图片描述
此后,重启telnet服务

/etc/init.d/xinetd restart   

在这里插入图片描述
配置完成telnet后,重新进行telnet远程连接的测试
二者均成功连接:
在这里插入图片描述
在这里插入图片描述

因此,完成所有配置后,重新进行实验
输入以下代码,使得只有Metasploitable靶机才能进行访问Kali主机的21号端口,而WinXPattacker则不行,即首先,使用sudo iptables -P INPUT DROP扔掉所有与INPUT链中任何规则都不匹配的数据包,然后设置只接受来自IP地址为192.168.200.123的21号端口请求。

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp -s 192.168.200.123 --dport 21 -j ACCEPT

在这里插入图片描述
此后,再在两台虚拟机上进行Kali主机的连接,首先是Metasploitable,能够发现它能够连接kali的21号端口,但是无法连接23号端口

在这里插入图片描述
再在WinXPattacker上进行测试,能够发现二者均不可实现

在这里插入图片描述
在这里插入图片描述
若重新添加以下代码,添加21号端口后,则WinXPattacker上又可以连接21号端口了

sudo iptables -A INPUT -p tcp -s 192.168.200.2 --dport 21 -j ACCEPT

在这里插入图片描述

(2)动手实践:Snort

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

由于Kali里面安装snort总是失败,尝试多次无法进行,因此根据群内同学的建议,在SeedUbuntu中进行snort的安装并进行分析

通过以下代码,分析之前实验提供的listen.pcap文件(-c 表示选择snort配置文件,-r 表示从pcap格式的文件中读取数据包,-K ascii 用于指定输出日志文件为ASCII编码)

sudo snort -c /etc/snort/snort.conf -r listen.pcap -K ascii

在这里插入图片描述

通过以下命令可以查看日志

cd /var/log/snort
vim alert.1

在这里插入图片描述

在这里插入图片描述
可以看到,该文件中的攻击是使用nmap命令进行的,攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,可以看到端口号、IP地址等等信息,分析结果与之前的实验相同。

(3)分析配置规则
这部分的实验需要在蜜网网关上进行,首先进行防火墙的查看,分析防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
首先,使用以下命令进行查看

vim /etc/init.d/rc.firewall

在这里插入图片描述
首先,可以看到creat_chains函数,该函数有三块内容:BlackList、WhiteList和FenceList,它们存储了源地址和目的地址的黑名单、白名单、防护名单等等信息,并定义了相关规则。
在这里插入图片描述
下面在start()函数中进行查看(creat_chains函数在上面已经解释,下面省略)
在这里插入图片描述
load_modules():这个函数用于加载所需的内核模块,以支持防火墙所需的功能。它可能会加载类似iptable_filter、iptable_nat等模块,这些模块提供了防火墙规则和网络地址转换(NAT)等功能所需的支持。

flush():这个函数用于清除并创建防火墙中的链(chains)。链是防火墙规则的容器,用于对网络流量进行分类和处理。这个函数通常会清除现有的防火墙链,并创建所需的链,如输入链(INPUT)、输出链(OUTPUT)和转发链(FORWARD)等。

default_policy():这个函数用于设置防火墙的默认策略。默认策略定义了当没有匹配的防火墙规则时如何处理网络流量。例如,它可以指定默认允许或默认拒绝所有流量。这个函数通常会设置默认策略,如允许输入链(INPUT)和输出链(OUTPUT)的默认行为。

local_host_policy():这个函数用于设置本地主机(即蜜网网关自身)的策略。它可能包含一些针对本地主机的特定防火墙规则和策略设置,以确保本地主机的安全性。

management_policy():这个函数用于设置管理策略,通常是指允许或限制对蜜网网关的管理访问的策略。这可能包括允许特定IP地址或网络对蜜网网关进行管理操作(如SSH登录、Web管理界面等),以及限制其他来源的管理访问。
使用以下命令进行iptables规则表的查看

iptables -L

在这里插入图片描述
使用以下命令进行相关snort规则的查看,可以看到eth0这一网络接口的配置情况,即虚拟网卡端口eth0的规则

vim /etc/init.d/snortd

在这里插入图片描述
使用以下命令可以看到Snort_inline运行时的一些相关参数,例如Snort Inline 的路径信息、配置和相关的脚本等等信息,涉及启动、停止、重启 Snort Inline 服务的逻辑,以及其他与配置和管理 Snort Inline 相关的功能。

vim /etc/init.d/hw-snort_inline

在这里插入图片描述
通过以下命令,可以查看一些服务情况,例如以下命令查看iptables和snort的情况,下面如果是on,则该服务是开机自动启动的,如果是off,则是需要手动打开的。

chkconfig --list | grep iptables
chkconfig --list | grep snort

在这里插入图片描述

总结:

蜜网网关通过配置防火墙和入侵检测系统/入侵防御系统(IDS/IPS)的规则,实现了攻击数据的捕获和控制需求。防火墙规则用于过滤和控制网络流量,它可以限制对蜜网网关的访问,并允许只有特定的攻击流量进入。而IDS/IPS规则则用于检测和防御具体的攻击行为,当攻击流量被检测到时,IDS/IPS会触发警报或采取相应的防御措施,如阻止攻击流量或发送通知。通过这样的配置,蜜网网关能够诱使攻击者将其注意力集中在虚拟网络上,同时捕获攻击数据并对其进行分析和响应,以进一步加强网络的安全性。

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

  • 问题1:telnet服务无法使用
  • 问题1解决方案:检查发现问题,从是否是防火墙的问题到是否配置了telnet,一路排错,最终解决
  • 问题2:snort无法在Kali上实现使用
  • 问题2解决方案:与之前的实验一样,仍然在SeedUbuntu上进行snort工具的使用和分析

4.学习感悟、思考等

在这次实践中,通过防火墙设置,实现了过滤ICMP数据包,禁止了Ping请求,并限制了特定IP地址访问主机的特定网络服务。此外,还使用Snort对给定的pcap文件进行入侵检测,并成功获得了报警日志。最后,通过在蜜网网关上进行分析配置规则,进一步深入了解了防火墙、蜜网网关等相关知识。通过这些配置和工具的应用,提高了我对蜜网网关的安全性和防御能力的理解,使得更深入地理解了防火墙和入侵检测技术在攻防环境中的重要作用。

参考资料

  • Ubuntu无法telnet
  • ubuntu 配置telnet服务,内含遇到的问题+转载如何配置

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

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

相关文章

知了汇智鸿蒙系列讲座进校园,赋能产业数字化升级,助力创新人才培养

随着信创国产化战略的深入推进,以及万物互联时代的加速到来,信息技术产业正迎来前所未有的发展机遇。在这一背景下,成都知了汇智科技有限公司作为产教融合领域的先行者,积极响应国家号召,通过举办鸿蒙系列讲座进校园活…

算法与程序设计(实验2)----分治法求最近点对问题

一.实验目的 掌握分治法思想。学会最近点对问题求解方法。 二、实验内容 1. 对于平面上给定的N个点,给出具有最短距离的两点。 2. 要求随机生成N个点的平面坐标,应用蛮力法编程计算出所有点对的最短距离。 3. 要求随机生成N个点的平面坐…

unity动画的关键帧添加event-同步语音

在iclone中做的语音嘴型动画,因是用下图自带的方式语音生成的动画,而不是用plugin(面捕live会连同语音一起导出),所以导出来到Unity中,之后口型、动作、表情等没有声音。 我需要把原有的语音也重新在unity中加载上,原来…

[lesson19]对象的构造(下)

对象的构造(下) 特殊的构造函数 两个特殊的构造函数 无参构造函数 没有参数的构造函数当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空 拷贝构造函数 参数为const class_name&的构造函数当类中没有定义拷贝构造函数时&…

React复习全攻略:浅尝Redux的全局滋味

是什么? Redux 是一个使用叫做 “action” 的事件来管理和更新应用状态的模式和工具库 提供全局状态数据的单一仓库(对象树),管理应用的全局状态单一数据源,状态只读,状态修改只由纯函数完成 为什么用(特点…

C语言操作符详解(三)

一、表达式求值 1.1整型提升 C语言中整型算术运算总是至少以缺省整型类型的精度来进行的。 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。 如何进行整型提升呢? 1. 有符号整数提升是按…

如何理解Fourier Neural Operator (FNO)

写这篇blog是因为多方参考才读懂这两篇文章,希望能用自己的语言表达出来加深一下理解。因为是刚刚开始学习这部分内容,错误之处敬请指出。 文章目录 前言算子Operator概念理解问题建立Graph Neural Operator的思想证明采样多少个数据点可以用来表示一组a…

五金件外观检测机如何确保产品质量?

五金件是指由金属材料制成的各种零部件或制品,主要用于各种机械设备、工具、建筑结构以及其他领域。五金件通常由金属加工、铸造、锻造等方式制造,具有耐久性、强度高、稳定性强等特点。应用于工业制造、建筑、家具、汽车、电子产品等领域。 本案五金件尺…

Linux使用C语言实现Socket编程

Socket编程 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 网络套接字 socket: (电源)插座(电器上的)插口,插孔,管座 在通信过程中, 套接字是成对存在的, 一个客户端的套接字, 一个…

佛山市人工智能产业生态交流会:实在智能Agent引领“智造浪潮”

制造业,实体经济的核心,技术创新的先锋,供给侧结构性改革的关键。在新一轮产业竞争中,数字化转型成为制造业升级的必由之路,是引领未来的重要抓手。 为促进数字经济赋能实体经济,加快人工智能技术的推广应用…

Object类里面的clone方法与接口cloneable的理解

文章目录 前言一、Object类二、Cloneable接口 前言 今天在进行使用clone方法时产生了一个疑问,为什么Object类明明有clone()方法,但为什么还要加上cloneable这个接口呢,下面我们就来解答一下为什么要重写clone()方法非要加上cloneable接口&a…

Ant Design 表单基础用法综合示例

Ant Design 的表单组件设计得非常出色,极大地简化了表单开发的复杂度,让开发者能够快速构建出功能丰富、交互友好的表单界面。 接下来总结一下 Ant Design 中表单的基本用法。 Form 组件 用于定义整个表单,可以设置表单的布局方式、提交行为等。通常会将表单字段组件嵌套在 F…

Meta宣布全新训推一体加速器:完全集成PyTorch 2,性能3倍提升

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 Meta 疯狂砸入数十亿美元,一部分招揽人才,一部分造芯片。 Meta 正在不…

用户状态保持机制-Session

0、业务需求 会话:web应用中的会话是指一个客户端浏览器和服务器之间连续发生的一系列请求和响应的过程。 会话状态:web应用中的会话状态是指web服务器与浏览器在会话过程中产生的状态信息,借助会话状态,服务器能够把属于同一会话…

1572. 【基础赛】涂色(paint)

1572. 【基础赛】涂色(paint) (Input: paint.in, Output: paint.out) 时间限制: 2 s 空间限制: 256 MB 具体限制 题目描述 Introl获得了一个N行的杨辉三角,他将每行中值为奇数的位置涂为了黑色。 Chihiro将提出M次询问,在第L…

51单片机上面的IIC协议

1、什么是IIC协议 2、模拟IIC协议 51单片机上面是没有与IIC协议相关的寄存器的(没有相关的硬件),不像串口可以配置对应的寄存器达到目的(比如修改波特率9600 or 115200),要配置IIC只能够根据用户手册里面的…

【LeetCode】单调栈类题目详解

所有题目均来自于LeetCode,刷题代码使用的Python3版本 单调栈 通常针对一维数组的问题,如果需要寻找一个元素右边或者左边第一个比自己大或者小的元素的位置,就可以使用单调栈,时间复杂度为O(n) 单调栈的本质是空间换时间&#…

[AIGC] Spring中的SPI机制详解

文章目录 1. 什么是SPI2. Spring中的SPI机制3. Spring SPI的工作流程4. Spring SPI的应用 1. 什么是SPI SPI (Service Provider Interface)是Java中服务提供者接口的缩写,它是Java提供的一种用于被第三方实现或扩展的接口,SPI的作…

2024 年最新前端工程师使用 Webpack 模块打包工具详细教程(更新中)

概述 Webpack 模块打包工具 Webpack 是一个现代的静态模块打包工具,用于将前端应用程序的各种资源(例如如:JavaScript、CSS、图片等)视为模块,并将它们打包成可以在浏览器中运行的静态文件。它的主要功能包括模块打包…

对 FileReader 的理解

1、文档 FileReader - Web API 接口参考 | MDN 2、概念 FileReader 对象是一个内置的 JavaScript 对象,用于在客户端(浏览器)中异步读取文件内容。 它提供了一种在 Web 应用程序中读取文件数据的方式,可以读取文件内容并将其转…