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

1.学习总结

1.1 安全模型

PDR安全模型:是一种基于时间的动态安全模型,并提出安全性可量化和可计算的观点。
P2DR安全模型:基于PDR安全模型提出,增加了Policy分析制定安全策略,并以此为核心,所有的防护、检测、响应都是依据安全策略实施的。

1.2网络安全防范技术与系统

1.2.1防火墙技术:防火墙技术属于一种网络上的访问控制机制,通过在不同网络安全域之间建立起安全控制点,通过对网络传输数据进行检查,根据具体的安全需求和策略设置是否允许网络访问通过防火墙。

防火墙的功能:检查控制进出的网络的网络流量、防止脆弱或不安全的协议和服务、防止内部网络信息的外泄、对网络存取和访问进行监控审计和防火墙可以强化网络安全策略并集成其他安全访问机制。
防火墙的不足:来自网络内部的安全威胁、通过非法外联的网络攻击和计算机病毒传播、针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击和基于隐蔽通道进行通信的特洛伊木马和僵尸网络。

1.2.2防火技术

包过滤技术:指网络设备(路由器或防火墙)根据包过滤规则检查所接收的每个数据包,做出允许数据包通过或丢弃数据包的决定。

基于状态检测的包过滤技术:也称动态包过滤。除了使用静态规则进行安全进行安全策略匹配,还进行数据包的网络连接的上下文关系探测,来确定是否允许通信。这种技术相比较传统的包过滤技术安全性更高,数据合法性得到了更有效的保障(对网络性能有一定的影响)。

代理技术:允许客户端通过代理与网络服务进行非直接的连接,也称“网络代理”。主要是客户端与代理服务器连接,代理服务器再与目标服务器连接。代理技术包括应用层代理(工作在应用层)、电路级代理(工作在传输层)和NAT代理(工作在网络层)等。
具体过程:客户端首先与代理服务器创建连接。接着发出一个对另外的目标服务器的文件或者其他资源的连接请求。代理服务器通过与目标服务器连接或从缓存中取得请求的资源,并返回给客户端。


1.2.3 Linux开源防火墙:netfilter/iptables

netfilter/iptables组合是目前Linux开源操作系统中普遍使用的防火墙技术解决方案。
netfilter是Linux内核中实现的防火墙功能模块
iptables是应用态的防火墙管理工具。
工作原理:
在nefilter/iptables防火墙系统中,netfilter组件位于Linux的内核空间中,实现了静态包过滤和状态报文检查(即动态包过滤)基本防火墙功能,此外也支持NAT网络地址转换等其他额外功能,并提供了多层API接口以支持第三方扩展,netfilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理,以及构建QoS或策略路由器等安全功能。Iptables则是工作在Linux用户空间中的防火墙配置工具,通过命令行方式允许用户为nefilter配置各种防火墙过滤和管理规则。

规则:
规则是用户预定义的,也是我们常说的防火墙规则,配置防火墙的主要工作就是添加、修改和删除这些规则。由一个目标和很多匹配组成。匹配如interface(e.g. eth0)、协议类型、源IP/端口、目的IP/端口等。目标是用户自定义的链、一个内置的特定目标或者是一个目标扩展,如ACCEPT、DROP、REJECT、SNAT、DNAT等。

链:
链是顺序执行规则的编排方式,在复杂的网络环境中,管理员需求这种可控的、有序执行的规则应用方式。iptables 提供了5条链:INPUT链、OUTPUT链、FORWARD链、路由前链(Pre-Routing)、路由后链(Post-Routing)。

表:
表的本质就是规则集的组织形式。iptables提供了以下5种表:filter表(包过滤处理)、nat表(网络地址转换)、mangle表(特殊目的数据包包修改)、raw表、security表(强制访问)。

1.3网络检测技术与系统

1.3.1入侵检测技术

入侵检测通过对计算机网络或计算机系统若干关键点信息的收集与分析,能够有效地对网络进行监测,提供外部攻击、内部攻击和误操作的实时检测与应对。是防火墙之后的第二道安全屏障。

1.3.2 Snort

功能:数据包嗅探、数据包记录和分析、入侵检测
四个基本部分:数据包嗅探器、预处理器、检测引擎、输出模块

2.实验过程

实践一:防火墙配置

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

Linux

kali:192.168.192.5
seedubuntu:192.168.192.2

第一问:

首先使用sudo iptables -F清空规则,后使用sudo iptables -L查看确认清空

使用sudo iptables -A INPUT -p icmp -j DROP拒绝icmp请求。-A INPUT表示追加规则到input,-P icmp指定过滤协议,-j DROP指定对应数据包的动作。
之后通过sudo iptables -L查看插入结果
uploading-image-959611.png

接下来我们使用kali去ping seedubuntu这台机器。

使用kali的wireshark嗅探,得到如下的信息

可以看到,我们成功过滤了ICMP数据包,使得主机接收不到Ping包。

第二问:

首先使用iptables -P INPUT DROP禁止所有的input数据包
接下来通过iptables -A INPUT -p tcp -s 192.168.192.3 -j ACCEPT允许192.168.192.3的机器的tcp数据包连接

接下来分别使用windowsAttacker(192.168.192.3)和kali(192.168.192.5)登录seed

可以看到之前设置的.3可以连接而kali不能连接seed
通过kali下的wireshark抓包登录过程,结果如下

windows

winxp:192.168.192.3
Metasploitable_ubuntu:192.168.192.125
kali:192.168.192.5
首先我们在kali上去pingwinxp,查看结果,发现一切正常。

然后在WinXP找到控制面板,进入Windows安全中心,然后进入Windows防火墙,点击还原为默认值


接着再次在kali上去pingwinxp,查看结果,发现ping不通了。
然后尝试允许特定IP地址访问主机的某一网络服务的实验。
使用kali telnet winxp,然鹅失败了。。

因此我们需要在winxp中打开telnet服务。在cmd中输入services.msc,然后找到telnet,将禁用改成自动。然后再启动


然后在控制面板中的Windows防火墙选择高级找到网络连接设置,将Telnet服务器选上,

再次使用kali telnet winxp,成功

然后下设置IP安全策略来使得kali无法访问winxp。
首先创建安全策略:在winxp依次点击控制面板、管理工具、本地安全策略、IP安全策略右键、创建IP安全策略、进入设置向导,
然后设置IP安全策略名称为“邓烨的ip安全策略”,在警告提示框选择“是”,然后一直点击下一步。


然后添加阻止特定IP访问的筛选器。以此点击添加--进入安全规则向导--设置为邓烨阻止kali,然后一直下一步。


点击添加

源地址选择一个特定的IP地址(Kali:192.168.200.5)

目标地址选择我的IP地址

协议选择tcp

设置IP协议端口从任意端口-到此端口(输入23)

设置完成

然后配置IP筛选器阻止的动作,选择配置的“邓烨阻止kali”,然后添加,选择阻止


配置完成

然后添加允许特定IP访问的筛选器,方法同上。
注意这里添加一个“邓烨允许”,然后源地址设为linux靶机。

别的操作同上,配置完成。

然后设置许可

最后得到

然后指派刚刚设定的安全策略

最后测试。kali无法ping,靶机可以ping通。

实践二:Snort

使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在云班课中下载)进行入侵检测,并对检测出的攻击进行说明。
在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)

使用命令
snort -c /etc/snort/snort.conf -r ~/listen.pcap


运行命令vim /var/log/alert查看结果。可以从中找到SCAN nmap XMAS的关于nmap的报警信息。

实践三:分析配置规则

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

输入vim /etc/init.d/rc.firewall打开防火墙配置文件

可以看到create_chains函数,定义了下述程序中使用的规则。BlackList、WhiteList、FenceList和XXXHandler。它们分别用来存储源地址和目的地址黑名单,源地址和目的地址的白名单,源地址和目的地址的防护名单,以及供下述policy使用的各种协议对应的Handler链。
接下来通过default_policy、localhost_policy和management_policy创建了不同情况下的三种代理转发模式。

接下来进入start程序的正文,通过读取预定义的白名单HwFWWHITE、黑名单HwFWBLACK和防护名单HwFWFENCE,添加相关的规则.

最后通过读取类似HwHPOT_PRIV_IP_FOR_NAT和HwHPOT_PUBLIC_IP等文件来导入其他的定义参数。

而有关数据捕获,无论是iptables还是snort,都能够通过记录日志的形式来捕获网络连接信息,包括源ip/端口,目的ip/端口,以及进行连接的协议等。
使用iptables -t filter -L查看规则列表(不行 然后使用/sbin )

通过命令vim /etc/init.d/snortd查看相关的运行参数,可以看到默认使用snort.conf规则,默认监听网卡为eth0,默认存储日志路径为/var/log/snort等等



然后执行命令vim /etc/init.d/hw-snort_inline打开snort_inline脚本

可以看到start函数


通过指令chkconfig --list | grep [服务]来查询当前服务是不是开启的。
输入/sbin/chkconfig --list | grep snort(直接chkconfig不行)

输入/sbin/chkconfig --list

工具Oinkmaster是Snort社区中的实际规则更新工具。使用命令find /etc/ -name "oinkmaster.*"查找到oinkmaster.conf 文件。
然后vim /etc/oinkmaster.conf 打开该文件,发现了snort.conf文件,可以推断这里使用工具Oinkmaster进行了snort的自动升级。

3.问题

3.1 snort problem


解决方案:

3.2 通过 iptables -t filter -L来查看规则列表。没有找到命令。


加入环境变量,使用/sbin/iptables -L命令就可以打开完整规则链

3.3 谭莉同学不小心傻derder的为了解决vmware的问题,根据网上的步骤攻略把电脑系统中的服务程序全部禁用了,然后重启结果连开机密码都输入不了,陷入无限死循环。

解决:找了半天找到网上一篇天才般的想法,那就是将把登录界面调用的【轻松使用】程序改为【命令提示符】即可 。通过命令提示符进入系统把之前禁用的服务打开就能正常使用开机密码等服务了。第一个想出来这个办法的老哥真是太天才了~!

4.参考资料

https://www.cnblogs.com/sunmoyi/p/12657186.html
https://blog.csdn.net/qq_42004215/article/details/121307743?utm_source=app&app_version=5.0.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
https://blog.csdn.net/masso/article/details/122910515?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_aa&utm_relevant_index=1

posted @ 2022-04-17 21:35  itumes  阅读(213)  评论(0编辑  收藏  举报