20212918 2021-2022-2 《网络攻防实践》第七周
作者:互联网
一、实践内容
1、基础知识
1.1安全模型
- 传统的安全评估和防范方法是通过对网络进行风险分析,制定相应的安全策略,然后采取一种或多种安全技术作为防护措施的,这种安全模型与流程在主要针对固定,静态的威胁和环境弱点,但忽略了网络安全的重要特性,对网络安全所面临的威胁和系统脆弱性没有做充分的估计。
- 态可适应网络安全模型基于闭环控制理论,典型模型是PDR(Protection、Detection、Response)模型以及在其基础上提出的P2DR(Ploicy、protection、detection、Response)模型等。
- PDR安全模型:P>D+R,如果信息系统的防御机制能够抵御入侵事件P,能够超过检测机制发现入侵的时间D和响应机制有效应对入侵时间R之和,那么这个信息系统就是安全的。
- 主要的检测技术包括入侵检测和漏洞评估,响应措施主要包括应急处理、备份恢复、灾难恢复。
1.2网络安全防范技术
- 防火墙技术可以分为包过滤、电路级网关和应用层代理技术。
- 防火墙最基本的功能有:
1)检查控制进出网络的网络流量
2)防止脆弱或不安全的协议和服务
3)防止内部网络信息的外泄
4)对网络存取和访问进行监控审计
5)防火墙可以强化网络安全策略并集成其他安全防御机制
1.3防火墙技术
- 功能:
1)检查控制进出网络的网络流量
2)防止脆弱或不安全的协议和服务
3)防止内部网络信息的外泄
4)对网络存取和访问进行监控审计
5)防火墙可以强化网络安全策略并集成其他安全防御机制 - 不足:
目前防火墙技术并不能有效应对某些类型的安全威胁
1)先天无法防范的安全威胁:来自网络内部的威胁、通过非法外联的网络攻击、计算机病毒传播
2)由于技术瓶颈无法应对的威胁:针对开放服务安全漏洞的渗透攻击、针对网络客户端程序的渗透攻击、基于隐蔽通道进行通信的特洛伊木马或僵尸网络 - 包过滤技术
最早提出和应用的防火墙技术。通过对网络层和传输层包头信息的检查,分局安全策略确定是否转发该数据包,从而阻挡其他不符合安全策略的数据包 - 防火墙产品
实现包过滤和动态包过滤技术的个人防火墙软件:windows防火墙、防火墙内核模块),实现应用代理技术的各类
网络服务代理程序(例如:Linux中的Squid、windows Proxy Server),实现电路级代理技术的SOCKS代理软件(SocksCap)
WindowsXP在其操作系统中附带Windows防火墙,用户可以在控制面板中找到防火墙图标从而直接进行设置 - Linux开源防火墙:netfilter/iptables
iptables为用户提供配置netfilter规则的命令行接口,命令语法为:
-t:指定配置规则所在的表,缺省表包括filter、nat、mangle、raw等
-A或--append:将一条规则附加到链的末尾
-P或--policy:设置链的缺省目标操作,所有与链中任何规则都不匹配的信息都将被强制使用此链策略
-N或--new-chain:用所指定的名称创建一个新链
-F或--flush:若指定链名,则删除链中所有规则;若未指定链名,则删除所有链中所有规则
-L或--list:列出指定链中的所有规则
1.4 网络检测系统与技术
- 入侵检测系统的分类与部署
1)分类:HIDS(基于主机的入侵检测系统)、NIDS(基于网络的入侵检测系统)
2)入侵防御系统IPS/IDS:“即插即用”,无须使用者的干预。 - 开源网络入侵检测系统Snort
(1)基本架构:
1)数据包嗅探/解码器:将网卡设置为混杂模式,用libpacp函数来进行数据包监听和抓包。
2)预处理器/插件:用于弥补检测引擎检测能力的不足,主要有TCP/IP协议栈模拟、应用层协议解码、异常检测。
3)检测引擎/插件:通过攻击特征规则库检测。
4)输出模块/插件:记录报警和日志。
(2)主要功能
1)嗅探模式
2)数据包记录模式
3)网络入侵检测模式
(3)基于Snort的入侵防御系统Snort_inline - 能够对通过Snort_inline的数据包进行检测,对匹配特征规则的数据包进行丢弃和阻断,达到实时安全防御能力。
- 工作机理:
- 安装内联模式的Snort前,必须提供内联网络连接的能力。
- netfilter/iptables提供了Snort_inline 所需的libipq/libnetfilter_ queue库支持。
- Snort在编译过程中通过./configure --enable -inline模式进行编译,可以生成以内联模式运行的Snort_inline 程序,在IPTables规则中添加一条简单的$IPTABLES -A FORWARD -j QUEUE将会触发Snort_ inline 负责所有经由网桥,由系统进行路由转发的数据包,对这些数据包进行检查并根据检查结果决定是否阻断。
二、实践过程
2.1动手实践:防火墙配置
配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
虚拟机 | IP地址 |
---|---|
kali | 192.168.200.129 |
WinXPattcker | 192.168.200.4 |
SeedUbuntu | 192.168.200.5 |
Win2Kservice | 192.168.200.128 |
Linux下的设置
(1)过滤ICMP数据包,使得主机不接收Ping包;
- 在Windowsxp攻击机中ping 192.168.200.129(kali的IP地址)
- 正常ping通之后,接下来在kali中输入命令iptables -A INPUT -p icmp -j DROP来过滤ICMP数据包,-A表示接一条规则到INPUT链后
- 再回到WinAttacker机发现已经无法ping通
- 在kali中输入命令iptables -D INPUT -p icmp -j DROP取消过滤icmp数据包的规则
- 此时可以正常ping通
2)只允许特定的IP地址(如局域网中的Linux攻击机192.168.200.129),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192.168.200.4)无法访问 - 在Windowsxp攻击机中ping 192.168.200.129(kali的IP地址)
- 正常ping通之后,接下来在kali中输入命令iptables -A INPUT -p icmp -j DROP来过滤ICMP数据包,-A表示接一条规则到INPUT链后
- 之后再iptables -L,发现只有192.168.200.5的数据包是可以通过的
- 最后通过iptables -F 和 iptables -P INPUT ACCEPT 两条指令恢复原状态
Windows下的设置 - 在运行中输入secpol.msc,打开本地安全设置
- 右键点击IP安全策略->选择管理IP筛选器和筛选器操作->在管理IP筛选器列表中建立一个过滤规则:xxfICMP_ANY_IN,源地址选任意IP,目标地址选本机
- IP协议类型选择ICMP
- 切换到管理过滤器操作,增加一个名为xxfdeny的操作,操作类型为阻止,这样我们就有了一个关注所有进入ICMP报文的策略和丢弃所有报文的过滤操作
- 右键点击ip安全策略->创建ip安全策略 ->下一步:名称:BanPing;--下一步:取消激活默认响应规则->完成 ->BanPing属性->添加(勾选,使用添加向导)->下一步直至“身份验证方法”->选第三项,输入共享字串->下一步:在ip筛选器列表里选ping->下一步到完成
- 在“本地安全设置”右侧可以看到 “BanPing”这条规则,但是指派显示否
- 右击指派
- 禁止别人ping 自己的ip地址的策略就部署完成。
- 打开kali(192.168.200.129) 进行ping命令发现超时,说明试验成功
(2) 只允许特定IP地址 (如FTP、HTTP、SMB),而其他的IP地址无法访问 - 打开windows telnet服务,首先在运行中输入services.msc,在服务管理器中双击后,在属性对话框中将启动类型改为自动;
- 启动telnet服务
- 在运行中输入mstsc,连接另一台windows
- 连接成功
- 关闭远程访问控制,在win2kserver里面进行本地安全策略设置如图
- 测试远程连接
- 无响应,试验成功
2.2动手实践:Snort
使用Snort对给定pcap文件(listen.pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或 Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
- 执行snort -c /etc/snort/snort.conf -r /home/kali/Desktop/listen.pcap -K ascii从离线的pcap文件读取网络日志数据源,可以看出TCP包占绝大多数。
- snort会在默认目录 /var/log/snort 生成一个日志文件,cd/var/log/snort 查看日志文件 vim alert,本次攻击是用nmap发起的。攻击机IP地址是 172.31.4.178,靶机IP地址是 172.31.4.188 ,还可以看到端口号等等。
2.3分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
1、上述脚本是如何实现蜜网的数据捕获和数据控制?
2、取iptables的实际规则列表、Snort和Snort_inline的实际执行参数。
3、蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
4、Snort规则是如何自动升级的?
蜜网的数据捕获和数据控制
- 打开蜜罐,su - 提权之后,输入命令 vim /etc/init.d/rc.firewall
- 从上面可以看出,creat_chains函数中有三种:BlackList、WhiteList、FenceList,分别用来存储源地址和目的地址的黑名单、白名单、防护名单
- 可以看出 iptables相关的-log参数保存日志
- 输入命令iptables -t filter -L来查看实际规则表,其中,-t是指定规则表,-L表示列表。
- Snort实际执行参数,输入命令vim /etc/init.d/snortd , 其中snortd是snort启动的脚本文件,snort.conf是具体预警的规则设定由图看出snort.conf规则
- 默认监听存储路径为 /var/log/snort
- Snort_inline的实际执行参数,输入命令 vim /etc/init.d/hw-snort_inline , 打开snort_lnline脚本
- 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动?
通过输入命令chkconfig --list|grep iptables 和 chkconfig --list|grep snort 来查看当前服务是否开启
(也可以通过命令chkconfig --list 对linux上运行的服务查询)
其中,命令chkconfig用于检查,设置各种服务。如果0-6权威off,则说明不自动启动
- Bonus:蜜网网关中的Snort规则是如何自动升级的?
默认是不自动更新的,但其有自动更新的软件Oinkmaster。使用vim /etc/honeywall.conf,打开honeywall配置文件,找到update variables,可以看到其值为no,即不自动更新。还可以看到Oinkmaster,这是个自动更新的软件,利用Oinkmaster进行升级。
三、学习中遇到的问题及解决
- 在honey中命令行不知道怎么翻页
解决:通过查询网页,得知通过shift键+Fn+上下箭头进行翻页
四、实验总结
在本次实验中虽然过程比较复杂,但是在做完试验过后,让我学会了如何使用Snort以及查看snort信息,知道了如何在Windows中启动telnet服务。
标签:iptables,snort,防火墙,20212918,Snort,2022,规则,数据包,2021 来源: https://www.cnblogs.com/xuxuefei/p/16132081.html