20242931 2024-2025-2 《网络攻防实践》第五周作业

news/2025/4/1 22:19:29/文章来源:https://www.cnblogs.com/JiaxinHou/p/18801281

20242931 2024-2025-2 《网络攻防实践》第五周作业

1. 实验内容

1.1 实验要求

(1) 防火墙配置:配置Linux操作系统平台上的iptables,要求过滤ICMP数据包,使得主机不接收Ping包;只允许特定IP地址(如局域网中的Linux攻击机192.168.200.13)访问主机的某一网络服务(如FTP、HTTP、TCP),而其他的IP地址(如Windows攻击机192. 168.200.3)无法访问。

(2) 动手实践Snort:在Windows攻击机上使用Snort,对给定的pcap文件进行入侵检测,读取网络日志数据源,并对检测出的攻击进行说明,且要求获得报警日志。

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

1.2 知识点梳理与总结

技术/工具 角色 核心功能 工作原理 相互关系
防火墙(iptables) 防御层 (1) 包过滤防火墙:基于规则集(源/目标IP、端口、协议等)允许或阻止网络流量;
(2) 网络地址转换 (NAT):实现IP伪装和端口转发;
(3) 流量整形:通过队列限制带宽或优先级
基于预定义规则对网络数据包进行过滤处理 提供基础网络访问控制
入侵检测系统(Snort) 检测层 (1) 网络入侵检测/防御 (NIDS/NIPS):实时分析流量,匹配签名或异常行为(如缓冲区溢出、扫描攻击);
(2) 协议分析:深入解析HTTP、DNS等应用层协议;
(3) 告警与日志:触发实时警报
通过规则引擎对网络流量进行深度包检测 依赖防火墙将可疑流量引导至检测节点
蜜网网关(honeywall) 诱捕层 (1) 数据控制:限制蜜罐外联流量,防止攻击者滥用蜜网跳板;
(2) 数据捕获:记录所有进出蜜罐的流量(PCAP、日志)、键盘记录等;
(3) 数据分析:关联攻击行为,生成威胁情报(如攻击源IP、漏洞利用手法)
通过防火墙控制将攻击流量引导至蜜罐,并利用IDS进行攻击监测 整合防火墙和IDS功能,构建完整攻防研究环境

2. 实验过程

2.1 防火墙配置

  • 此任务我们选择使用Kali,WindowsXP Attacker,SEEDUbuntu三台虚拟机
虚拟机 IP地址
Kali 192.168.200.13
WindowsXP Attacker 192.168.200.3
SEEDUbuntu 192.168.200.4
  • 检验一下各主机之间的连通性,结果证明连通正常

image-20250330124117280

image-20250330124210910

image-20250330124240803

2.1.1 过滤ICMP数据包

  • 在kali上通过iptables -L查看规则,观察结果可以发现,只有默认策略,无自定义规则,这种配置对流量没有任何限制

image-20250330124947029

  • 执行iptables -A INPUT -p icmp -j DROP指令使主机不接受icmp的数据包,执行后再次查看规则,可以发现新增了一条规则DROP icmp -- anywhere anywhere,表示丢弃所有来源和目标的 ICMP 流量
    • -A INPUT:向 INPUT 链(处理传入流量)追加一条规则
    • -p icmp:匹配协议为 ICMP(如 ping 请求)
    • -j DROP:对匹配的流量执行 DROP(静默丢弃,不回复)

image-20250330125744881

  • 回到winxpattacker,再次尝试ping 192.168.200.13,发现全部超时

image-20250330130440828

  • 返回kali,执行iptables -D INPUT -p icmp -j DROP将刚刚的过滤规则删除,再去winxpattacker尝试ping 192.168.200.13,可以发现连接恢复

image-20250330131046035

2.1.2 只允许特定IP访问主机网络服务,而其他IP地址无法访问

  • 首先,确定两台机器都可以进行telnet登陆

image-20250330132702599

image-20250330132807458

  • 接下来,在SEEDUbuntu中使用指令sudo iptables -P INPUT DROP拒绝一切数据包流入

image-20250330133726276

  • 返回kali和winxpattacker发现命令行卡顿,无法键入指令,在新的终端再次尝试telnet连接,连接失败

image-20250330133616715

image-20250330133650269

  • 在SEEDUbuntu中执行指令sudo iptables -A INPUT -p tcp -s 192.168.200.13 -j ACCEPT开启192.168.200.13(kali)对本机的tcp服务,并用sudo iptables -L查看规则

image-20250330134634949

  • 再次返回kali和winxpattacker尝试telnet登录Ubuntu,可以发现kali可以正常访问,而winXP依旧连接失败

image-20250330134921295

image-20250330134947637

  • 最后使用sudo iptables -Fsudo iptables -P INPUT ACCEPT两条指令恢复之前的状态

    • 设置链的默认策略(Policy)指令必须大写 -P,仅接受 ACCEPT/DROP/REJECT 等动作

    • 指定匹配的协议(protocol)指令必须小写 -p,支持 tcpudpicmp

image-20250330135322099

2.2 动手实践:Snort

  • 此任务只需要用到一台虚拟机kali
  • 在kali中执行指令snort -r /etc/snort/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort
    • -r /etc/snort/listen.pcap:从文件 listen.pcap 读取抓包数据(-r 表示 read
    • -c /etc/snort/snort.lua:指定 Snort 的配置文件(snort2是snort.conf)
    • -A alert_fast:设置警报输出模式为 alert_fast(简洁格式,每行一条警报)
    • -l /var/log/snort:将警报日志保存到 /var/log/snort 目录

image-20250330145637599

  • 分析结果发现:snort此次共分析了1个pcap文件,处理数据包135,580个,接收字节数8,139,156。协议分布显示有IPv4数据包135,560个(99.985%),TCP数据包135,512个(99.95%),UDP仅3个包,ARP包20个,这种分布表明网络流量几乎全部为TCP/IPv4流量,存在极少量ARP和UDP通信

image-20250330150113404

  • 与此同时,跟踪67,660个流,其中TCP流67,657个,UDP流3个。TCP会话特征显示有67,657个SYN请求,但仅有83个SYN-ACK响应,同时,出现67,549个RST和72个FIN,这种异常比例(SYN-ACK率仅0.12%)表明存在大量不完整连接,可能是扫描行为导致

  • 输入指令vim /var/log/snort,双击alert_fast.txt查看输出的报警日志文件

image-20250330152436718

  • 观察发现,日志中检测到两类高危攻击行为,均由 IP 172.31.4.178(攻击者)向 172.31.4.188(目标)发起,分别是Nmap XMAS 攻击和异常 TCP 会话攻击

2.3 分析配置规则

  • 此任务只需要使用一台虚拟机honeywall
  • 启动honeywall,使用su -指令提权,再执行vim /etc/init.d/rc.firewall打开防火墙文件

image-20250330170009725

  • 可以看到create_chains函数自动创建了三条自定义链,黑名单链BlackList用于封禁恶意IP或流量;白名单链WhiteList只允许可信IP访问;防护名单链Fencelist限制蜜罐的出站流量,防止蜜罐被利用作为攻击跳板
  • 还可以看到默认规则(默认全部丢弃的规则)、本地规则(允许本地转发的规则)、管理规则(允许管理接口,放行指定端口的规则)等

image-20250330175734836

  • 返回命令行,查看规则列表iptables -t filter -L | less,可以观察到默认规则(INPUT、FORWARD、OUTPUT)已被关闭

image-20250330181445154

image-20250330185800797

  • 返回命令行,执行命令vim /etc/rc.d/init.d/snortd,打开脚本文件可看到该脚本默认使用snort.conf规则,默认监听eth0网卡,默认存储日志路径为/var/log/snort,当然还定义了一些其他操作

image-20250330194408434

image-20250330194225978

  • 接下来,执行命令vim /etc/init.d/hw-snort_inline打开snort_inline脚本文件,可以看到实际执行参数,如一些变量和操作指令说明

image-20250330195112856

image-20250330195158860

  • 键入指令chkconfig --list | grep iptableschkconfig --list | grep snort,分别查看iptables防火墙服务和Snort入侵检测系统在系统各运行级别下的开机自启状态

image-20250330201117309

  • 其中0表示关机,1表示单用户模式,2表示无网络连接的多用户模式,3表示有网络连接的多用户命令行模式,4表示保留未用,5表示有图形界面的多用户模式,6表示重启。可以看出iptables和hw-snort_inline在无网络连接的多用户命令行模式下开始启动,而snortd在任何情况下都不会自启动
  • 回到命令行,执行vim /etc/honeywall.conf指令,在Snort Rule Update Variables部分可以观察到自动更新和服务自动启动服务是关闭的,将no改为yes可实现自动更新,每周规则更新日期是周六

image-20250330203908998

  • 蜜网网关通过防火墙严格过滤流量,利用Snort入侵检测实时分析流量,匹配攻击特征并记录恶意行为,生成结构化日志,同时保存原始攻击数据,结合虚假情报诱导攻击者暴露更多手法,最终形成“诱捕-分析-阻断”的闭环,既捕获攻击数据,又限制攻击影响范围

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

  • 问题1:完成防火墙配置任务过程中,在kali和winXP上对Ubuntu进行telnet登录访问时需要输入用户名、密码,但启动SEEDUbuntu虚拟机无需进行登录操作,故对用户名密码没有印象
  • 问题1解决方案:打开用户名密码.txt文件,找到了对应的用户名密码

image-20250330140834995

  • 问题2:执行snort -r /etc/snort/listen.pcap -c /etc/snort/snort.lua -A alert_fast -l /var/log/snort后,控制台输出包含报警日志,但日志并未被保存到/var/log/snort 目录

  • 问题2解决方案:键入nano /etc/snort/snort.lua修改配置文件,找到configure outputs模块,删除alert_fast前的注释符号,并在括号中添加语句,修改后重新执行语句,日志成功被保存到指定目录

        file = true,      -- 必须为 true 才会写入文件packet = false,limit = 10	
    

image-20250330154557467

4. 学习感想和体会

本次实验我学会了使用iptables过滤ICMP数据包、只允许特定IP地址访问某网络服务,使用Snort对pcap文件进行入侵检测、获取报警日志并指定目录存储路径,以及分析蜜网配置规则,实验过程比较简单,主要是通过相关指令实现内容读取、配置修改、状态查询等功能,一个清晰的感受是近几次实验重点越来越侧重于实验分析,操作步骤逐渐简单,但更加考验我们对指令的理解、对原理的掌握,不能止步于看到输出结果,而是要明晰结果说明了什么,在此过程中也能够对我们使用的工具与技术有进一步认识,能体会到自己是有进步的,当然,还需要再接再厉!

参考资料

在Ubuntu 上安装和配置Snort 3 NIDS - FreeBuf网络安全行业门户

Snort3:使用说明(四)_snort3.0 规则-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/908383.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CTF笔记】HackINI 2021-sqli-0x1-bugku-SQL注入题wp

这个题的主题是sql注入,但是有一定安全措施阻挠,关键词:过滤、hash校验 首先进入页面,看到有登录框,输入一个admin测试密码,提示密码错误,输入其他账号root登,都是没有此用户,判断目标就是要get到admin的登录 查看到有提示,访问pls_help可以查看源代码 这个代码有几…

Pychaim集成本地部署的ollama+qwen-coder32b

服务器配置为:2个11264MiB NvidiaGPU + 16核 3.8GHz CPU + 72G 内存;部署Ollama平台,使用Qwen-coder2.5:32B模型。 1. 下载、安装并运行ollama; ollama的安装网上介绍的比较多,此处不再多讲,可以参考 Ollama全面指南:安装、使用与高级定制 若在服务器上部署ollama,确保…

[Vue] Vue 模板编译原理解析 part3

生成 JavaScript AST 我们要对整个模板的 AST 进行转换,转换为 JS AST。 我们目前的代码已经有了遍历模板 AST,并且针对不同的节点,做不同操作的能力。 我们首先需要知道 JS AST 长什么样子: function render(){return null; }上面的代码,所对应的 JS AST 如下图所示:这里…

[Vue] Vue模板编译原理解析 part3

生成 JavaScript AST 我们要对整个模板的 AST 进行转换,转换为 JS AST。 我们目前的代码已经有了遍历模板 AST,并且针对不同的节点,做不同操作的能力。 我们首先需要知道 JS AST 长什么样子: function render(){return null; }上面的代码,所对应的 JS AST 如下图所示:这里…

关于window版本nacos版本安装过程

环境 window10 16G 1TB下载地址window版本zip包 https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.zip Linux版tar包 https://github.com/alibaba/nacos/releases/download/2.5.1/nacos-server-2.5.1.tar.gz安装前提安装jdk 1.8及以上,我安装了…

Netty源码—10.Netty工具之时间轮

大纲 1.什么是时间轮 2.HashedWheelTimer是什么 3.HashedWheelTimer的使用 4.HashedWheelTimer的运行流程 5.HashedWheelTimer的核心字段 6.HashedWheelTimer的构造方法 7.HashedWheelTimer添加任务和执行任务 8.HashedWheelTimer的完整源码 9.HashedWheelTimer的总结 10.Hashe…

0330-好的开始是成功的一半

前言 今天帮一个 USC Game Dev 专业同学做项目,真的挺复杂的一个项目。 但是我依然把项目配置好了,后面就是慢慢的添加新功能。 我用了 git 管理这个项目,把自己的每一步关键操作都用 git commit 记录一下。效果心路历程 我想过很多次 “要不就放弃吧” 但是看到旁边的“Att…

数仓项目建设方案——维度建模

数仓项目建设方案——维度建模式信息收集项目背景 阐述公司当前的行业,涉及的主要业务,相关数据的大小、分布、更新情况描述,需要解决的相关问题。公司当前数据建设现状 使用的数据库、数据来源系统与方式、现有数据分析组织,所使用的 BI 工具与数仓工具、为什么建立以及当…

在机器人和无人机时代,测绘人的出路在哪里?

一、技术革命:当测绘行业按下“加速键”无人机与机器人技术正在重塑测绘行业的底层逻辑。传统测绘依赖人工作业,效率低、成本高且风险大,而无人机凭借其灵活性和高效性,已能快速完成大范围地形测绘,精度可达厘米级,甚至替代人工进入危险区域(如塌方、悬崖等)作业。例如…

openwrt禁止设备联网

一、代码操作 把mac地址换成要禁用的设备mac地址,加到自定义防火墙最后,记得最后重启防火墙生效 /etc/init.d/firewall restart iptables -I INPUT -m mac --mac-source B8:C7:4A:7A:66:2E -j DROP iptables -I FORWARD -m mac --mac-source B8:C7:4A:7A:66:2E -j DROP iptab…

JVM调优原理篇

JVM调优 什么是JVM调优,调优的指标是什么? JVM调优指的就是对当前系统进行性能调优,简单来说就是尽可能使用较小的内存和CPU来让JAVA程序获得更高的吞吐量及较低的延迟。 调优常见的指标:吞吐量:是指不考虑垃圾收集引起的停顿时间或内存消耗,应用达到的最高性能指标。 延…

20241216 实验二《Python程序设计》实验报告

20241216 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2412 姓名: 曾楷 学号:20241216 实验教师:王志强 实验日期:2024年3月26日 必修/选修: 公选课 (一) 实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善…