20231901 2023-2024-2 《网络攻防实践》第五周作业
1.知识点梳理与总结
1.1实践内容
一、防火墙配置(IP地址仅供参考,以实际为准)
- 任务要求:配置Linux操作系统平台上的iptables,或者Windows操作系统平台上的个人防火墙,完成如下功能,并进行测试:
(1)过滤ICMP数据包,使得主机不接收Ping包;
(2)只允许特定IP地址(如局域网中的Linux攻击机192.168.200.3),访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址(如Windows攻击机192. 168.200.4)无法访问
二、动手实践:Snort
-
使用Snort对给定pcap文件(第4章中的解码网络扫描任一个pcap文件,之前的实践已经提供了,请在学习通中下载)进行入侵检测,并对检测出的攻击进行说明。在BT4 Linux攻击机或Windows Attacker攻击机上使用Snort,对给定的pcap文件进行入侵检测,获得报警日志。
-
Snort运行命令提示如下:
①从离线的pcap文件读取网络日志数据源
②在snort.conf中配置明文输出报警日志文件
③指定报警日志log目录(或缺省log目录=/var/log/snort)
三、分析配置规则
分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
1.2实验要求及目的
(1)配置Linux操作系统平台上的iptables
- iptables规则列表的显示;
- 过滤ICMP数据包;
- 特定IP地址访问主机;
- 静态包过滤与报文状态检测;
- SNAT与DNAT机制的实现。
(2)使用Snort进行入侵检测分析 - 对给定pcap文件进行入侵检测,并对检测出的攻击进行说明;
- 对给定的pcap文件进行入侵检测,获得报警日志。
(3)分析配置规则 - 分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则;
- 说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求。
1.3实验过程
1.3.1 任务一 ARP缓存欺骗攻击
(1)防火墙配置
- 过滤ICMP数据包,使得主机不接收Ping包
- 实验环境
攻击机kali | 192.168.32.3 |
靶机Seed | 192.168.32.5 |
- 查看iptables是否已安装
iptables -V
- 显示版本号,说明已经安装。
- 查看当前防火墙配置信息
sudo iptables -L
- 可以看出,当前未添加任何规则。
- 可PING通。
- 添加规则,过滤ICMP包,
sudo iptables -A INPUT -p icmp -j DROP
,# -A 在指定链的末尾添加(append)一条新的规则,# DROP 直接丢弃数据包,不给任何回应信息。 - 查看当前防火墙配置信息
sudo iptables -L
,配置成功。
- 查看ICMP包接收情况,发现包100%丢失,攻击机无法收到ICMP响应包。
- 删除自定义规则,
sudo iptables -F
- 删除过滤包规则后,攻击机成功收到ICMP包。
(2)只允许特定IP地址,访问主机的某一网络服务(如FTP、HTTP、SMB),而其他的IP地址无法访问(两种方法) - 实验环境
攻击机kali | 192.168.32.3 |
靶机Seed | 192.168.32.5 |
WinXP | 192.168.32.4 |
- 当前无规则
- 攻击机申请远程服务,访问主机(seed账号:seed,密码:dees)
- WinXP申请访问靶机
- 添加规则,禁止所有主机远程访问靶机
iptables -P INPUT DROP
- 可以看到此时两台机器都无法连接seed了。
- 添加特定规则,允许WinXP远程访问靶机
sudo iptables -A INPUT -s 192.168.32.4 -j ACCEPT
- 再次连接发现,Kali攻击机无法远程访问靶机,但Win XP成功远程访问靶机。
1.3.2 动手实践Snort
- 对已有的listen.cap进行入侵检测,可以看到检测到的数据包信息,有UDP、TCP、ARP等,其中主要是TCP。
snort -r listen.pcap -c /etc/snort/snort.conf -K ascii
# -c表示选择snort配置文件,-r表示从pcap格式的文件中读取数据包,-K ascii是用来指定输出日志文件的为ASCII编码
报警数据包有10条,均被日志记录,所有数据包都允许裁决。
- 进入报警日志目录,查看日志文件
cd /var/log/snort,vim alert
,可以看到入侵检测信息,本次攻击是使用nmap发起的。攻击主机的IP地址是172.31.4.178,网络扫描的目标IP地址是172.31.4.188。
1.3.3分析配置规则
(1)分析防火墙
- 查看蜜网网关的防火墙文件内容
在蜜罐中,首先输入指令su提权,再输入vim /etc/init.d/rc.firewall
,就可用看到内容了。
- 白名单是设置能通过的用户,白名单以外的用户都不能通过,黑名单是设置不能通过的用户,防护名单是部分包能通过。
- 同时创建了很多协议数据包的处理规则链。
- 也设置了默认规则、本地规则、管理规则。防火墙开启后根据先前规则链及定义的规则函数过滤数据包。
(2)分析iptables - 查看规则列表,输入指令
iptables -t filter -L | less
可以看到默认的规则入INPUT、FORWARD、OUTPUT都已经被关闭了。
(3)获取Snort实际执行参数
- 打开文件,查看Snort实际执行参数,输入指令,
vim /etc/rc.d/init.d/snortd
,可以看到默认使用默认目录下的snort.conf规则,默认监听网卡为eth0,配置文件的位置在/etc/snort/snort.conf。
(4)获取Snort_inline实际执行参数
- 打开snort_inline的脚本文件,查看实际执行参数,输入指令
vim /etc/init.d/hw-snort_inline
,如下图所示,其中-D表示Daemon模式,-c表示读取config文件,-Q表示使用QUEUE模式,-l表示输出log文件的目录,-t表示改变程序执行时所参考的根目录位置。
(5)蜜网网关利用防火墙和入侵检测技术完成攻击数据捕获和控制需求
- 查看服务开启状态
su - // 注意一定要使用su - ,而不是su,否则找不到chkconfig
chkconfig --list | grep iptables //查看防火墙服务开启状态
chkconfig --list | grep snort //查看snort服务开启状态
如下图所示,0~6分别表示关机、单用户模式、无网络连接的多用户命令行模式、有网络连接的多用户命令行模式、不可用、带图形界面的多用户模式、重新启动。
可以看出iptables和hw-snort_inline在无网络连接的多用户命令行模式下开始启动,而snortd不会自启动。
各级别说明:
- 查看更新方式
打开honeywall配置文件,来看snort的规则是否自动更新,输入指令vim /etc/honeywall.conf
,如下图可用看到其默认为不更新。
2.遇到的问题及解决
问题1:在chkconfig iptables时,发现chkconfig命令无法找到,并且是在su之后也无法找到,但是通过查看发现chkconfig包是在的。
问题1解决方案:需要su - 之后才能使用chkconfig,su和su - 的区别在于:
- 前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
- 而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。
问题2:一开始kali一直远程连接不上seed。
问题2解决方案:发现是网络问题,有时候联网,网络发生变化了,网段会出一些问题,重启一下就好了。
3.学习感悟、思考等
本次实验我了解了网络安全的老三样(防火墙、防病毒、入侵检测)中的防火墙功能,可用进制远程连接、设置相应的rule等等,要做好本次实验需要掌握的知识点较多,所以完成本次实验花费了较多时间,尤其是在chkconfig时,刚开始不知道为什么找不到,并且其实这个包是存在的情况下,后面查找资料发现,要进入到su-中才是改变了shell的环境。
4.参考资料
iptables使用详解
snort使用手册
《网络攻防技术与实现》