20199124 2019-2020-2《网络攻防实践》第6周作业

20199124 2019-2020-2 《网络攻防实践》第6周作业

本次作业属于哪个课程 《网络攻防实践》
这个作业要求在哪里 第六次作业 TCP/IP网络协议攻击
我在这个课程的目标是 学习TCP/IP网络协议攻击的原理、实现以及相关软件的使用
这个作业在哪个具体方面帮助我实现目标 动手实现各种TCP/IP网络协议攻击
作业正文 见下文1、2、3、4部分
其他参考文献

1.实践内容


1.安全模型


​ 随着信息技术的发展,信息安全得到越来越多的重视。随着技术发展,各个时期重视的方面也不同,从强调通信安全,到注重信息完整性,再到重视信息服务的可用性。

​ 为了保障被称为“信息安全金三角”的CIA安全属性,即机密性、完整性和可用性, 信息安全领域提出了一系列的安全模型来指导信息系统安全体系建设。为了评估信息系统是否能够满足特定的安全需求和属性各个国家又制定了许多评估标准。

​ 传统的安全评估和防范方法主要针对固定、静态的 威胁和环境弱点。但是,没有绝对、一成不变的安全,安全模型需要适应变化的环境。动态可适应网络安全模型基于闭环控制理论,典型模型是PDR模型,如下图所示。

​ 防护三大神器如下:

​ 1. 防护机制通常釆用传统的静态安全技术及方法来实现,主要有防火墙、加密、身份认证和访问控制等方法

​ 2. 检测机制,检测的对象主要针对系统自身的脆弱性及外部威胁,检测技术包括入侵检测和漏洞评估等。

​ 3.检测到安全漏洞和入侵事件之后必须及时做出正确的响应,把系统调整到安全状态。响应措施主要包括应急处理、备份恢复、灾难恢复等。

2.网络防御技术


​ 网络安全防范技术对应P2DR中的“防护”环节,设在被保护主机与外部网络中间,一般是在日常中预设好的,类似于一座城的城区与巡抚部队。

·防火墙


​ 防火墙是置于不同的网络安全域之间,对网络流量或访问行为实施访问控制的安全组件或设备。

​ 想要利用防火墙达到良好的网络安全防护效果,必须注意一下三点:防火墙要部署在不同网络安全域之间的唯一通道;网络安全管理员根据安全需求合理地设计安全策略规则,合理对 流量进行检查;注意防火墙的弱点,例如无法防御内部攻击。

防火墙的功能

​ 检査控制进出网络的网络流量、防止脆弱或不安全的协议和服务、防止内部网络信息的外泄、对网络存取和访问进行监控审计、防火墙可以强化网络安全策略并集成其他安全防御机制。

防火墙的不足


无法防范来自网络内部的安全威胁、通过非法外联的网络攻击、计算机病毒传播、针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击、基于隐蔽通道进行通信的特洛伊木马或僵尸网络。

防火墙技术

包过滤技术—通过对网络层和传输层包头信息的检査(并不关心关于网络连接状态的任何信息)

基于状态检测的包过滤—跟踪数据包的网络连接状态

代理技术—允许客户端通过代理服务器与目标服务器进行作直接的连接根据工作的网络协议栈层次的不同,代理技术包括应用层代理、电路级代理和NAT代理等。

防火墙产品

​ 从产品形态角度划分,防火墙大致分为如下几种类型:集成包过滤功能的路由器、基于通用操作系统的防火墙软件产品、基于安全操作系统的防火墙、硬件防火墙设备。

个人防火墙产品:Windows个人防火墙、天网防火墙,以及360安全卫士、瑞星等个人计算机统一安全解决方案中集成的软件防火墙。

防火墙部署方法:包过滤路由器,依据网络管理员配置的访问控制列表对数据包进行过滤;双宿主堡垒主机,使用应用代理网关对外屏蔽内部消息,对内验证用户身份和行为;屏蔽主机,采用屏蔽路由和堡垒主机双重安全设施,由包过滤防火墙进行网络层的访问控制,由堡垒主机进行应用安全控制;屏蔽子网,应用代理及对外服务器所构成网段和内部主机之间安装了第二个包过滤防火墙,相比较下屏蔽子网了安全性是最高的,模型如下图所示。

Linux 开源防火墙:netfilter/iptables

netfilter是Linux内核中实现的防火墙功能模块,iptables则是应用态的防火墙管理工具。

工作原理:netfilter可以实现包过滤功能、支持NAT网络地址转换、提供了多层API接口以支持第三方扩展。Iptables允许用户使用命令行为netfilter配置各种防火墙过滤和管理规则。

netfilter/iptables在数据包经过的路线上设置检查点,各个检查的上都设置有检查规则,以此来进行包过滤和nat网络地址转换。规则链和检查点的对应关系于位置如下图与下表所示。

规则表 规则链 规则处理对象 处理工作 对应Hook检查点
filter INPUT 发送给本地协议栈的数据包 过滤、接受等 NF-IP-LOCAL-IN
OUTPUT 本地协议栈发出的数据包 过滤、接受等 NF_IP_LOCAL_OUT
FORWARD 路由转发的数据包 过滤、接受等 NF_IP_FORWARD
nat PREROUTING 未经路由选择的数据包 DNAT、NAPT等 NF-IP-PRE-ROUTING
POSTROUTING 已经过路由选择的数据包 SNAT等 NF-IP-POST-ROUTING
OUTPUT 本地协议栈发出即将路由的数据包 本地数据包DNAT等 NF_IP_LOCAL_OUT
mangle 以上五个规则连 所有数据包 特殊数据包头部修改

Iptables为用户提供了配置netfilter规则的命令行接口,其命令语法为:

iptables [-t table] command [match] [target]

·-t指定配置规则所在的表,缺省表包括filter、nats mangleraw

·command部分是iptables命令的最重要部分,它告诉iptables命令要做什么

·Match部分为规则匹配条件,指定数据包与规则匹配所应具有的特征

·Target部分指定满足匹配条件之后的目标操作

·其他网络防御技术


VPN

​ VPN,即虚拟专用网,可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。VPN主要采用隧道技术、加解密技术、密钥管理技术和使用者与设备身份认证技术

内网安全管理

​ 内网安全管理技术能够有效地对内网终端进行安全管理和健康状态监控,从而增强了内部网络的安全性,一般分为终端安全管理、终端运维管理、终端补丁分发管理和系统日志管理四部分。

内容安全管理SCM

​ 内容安全管理则主要关注网络中传输内容的安全,需要更加深入地分析传输数据包的内容,从应用层中解析和分析出相关的网络行为,并依据网络的安全策略进行合规性检查和控制

统一威胁管理

​ 统一威胁管理(UTM)是指由硬件、软件和网络技术组成的具有专门用途的设备,它主要提供一项或多项安全功能,将多种安全特性集成在一个硬件设备里,构成一个标准的统一管理平台

3.网络监测技术


入侵检测


​ 入侵检测发现入侵行为的一种安全技术。入侵检测是防火墙之后的第二道安全屏障,能够有效地对网络进行监测,提供对外部攻击、内部攻击和误操作的实时检测与应对。

评估指标

评估入侵检测技术和系统的两个重要参数是检测率(True Positive)和误报率(False Positive)。理想的评价入侵检测应该具有高检测率华人低误报率,但同时实现是不可能的。算法的一种常用工具是ROC。

入侵检测技术

误用检测:通过收集已知入侵行为的特征并进行描述,构成攻击特征库,然后对收集信息进行特征模式匹配,所有符合特征描述的行为均被视为入侵。

异常检测:利用假设:入侵者的行为与正常用户的行为具有差异性,利用这些差异可以检测出入侵行为,先测量用户、系统、网络等对象在正常模式下的属性轮廓,然后检测用户、系统和网络当前的实际测量属性取值,若相比之下超出一定范围,则认为有入侵行为。

入侵检测系统的分类与部署:基于主机的入侵检测系统(HIDS);基于网络的入侵检测系统(NIDS);分布式入侵检测系统(DIDS) 融合了 HIDS和NIDS作为其组成部分。

入侵防御系统IPS:入侵防御系统采用直接在网络边界位置内联连接的方式,并在检测到入侵行为后,直接对所关联的攻击网络连接进行阻断处理。

开源网络入侵检测系统:Snort


Snort具有强大的功能:数据包嗅探、数据包记录和分析,以及各种入侵检测功能。
snort的结构由4大软件产品组成
数据包嗅探:负责监听网络数据包,对网络进行划分
预处理器/插件:用相应的插件来检查原始数据包,从中发现原始数据的“行为”,经过预处理后才传到检测引擎
检测引擎/插件:核心模块。当数据包从预处理器送来后,检测引擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报警
输出模块/插件:经检测引擎检查后的Snort数据需要以某种方式输出

4.网络安全事件响应技术


网络安全事件响应是指在网络安全事件发生后,所采取的手段和措施。

安全事件响应的6阶段:准备、检测、抑制、根除、恢复和跟踪

关键技术:计算机取证、攻击迫溯与归因、备份恢复与灾难恢复

2.实践过程


防火墙配置


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

(1)过滤ICMP数据包,使得主机不接收Ping包;

(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3)访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4) 无法访问。

操作过程


·过滤ICMP数据包

1.我们可以通过iptables -L -n来查看iptables的设置情况,由于一开始我们在安装kali的时候没有防火墙,所以各个规则链是打开的,如下图所示。

此时我们ping一下SEED肯定是可以ping通的.

2.接着我们输入iptables -p INPUT DROPiptables -p OUTPUT DROP,这两句命令,是把INPUT和UOTPUT两个规则链禁止所有的包通过。这时候连网络都断了,两个主机肯定是ping不通的。如下图。

如果我们想允许ICMP包通过,就输入iptables -A OUTPUT -p icmp -j ACCEPTiptables -A INPUT -p icmp -j -ACCEPT。在这里我遇到了一个问题就是我的iptables找不到"-p"这一类命令,导致命令一直无法运行。

当INPUT和OUTPUT都是DROP的状态时,我们可以直接设置规则链上允许哪些包出入就可以了,附上一篇iptables设置的博客(https://www.cnblogs.com/i-shu/articles/4815542.html)。

3.如果我们预先设置INPUT和OUTPUT都是ACCEPT状态即所有的包都可以接受,想要过滤ICMP包就输入iptables -A INPUT -p icmp -j DROP和``````iptables -A INPUT -p icmp -j -ACCEPT```,就可以了。

我在SEED上尝试了一下这一类方法成功了。

4.在设置指定IP访问主机时,最好使用iptables -Fiptables -X清空预设表filter表中的规则链中的规则。不然以及经过了以上设置总会不知道哪里出了问题。

·允许特定IP地址访问

​ 接下来我们对msfadmin(192.168.190.5)的防火墙进行设置,kali(192.168.190.7)可以使用telnet远程登陆,而seed(192.168.190.6)不可以。我的kali和seed没有安装telnet服务,只能远程登录不能被远程登录,真的是尴尬了。

​ 1.开始设置之前我们试一下kali和seed能不能telnet上msfadmin,尝试是可以的,这里我就不截图了。

​ 2.输入iptables -P INPUT DROP,这句命令表示所有流入的数据包都挡在防火墙外面,这个时候两个电脑是都不能远程登陆的。

​ 3.输入iptables -A INPUT -p tcp -s 192.168.190.7 -j ACCEPT,这句命令表示在INPUT链中加一条规则,源地址为192.168.190.7 的数据包可以进入,并使用tcp端口。

​ 4.我么转到kali和seed上,开始尝试telnet远程登陆msfadmin,如下图所示,kali可以,而seed不可以。

Snort


任务:使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。

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

Snort运行命令提示如下。

•从离线的pcap文件读取网络日志数据源。

•在snort.conf中配置明文输出报警日志文件。

•指定报警日志log目录(或缺省log目录=/var/log/snort)。


操作过程
使用snort对之前使用过的listen.pcap进行入侵监测。使用命令snort -r listen.pcap -c snort.conf的存放路径 -K ascii。这句指令的意思是使用规则snort.conf对listen.pcap文件进行检测,输入的log文件的编码为ASCII码。
由于我依然没有在kali安装好snort,所以翻出了陈年在VirtualBox上安装的Ubuntu,试了一下竟然可以通过apt-get install snort安装,喜大普奔!
对listen.pcap检测的结果如下图,可以看到大部分都是TCP。

在/var/log/snort中可以找到输出的日志文件alert,用vim打开,可以看到这个攻击是nmap扫描,源地址是172.31.4.178,目的地址是172.31.4.188.

在kali上按装snort目前依然在努力中,fighting!

实践作业


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

具体分析配置规则与启动项文件包括:

•防火墙(netfilter+IPTables) : /etc/init.d/rc.firewall:

•入侵检测系统(Snort) : /etc/init.d/hflow-snort 与/etc/snort/snort.conf:

•入侵防御系统(Snort_inlinc) : /etc/init.d/hflow-snort_inline 与/etc/snort_inline/snort. inline.conf

分析内容如下。

•上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?

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

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

• Bonus:蜜网网关中的Snort规则是如何自动升级的?


操作过程

1.实现蜜网网关的数据铺货与数据控制机制

​ 我们先使用vim /etc/rc.firewall查看这个脚本,下图显示了这个脚本里关键的地方,这里创建了三个链:黑名单、白名单、防护名单,在编译安装snort的时候接触过这三个链。对于黑名单中的主机,防火墙会丢弃与他相关的包;对于白名单中的主机,防火墙允许通过;防护名单里的主机,防火墙不让他们访问某些主机。

​ 蜜网网关对于数据的控制,防火墙出了很大一份力,snort的作用是监测符合入侵规则的数据包,对于数据的记录,防火墙可以对简单的信息进行记录生成日志,主要还是snort记录数据流。两者搭配、干活不累。

2.IPTables的实际规则列表、Snort和Snortjnline的实际执行参数

​ 输入iptables -t filter -L,查看规则表。可以看到INPUT、OUTPUT、 FORWARD预设值都是关闭的,其下自定义添加了许多规则。

输入vim /etc/snortd,打开snort的脚本,一开始都是一些参数选项,如使用snort.conf作为默认规则,eth0作为默认监听网卡等。

输入vim /etc/init.d/hw-snort_inline,打开snort_inline脚本,在这个脚本里可以看到实际执行的参数。

3.防火墙、NIDS、NIPS启动

输入chkconfig --list,来查询当前服务的状态。如下图所示,我们发现NIDS的6个口全都是关闭的需要手动开启。防火墙和NIPS并没有全部关闭,是跟随系统启动的。

4.蜜网网关中的Snort规则是如何自动升级

​ 在网上查了一些资料,得知是通过一个软件Oinkmaster来进行更新的。可以使用find指令找一下相关的文件文件,输入vim /etc/oinkmaster.conf打开文件,发现里面有我们默认使用的规则snort.conf。

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

问题一:kali无法安装snort

解决方案:之前遇到了kali无法安装snort的情况,网上都在建议更新一下软件库或者换一下镜像源,但是这些方法都没有解决我的问题,所以我选择了去snort官网下载源码编译再安装。这个方法再编译snort之前言安装许多软件来辅助,安装好之后又有许许多多的麻烦事,最终我还是没有成功,但是做的过程对snort有了一个新的认识奉上两个链接供大家参考。

https://www.cnblogs.com/thresh/p/12019466.html

https://www.csdn.net/u010281503/article/detials/64441735

问题二:无操作界面的linux如何翻页

解决方法:shift+pageup,上一页;shift+pagedown,下一页

posted @ 2020-04-07 19:04  20199124-马璐瑶  Views(140)  Comments(0Edit  收藏