20211916 2021-2022-2 《网络攻防实践》第五次实践作业

1.实践内容

一、防火墙配置
任务要求:配置Linux操作系统平台上的iptables,并Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.6),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
二、动手实践:Snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。

2.实践过程

实践一:防火墙配置

(1)Linux系统配置

任务:配置Linux平台上的iptables,完成如下功能并测试:

1、过滤ICMP数据包,使主机不接受ping包。

2、只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。

实验环境 IP地址
seedUbuntu 192.168.200.3
linux Metasploitable 192.168.200.125
kali 192.168.200.6

过滤icmp数据包:

首先在SEED Ubuntu上通过iptables -L查看规则,发现都是默认规则。

通过指令iptables -A INPUT -p icmp -j DROP指令使得主机不接受icmp的数据包。-A是追加一条规则,INPUT表示数据包入口(规则),-p用于匹配协议,-j用于指定如何处理(ACTION)。此时再用iptables -L指令查看规则,发现已经更改,多了一条icmp针对任何位置不允许访问的规则。

分别用kali和linux靶机ping seed Ubuntu,发现ping不通。

允许特定IP地址访问主机的某一网络服务

这里选择:只允许Ubuntu访问Linux靶机的telnet服务。

首先使用iptables -D INPUT 1删除自定义规则。试着用kali ping一下ubuntu发现又可以ping通了。

分别在seed Ubuntu和kali上通过telnet登陆linux靶机,发现都可以登陆。

在Linux靶机中,使用iptables -I INPUT -p tcp --dport 23 -j DROP指令,拒绝所有tcp数据包访问Linux靶机telnet端口,此时,两个虚拟机都无法登陆Linux。

再执行指令iptables -I INPUT -p tcp --dport 23 -s 192.168.200.3 -j ACCEPT,允许seed Ubuntu访问telnet端口。使用iptables -L可查看到更新后的规则。

kali不能访问Linux靶机telnet端口:

seed Ubuntu可以访问Linux靶机telnet端口:

(2)Windows系统配置

任务:配置Windows平台上的iptables,完成如下功能并测试:

1、过滤ICMP数据包,使主机不接受ping包。

2、只允许特定IP地址访问主机的某一网络服务,而其他IP地址无法访问。
实验准备:准备两台实验用虚拟机,分别是A:kali,B:WinxP

实验环境 IP地址
winxp 192.168.200.2
kali 192.168.200.6
linux Metasploitable 192.168.200.125

过滤ICMP数据包操作过程:

首先在kali上ping WinXPattacker,可以ping通

打开WinXP,点击开始--控制面板--Windows安全中心--Windows防火墙--还原为默认值(还原为默认值后ICMP的设置里允许传入回显请求会被自动取消勾选),如图。

在kali上再次ping WinXPattacker ,已经无法ping通

允许特定IP地址访问主机的某一网络服务

首先确保kali和linux Metasploitable可以正常telnet WinXP,但是输入之后发现不能正常telnet WinXP,如图。

使得kali可以正常telnet WinXP,运行cmd,输入services.msc,跳出服务界面,找到Telnet,发现目前状态是已禁止,我们需要右键--属性,修改启动类型为自动或者手动,如图。

然后,再回到列表的Telnet,右键--启动,如图:

在cmd输入net start telnet,也显示已启动,表明启动成功,如图。

我的电脑--控制面板--Windows防火墙--高级--网络连接设置--勾选Telnet服务器,如图。

再回到kali和linux Metasploitable就可以正常telnet WinXP。

下面再WinXP设置IP安全策略来限制固定IP(kali的IP)访问。
创建安全策略:控制面板--管理工具--本地安全策略--IP安全策略右键--创建IP安全策略,进入设置向导,设置IP安全策略名称为“限制固定IP远程访问”,在警告提示框选择“是”,其他均保持默认点击下一步,如图。

添加阻止特定IP访问的筛选器。
点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”,如图。

以下为结果:

点击添加--自定义IP筛选器名称为“阻止特定IP远程访问”--添加--进入安全规则向导,如图。

点击下一步--源地址选择“一个特定的IP地址(Kali:192.168.200.6)”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息,如下图,再点击确定。

配置IP筛选器阻止的动作:在点确定后--选择配置的“阻止所有IP远程访问”,点击下一步,如图。

点击添加--选择阻止--确定,得到下图“新筛选操作”,代表的是阻止。

然后选中“新筛选操作”,点击下一步--完成,如图所示,至此我们添加好了阻止特定IP访问的筛选器。

添加允许特定IP访问的筛选器(跟添加阻止特定IP访问的筛选器步骤一样)
继续点击添加--点击添加--进入安全规则向导--一直保持默认设置点击下一步--遇到警告点击“是”,如图。

结果如下图。

点击添加--自定义IP筛选器名称为“允许特定IP远程访问”--添加--进入安全规则向导,如图。

点击下一步--源地址选择“一个特定的IP地址(linux Metasploitable:192.168.200.125 )”--下一步--目标地址选择“我的IP地址”--选择协议类型“TCP”--下一步--设置IP协议端口“从任意端口”“到此端口(输入23)”--下一步--完成。完成后,会在IP筛选列表看到添加的信息,如下图,再点击确定。

配置IP筛选器允许的动作:在点确定后--选择配置的“允许所有IP远程访问”,点击下一步。

点击添加--选择允许--确定,得到下图“新筛选器操作 (yunxu)”,代表的是允许。

然后选中“新筛选操作(yunxu)”,点击下一步--完成,如图所示,至此我们添加好了允许特定IP访问的筛选器。

应用我们刚刚配置的两个IP安全规则(允许特定IP远程访问和阻止特定IP远程访问)
指派此安全规则:右键“限制固定IP远程访问”——选择“指派”,至此所有工作配置完成,如图。

这样被阻止访问WinXP的Kali去telnet靶机WinXP,发现一直处于trying状态,而被允许访问WinXP的linux Metasploitable去telnet靶机WinXP发现可以连通,如图。


实践二:Snort

任务:使用Snort对给定的pcap文件进行入侵检测,并对检测出的攻击进行说明。

在BT4 Linux攻击机上使用Snort,对给给定的pcap文件进行入侵检测,获得报警日志。

Snort运行命令提示如下:

从离线的pcap文件读取网络日志数据源;
在snort.conf中配置明文输出报警日志文件;
指定报警日志log目录(或缺省log目录=/var/log/snort)。
这里件离线的pcap文件用的还是第四章的listen.pcap文件。

首先利用指令snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii对listen.pacp进行入侵检测,其中 -c 表示选择snort配置文件,-r 表示从pcap格式的文件中读取数据包,-K ascii主要是为了指定输出log文件的编码为ASCII(默认为binary)。

运行命令vim /var/log进入log文件夹,再不断ls寻找alert文件的正确路径:

之后在 snort.alert.fast中找到SCAN nmap XMAS的关于nmap的报警信息。

实践三:分析蜜网网关的防火墙和IDS/IPS配置规则。

任务:说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求

上述脚本是如何实现蜜网的数据捕获和数据控制?
获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。
蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
Snort规则是如何自动升级的?
1、上述脚本是如何实现蜜网的数据捕获和数据控制?

通常数据控制包括防火墙对数据的控制和IPS对异常数据的限制(snort_inline)。使用命令vim /etc/init.d/rc.firewall查看防火墙的文件,我们可以看到创建了三个链,分别是黑名单、白名单、防护名单(FenceList),

防火墙对源地址或者目的地址属于黑名单的主机:丢弃所有包。
对于属于白名单的主机:接受且不记录。
对于属于防护名单内的主机:禁止访问某些不希望被访问到的主机。

2、获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数。

获取IPTables的实际规则列表:先输入cd /etc/init.d进入init.d文件,通过 iptables -t filter -L来查看规则列表。

https://www.cnblogs.com/wyrr/p/12664350.html

获取Snort实际执行参数:通过vim snortd打开Snort脚本文件,可以看到些参数的选项:默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort。

获取Snort_inline的实际执行参数:执行命令vim hw-snort_inline打开snort_inline的脚本文件,可以看到到实际执行的参数。

3、密网网关开机之后,防火墙、NIDS、NIPS是如何启动的?

使用/sbin/chkconfig --list命令。可以发现NIDS的0~6都是off,说明需要手动启动,而防火墙和NIPS不全是off,是跟随系统启动的。

4、密网网关中的Snort规则是如何自动升级的?

工具Oinkmaster是Snort社区中的实际规则更新工具。使用命令find /etc/ -name "oinkmaster.*"查找到oinkmaster.conf 文件。

使用指令vim /etc/oinkmaster.conf 打开该文件,发现了snort.conf文件,可以推断这里使用工具Oinkmaster进行了snort的自动升级。

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

问题:遇到vm以独占方式锁定此配置文件失败,根据网上的步骤攻略把电脑系统中的服务程序全部禁用了,然后重启结果连开机密码都输入不了,陷入无限死循环。
解决:通过改变开机右下角的图标变成命令提示符,进入msconfig,再把系统服务打开即可,感谢邓烨同学的帮助。

4.学习感想和体会

网上的教程不能全信,我们要加以甄别,不要盲目相信网上的教程,尤其是碰到禁用系统服务程序的情况,我们要谨慎谨慎再谨慎,不然就会面临重装系统的痛苦!

posted @ 2022-04-15 10:39  banlichestnut  阅读(61)  评论(0编辑  收藏  举报