20242825 2024-2025-2 《网络攻防实践》课程总结
@
一、实验总结
1. 第1次实践
第1次实践 网络攻防环境的搭建:
实验介绍:
本次实验是利用虚拟机镜像和VMWare Workstations软件,搭建一个包含攻击机、靶机、SEED虚拟机以及蜜网网关的个人版基础网络攻防实践环境。在实验中学习蜜网网关概念,掌握环境构建流程,配置虚拟机组件,测试连通性,更新老旧软件等。
通过实验,熟悉网络攻防环境搭建,重温Linux知识,学会在博客写Markdown文件,为后续攻防实验奠基,也明晰需深入学习以提升蜜网网关利用能力。
实验收获:
通过本次实验,学习并掌握了如何构建网络攻防实验环境,还认识到在配置环境过程中所需要的各种虚拟机组件以及蜜网网关。其中,蜜网网关是作为一种入侵诱饵展现出来的,它能够吸引黑客进行攻击,并通过监控网络接口 eth0来捕获并分析网络数据,从而了解入侵的具体方式。此外,这种方法还能够帮助我们及时掌握针对组织服务器的最新攻击手段和潜在漏洞,尽管目前仅使用了监听 ICMP 数据包的基本命令,但对于更复杂的操作和功能,还尚未涉足。
除此之外,在本次实验中我对于虚拟机有了更进一步的认识,在搭建环境过程中让我重温Linux方面知识,提升对于Linux虚拟机环境的配置以及使用。
最后,通过这次实验我还学会了如何在博客上写markdown文件,虽然上学期Linux课程学会写markdown文件但全在VSCode中转化为PDF形式存入文件,并没有在博客中。
2. 第2次实践
第2次实践 网络信息收集技术:
实验介绍:
本次实验聚焦网络信息收集技术,开展多维度实践操作。在域名与 IP 信息查询环节,需从www.besti.edu.cn、baidu.com、sina.com.cn里选定一个 DNS 域名,运用相关工具与方法,获取该域名的 DNS 注册人及联系方式,查询域名对应的 IP 地址,再深入挖掘此 IP 地址的注册人、联系方式,以及 IP 地址所在的国家、城市和具体地理位置 。同时,尝试从 BBS、论坛、QQ、MSN 等平台获取某一好友的 IP 地址,进而查询其具体地理位置。
在实验中先是使用 nmap 开源软件对靶机环境进行扫描,执行判断靶机 IP 是否活跃的操作,探测靶机开放的 TCP 和 UDP 端口,识别靶机安装的操作系统及版本,枚举靶机上安装的服务,且要记录对应的操作命令 。之后,利用 Nessus 开源软件扫描靶机环境,确定靶机开放的端口,查找靶机各端口上网络服务存在的安全漏洞,还要思考并规划攻陷靶机环境以获得系统访问权的思路,同样需记录操作命令。另外,通过搜索引擎搜索自己在网上留下的足迹,检查并确认自身是否存在隐私和信息泄漏问题。
实验收获:
在本次实验里,我深入接触并实践了基础网络信息收集技术,涵盖 DNS 域名查询、IP 地址查询,以及使用 nmap 进行网络扫描等内容,这些知识可细分为网络踩点、网络扫描、网络查点三个方面 。进行这些操作,目的是在开展更深入的测试或攻击前,尽可能全面了解目标系统和网络,不过这类活动若被恶意利用,也可能成为网络攻击的前奏,借此清晰认知到网络信息收集技术的双面性。在完成 IP 地理位置查询时,使我深刻意识到在日常接打电话过程存在被定位、隐私信息可能泄漏的风险,对网络环境中个人隐私保护有了更直观的警惕。
整体而言,此次实验让我对信息收集技术的知识学习更为深入,相关知识得到巩固,从域名 IP 查询的基础信息挖掘,到网络扫描工具的实操运用,再到个人网络足迹的自查,一系列实践让我熟悉了网络攻防前置环节的流程与要点,为后续开展网络攻防实验搭建了坚实的知识与技能基础,也对网络安全领域中 “知彼” 环节的重要性与潜在风险有了深刻认知。
3. 第3次实践
第3次实践 网络嗅探与协议分析:
实验介绍:
本次实验主要围绕网络嗅探与协议分析技术展开,包含TCPDump、Wireshark 工具实操及取证分析等知识。在 TCPDump 实践环节运用该开源软件,对本机访问天涯网站(www.tianya.cn)首页的过程进行嗅探,以此确定访问时浏览器所连接 Web 服务器的数量及对应的 IP 地址;而Wireshark 实践部分则是通过 TELNET 方式登录 BBS,借助 Wireshark 开展嗅探与协议分析。操作中需明确所登录 BBS 服务器的 IP 地址和端口,探究 TELNET 协议传输用户名、登录口令的机制,还要掌握利用 Wireshark 从嗅探数据包里提取用户名与登录口令的方法,并完整呈现操作流程;最后,取证分析实践则针对 listen.cap 文件,需解码其中网络扫描器信息。具体要找出攻击主机的 IP 地址、网络扫描的目标 IP 地址;确定发起端口扫描的工具,阐述判断依据;明晰攻击者使用的扫描方法、扫描目标端口,解析其工作原理;排查蜜罐主机上开放的端口;识别攻击主机的操作系统 。这些操作均为网络安全领域渗透测试与安全评估的关键环节,助力了解网络数据包捕获、检查与分析流程。
实验收获:
通过本次实验,我深入学习并掌握了基础网络嗅探与协议分析技术,涵盖 TCPDump 嗅探网络访问流程、Wireshark 分析 TELNET 协议及数据包,以及对网络扫描器日志 listen.cap 的取证解码 。实操过程中,熟悉了工具的使用方法,理解网络嗅探和协议分析在渗透测试、安全评估里的重要性,巩固了协议分析相关知识 。这些实践为后续开展网络攻防实验筑牢基础,让我在网络安全技术探索中,能更精准地捕获、剖析网络数据包,洞察网络通信潜在风险与问题,提升网络安全分析实操能力。
4. 第4次实践
第4次实践 TCP/IP网络协议攻击:
实验介绍:
本次实验主要围绕TCP/IP网络协议攻击相关展开,主要任务是在网络攻防实验环境里完成 TCP/IP 协议栈重点协议的攻击实操,包括五类攻击实验,分别是 ARP 缓存欺骗攻击、ICMP 重定向攻击、SYN Flood 攻击、TCP RST 攻击以及 TCP 会话劫持攻击 。在实验过程中深入探究每类攻击的原理,比如 ARP 缓存欺骗是如何利用 ARP 协议漏洞,向目标设备发送虚假 ARP 响应包,篡改其 ARP 缓存表,实现中间人攻击;ICMP 重定向攻击怎样借助 ICMP 重定向报文,误导目标主机的网络流量走向 。同时,在实验时若遇到因网段设置不同引发的问题,需进行排查与解决,以此加深对网络连接底层逻辑的理解。
实验收获:
通过本次实验,我系统学习并掌握了 TCP/IP 网络协议攻击里,ARP 缓存欺骗、ICMP 重定向等五类攻击的相关知识。在实操中,深入了解各类攻击的原理,清晰知晓攻击是如何利用协议自身特性去破坏网络正常通信的 。而且,在排查网段不同导致问题的过程里,对网络连接的认识进一步加深,从协议交互、网络拓扑等层面,更透彻理解网络通信的流程与机制 。这次实验让我在协议攻击技术方面的知识得到深化巩固,为后续开展更复杂的网络攻防实验筑牢基础,后续再进行网络攻防相关实践时,能更精准地分析攻击手段、防范网络威胁。
5. 第5次实践
第5次实践 网络安全防范技术:
实验介绍:
本次实验主要是在网络攻防技术中的防御层面开展多维度实践操作。在防火墙配置任务里,需依据操作系统(Linux 或 Windows ),选用 iptables(Linux 环境 )或个人防火墙(Windows 环境 )进行设置。具体要实现两项功能:一是过滤 ICMP 数据包,让主机拒绝接收 Ping 包,阻断基于 ICMP 协议的网络探测;二是设置访问控制规则,仅允许特定 IP 地址(如局域网内 Linux 攻击机 192.168.200.3 )访问主机指定网络服务(FTP、HTTP、SMB 等 ),其他 IP(如 Windows 攻击机 192.168.200.4 )则无法访问,以此构建基础网络访问权限管控。除此之外,还要分析虚拟网络攻防环境中蜜网网关的防火墙和 IDS/IPS 配置规则,探究蜜网网关如何借助防火墙的访问控制与入侵检测技术的攻击识别能力,达成攻击数据捕获和控制需求,理解蜜网在网络防御体系中的作用机制。
实验收获:
通过本次实验,我深入学习网络攻防防御技术,涵盖防火墙配置、Snort 规则应用及蜜网网关防御逻辑。在防火墙实操中,掌握基于不同系统的访问控制与协议过滤方法,明晰网络服务权限管控的实现路径;利用 Snort 进行入侵检测,熟悉从日志读取、规则配置到攻击分析的完整流程,提升对网络攻击行为的识别与研判能力 。分析蜜网网关配置规则时,透彻理解防火墙与 IDS/IPS 协同工作机制,深化对网络防御技术体系的认知 。整体实验巩固了网络防御知识,为后续网络攻防实践筑牢基础,在面对实际网络安全场景时,能更精准运用防御工具与技术,构建有效安全防护体系。
6. 第6次实践
第6次实践 Windows操作系统安全攻防:
实验介绍:
本次实验主要十关于网络攻防技术中的防御层面,在防火墙配置任务里,需依据操作系统(Linux 或 Windows ),选用 iptables(Linux 环境 )或个人防火墙(Windows 环境 )进行设置。具体要实现两项功能:一是过滤 ICMP 数据包,让主机拒绝接收 Ping 包,阻断基于 ICMP 协议的网络探测;二是设置访问控制规则,仅允许特定 IP 地址访问主机指定网络服务,其他 IP则无法访问,以此构建基础网络访问权限管控 。在Snort 实践环节操作时,在 BT4 Linux 攻击机或 Windows Attacker 攻击机上运行 Snort,按照命令提示,从离线 pcap 文件读取网络日志数据源,在 snort.conf 中配置明文输出报警日志文件,指定报警日志 log 目录,完成检测后获取并分析报警日志,明确检测出的攻击行为 。此外,还要分析虚拟网络攻防环境中蜜网网关的防火墙和 IDS/IPS 配置规则,探究蜜网网关如何借助防火墙的访问控制与入侵检测技术的攻击识别能力,达成攻击数据捕获和控制需求,理解蜜网在网络防御体系中的作用机制 。
实验收获:
通过本次实验,使我深入学习网络攻防防御技术,涵盖防火墙配置、Snort 规则应用及蜜网网关防御逻辑。在防火墙实操中,掌握基于不同系统(Linux/Windows )的访问控制与协议过滤方法,明晰网络服务权限管控的实现路径;利用 Snort 进行入侵检测,熟悉从日志读取、规则配置到攻击分析的完整流程,提升对网络攻击行为的识别与研判能力 。分析蜜网网关配置规则时,透彻理解防火墙与 IDS/IPS 协同工作机制,深化对网络防御技术体系的认知 。整体实验巩固了网络防御知识,为后续网络攻防实践筑牢基础,在面对实际网络安全场景时,能更精准运用防御工具与技术,构建有效安全防护体系 。
7. 第7次实践
第7次实践 Linux操作系统攻防:
实验介绍:
本次实验主要围绕 Metasploit 工具开展 Linux 远程渗透相关实践。包括使用 Metasploit 进行 Linux 远程渗透攻击任务,借助 Metasploit 渗透测试软件,针对 Linux 靶机上 Samba 服务的 Usermap_script 安全漏洞实施攻击,以获取目标 Linux 靶机的主机访问权限 。除此之外此次实验还有攻防对抗实践环节。攻击方要利用 Metasploit,挑选 Metasploitable 靶机中存在的漏洞进行渗透攻击,先获取远程控制权,再尝试进一步获取 root 权限;防守方则通过 tcpdump、wireshark、snort 监听网络攻击产生的数据包文件,结合 wireshark、snort 分析攻击过程,获取攻击者 IP、目标 IP 和端口、攻击发起时间、攻击利用的漏洞、使用的 Shellcode,以及攻击成功后在命令行输入的信息 。
实验收获:
通过本次实验,聚焦学习利用 msfconsole 等工具开展 Linux 远程渗透攻击,与之前实验有延续也有拓展,延续了对 Metasploit 工具漏洞攻击的实践,拓展至 Linux 系统场景 。实验过程里,深入熟悉 Linux 靶机漏洞攻击的流程,从工具启动、模块选择、参数配置到攻击执行与权限验证,全方位掌握操作要点,同时对漏洞技术有了更深入认知,明晰防范与应对 Linux 系统漏洞攻击的思路 。攻防对抗实践中,无论是攻击方的渗透操作,还是防守方的数据包监听与分析,都强化了网络攻防技术的实操能力,拓展了在网络攻防领域的知识储备,为后续开展更复杂的网络攻防实验筑牢实践基础,面对不同系统的渗透攻击场景,能更精准运用技术进行攻击与防御 。
8. 第8次实践
第8次实践 恶意代码分析实践:
实验介绍:
本次实验聚焦恶意软件与恶意代码实践设置多个任务。动手实践任务一针对 rada 恶意代码样本,依次开展文件类型识别、脱壳与字符串提取操作。先利用文件格式和类型识别工具,明确样本的文件格式、运行平台及加壳工具;再通过超级巡警脱壳机软件对其脱壳;最后用字符串提取工具分析脱壳后的样本,尝试找出编写作者 。动手实践任务二是在 WinXP Attacker 虚拟机中,使用 IDA Pro 对 crackme1.exe 和 crackme2.exe 进行静态或动态分析,探寻特定输入以让程序输出成功信息 。分析实践任务一围绕自制恶意代码样本 rada 展开,包括提供二进制文件摘要、解释文件目的、识别特性、分析防止逆向工程的技术、对样本分类及说明理由、列举相似功能工具,以及探讨能否调查开发者及条件。分析实践任务二针对 Windows 2000 系统被攻破加入僵尸网络的场景,基于 Snort 收集的蜜罐主机 5 天网络数据源,回答 IRC 相关概念、僵尸网络定义与用途,以及蜜罐主机通信的 IRC 服务器、访问特定僵尸网络的主机数量、攻击蜜罐主机的 IP 地址、尝试攻击的安全漏洞、成功攻击情况及原理等问题 。
实验收获:
在本次实验,与之前实验侧重网络攻防工具不同,直接深入恶意程序分析领域。在实验过程中我系统学习木马、蠕虫、病毒、后门等恶意程序知识,明晰它们的区别与联系,掌握文件类型识别、脱壳、字符串提取等逆向工具,以及Snort 流量分析等监听工具的用法 。通过剖析 rada 恶意代码样本、Crackme 程序,以及 Windows 2000 系统被攻击加入僵尸网络的案例,对恶意代码的设计、传播、攻击逻辑有了深刻理解,也熟悉了从代码层到网络层的分析思路 。此次实验极大拓展了网络攻防技术知识储备,强化了恶意程序分析与防范的关键要点,为后续深入开展网络安全攻防实验,尤其是应对恶意软件威胁场景,筑牢了实践根基,让我在网络安全学习中向更纵深的逆向分析与恶意代码防御方向迈进。
9. 第9次实践
第9次实践 软件安全攻防--缓冲区溢出和shellcode:
实验介绍:
本次实验围绕名为 pwn1 的 Linux 可执行文件开展。该程序正常执行时,main 函数调用 foo 函数,foo 函数会回显用户输入的字符串,同时程序包含 getShell 代码片段,正常不会运行,实验目标是让其执行。实验设置三个实践内容:一是手工修改可执行文件,改变程序执行流程,直接跳转到 getShell 函数;二是利用 foo 函数的 Buffer 漏洞,构造攻击输入字符串,覆盖返回地址,触发 getShell 函数;三是注入自行制作的 shellcode 并运行 。
实验收获:
与前面实验不同之处在于此次实验实现了三种能获取shell的方式,聚焦 pwn1 程序,实现三种获取 shell 的方式。在实验过程中我深入认识缓冲区溢出、反汇编、十六进制编程器等知识及关联,掌握反编译与修改可执行文件操作,对 gdb 调试、构造 payload 攻击有更深理解。实验中问题频发,解决问题提升了纠错能力,拓展网络攻防知识储备,强化要点,为后续实验筑牢基础,推动对网络安全中二进制漏洞利用与攻击技术的学习走向深入 。
10. 第10次实践
第10次实践 Web应用程序安全攻防:
实验介绍:
本次实验包含两大核心实践模块。其一为 SEED SQL 注入攻击与防御实验,依托于www.SEEDLabSQLInjection.com 的员工管理 Web 应用程序开展。该程序有管理员和员工两种角色,关联名为 Users、含 credential 表(存储员工 eid、密码、薪水等信息 )的数据库。其二是 SEED XSS 跨站脚本攻击实验(Elgg ),基于预先构建的 Ubuntu VM 镜像中名为 Elgg 的 Web 应用程序。需利用 XSS 漏洞发起攻击,最终实现传播 XSS 蠕虫的目标,具体任务有:在 Elgg 配置文件嵌入 JavaScript 程序,使其他用户查看时弹出警报窗口;编写代码弹窗显示 cookie 信息、窃取受害者 cookies 并发送给攻击者;利用 js 程序无需受害者干预添加好友、修改受害者访问 Alice 页面时的资料;编写 XSS 蠕虫;开展对抗 XSS 攻击的操作 。
实验收获:
本次实验聚焦 SQL 注入、Web 渗透、蠕虫病毒等新领域知识。实验过程里,深入理解 XSS 攻击原理,亲身实践被蠕虫病毒感染的场景,深刻体会到网络安全隐患在 Web 应用、数据库交互等环节的广泛存在,推动对网络安全知识的学习走向深入 。实验开展较为顺利,少有阻碍,这一过程拓展了网络攻防技术知识储备,清晰认识到日常访问 Web 页面、维护数据库安全时需警惕注入攻击、跨站脚本等威胁,树立起更严谨的网络安全防护意识,为后续应对 Web 安全相关攻防实验与实际场景,筑牢知识与意识基础 。
11. 第11次实践
第11次实践 浏览器安全攻防实践:
实验介绍:
本次实验围绕 web 浏览器渗透攻击展开,包含三个实践模块。首先是 web 浏览器渗透攻击实践,借助攻击机和 Windows 靶机开展实验,体验网页木马构造与浏览器攻击全流程。具体步骤为:在 Metasploit 中选定 MS06 - 014 渗透攻击模块,将 PAYLOAD 设为任意远程 Shell 连接,配置服务器地址、URL 参数后运行 exploit 构造恶意网页木马脚本;在靶机启动浏览器,验证与服务器连通性并访问木马脚本 URL;最后在攻击机 Metasploit 查看攻击状态,利用成功建立的远程控制会话在靶机执行命令 ;
其次是取证分析实践 —— 网页木马攻击场景分析,需按流程操作:先访问 start.html 获取 new09.htm 地址;进入 htm 后,对解密出的文件地址做 32 位 MD5 散列,以散列值为文件名到指定路径下载对应文件(注意文件名格式 );若解密出网页或脚本文件则继续解密,若为二进制程序文件则进行静态反汇编或动态调试,重复操作直至所有文件分析完毕 ;
最后是攻防对抗实践 ——web 浏览器渗透攻击攻防,攻击方用 Metasploit 构造至少两个不同 Web 浏览器软件安全漏洞的渗透攻击代码,经混淆处理后组成 URL,通过欺诈性电子邮件发送;防守方需提取邮件中的挂马链接,进行解混淆分析、恢复渗透代码原始形态,剖析攻击针对的 Web 浏览器软件及安全漏洞 。
实验收获:
与前面实验不同之处在于此次实验进一步学习了渗透攻击等相关知识,聚焦于web 浏览器渗透攻击。在实验过程中我深入认识了Web 渗透攻击原理、Web 木马构造与传播,以及蠕虫病毒相关知识,切实体会到网络安全隐患在 Web 浏览场景的潜在威胁,强化 “不随意点击不明 Web 网页” 的安全意识 ,有效拓展网络攻防技术知识储备,明晰日常访问 Web 页面时防范渗透攻击、木马入侵的重要性,为后续应对 Web 浏览器安全攻防场景,积累实践经验与知识基础,提升网络安全防护的实操认知 。
二、 最喜欢的且做的最好的一次实践是哪次?为什么?
在课程实验中我最喜欢的便是第八次实验,因为在第八次实验中我第一次接触到了脱壳这一名词方面的知识,了解脱壳工具并进行具体实践操作,体会到将一个加密后的文件进行脱掉外壳的过程。除此之外,本次实验中我也亲身接触到了恶意代码,详细了解到木马、蠕虫病毒等知识,在实验初下载所需代码材料时也遇到了一些问题,电脑防火墙会直接删除掉带有恶意问题的代码文件,只有关闭防火墙并信任此文件最后才成功拿到所下载的文件。本次实验并不是我遇到问题最少的一次实验,却是我接触到网络攻防技术中恶意病毒代码最近的一次,也是打开这类知识面最深的一次,除了完成实验我也查询了很多相关资料,了解了许多这方面的知识。对于接触恶意代码样本真的很过瘾,不由自主的想去探索,所以说对于第八次实践是最喜欢的。
三、 本门课学到的知识总结(重点写)
(一)网络攻防环境的搭建
1.搭建网络攻防环境所用到的相关软件总结:
| 虚拟机镜像名称 | 类型 |
|---|---|
| kali | 攻击机 |
| WinXPattacker | 攻击机 |
| SEEDUbuntu9 | 攻击机 |
| Metasploitable Ubuntu | 靶机 |
| Win2kServer | 靶机 |
根据个人配置结果所画的网络拓补结构图如下图所示:

2.常用攻防软件:
| 名称 | 相关介绍 |
|---|---|
| Wireshark | 网络封包分析软件,一个理想的开源多平台网络协议分析工具。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。它可以让你在一个活动的网络里捕获并交互浏览数据,根据需求分析重要的数据包里的细节。 |
| TFN2K | 分布式拒绝服务(DDoS)攻击工具,通过主控端利用大量代理端主机的资源进行对一个或多个目标进行协同攻击。当前互联网中的UNIX、Solaris和Windows NT等平台的主机能被用于此类攻击,而且这个工具非常容易被移植到其它系统平台上。 |
| tcpdump | 根据使用者的定义对网络上的数据包进行截获的包分析工具,实验过程中在蜜网网关上使用过。 |
3.虚拟机总结
| 名称 | 相关介绍 |
|---|---|
| 蜜罐 | 一种软件应用,作为入侵诱饵吸引黑客攻击。通过监控入侵行为,可以了解攻击手段、最新漏洞,并收集黑客工具和社交网络信息。 |
| 蜜网 | 当多个蜜罐被网络连接起来,模拟一个大型网络环境,用以吸引黑客攻击并观察入侵过程,评估安全措施的有效性。 |
| 蜜网网关 | 在第三代蜜网技术中,蜜网网关作为一个透明的攻击行为捕获与分析平台,结合 Sebek 软件在蜜罐主机上记录攻击行为。 |
| 攻击机 | 应用于进行网络攻击例如网络扫描、渗透攻击、程序逆向分析,密码破解,监视、反汇编和编译等功能的主机,例如Kali以及WinXPattacker两台虚拟机。 |
| 靶机 | 应用于被网络攻击例如网络渗透攻击、网络服务弱口令破解以及获取远程访问权等的目标主机。例如Metasploitable_ubuntu以及Win2kServer_SP0_target两台虚拟机。 |
(二)网络信息收集技术
网络信息搜集:主要目的是在进行更深入的测试或攻击之前,尽可能多地了解目标系统和网络。可分为以下三点方法:
| 名称 | 功能 |
|---|---|
| 网络踩点(Footprinting) | 网络踩点是指攻击者计划的对目标的信息收集,了解目标的安全状况,其目的是在不引起目标警觉的情况下尽可能多地了解目标,收集目标相关信息,为实施下一步入侵做准备。网络踩点是信息收集过程的一部分,渗透测试人员或攻击者通过公开或半公开的信息来收集目标组织或个人的详细资料。这个过程可能包括搜索注册信息、社交媒体、网站内容、公开发布的文件等。 |
| 网络扫描(Scanning) | 网络扫描是渗透测试过程中的一个重要步骤,用于识别网络上的设备和服务,可以帮助测试人员了解目标系统的网络布局和潜在的安全漏洞。其主要类型有主机扫描、端口扫描、网络/系统类型探查、漏洞扫描,它可以通过发送数据包到目标IP地址范围并分析响应来工作。扫描可以用于发现开放的端口、运行的服务、操作系统类型等。 |
| 网络查点(Network Reconnaissance) | 网络查点是网络踩点的一个子集,更侧重于网络层面的信息收集。它可能包括使用工具和技术来识别目标网络的拓扑结构、IP地址范围、活跃的设备和服务等。网络查点可以帮助渗透测试人员或攻击者了解目标网络的边界和潜在的入口点。 |
(三)网络嗅探与协议分析
① tcpdump: tcpdump 是一款功能强大的网络数据包分析工具,常用于 Unix - like 系统,如 Linux、FreeBSD 等。它基于命令行操作,能实时捕获并分析网络流量,在网络故障排查、安全审计、网络性能优化等领域发挥关键作用。
工作原理:tcpdump 借助操作系统提供的底层网络接口,像 Linux 的 libpcap 库,获取网络数据包。其核心工作流程为:首先,与网络接口建立连接,将网络接口设置为混杂模式,这样能捕获经过该接口的所有数据包,包括发往其他主机的数据包。然后,根据用户设定的过滤规则,对捕获的数据包进行筛选。符合规则的数据包被进一步处理,比如打印到终端、存储到文件,不符合的则被丢弃。在处理数据包时,tcpdump 会解析数据包的头部信息,提取如源 IP 地址、目的 IP 地址、端口号、协议类型等关键内容。
② Wireshark: Wireshark 是一款非常流行的网络协议分析工具,它允许用户捕获和分析网络上的数据包。Wireshark 提供了深入分析网络流量的能力,可以帮助用户理解网络协议的工作原理,以及排查网络问题。
通常用于网络管理和故障排查以及网络安全分析。由于它能够捕获和分析网络上的所有数据包,因此在安全敏感的环境中使用时需要谨慎,以避免违反隐私和安全政策。
(四)TCP/IP网络协议攻击
1.常见网络攻击
| 攻击类型 | 攻击原理 | 攻击危害 | 防范措施 |
|---|---|---|---|
| ARP 缓存欺骗攻击 | ARP(地址解析协议)用于将 IP 地址解析为 MAC 地址。正常情况下,设备会在本地维护一个 ARP 缓存表。攻击者通过发送伪造的 ARP 响应包,让目标设备更新其 ARP 缓存表,将错误的 IP - MAC 映射关系存入其中,从而实现中间人攻击或阻断通信。 | 攻击者可以截获、篡改或阻断目标设备之间的通信。例如,攻击者可以将自己的 MAC 地址伪装成网关的 MAC 地址,使目标设备将数据发送到自己的设备上,从而窃取敏感信息。 | 使用静态 ARP 绑定,即手动配置 IP - MAC 映射关系,防止 ARP 缓存被恶意更新;安装 ARP 防火墙,检测和拦截异常的 ARP 数据包。 |
| ICMP 重定向攻击 | ICMP(互联网控制报文协议)重定向是一种正常的网络机制,用于路由器告知主机更改路由信息。攻击者利用这一机制,发送伪造的 ICMP 重定向报文,使目标主机将流量重定向到攻击者指定的地址。 | 攻击者可以改变目标主机的网络流量路径,进行中间人攻击,窃取或篡改数据。 | 在网络设备上禁用 ICMP 重定向功能,避免主机接收和处理异常的 ICMP 重定向报文。 |
| SYN Flood 攻击 | 这是一种 DoS(拒绝服务)攻击。在 TCP 连接建立过程中,客户端首先发送 SYN 包请求连接,服务器收到后返回 SYN - ACK 包进行确认,最后客户端再发送 ACK 包完成连接建立。攻击者大量发送 SYN 包但不响应服务器的 SYN - ACK 包,使服务器处于等待状态,耗尽服务器的资源,无法正常处理其他合法连接请求。 | 导致目标服务器无法响应正常用户的请求,造成服务中断。 | 使用防火墙或入侵检测系统(IDS)检测和过滤异常的 SYN 请求;服务器端可以采用 SYN Cookie 技术,在不消耗过多资源的情况下处理 SYN 请求。 |
| TCP RST 攻击 | TCP 协议中,RST(复位)标志用于异常终止 TCP 连接。攻击者通过发送伪造的 RST 包,使目标主机认为当前的 TCP 连接出现异常,从而强制关闭连接。 | 导致正在进行的 TCP 会话中断,影响业务的正常运行。例如,攻击者可以中断用户与服务器之间的 HTTP 连接,使用户无法正常浏览网页。 | 对 TCP 连接进行认证和加密,防止攻击者伪造有效的 RST 包;使用防火墙过滤异常的 RST 包。 |
| TCP 会话劫持攻击 | 攻击者通过嗅探网络流量,获取合法用户与服务器之间的 TCP 会话信息(如序列号、确认号等),然后伪装成合法用户或服务器,向对方发送伪造的数据包,从而接管会话,进行非法操作。 | 攻击者可以在不被察觉的情况下,获取用户的敏感信息,执行非法操作,如修改账户信息、进行资金转账等。 | 使用加密协议(如 SSL/TLS)对 TCP 会话进行加密,防止攻击者嗅探和篡改数据;对用户进行身份认证和授权,确保只有合法用户可以访问系统资源。 |
2.netwox:netwox是一款功能强大的网络工具集,主要用于网络安全测试、网络故障排查等,在网络安全领域具有广泛的应用。
- 主要功能和用途
① 网络测试:可以进行网络连通性测试、端口扫描、路由跟踪等操作。例如,你可以使用特定的模块来检测目标主机是否可达,开放了哪些端口,以及数据包的传输路径等。
② 协议分析:对各种网络协议进行分析和测试,如 ARP、ICMP、TCP、UDP 等。可以模拟这些协议的数据包,用于测试网络设备对协议的处理能力和安全性。
③ 攻击模拟:用于模拟各种网络攻击,如 ARP 缓存欺骗攻击、ICMP 重定向攻击、SYN Flood 攻击等。在安全测试中,通过模拟攻击来发现网络中的安全漏洞。
④ 数据嗅探:捕获和分析网络中的数据包,查看数据包的内容、源地址、目的地址等信息,帮助排查网络故障或检测异常流量。 - 常用模块及示例
netwox包含多个模块,每个模块对应不同的功能,以下是一些常用模块及使用示例:
① ARP 缓存欺骗攻击(模块 80):
sudo netwox 80 -e 攻击者MAC地址 -i 目标IP地址 -a 目标MAC地址 -g 网关IP地址
这个命令会向目标主机发送伪造的 ARP 响应包,将网关的 IP 地址映射到攻击者的 MAC 地址,实现 ARP 缓存欺骗。
② ICMP 重定向攻击(模块 86):
sudo netwox 86 -i 源IP地址 -g 网关IP地址 -m 重定向目标IP地址 -p 目标主机IP地址
该命令会发送伪造的 ICMP 重定向报文,使目标主机将流量重定向到指定的 IP 地址。
③ SYN Flood 攻击(模块 76):
sudo netwox 76 -i 目标IP地址 -p 目标端口号
此命令会向目标主机的指定端口发送大量的 SYN 包,进行 SYN Flood 攻击。
- 安装和使用注意事项
安装:在 Kali Linux 通常可以使用以下命令进行安装:
sudo apt-get update
sudo apt-get install netwox
(五)网络安全防范技术
1.网络防御技术:网络防御技术是网络攻防技术中的重要组成部分,旨在保护网络系统、数据和信息的安全,防止未经授权的访问、攻击和破坏。主要有以下几类:
| 名称 | 功能 |
|---|---|
| 防火墙技术 | 防火墙是设置在不同网络(如内部网络和外部网络)之间的一道屏障,根据预定的安全策略,对进出网络的信息流进行监测、过滤和控制。它可以阻止外部网络的非法访问和恶意攻击,同时限制内部网络对外部网络的访问,保护内部网络的安全。 |
| 入侵检测与防御系统(IDS/IPS) | 入侵检测系统(IDS)通过监测网络中的数据流,分析其中的异常行为和特征,及时发现潜在的入侵行为,并发出警报。入侵防御系统(IPS)则不仅能够检测入侵,还能在检测到入侵行为时自动采取措施,如阻断连接、过滤恶意流量等,以阻止攻击的进一步发展。 |
| 蜜罐技术 | 蜜罐是一种故意设置的诱骗系统,它模拟真实的网络服务和系统漏洞,吸引攻击者前来攻击。通过对蜜罐中攻击行为的监测和分析,安全人员可以了解攻击者的手段和策略,及时发现新型攻击方式,并为网络防御提供参考。 |
2.常见防御技术工具:
① iptables工具: iptables 是 Linux 系统中一个强大且常用的防火墙工具,通常用于配置和管理网络数据包的过滤规则。
| 内容 | 介绍 |
|---|---|
| 基本原理 | iptables 主要通过规则来控制网络数据包的流动,这些规则被组织成不同的链(Chain),每个链又包含多个规则。当一个网络数据包进入系统时,iptables 会根据规则链中的规则依次对数据包进行匹配和处理,决定是允许数据包通过、丢弃数据包还是进行其他操作。 |
| 常用规则链 | ① INPUT 链:处理进入本机的数据包,比如外部用户访问本机的 Web 服务,对应的数据包就会经过这个链。② OUTPUT 链:处理从本机发出的数据包,例如本机访问外部网站时发出的请求数据包会经过该链。③ FORWARD 链:处理经过本机但并不进入本机的数据包,在做网络地址转换(NAT)或者路由器功能时会用到这个链。④ PREROUTING 链:在数据包进行路由选择之前进行处理,常用于 DNAT(目标地址转换)。⑤ POSTROUTING 链:在数据包进行路由选择之后进行处理,常用于 SNAT(源地址转换)。 |
② Snort :是一款开源的网络入侵检测系统(IDS )和入侵预防系统(IPS )。它通过规则匹配的方式,对网络流量进行分析,能检测到各种网络攻击和异常流量。
(六)Windows操作系统安全攻防
1. Metasploit
①架构:Metasploit 是一个强大的渗透测试框架,由模块(如漏洞利用模块、辅助模块、载荷模块等)组成。不同模块各司其职,比如漏洞利用模块用于针对特定漏洞发起攻击,载荷模块负责在目标系统上执行特定操作。
②使用流程:使用 Metasploit 进行攻击时,一般流程是先选择合适的漏洞利用模块,然后配置目标系统的相关参数(如 IP 地址),接着选择合适的载荷(比如获取目标系统权限的载荷),最后执行攻击命令。
2.渗透测试
渗透测试是一种在授权情况下,通过模拟黑客攻击手段,对目标系统进行安全评估的方法。它能发现系统存在的安全漏洞,帮助企业和组织提前修复,增强安全性。
3.漏洞原理
例如MS08 - 067 漏洞,是 Windows Server 服务中的 RPC 接口在处理特定请求时存在缓冲区溢出问题,攻击者利用这个漏洞可在目标系统上执行任意代码,进而获取系统控制权。理解漏洞原理是进行渗透攻击和防御的基础。
(七)Linux操作系统安全攻防
| 内容 | 介绍 |
|---|---|
| Samba 服务漏洞原理 | Samba 服务中,负责在 SAM 数据库更新用户口令的代码未对用户输入进行过滤,就传输给了/bin/sh 。当调用smb.conf中定义的外部脚本时,若通过对/bin/sh的 MS - RPC 调用提交恶意输入,攻击者就能以 nobody 用户权限执行任意命令 。此次实验利用的usermap_script安全漏洞,就是基于该原理,可被攻击者利用来获取目标 Linux 靶机的访问权限 。 |
| Metasploit | ①基本概念:Metasploit 是领先的开源渗透测试框架,由 H.D.Moore 在 2003 年发布 ,后被 Rapid7 收购。它具有模块化架构,主要模块包括渗透攻击模块(exploits)、攻击载荷模块(payloads)、辅助模块(auxiliary)等。渗透攻击模块用于针对特定漏洞发起攻击;攻击载荷模块负责在目标系统上执行特定操作,如获取远程 shell ;辅助模块可实现扫描、嗅探等功能 。 ②使用流程:使用前需启动并配置数据库(如 PostgreSQL ),可通过systemctl start postgresql启动数据库 ,msfdb init初始化数据库。启动 Metasploit 可选择 msfconsole(命令行界面)、msfgui(图形界面)、msfweb(基于 Web 的界面 )等方式。以 msfconsole 为例,启动后通过一系列命令选择渗透攻击模块、攻击载荷,设置目标地址(RHOST )、本地地址(LHOST )等参数后执行攻击 。 |
(八)恶意代码分析
1.脱壳
| 概念 | 原理 |
|---|---|
| 脱壳是一段附加在可执行程序上的代码,用于保护程序代码不被非法修改或反编译,同时可能具备加密、压缩等功能。加壳后的程序体积可能变小,执行效率也可能改变。 | 超级巡警脱壳机等工具,通过分析程序的执行流程,找到壳程序的入口点和结束点,将壳从原始程序上剥离,恢复出原始的可执行代码,以便后续分析。 |
2.Snort 工具与网络数据分析
- Snort:是一款开源的网络入侵检测系统(IDS )和入侵预防系统(IPS )。它通过规则匹配的方式,对网络流量进行分析,能检测到各种网络攻击和异常流量。
- 蜜罐主机:是一种诱捕攻击者的系统,模拟存在漏洞或有价值的目标,吸引攻击者来攻击,从而收集攻击者的行为数据,分析攻击手段和目的。
- IRC(Internet Relay Chat ):互联网中继聊天,是一种网络聊天实时通信协议,于1980年代晚期开发,至今仍广泛应用于各种在线社区、支持频道和社交聚会等场景。客户端通过特定消息(如 JOIN 消息用于申请加入网络 )与服务器通信,常用 TCP 端口有 6667、6668 等。
- 僵尸网络(botnet):是一种恶意网络, 由大量被控制的计算机(僵尸主机 )组成的网络。这些计算机可以被攻击者远程控制,而不需要计算机所有者的知情或同意。攻击者可利用其进行分布式拒绝服务攻击(DDoS )、发送垃圾邮件、窃取数据等恶意活动。
- 恶意软件:通常是一种木马程序,允许攻击者访问和控制感染的计算机,将它们变成 “僵尸” 或 “机器人”。
3.恶意代码
| 类型 | 功能 |
|---|---|
| 病毒 | 具有自我复制能力,能感染其他文件或系统,破坏系统正常运行,如 CIH 病毒会破坏计算机硬件。 |
| 蠕虫 | 可自行传播,利用系统漏洞在网络中扩散,消耗网络资源,如尼姆达蠕虫。 |
| 木马 | 伪装成正常程序,骗取用户运行,从而获取目标主机的控制权,如冰河木马。 |
(九)软件安全攻防--缓冲区溢出和shellcode
| 名称 | 概述 |
|---|---|
| 缓冲区溢出(Buffer Overflow) | 缓冲区溢出是一种常见的安全漏洞,当程序尝试将数据写入超出其分配内存空间的区域时发生。攻击者可以利用这种漏洞来覆盖内存中的控制结构,如返回地址,从而改变程序的执行流程。 |
| 缓冲区溢出(BoF)攻击 | ① 原理:程序向缓冲区写入数据时,超出其预先分配的空间,覆盖相邻内存区域数据,若覆盖到函数返回地址等关键信息,程序返回时会跳转到错误地址执行,导致程序崩溃或被攻击者利用执行恶意代码。② 构造 payload:Payload 通常由填充数据(如 NOP 序列)、恶意代码(如 Shellcode )和用于覆盖返回地址的目标地址组成。通过精心构造 payload,利用 foo 函数的缓冲区溢出漏洞,覆盖返回地址为 getShell 函数地址或自定义 Shellcode 地址,实现触发 getShell 函数或执行自定义 Shellcode 的目的。 |
| Shellcode | Shellcode是一段恶意代码,通常在缓冲区溢出攻击中使用,目的是在目标系统上执行攻击者的代码。Shellcode需要为特定的处理器架构编写,并且要尽可能地小,以适应可能的内存限制。 |
| 反汇编与十六进制编程器 | ① 反汇编:通过反汇编工具(如 GDB、IDA Pro 等)将机器语言转换为汇编语言,能帮助理解可执行文件内部结构、函数调用逻辑和指令序列,是分析程序漏洞和理解程序运行机制的重要手段。② 十六进制编程器:如 Hex Fiend、Bless 等工具,可直接查看和编辑文件的十六进制数据。在实验中用于手工修改可执行文件的机器指令,从而改变程序执行流程。 |
(十)Web应用程序安全攻防
1 SQL注入攻击与防御
| 内容 | 概述 |
|---|---|
| 语言基础 | SQL(Structured Query Language,结构化查询语言 )是用于管理关系数据库的标准语言。像SELECT语句用于从数据库表中检索数据,例如SELECT * FROM Users可获取Users表中的所有记录;UPDATE语句用于修改表中已有数据,如UPDATE Users SET salary = 10000 WHERE eid = 1可将员工编号为1的薪资更新为10000 。 |
| 注入原理 | 当应用程序使用用户输入来构造SQL查询,且未对输入进行有效验证时,攻击者可通过输入恶意SQL代码,改变原本查询逻辑。比如在登录验证的查询语句SELECT * FROM Users WHERE username = '输入用户名' AND password = '输入密码'中,若输入恶意内容,如' OR '1'='1作为密码输入,会使查询逻辑变为永真条件,绕过密码验证登录系统。 |
| 注入攻击类型 | 针对SELECT语句攻击:通过构造特殊输入,使SELECT语句返回未授权数据,或绕过身份验证; 针对UPDATE语句攻击:利用输入漏洞,修改数据库中不应被普通用户修改的数据,如员工薪资、权限等。 |
2 XSS跨站脚本攻击
| 内容 | 概述 |
|---|---|
| 原理 | XSS(Cross - Site Scripting,跨站脚本)攻击是攻击者在Web页面中注入恶意脚本(通常是JavaScript),当用户浏览该页面时,恶意脚本在用户浏览器中执行,实现窃取用户信息、修改页面内容等恶意行为。 |
| 攻击类型 | 反射型XSS:攻击者构造恶意链接,诱使用户点击。用户点击后,恶意脚本随服务器响应返回给用户浏览器并执行,一般不存储在服务器端;存储型XSS:攻击者将恶意脚本上传并存储到服务器端(如数据库),当其他用户访问相关页面时,恶意脚本被加载并执行。本次实验中的Elgg应用程序可能存在此类漏洞。 |
| 攻击危害 | ①窃取用户信息;②页面篡改;③传播恶意代码 |
| 防御措施 | ①输入输出过滤;②使用安全的编码实践;③设置HTTP安全头 |
(十一)浏览器安全攻防
1.网络渗透攻击
| 内容 | 介绍 |
|---|---|
| Metasploit工具 | 一款强大的开源渗透测试框架,集成了大量渗透攻击模块、漏洞利用代码、载荷(Payload)等资源 。能帮助安全人员模拟攻击,发现系统安全漏洞,也会被攻击者用于非法入侵。 |
| 渗透攻击模块 | 如MS06 - 014渗透攻击模块,是针对特定软件漏洞编写的代码集合,可利用软件存在的安全缺陷实现对目标系统的攻击。 |
| Payload(载荷) | 渗透攻击成功后在目标系统上执行的代码或指令集合,像实验中的远程Shell连接载荷,能让攻击者获取目标系统远程控制权,执行各种命令。 |
2.Web浏览器渗透攻击
| 内容 | 介绍 |
|---|---|
| Web浏览器漏洞利用 | Web浏览器及其插件存在各种安全漏洞,攻击者利用这些漏洞构造恶意代码,当用户访问包含恶意代码的网页时,就可能导致浏览器被攻击,进而使攻击者控制用户计算机。 |
| 网页木马 | 嵌入在网页中的恶意脚本或程序,利用Web浏览器漏洞,在用户浏览网页时自动执行恶意操作,比如下载并执行恶意程序、窃取用户信息等。 |
3.取证分析
| 内容 | 介绍 |
|---|---|
| 文件散列 | 如MD5散列,是一种将任意长度数据映射为固定长度摘要值的算法。在取证分析中,可用于唯一标识文件,验证文件完整性,以及通过散列值关联相关文件。 |
| 静态反汇编和动态调试 | 静态反汇编是将二进制程序代码转换为汇编代码进行分析,不实际运行程序,用于了解程序结构、功能等;动态调试则是在程序运行过程中进行调试分析,能观察程序运行时的变量值、执行流程等,有助于发现程序隐藏的恶意行为。 |
四、 课堂的收获与不足
在本学期十一次网络攻防课程的学习旅程中,我如同置身于信息安全的奇妙战场,从懵懂探索到逐步深入,在收获知识与技能的同时也明晰了自身的不足。这门课程于我而言,是踏入网络安全领域的重要阶梯,每一次实验、每一项操作,都在重塑我对网络攻防的认知。
课程从基础内容起步,为我构建起网络攻防的知识框架。Linux 命令操作是接触底层系统的钥匙,很庆幸以前的Linux学习为我打下了坚实的基础,从简单的文件管理到复杂的权限配置,使我逐渐熟悉在 Linux 环境下开展工作的基本模式,才能使得这十一次实验顺利开展。俗话说的好,理论知识若不落地便只是空中楼阁,通过此次系统的学习,不仅仅掌握了网络攻防的理论知识体系,更是将这些理论付诸于实践,让我摆脱 “纸上谈兵”。从最初面对工具的不知所措,到熟练运用 Kali、Metasploit、Nmap等工具开展测试,每一次失败后的郁闷、成功时的喜悦,都在锤炼我的动手能力。例如在实践中常常需要的虚拟机互ping操作,有时成功有时失败真的很令人郁闷。
除此之外,本次课程中的多次实践也使得我对于攻防知识融会贯通,不同攻防环节相互交织,信息收集为渗透测试奠基,漏洞利用后需考虑权限维持,促使我构建起完整的攻防思维链条,不再孤立看待单个知识点,而是从整体流程理解网络攻防的 “攻与防” 动态博弈。
我认为此次网络攻防课程中最大的价值不止学习攻防技术的学习,更在于网络使用安全思维的植入。通过实践中的模拟攻击,让我深知微小漏洞可能引发的连锁危害,明白在日常生活中安全防护需覆盖方方面面,而站在防御者视角,让我懂得要以攻击者思维审视系统,预判可能的攻击路径,提前加固薄弱环节,这种思维不仅适用于网络安全工作,也让我在日常使用网络时,更具风险意识,主动规避潜在威胁。
在学习过程中我也遇到了很多困难与挑战,首先是工具软件版本不兼容以及环境配置问题,在许多次实验中虚拟机互连上问题百出。在配置工具时,因对环境依赖等了解不足导致出现参数配置错误、系统兼容冲突,影响实验进度与效果。其次,底层原理探究问题也多次让我在实验中停下脚步,在实验中常常依赖工具 “一键式” 操作,满足于按照既定流程完成任务,对工具背后的原理挖掘不够。在使用漏洞扫描器时未深入思考其漏洞检测算法、特征库更新机制;利用 Metasploit 发起攻击,对 payload 构造、exploit 编写逻辑一知半解,陷入 “知其然,不知其所以然” 困境,遇到新型漏洞等便难以自主分析应对。
总而言之,此次网络攻防课程虽已结束,但我的学习之路却刚刚启程,这门课程是我网络安全学习的起点,未来我会持续关注网络安全前沿动态,深耕技术、打磨能力,期望在网络安全领域从新手逐步成长为能守护网络空间安全的践行者,让所学攻防知识成为抵御网络威胁的坚实盾牌 。同时,我也不会忘记强哥在本学期十六次课程中的教导,感谢老师对我们的辛勤付出。
参考文献
https://blog.csdn.net/weixin_55819433/article/details/147432035?spm=1001.2014.3001.5501
https://blog.csdn.net/weixin_55819433/article/details/146334695
https://blog.csdn.net/weixin_55819433/article/details/146058856?spm=1001.2014.3001.5502

浙公网安备 33010602011771号