20199322 2019-2020-2 《网络攻防实践》第六周作业
一些问题 | 简单的解答 |
---|---|
这个作业属于哪个课程 | 网络攻防实践 |
这个作业的要求在哪里 | 作业要求 |
参考文献 | 一些网络资源 |
知识梳理和总结
- 第五章讲的是攻击手段,第六章讲的是防御手段。
- 其实在当今这个时代,99%的攻击手段已经可以规避了,毕竟在这个物欲横流的社会,简单的植入病毒,除了满足一下攻击者能力期望的需求外,别无他用了。
- 但是吊诡的是,了解简单的攻击手段和防御方式是熟悉理论知识的重要途径。
我只讲讲我感兴趣的VPN,目前可以自己去国外一个几美刀,就能买一个VPS,油管上有具体的教程可以搭一个SSL-VPN,但是这其实已经触犯我国法律了,但是根据工信部的数据,我国大概有9000万的用户频繁对外网进行访问,由于现在可知的VPN价格过高,所以基本上是一个两难的境地,执法机构也是睁一只眼闭一只眼。
VPN(Virtual Private Network)
VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。
VPN目前有IPSEC VPN ,SSL VPN ,MPLS VPN。
疫情期间,如果有访问校园网或者谷歌学术的需求,必须要有一个VPN了。
工作原理
- 通常情况下,VPN网关采取双网卡结构,外网卡使用公网IP接入Internet。
- 网络一(假定为公网internet)的终端A访问网络二(假定为公司内网)的终端B,其发出的访问数据包的目标地址为终端B的内部IP地址。
- 网络一的VPN网关在接收到终端A发出的访问数据包时对其目标地址进行检查,如果目标地址属于网络二的地址,则将该数据包进行封装,封装的方式根据所采用的VPN技术不同而不同,同时VPN网关会构造一个新VPN数据包,并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为网络二的VPN网关的外部地址。
- 网络一的VPN网关将VPN数据包发送到Internet,由于VPN数据包的目标地址是网络二的VPN网关的外部地址,所以该数据包将被Internet中的路由正确地发送到网络二的VPN网关。
- 网络二的VPN网关对接收到的数据包进行检查,如果发现该数据包是从网络一的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离,再将数据包反向处理还原成原始的数据包。
- 网络二的VPN网关将还原后的原始数据包发送至目标终端B,由于原始数据包的目标地址是终端B的IP,所以该数据包能够被正确地发送到终端B。在终端B看来,它收到的数据包就和从终端A直接发过来的一样。
- 从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。
实践内容
虚拟机 | IP |
---|---|
Metaspitable-Linux | 192.168.200.6 |
kali | 192.168.200.2 |
SEED | 192.168.200.5 |
WinXPattacter | 192.168.200.4 |
防火墙配置
- 配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
- 过滤ICMP数据包,使得主机不接收Ping包:
- 只允许特定IP地址(如局域网中的Linux攻击机),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机)无法访问。
过滤ICMP数据包,使得主机不接受Ping包
先测试连通性,SEED-PING-KALI
通过命令iptables -L查看一下规则,没看懂啥意思
执行 iptables -A INPUT -p icmp -j DROP 指令使得主机不接受icmp的数据包。
- 其中 -A 是追加新规则于指定链的尾部, INPUT 表示数据包入口(规则), -p 用于匹配协议, -j 用于指定如何处理(ACTION)。再次查看规则,发现多了一条icmp针对任何位置不允许访问的规则:
重复PING,发现毫无反应
执行 iptables -F ,删除刚刚的命令,发现又可以PING通了
只允许特定IP访问主机的某一网络服务(FTP,HTTP,SMB)
用KALI和WINXP来PING一下METAS-Linux,没什么问题
在METAS-Linux执行iptables -P INPUT DROP,不接受任何外部规则,KALI和WINXP都telnet不到METAS-Linux
在METAS-Linux 执行 iptables -A INPUT -s 192.168.200.2 -p tcp -j ACCEPT,设置只允许KALI访问,然后iptables -L查看一下
KALI-telnet一下试试
iptables -F删除一下,恢复原状
snort
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
snort运行命令提示如下
- 从离线的pcap文件读取网络日志数据源
- 在snort.conf中配置明文输出报警日志文件
- 指定报警日志log目录(或缺省log目录=/var/log/snort)
对之前实验中用到的listen.pcap进行入侵检测
执行命令snort -r lisen.pcap -c /etc/snort/snort.conf -K ascii
这里需要注意一点的是,你可能没有snort,需要重新下载,虚拟机的网络适配器需要修改一下,局域网可没办法下载。
仔细看看数据
基本上都是IP4/TCP,还有微量的ARP之类的
看一下日志文件
可以看到工具是nmap,上面有还有IP地址,不再赘述。
分析实践
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,并撰写分析报告,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。具体分析配置规则与启动项文件包括:
- 防火墙( netfilter+IPTables) : /etc/init.d/rc.firewall;
- 入侵检测系统(Snort) : /etc/init.d/hflow-snort 与/etc/snort/snort.conf;
- 入侵防御系统(Snort_ inline) : /etc/init.dhflow-snort_ jinline 与/etc/snort_ inline/snort_inline.conf。
分析内容如下:
- 上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
- 获取IPTables的实际规则列表、Snort 和Snort_ inline 的实际执行参数。
- 蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
- Bonus:蜜网网关中的Snort规则是如何自动升级的?
上述脚本是如何实现蜜网网关的数据捕获和数据控制机制?
- 数据捕获:iptables可以通过记录日志文件等形式来捕获一些信息。
- 数据控制:查看rc.firewall文件
- 在root下执行
vim /etc/init.d/rc.firewall
因为前面我们是用IPTABLES命令,所以这里能看到不少创建黑名单,白名单的一些东西
获取IPTables的实际规则列表、Snort 和Snort_ inline 的实际执行参数。
- IPTables的实际规则列表,用
iptables -t filter -L
- snort实际执行参数,用
vim /etc/init.d/snortd查看snort脚本文件
- Snort_ inline 的实际执行参数,用
vim /etc/init.d/hw-snort_online
蜜网网关开机之后,防火墙、NIDS、NIPS是如何启动的?
使用
chkconfig --list查看
Bonus:蜜网网关中的Snort规则是如何自动升级的?
snort规则通过Oinkmaster规则进行升级,在/etc下找一下就行了