20199305 2019-2020-2 《网络攻防实践》第六周作业
《网络攻防实践》第六周作业
一、前言
问题 | 回答 |
---|---|
作业属于 | https://edu.cnblogs.com/campus/besti/19attackdefense |
作业要求 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553 |
课程目标 | 学习教材第六章,完成课后实践 |
二、知识梳理
1、防火墙
防火墙作用:防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等
防火墙技术分类:根据防火墙在协议栈工作的层次,可以分类为包过滤、电路级网关和应用层代理技术,对应的层次为网络层、传输层和应用层
防火墙安全功能:
- 控制进出网络的流量
- 防止脆弱或不安全的协议和服务
- 防止内部网络信息的外泄
- 对网络存取和访问进行监控
- 强化网络安全策略并集成其他安全防御机制
防火墙安全缺陷:
- 无法防范来自内部网络的安全威胁
- 无法防范非法外联的网络攻击
- 无法防范计算机病毒传播
- 无法有效防范准对开放服务安全漏洞的渗透攻击
- 无法有效防范针对网络客户端程序的渗透攻击
- 无法有效防范特洛伊木马和僵尸网络
防火墙产品:
- 集成包过滤功能的路由器
- 基于通用操作系统的防火墙软件产品
- 基于安全操作系统的防火墙
- 硬件防火墙设备
防火墙技术
-
包过滤技术:将具有包过滤防火墙功能的路由器安装在内部网络和外部网络的唯一连接点上。缺点:如果配置不当则容易被攻击
-
基于状态检测的包过滤技术:区别于包过滤技术,它是动态包过滤技术。它维护所有通过防火墙的网络连接记录,并依次判定这个包的连接状态。它试图追踪数据包在网络连接的上下文关系,在网络连接层次上匹配和实施防火墙规则。
-
代理技术:也称“网络代理”。它能让客户端通过它与另一个网络服务进行非直接的连接,有利于保障网络安全,防止网络攻击。提供这项服务的设备叫做代理服务器
Linux开源防火墙:netfilter/iptables
- netfilter组件位于Linux内核中,实现静态包过滤和状态报文检查基本防火墙功能。netfilter具备构建防火墙、NAT共享上网、利用NAT构建透明代理、构建QoS或策略路由器等安全功能。iptables通过命令方式允许用户为netfilter配置各种防火墙过滤和管理规则。
- netfilter/iptables的默认规则表如下
fileter表:
- INPUT发往本地的数据包进行过滤处理;
- OUTPUT本地发出的数据包进行过滤处理;
- FORWARD经过主机进行路由转发的数据包进行过滤处理;
nat 表:
- PREROUTING对未经路由选择的数据包转换其目标IP地址和端口
- POSTROUTING对已经过路由选择的数据包进行源IP地址和端口转换
- OUTPUT规则链针对本地数据包进行目标IP地址和端口转换;
mangle 表:
- 针对数据包头部信息进行特殊地修改,如设置TOS值,标记数据包,用于策略路由、网络流量整形等一些目的。
语法:iptables [-t table] command [match] [target]
command:
- -A/append:将一条规则添加到链末尾
- -D/delete:从链中删除某规则
- -P/policy:设置链的默认目标操作
- -N/new-chain:用命令中所指的名称创建一个新链
- -F/flush:删除链中所有的自定义规则
- -l/list:列出指定链中所有的规则
target:
- ACCEPT:当信息包与具有ACCEPT目标操作的规则完全匹配时,会被接受(允许它前往目的地)
- DROP:当信息包与具有DROP目标操作的规则完全匹配时,会阻塞该信息包,并且不对它做进一步处理
- REJECT: 该目标操作的工作方式与DROP目标操作类似,但与DROP不同的是,REJECT会将错误消息发回给数据包的发送方
- RETURN:该目标操作让与该规则匹配的信息包停止遍历包含该规则的链
2、网络检测技术与系统
入侵检测系统的分类
- 基于主机的入侵检测系统(HIDS):监视主机信息
- 基于网络的入侵检测系统(NIDS):将监听的网络数据包作为数据源进行分析
Snort:开源网络入侵检测系统
snort功能
- 嗅探器:从网络上读取数据包并作为连续不断的流显示
- 数据包记录器:把数据包记录到硬盘上
- 网络入侵检测系统:分析网络数据流以匹配用户定义的一些规则
Snort最重要的用途还是作为网络入侵检测系统(NIDS)
入侵防御系统(NIPS):即对检测到的异常行为或者与特征库匹配的行为直接进行阻断,断开访问
三、动手实践
实践一:防火墙配置
任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
镜像 | IP地址 | 提权 |
---|---|---|
Kali | 192.168.200.2 | kali |
WinXP | 192.168.200.3 | - |
Seed | 192.168.200.4 | dees |
过滤ICMP数据包
1、在Seed上ping kali,输入ping 192.168.200.2
,可以连接
2、通过iptables -L
查看默认规则,可以看到INPUT``FORWARD``OUTPUT
都是可以用的
3、执行iptables -A INPUT -p icmp -j DROP
指令使主机不接受icmp的数据包,-A
是更改规则,-p
指代协议,-j
后面跟具体规则变化
再用iptables -L
查看默认规则,可以看到数据包入口已经不向ICMP数据包开放了
4、使用Kali ping Seed,发现连接不通
5、使用iptables -F
删除自定义规则,此时再进行上一步就可以了
特定IP访问
1、首先用Seed和Winxp分别对kali发起telnet连接,因为重装了一次vmware和虚拟机,所以我的kali的telnet服务是关闭的,需要将其打开
然后发起连接,登录kalitelnet 192.168.200.2
2、在kali中输入iptables -P INPUT DROP
,拒绝所有的数据包进入
这个时候可以观察到telnet是无法连接的
3、使用指令iptables -A INPUT -p tcp -s 192.168.200.4 -j ACCEPT
开启Seed对kali的tcp服务
用iptables -L查看规则变化
同时可以看到Seed对kali的telnet连接恢复,但Winxp仍然不可以建立连接
最后用iptables -F
和iptables -P INPUT ACCEPT
两条指令恢复之前的状态
实践二:Snort
任务要求:使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志
Snort运行命令提示如下:
(1)从离线的pcap文件读取网络日志数据源
(2)在snort.conf中配置明文输出报警日志文件
(3)指定报警日志log目录(或缺省log目录=/var/log/snort)
1、输入指令 snort -r /home/kali/listen.pcap -c /etc/snort/snort.conf -K ascii
对 listen.pacp 进行入侵检测, 其中 -c 表示选择snort配置文件, -r 表示读取数据包,-K ascii 指定输出日志文件的为ASCII编码。可以观察到大部分数据流为tcp会话
报警alert
的数据包有34个,记载logged
的有34个
同时snort在默认目录生成一个日志文件,通过cd /var/log/snort
和vim alert
查看日志
本次攻击是使用nmap发起的,攻击主机的IP地址是192.168.200.1
,目标IP地址是239.255.255.250
实践三:分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则
任务要求:分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,并撰写分析报告,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的,分析内容如下所示:
1、上述脚本是如何实现蜜网的数据捕获和数据控制?
镜像 | IP地址 | 提权 |
---|---|---|
Honeywall | 192.168.200.8 | honey |
答:snort对整个网络数据包进行预警提示,用于数据捕获;而iptables防火墙主要负责对数据accept,reject,drop等规则的制定和执行,多用于数据控制
(1)查看防火墙的文件: vim /etc/init.d/rc.firewall
,下拉至create_chains()
防火墙对地址属于黑名单的主机,数据包全部丢弃。对于属于白名单的主机,数据包接受但不记录。对于地址属于防护名单的主机,禁止它们访问不希望被访问的主机
2、获取IPTables的实际规则列表、Snort和Snort_inline的实际执行参数
(1)在Honeywall中输入iptables -t filter -L | less
来查看IPTables的规则列表,可以看到INPUT
、FORWARD
、OUTPUT
都已经被关闭了
(2)输入vim /etc/rc.d/init.d/snortd
获取snort实际执行参数,使用config文件(conf是配置文件config的简写,多用于存取硬件驱动程序的安装配置信息),接口使用eth0、使用二进制模式保存日志文件(Binary_log用来记录数据库中发生的修改情况,比如数据的修改、表格的创建及修改)
(3)通过vim /etc/init.d/hw-snort_inline
打开Snort_inline脚本文件,可以观察到实际执行参数。-D
表示Daemon模式;-c
表示配置文件;-Q
表示队列模式;-l
表示日志目录;-t
表示初始化后改变进程所参考的根目录位置,就是为snort进程设置一个“监牢”目录作为其根目录,让其对文件系统的访问不能越出该目录范围
3、蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
答:通过指令chkconfig --list | grep xx
来查询服务的当前状态,结果是防火墙和NIPS是跟随系统启动的,NIDS是需要手动启动的
1表示单用户模式,2表示无网络连接的多用户命令行模式,3表示有网络连接的多用户命令行模式,4表示不可用,5表示带图形界面的多用户模式,6表示重新启动
4、Snort规则是如何自动升级的?
答:输入vim /etc/honeywall.conf
打开配置文件,可以观察到snort规则默认是不自动更新
四、问题与解决
1、VMnet0网卡消失了怎么办?没有这个网卡能否上网?
答:应该是不能上网了,因为vmnet0网卡是连接外网和内网的枢纽,在桥接模式下可以让虚拟机连接到外网。网卡消失是我上一次作业就提出的问题,此期间用了不下8种方法去尝试解决,但都无果,最终通过360安全卫士和Cclen终于将vmware的一系列文件删干净了,再重新安装,VMnet0就有了。注意,一定要删的彻彻底底,否则重新安装可能失败。衷心感谢赵恩泽同学在此过程中伸出援助之手,这对于我而言犹如雪中送炭
2、蜜罐网关如何上下翻动信息
答:shift
+pgup
或pgdn
3、telnet服务未开启
答:见此链接中内容,ubuntu搭建telnet服务
切记进行安装telnet服务时要VMnet0桥接模式下,否则没网是没法安装的,另外安装成功后一定要记得切换回NAT模式,否则你输入的kali的IP地址就是错误的,因为此时kali的地址是外网的地址。再用NAT模式打开后要重新启动一下telnet服务,然后检查telnet是否打开,一切准备就绪后就可以用其他虚拟机对kali发起telnet连接了!
4、snort无法安装,总是出现unable to locate package snort
unable to locate package snort