20253914 2025-2026-2 《网络攻防实践》课程总结
一、内容总结
第1次实践 环境搭建
主要配置了以下几种虚拟机环境

第2次实践 网络信息收集
- 体验了查询DNS和截获IP数据包
- 学习了nmap和nessus两个工具的使用
第3次实践网络嗅探与协议分析
学习tcpdump、Wireshark、解码网络扫描器工具的使用
第4次实践TCP IP网络协议攻击
学习并尝试ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击
第5次实践 网络安全防范技术
- 学习配置防火墙、分析蜜网网关的防火墙和IDS/IPS配置规则
- 学习并使用snort工具
第6次实践 Windows系统攻防
- 学习并使用 Metasploit windows attacker
- 学习并解码NT系统破解攻击
- 学习并尝试windows系统远程渗透攻击和分析
第7次实践 Linux系统攻防
- 攻方使用Metasploit进行Linux远程渗透攻击
- 防守方抓包并分析
第8次实践 恶意代码分析实践
- 分析RaDa 恶意样本
- 分析 Crackme 程序
- 学习并分析僵尸网络
第9次实践 软件安全攻防——缓冲区溢出和shellcode
- 以 Linux 下 pwn1 可执行文件为对象,修改程序调用默认未运行的 getShell 函数
- 实现自定义 Shellcode 注入运行
第10次实践 Web应用程序安全攻防
学习并实践 SQL 注入攻防、XSS 跨站脚本攻防
第11次实践 浏览器安全攻防实践
学习并实践Web浏览器渗透攻击、网页木马取证分析
二、最喜欢且做得最好的实践是哪次?为什么?
最喜欢第四次实践。作为刚接触网络攻防的小白,依次实操完 ARP 缓存欺骗、ICMP 重定向、SYN Flood、TCP RST、TCP 会话劫持,眼睁睁看着靶机彻底瘫痪,满是新奇,没想到简单指令就能劫持流量、篡改路由,这充分激发了我对这门课,乃至整个领域的学习兴趣。
三、本门课学到的知识总结
3.1 环境搭建
做基础网络攻防实验,整套环境一共要凑齐四类组件:
1. 靶机:简单说就是被攻击的目标主机,自带系统漏洞或者装了有缺陷的应用软件。
2. 攻击机:就是我们用来发起攻击的操作主机。用Kali Linux,对比Windows优势很明显,绝大多数渗透工具都是系统自带的,不用额外装环境,网络协议兼容度也更高。
3. 检测防御网关:网关能拦下靶机所有进出流量,实时发现攻击行为
4. 网络链路:把攻击机、靶机、防御网关三台虚拟机互相连通,做成封闭内网,防止流量外泄影响外网。
虚拟机三种网络模式
仅主机模式(Host-only):虚拟机内部可以互相ping通、传数据,安全性拉满。
NAT模式:虚拟机靠物理机网卡连外网,方便我们下载漏洞库、更新工具。
桥接模式:虚拟机直接和物理机同网段,相当于局域网里一台独立电脑。
环境搭建通用步骤
先装VMware;再导入Kali、XP镜像,也可以手动新建虚拟机;接着按需切换Host-only或NAT网络;之后给靶机搭SMB、FTP这类自带漏洞的服务;关掉靶机防火墙、系统更新和杀毒,把账号改成简单弱口令,模拟真实薄弱内网;最后互相ping测连通性,确认漏洞端口正常监听。
3.2 网络信息收集
信息收集是渗透最先做、也是最耗时间的一步:一是公开搜索,用百度、天眼查、Github扒目标公开源码;二是DNS查询,用nslookup、dig解析域名和IP的对应关系,挖隐藏子域名
主要用两款扫描工具,用法差别很大:
Nmap:手动自定义扫描,灵活性高。能探测主机是否在线、扫开放端口、识别服务版本、判断系统位数,适合精细化扫描。缺点是不会自动匹配漏洞,需要自己对照版本查漏洞库。
Nessus:全自动漏洞扫描,几乎不用手动操作。输入IP就能扫系统、web、数据库所有已知漏洞,还会标风险等级和修复办法。缺点是参数固定,没法做个性化深度扫描。
3.3 网络嗅探与协议分析
抓包工具分两类,适用场景不一样:tcpdump是Linux命令行工具,没有图形界面,服务器后台抓包用它最合适,占用资源很小;Wireshark是图形化工具,数据包流转看得直观,协议解析也更全。
Telnet,这个协议最大问题是全程明文传输,远程登录的账号、密码、操作记录全都不加密。我们实操时直接抓包就能直接看到登录凭据。
嗅探原理:早期集线器组网时,所有流量都是全网广播。网卡默认只收发给自己的数据包,嗅探工具会把网卡改成混杂模式,强行接收所有广播流量。但现在交换机是单播隔离,单纯开混杂模式没用,必须配合ARP欺骗才能嗅探。
协议分析原理:所有网络数据包都有固定头部,包含源目IP、序列号、数据内容。Wireshark按照协议规则拆分头部,提取有效数据。除了Telnet,早期HTTP1.0也是明文。另外课后给的listen.cap流量包,可以反向溯源,查到攻击者IP、用的是Nmap、扫描类型等痕迹。
3.4 TCP/IP网络协议攻击
1. ARP缓存欺骗:ARP不会核验应答包真假。攻击者伪造虚假应答包,篡改靶机和网关的ARP缓存,让双方流量都经过攻击者主机,实现中间人监听,还能断网、篡改网页内容。
2. ICMP重定向攻击:网关默认允许路由修改报文。攻击者伪装网关发重定向包,骗靶机改本地路由表,把外网流量全转到自己主机,劫持全网流量,不用改动ARP缓存。
3. SYN Flood拒绝服务:利用TCP三次握手漏洞。正常流程是客户端发SYN、服务端回SYN+ACK、客户端回ACK。攻击者伪造大量虚假IP发SYN包,服务端等不到ACK,半连接队列被占满,合法用户连不上服务器,直接瘫痪。
4. TCP RST连接重置:TCP会话靠源目IP、端口、序列号四元组识别。攻击者抓到会话四元组和当前序列号,伪造带RST标记的数据包,直接强制断开已建立的连接,用户直接掉线。
5. TCP会话劫持:前提是先做好ARP中间人欺骗。嗅探TCP流量拿到实时SEQ、ACK号,往会话里注入恶意数据包,直接接管已经登录的账号,不用破解密码。
3.5 网络安全防范技术
防火墙:部署在不同安全网络边界,靠访问规则拦截非法流量。本质就是流量放行工具,只能拦截明文流量,识别不了加密流量内部的恶意内容。
netfilter/iptables:netfilter是Linux内核底层模块,真正负责拦包,用户没法直接操作;iptables是我们日常敲命令的管理工具,所有配置指令最终都调用netfilter生效。
Snort开源入侵检测:和iptables区别很大。iptables是事前拦截,属于防火墙;Snort是事中、事后检测,靠特征库匹配恶意流量,能告警、丢包、留存流量溯源,适合内网异常审计。
3.6 Windows系统攻防
Windows攻防分远程、本地两类。远程渗透流程固定:信息收集→端口漏洞扫描→漏洞利用→提权→植入后门→清理日志,所有远程攻击都绕不开这个顺序。
| 服务/协议 | 端口 | 攻击点与典型漏洞 |
|---|---|---|
| SMB/NetBIOS | 139/445 | 默认IPC空共享未关闭,可匿名访问;弱口令爆破;MS08-067远程溢出,当年勒索病毒主要利用该端口传播 |
| MSRPC | 135 | 早期系统RPC接口权限宽松,多次爆发远程代码执行漏洞,无需账号直接拿权限 |
| IIS | 80/443 | 默认配置导致目录遍历读取本地文件、缓冲区溢出、WebDAV未授权写入文件 |
| SQL Server | 1433 | sa管理员默认弱口令,开启xp_cmdshell存储过程后直接调用系统cmd命令 |
| 远程桌面RDP | 3389 | 账号口令暴力破解;CVE-2019-0708蓝屏漏洞,无需密码远程控制 |
Nessus扫漏洞;MSF做漏洞利用
3.7 Linux系统攻防
Linux本身安全性比Windows高,大部分漏洞都不是系统自带的,基本都是运维配置失误导致的。
本地攻防与提权
普通用户提权到root主要三条路:一是SUID程序乱授权,普通二进制文件给了root权限;二是内核版本过旧,直接跑公开提权EXP;三是sudo、定时任务、PATH环境变量配置出错,越权执行命令。
敏感信息主要偷这几类:/etc/shadow密码哈希、SSH私钥、网站数据库配置;另外用户命令历史、当前网络连接、登录日志都是重点排查对象。
消踪灭迹:清空登录日志、删除bash历史、修改文件时间。后门做法:添加隐藏账号、SSH免密后门、定时反弹shell、Rootkit隐藏进程端口。
Linux防御实操策略
系统最小化安装,关掉无用端口;禁止root外网登录,改用SSH密钥;定期打内核补丁;清理危险SUID文件;开启日志异地备份;防火墙封禁无用外网端口。
3.8 恶意代码分析实践
分析工具分为静态、动态两类:静态用IDA Pro反编译;动态用Process Monitor监控进程行为。
静态分析
流程:核验真实文件类型(防后缀伪装)→查是否加壳→脱壳→提取域名、IP、关键字符串→反汇编看代码逻辑。优点百分百安全,缺点看不到运行后的隐藏行为。
动态分析
在沙箱内运行木马,监控注册表、文件改动、外网连接、子进程。现在大部分木马都有反调试,检测到调试工具就直接自毁,很难分析。
3.9 缓冲区溢出与Shellcode
缓冲区溢出根源都是开发者没做输入长度校验。程序栈缓冲区空间固定,超长输入会依次覆盖EBP、函数返回地址。攻击者把返回地址改成shellcode地址,函数结束后CPU直接跳转执行,拿下系统权限。
不同平台溢出差异
Linux栈溢出:内存结构简单,早期无防护,直接靠ESP跳转shellcode。Windows栈溢出原理一致,但系统防护更多,早期要调用系统DLL里的JMP ESP指令。堆溢出难度远高于栈溢出,属于高阶漏洞,多用于浏览器攻击。
双层防御手段
系统层防护:DEP禁止栈内执行代码、ASLR随机化内存地址、Canary栈校验,三者配合基本能防御绝大多数栈溢出。
开发层防护:禁用strcpy、gets这类危险函数,强制校验输入长度,编译器默认开启栈保护选项。
3.10 Web应用安全攻防
1. SQL注入:前后端没过滤用户输入,可控参数直接拼进SQL语句。攻击流程:单引号测注入点→跑库表字段→拖取数据→提权写木马。四类注入按需使用:页面回显用联合查询、报错用报错注入、无回显用布尔/时间盲注。危害不止数据泄露,还能读取服务器本地文件。
2. XSS跨站脚本:恶意JS在用户浏览器本地执行,和服务器无关。反射型:URL携带脚本,一次性生效;存储型:存入数据库,危害最大;DOM型:前端自行解析,后端防火墙拦不住。主要用来偷Cookie、劫持会话。
3.11 浏览器安全攻防实践
网页木马属于零交互客户端攻击,不用用户点击下载,靠浏览器老旧插件漏洞自动运行。流程:恶意网页→引流用户访问→利用插件漏洞执行代码→后台下载远控→写入注册表开机自启。
网页木马溯源分析
静态分析:看网页源码,检查JS是否混淆、有无隐形跳转恶意域名。动态分析:沙箱内打开网页,抓包看外联地址,监控本地文件、注册表改动。
个人终端防护
终端防护简单实操:禁用Flash、Java高危插件;浏览器开沙箱和系统内存防护;关闭网页自动下载;不浏览小众不明网站;开启杀毒网页防护。
四、课堂的收获与不足
对于一个从未接触过网络攻防的我来说,这门课难度适中,非常适合。一方面,较为全面地囊括了攻防的几个主要方向的知识,另一方面,相比于单纯听讲,亲手实践更能激发学习兴趣,令人印象深刻。然而,由于时间的关系,一些具体的细节还未完全搞懂来龙去脉,仍有很大的学习空间,有待于我继续探索。总的来说,经过几周的学习,收获满满,会继续推荐给师弟师妹们!