20251901 2025-2026-2 《网络攻防实践》课程总结
目录
一、内容总结
第1次实践 网络攻防实验环境搭建:
- 网络攻防实践一核心任务是利用老师提供的虚拟机镜像和自己安装的VMWare Workstations软件,在自己的笔记本电脑上部署一套个人版网络攻防实践环境,包括攻击机、靶机、SEED虚拟机和蜜网网关。具体内容为:一是完成 VMware 虚拟交换机 VMnet1、VMnet8 的网段、子网掩码、DHCP、NAT 网关参数配置,二是导入老师提供的 WinXPattacker、SEEDUbuntu9、Win2kServer、Metasploitable_ubuntu 镜像,自行从零创建并安装 Kali 攻击机与三网卡 Honeywall 蜜网网关虚拟机,三是为所有虚拟机划分对应虚拟网络适配器并完成静态 IP、网关、开机自启网络脚本配置,四是完整配置蜜网网关三层网卡对应网段、蜜罐 IP、远程管理地址、Sebek 流量捕获规则,最后通过跨主机 ping 连通性测试、蜜网网关 tcpdump 抓包、Web 管理后台登录验证整套环境可正常转发、捕获全部攻击流量。
- 实践的具体操作步骤是:先对不同虚拟机配置不同虚拟网络来隔离分区,攻击机统一接入 NAT 模式 VMnet8,靶机接入仅主机模式 VMnet1,蜜网网关增设三块网卡分别对接攻击网段、靶机网段、主机管理网段,然后分别使用 ip addr、ifconfig、ipconfig 查看本机网络,通过修改 Metasploitable 的 rc.local 写入开机路由命令固定 IP 与网关,蜜网网关依靠自带文本配置菜单完成流量管控、日志采集配置,最后借助 ping 命令验证跨网段互通,tcpdump 抓取 ICMP 数据包确认网关流量捕获功能正常,中途遇到镜像仓库报错、文件路径拼写错误导致网络配置失效等问题,均通过调整安装步骤、修正文件名称路径等方式解决。由此完成网络攻防实践环境的部署。
第2次实践 网络信息收集:
- 本次网络信息收集实验是网络攻防流程里最前置的侦察环节,放到真实渗透测试、企业安全自查的场景中,所有漏洞利用、横向渗透操作都必须建立在充足目标情报之上,缺少信息收集就等于盲目攻击,不仅效率极低还极易触发防火墙告警甚至触碰网络安全相关法规。本次实验一共五项任务,分别是1.使用 DNS 相关工具查询域名与 IP信息;2.获取一位QQ好友的IP地址,并查询其具体地理位置;3.使用nmap开源软件扫描靶机,判断靶机活跃度、检测开放的TCP和UDP端口、识别靶机操作系统及版本、排查靶机安装的服务;4.使用Nessus开源软件扫描靶机,明确靶机开放端口、各端口服务存在的安全漏洞,并分析攻陷靶机、获取系统访问权的思路;5.通过搜索引擎等工具,排查个人网上足迹,确认是否存在隐私信息泄露问题。
- 实践的具体操作步骤是:依托第一次实验搭建好的 VMware环境,使用 Kali、WinXPattacker、SEEDUbuntu 三台虚拟机。做域名查询时先用网页版 Whois 站点,再切换 Kali 终端执行 whois、nslookup、ping、IP 反向 whois 命令逐层拆解百度域名的注册主体、DNS 服务器、解析 IP、运营商属地信息;抓取好友 IP 则借助 Windows 自带资源监视器筛选 QQ 进程网络连接;Nmap 扫描环节先切换 root 权限,依次用 - sP 扫描网段存活主机、-sS 半开扫描隐蔽探测 TCP 端口、-sT 全连接扫描核对端口状态、-sU 探测 UDP 端口、-O 识别操作系统指纹、-sV 解析端口运行服务版本,完整获取靶机网络画像;由于 Kali 端工具安装出现软件源故障,我改用 WinXP 内置 Nessus 网页端完成漏扫,先新建扫描策略启用全部漏洞插件,再创建扫描任务填入靶机 IP 执行扫描,最后从报告里拆分开放端口、各漏洞编号与风险等级并梳理入侵思路;最后使用搜索引擎检索我的学号姓名,查询是否存在隐私泄露问题。
第3次实践 网络嗅探与协议分析:
- 本次网络嗅探与协议分析实验是攻防体系里流量监测、攻击溯源的核心内容,在真实企业安全运营、应急响应、渗透测试场景中,嗅探与流量分析都是基础必备能力,安全人员依靠抓包工具监控内网异常流量、排查数据泄露、还原完整攻击链路。本次实验有三项任务,第一是使用 tcpdump 抓取网页访问流量,梳理网站对应的后端 Web 服务器 IP 与数量,第二借助 Wireshark 抓取 Telnet 登录 BBS 全过程,直观验证明文传输的安全缺陷并掌握账号密码提取方法,第三针对老师提供的 listen.cap 离线抓包样本完成网络取证,从海量数据包中定位攻击源、扫描目标、识别扫描工具与手段,同时判断蜜罐开放端口、攻击者操作系统。
- 实验使用 Kali虚拟机,实时网页抓包环节直接在 Kali 终端执行带过滤规则的 tcpdump 命令,限定本机 IP 与 80 端口流量,过滤无关数据包后提取多组网站服务器 IP;Telnet 嗅探任务先解决软件源密钥缺失、未安装客户端的前置故障,导入公钥更新软件源后安装 telnet 工具,再图形化启动 Wireshark 监听 eth0 网卡,登录水木 BBS 产生交互流量后用 telnet 协议过滤器精简数据包,通过追踪 TCP 流查看明文交互内容;离线取证部分先配置 VMware 共享文件夹实现 pcap 文件跨主机传输,再分别使用 Wireshark 过滤、Snort 入侵检测工具解析流量特征,搭配 p0f 被动指纹工具解析攻击者系统,过程中通过 ARP、TCP 标志位多重筛选,区分 SYN 半开扫描、全端口探测、操作系统指纹探测等不同攻击流量,一步步还原完整扫描行为。
第4次实践 TCP/IP网络协议攻击:
- 本次 TCP/IP 协议攻击,是内网渗透、业务拒绝、数据窃密的常见手段,企业内网如果不做交换机安全、内核参数加固,攻击者就能借助 ARP、ICMP、TCP 的设计漏洞劫持流量、瘫痪服务。本次实验共5项任务,分别是 ARP 缓存欺骗、ICMP 重定向、SYN Flood 拒绝服务、TCP RST 连接中断、TCP 会话劫持。
- 实验使用 Kali 作为攻击机,搭配 SEED、WinXP 两台靶机构成实验环境, ARP、ICMP、SYN Flood、RST 四项攻击依靠 netwox 命令行工具实现报文伪造,TCP 会话劫持采用图形化 ettercap 完成中间人劫持,配合 Wireshark 抓包工具,前置步骤都会先用 ifconfig、ipconfig、arp -a、route -n 查看各主机 IP、MAC、ARP 缓存、路由表,确认正常通信状态,攻击阶段输入对应 netwox 模块指令伪造对应协议报文,劫持实验则先在 ettercap 扫描局域网主机、设定双向攻击目标再开启 ARP 毒化等。
第5次实践 网络安全防范技术:
- 在企业内网防护、服务器基线加固、威胁溯源、蜜罐研究等真实安全工作里,防火墙、入侵检测系统是基础防护组件,蜜网网关则用于主动捕获攻击样本。整套实验分为三大核心任务,第一个任务是在 Kali 上配置 iptables 防火墙实现流量过滤,分别完成屏蔽所有外部 Ping 报文、仅放行指定主机访问本机 80 端口两项加固需求;第二项任务使用 Snort 入侵检测工具读取前期实验留存的扫描 pcap 离线数据包,生成告警日志并解析扫描类攻击特征;第三项任务分析虚拟网络攻防环境中蜜网网关的防火墙和IDS/IPS配置规则,说明蜜网网关是如何利用防火墙和入侵检测技术完成其攻击数据捕获和控制需求的。
- 实验使用 Kali、SEED、WinXP 三台虚拟机开展,防火墙任务里先通过 if 确认各主机 IP,默认状态下用 ping、浏览器访问测试流量通行情况,再分两步编写 iptables 规则,屏蔽 ICMP 直接追加 INPUT 链 DROP 规则,限制 80 端口访问时遵循先允许指定 SEED IP、再全局丢弃其余流量的顺序,测试时分别用两台靶机访问验证规则生效;Snort 实操环节先确认工具安装正常,定位共享文件夹内 listen.pcap 文件,组合 - c 加载规则文件、-r 读取离线包、-l 指定日志目录、-A 输出完整告警的完整命令执行分析,结束后进入日志目录查看 alert 文件识别端口扫描行为;蜜网分析任务登录 honeywall 并切换 root 权限,通过 vim 读取防火墙初始化脚本查看黑白名单、协议处理自定义链,再打开 Snort 启动配置文件看懂内联 IPS逻辑。
第6次实践 Windows操作系统安全攻防:
- 本次实验围绕老旧 Windows 系统高危漏洞攻防、网络流量取证、团队对抗实践三大核心任务展开。现实网络场景里大量企业内网、老旧工控设备还在运行 Windows 2000、XP 这类停止官方维护的系统,MS08-067、RDS、Unicode 这类历史漏洞依旧是黑客横向渗透、蠕虫传播的常用入口,Conficker 蠕虫当年正是依靠 MS08-067 感染全球数百万主机。第一项依托 Metasploit 复现 MS08-067 缓冲区溢出漏洞远程渗透,实现对 Win2k 靶机完全控制;第二项导入历史攻击 pcap 日志文件,借助 Wireshark 完整还原 NT 系统入侵全流程,识别攻击者工具、操作行为并总结加固方案,同时判断攻击者是否识别蜜罐环境;第三项开展分组团队对抗,攻方使用 MS08-067 实施渗透,守方全程抓包解析攻击流量、还原攻击链路。
- 实验以 Kali 作为攻击机、Win2kServer 充当靶机,第一项渗透任务先通过 ifconfig、ipconfig 核对各虚拟机 IP,ping 测试网段连通,之后在 Kali 终端输入 msfconsole 启动 Metasploit 框架,通过 search 检索 MS08-067 模块,使用 use 加载对应 SMB 漏洞利用脚本,show options、show payloads 查看必填参数与可用载荷,选定反向 TCP 反弹 shell,分别配置靶机 RHOST、攻击监听 LHOST 参数后执行 exploit 发起攻击,拿到交互式 cmd 会话后执行 ipconfig、新建文件夹验证控制权限;第二项取证任务将老师下发的 snort 抓包日志导入 Wireshark,通过 IP、端口、协议多维度过滤流量,逐层定位 Unicode 路径穿越、msadcs RDS 漏洞访问报文,追踪完整 TCP 数据流,梳理攻击者 FTP 下载 nc 后门、密码提取工具、读取 SAM 账户文件、写入留存文件的完整操作;第三项对抗任务,攻方复刻 MS08-067 渗透步骤并留存攻击操作记录,守方提前开启 Wireshark 持续捕获全网流量,攻击结束后用双向 IP 过滤、445 端口过滤定位 SMB 攻击数据包,追踪反弹 4444 端口会话还原远程执行的全部系统命令。
第7次实践 Linux操作系统攻防:
- 本次 Linux 操作系统攻防实验分为 Metasploit 手动复现 Samba 远程漏洞渗透、攻防对抗两大核心任务,放在企业安全运维、内网渗透的真实场景中,老旧 Linux 主机普遍搭载存在缺陷的 Samba 文件共享服务,极易被攻击者利用未过滤的用户输入执行任意系统命令,不用账号密码就能拿到最高 root 权限,攻防对抗则一方实施渗透、一方全程抓包溯源攻击痕迹,完整还原攻击链路。第一部分以 Kali 为攻击机、Metasploitable Ubuntu 作为漏洞靶机,复现 CVE-2007-2447 usermap_script 漏洞完整利用流程,第二部分攻击方:使用 Metasploit ,选择 Metasploitable 靶机中发现的漏洞进行渗透攻击,获得远程控制权,并尝试进一步获得root权限。防守方:使用 tcpdump/wireshark/snort 监听获得网络攻击的数据包文件,结合 wireshark/snort 分析攻击过程,获得攻击者的IP、目标IP和端口、攻击发起时间、攻击利用漏洞、使用Shellcode、以及成功之后在命令行输入的信息。
- 任务一使用 root 权限运行 msfconsole 启动 Metasploit,通过 search samba 检索对应漏洞模块,use 命令加载 exploit/multi/samba/usermap_script,show payload 查看所有兼容控制载荷,选用反向 netcat 反弹 Shell,依次设置 RHOST 靶机地址、LHOST 本机监听 IP,确认参数完整后执行 exploit 发起攻击,拿到交互式 root 会话后验证系统最高权限;对抗任务里攻方切换 bind 正向载荷重复整套配置流程,守方提前启动 Wireshark 监听 eth0 网卡,使用 tcp.port ==139、tcp.port ==4444 过滤语句分离 SMB 协商流量与反弹控制流量,追踪完整 TCP 数据流,还原创建文件夹、查看系统文件等操作指令。
第8次实践 恶意代码分析实践:
- 本恶意代码分析实践一共有四项任务,其中两项为动手实践,另外两项为分析实践。动手实践任务一对提供的rada恶意代码样本,使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;使用超级巡警脱壳机等脱壳软件,对rada恶意代码样本进行脱壳处理;使用字符串提取工具,对脱壳后的rada恶意代码样本进行分析,从中发现rada恶意代码的编写作者。动手实践任务二在WinXP Attacker虚拟机中使用IDA Pro静态或动态分析老师提供的crackme1.exe和crackme2.exe,寻找特定的输入,使其能够输出成功信息。分析实践任务一:针对老师提供的一个自制恶意代码样本rada,分析如下内容:提供对这个二进制文件的摘要,包括可以帮助识别同一样本的基本信息;找出并解释这个二进制文件的目的;识别并说明这个二进制文件所具有的不同特性;识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术;对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由;给出过去已有的具有相似功能的其他工具;调查这个二进制文件的开发作者,如果可以,分析应在什么样的环境和什么样的限定条件下。分析实践任务二:Windows 2000系统被攻破并加入僵尸网络。任务:分析的数据源是用Snort工具收集的蜜罐主机5天的网络数据源,并通过编辑去除了一些不相关的流量并将其组合到了单独的一个二进制网络日志文件中,同时IP地址和其他特定敏感信息都已经被混淆以隐藏蜜罐主机的实际身份和位置。回答并分析:IRC是什么?当IRC客户端申请加入一个IRC网络时将发送那个消息?IRC一般使用那些TCP端口?僵尸网络是什么;僵尸网络通常用于什么;蜜罐主机(IP地址:172.16.134.191)与那些IRC服务器进行了通信,在这段观察期间,多少不同的主机访问了以209.196.44.172为服务器的僵尸网络;哪些IP地址被用于攻击蜜罐主机,攻击者尝试攻击了哪些安全漏洞;哪些攻击成功了,是如何成功的。
- 实验使用 WinXP Attacker虚拟机完成,处理 RaDa 样本时先使用 file 命令识别 32 位 GUI PE 程序,再用 PEiD 工具扫描确认 UPX 压缩壳,发现原始样本提取字符串全是乱码后使用超级脱壳机剥离壳层,脱壳完成后分别通过 strings 命令和 IDA Pro 打开文件,切换 Unicode 字符窗口定位版权作者信息,同时计算 MD5 哈希作为样本唯一指纹,结合进程监视器抓取程序持久化、DDoS、文件传输相关特征;两 Crackme 程序分析时先在命令行尝试不同数量、不同内容的输入,记录各类报错提示,再导入 IDA Pro 查看字符串库,定位成功与失败提示文本,跳转核心判断函数查看汇编分支逻辑,crackme1 只需匹配特定参数字符串,crackme 叠加文件名校验,按推导规则输入后验证输出;僵尸网络流量分析任务将日志文件导入 Wireshark,通过端口、IP 多组过滤语句拆分 IRC、SMB、HTTP、NetBIOS 各类流量,筛选 6667 端口 IRC 通信数据包梳理客户端入网消息,统计去重得到受控主机与攻击 IP 数量,比对 135、139、445、80 端口流量区分成功与失败的漏洞攻击,追踪 TCP 流读取蠕虫、后门程序传输内容。
第9次实践 软件安全攻防--缓冲区溢出和shellcode:
- 本次实践的对象是一个名为pwn1的linux可执行文件。针对这个文件进行如下三个任务:1、通过十六进制编辑器直接修改程序二进制机器指令,静态篡改程序调用逻辑,绕过原有执行流程直接调用内置 getShell 函数获取交互式 Shell ;2、借助 gdb 调试工具分析程序栈帧结构,精准计算缓冲区偏移量,利用 foo 函数内 gets 无输入长度校验的缓冲区溢出漏洞,构造恶意 Payload 覆盖函数栈返回地址,动态劫持程序执行流触发 getShell;3、关闭系统 ASLR 地址空间随机化防护、开启程序堆栈可执行权限,自主编写并注入自定义 Shellcode,脱离程序自带提权函数实现自主代码执行。
- 实践使用Kali 虚拟机,处理第一个静态修改任务时,先用 objdump 静态反汇编读取 main、foo、getShell 的内存地址与 CALL 机器码,依据 32 位 x86 相对偏移公式计算跳转目标的四字节偏移,结合小端序存储规则转换字节顺序,再通过 vim 搭配工具完成二进制十六进制互转,精准替换 CALL 后的偏移字节,保存后运行验证直接弹出交互 Shell;第二层栈溢出实操时先更新软件源修复依赖,安装 gdb 动态调试器,裸机运行程序测试交互逻辑,再进入 gdb 加载程序,通过 info functions 获取 getShell 绝对地址,disass 拆解 foo 函数栈帧,算出缓冲区到返回地址共 32 字节偏移,借助 perl 命令生成 32 个填充字符加目标地址的二进制 Payload;第三层自主 Shellcode 注入,先下载安装 execstack 工具修改 ELF 文件堆栈执行权限,通过内核文件临时关闭 ASLR 防护消除地址随机干扰,编写包含 NOP 滑行段与 execve 调用的 Shellcode 机器码,先单独注入测试发现地址偏差问题,再通过 ps 获取进程号、attach 附着运行中程序,断点查看 esp 寄存器拿到真实栈地址,重新拼接填充、跳转地址、NOP、Shellcode 的完整载荷,最终成功执行自定义提权代码。
第10次实践 Web应用程序安全攻防:
- 本次实验分为两大模块,分别为SQL注入攻防实验、XSS跨站脚本攻防实验。SQL注入攻击与防御实验的实验内容包括:(1)基础SQL语句练习:登录MySQL数据库,熟悉数据库查看、数据表查看、条件查询等基础SQL操作,掌握实验靶场数据库结构与数据存储规则。(2)SELECT语句SQL注入攻击:分析员工管理系统登录接口漏洞,利用单引号闭合、注释符绕过密码验证,实现无密码登录管理员、普通员工账号,越权查看敏感数据。(3)UPDATE语句SQL注入攻击:利用用户资料修改接口漏洞,构造恶意SQL语句篡改数据库中管理员薪资等敏感数据,实现数据篡改攻击。(4)SQL注入漏洞防御修复:通过参数化查询重构后端代码,修复SELECT、UPDATE语句注入漏洞,验证修复有效性。XSS跨站脚本攻击与防御实验内容包括:(1)基础XSS弹窗攻击:在Elgg个人资料页面嵌入JS代码,实现访问页面弹出提示窗口、弹窗展示用户Cookie信息。(2)Cookie窃取攻击:通过NC端口监听,结合恶意JS代码自动获取受害者Cookie并发送至攻击者服务器。(3)自动化社交攻击:编写JS脚本实现无需用户干预,自动添加受害者为好友、篡改受害者个人资料。(4)XSS蠕虫编写与传播:构造可自我复制、自动传播的XSS蠕虫,实现漏洞跨用户传染。(5)XSS漏洞防御:激活网站安全插件,过滤恶意HTML、JS代码,阻断XSS攻击。
- 整套实验在 SEED Ubuntu 虚拟机中完成,先登录数据库执行 show databases、select 等基础命令摸清 credential 表字段,再查看网站 unsafe_home.php、unsafe_edit_backend 原始拼接 SQL 源码,找到用户可控输入点位,针对登录页面构造带单引号和注释符的 Payload 闭合原有查询逻辑绕过密码校验,针对借助逗号新增更新字段实现越权修改管理员薪资(非常神奇),修复环节删除字符串拼接写法,改用 prepare 预编译语句搭配 bind_param 绑定参数隔绝输入与 SQL 语法;开展 XSS 实验时,先登录 Alice 账号在个人简介写入简易 script 弹窗代码,验证漏洞存在,之后开启 nc 监听端口,编写带 img 请求的 JS 脚本把访客 Cookie 回传到本地,再通过浏览器抓包获取网站加好友、修改资料接口的请求参数与安全令牌,编写 Ajax 异步脚本,蠕虫编写阶段加入脚本自编码复制逻辑,这一系列操作在相关人员不知情的情况下就能完成。
第11次实践 浏览器安全攻防实践:
-
在真实网络安全事件中,网页挂马是社会工程学钓鱼最常用的攻击手段,黑客依靠漏洞网页诱导用户点击链接就能远程接管设备,安全运营人员则需要对捕获恶意样本逐层解密、逆向分析梳理完整攻击链路。本次浏览器安全攻防实验是攻防课程最后一次实践,共有三个实验任务:web浏览器渗透攻击:依托Metasploit框架,利用IE浏览器MS06-014漏洞构造网页木马,生成恶意访问URL,靶机老旧IE浏览器访问后,攻击机获取靶机远程Shell会话,实现远程命令执行控制。取证分析实践—网页木马攻击场景分析:依托给定start.html文件溯源恶意链路,遵循获取地址-32位小写MD5哈希-哈希服务器下载文件-解密分析-循环溯源流程,逐层解密网页、脚本、可执行文件,梳理整套网页木马嵌套攻击链路,识别浏览器ActiveX组件漏洞,分析恶意程序下载、执行、篡改注册表行为。攻防对抗实践:web浏览器渗透攻击攻防:攻击方:使用Metasploit构造2类浏览器漏洞攻击代码,代码混淆后拼接恶意URL,通过钓鱼邮件投递链接;防守方:提取链接、代码解混淆、还原原始攻击代码,判定漏洞类型、攻击组件,识别木马免杀混淆手段。
-
实验使用 Kali 作为攻击机、Win2000/XP 虚拟机作为靶机,启动 msfconsole,通过 search 检索 MS06-014 漏洞模块,use 加载对应 IE 漏洞利用脚本,选用 reverse_tcp 反向载荷,配置本机监听 IP 与 Web 服务端口,执行 exploit 生成随机恶意 URL,再切换 Windows 靶机打开老旧 IE 访问链接,等待靶机主动反弹建立受控会话,远程执行系统命令验证权限;木马取证任务以记事本打开初始网页,提取 iframe 内嵌地址,使用在线哈希工具计算 32 位小写 MD5 值,按照哈希文件名从样本服务器下载对应文件,区分 HTML 脚本与可执行程序,网页类文件先做 Base64 解码再用 XXTEA 工具配合 script 密钥解密,Packed 混淆脚本使用专用工具脱壳,得到明文 JS 后提取新外链重复哈希下载流程,遇到 EXE 后门则导入 IDA Pro 查看字符串与汇编代码,定位外联地址、注册表持久化逻辑;攻防对抗环节攻击方在 Metasploit 生成源码基础上添加大量空白、换行字符混淆代码,封装至模拟邮件发送,防守方复制链接对应的网页源码,使用格式化工具清除混淆字符,提取数组内 CLSID 控件标识,匹配对应浏览器漏洞,判定漏洞类型等。
-
针对本课程中涉及的11个实践,本人绘制思维导图框架如下图:
![image]()
二、最喜欢且做得最好的实践是哪次?为什么?
- 在全部11次实践里,我最喜欢也做得最顺手的就是实践11浏览器安全攻防实践。
- 首先这次实验用到了前面实践中学到的很多知识,不像之前几次实践只单一练漏洞攻击或者只做逆向,这次实践既能用 Metasploit 复现网页挂马拿靶机权限,又要手动一层层解密混淆的恶意 JS、脱壳分析后门程序,还要做攻防对抗,一套流程下来能同时训练很多,做的时候不会觉得枯燥。
- 其次我本身对钓鱼网页、网页木马这类贴近日常上网场景的内容更感兴趣,平时上网总看到各种陌生链接弹窗,做完这次实验才搞懂早年那些恶意页面到底是怎么通过老旧浏览器控制电脑的,比起之前实验里涉及的缓冲区溢出、Linux 内网渗透这种偏底层的漏洞,浏览器攻防和普通人上网行为贴得更近,理解起来更容易,实操的时候也愿意多花时间琢磨。
- 再者,本次实验中使用Metasploit 渗透框架,这个工具在前面几次实践中用过好多次,已经很熟练了,因此做起来也相对顺手。而且在之前内容上还增加了新的内容,例如执行 exploit 之后生成随机恶意 URL,也让实验过程变得更有趣。
- 实验中木马取证是我觉得最繁琐也最有收获的环节,全程都是重复找外链、算 MD5、解密、脱壳、逆向的流程,一直解密再解密。一开始我觉得这个任务很难很麻烦,后面弄懂对方的套路之后思路就变得清晰了。而且老师把相关材料都给我们了,也提到了实践效率。实验中还涉及了IDA Pro 静态反汇编工具,前面有实验也用到了,这个任务中再次使用,不仅更熟练了,也相当于对相关知识点进行了复习。最后把文件全部解析完成,弄懂对方的一系列操作,很有成就感。
- 攻防对抗环节也让这次实践体验更好,既能站在攻击方混淆代码生成钓鱼链接,又能切换防守方清理冗余字符、识别漏洞编号溯源恶意行为,而且整理实验报告的时候,从漏洞利用命令到多层解密步骤、IDA 逆向分析截图一整条链路记录下来,逻辑相对比较连贯,复盘的时候也能快速回忆起每一步操作的原理,相比其他实践,这次我能更清楚把工具、漏洞、加密逆向、溯源加固的知识点结合起来,整体完成效率和自己的掌握程度都更高,所以我觉得实践 11 是我做得最好也最喜欢的一次实践。
三、本门课学到的知识总结
第1次实践 网络攻防实验环境搭建:
知识介绍:
- 本次实践覆盖多个网络安全知识点。但是这次实验只是后续实验的一个基础,并没有真正进行网络攻防,所以里面涉及的知识点都相对比较基础,大一大二就学过。
- 首先是 IP 地址与子网掩码、网关路由相关计算机网络基础,IP 地址是局域网内每台虚拟机唯一标识,子网掩码划分网络位与主机位区分网段,网关实现不同网段数据包转发,在我的实践中给每台虚拟机分配 192.168.188 网段不同静态 IP,依靠蜜网网关充当两个虚拟网段的中转网关,现实网络安全中 IP 定位是端口扫描、溯源攻击源的基础,子网掩码规划用于企业内网分段隔离,网关策略控制是防火墙、蜜网设备的核心原理;
- 其次是 VMware 三种虚拟网卡模式。这几种网络模式要真正搞清,因为后面的实验基本上第一步就是要设置网络模式并且查看IP地址。有好几次我的kali虚拟机的IP地址没有正确显示,都是因为网络配置的问题。仅主机模式构建无外网封闭局域网,适合存放存在漏洞的靶机防止攻击流量外泄,NAT 模式借助主机 IP 代理上网,适配 Kali、SEED 这类需要下载扫描、渗透工具的攻击机,桥接模式本次未使用但可用于模拟真实局域网多设备互通场景,在安全行业里恶意代码分析、漏洞复现都会优先使用仅主机隔离环境,避免恶意程序扩散。
- 第三是蜜罐、蜜网、蜜网网关相关网络欺骗防御技术,蜜罐是带有预设漏洞的诱饵靶机,蜜网是多台蜜罐组成的诱捕内网,蜜网网关 Honeywall 作为透明网桥串联在攻击机与靶机中间,具备数据捕获、流量控制、远程管理三大核心能力,实验中为网关配置 eth0 对接攻击网段、eth1 对接靶机网段、eth2 对接主机管理网段,设置 Sebek 流量采集端口记录全部攻击行为,真实企业中蜜网常部署在互联网边界,用来捕获黑客扫描、入侵行为,提取攻击特征更新防火墙与入侵检测规则。这部分知识点在老师给的一个学姐的视频中我觉得讲的很好很容易理解。
- 第四是网络协议分析基础,本次实验通过 ping 产生 ICMP 数据包,在蜜网网关用 tcpdump 抓取 ICMP 流量,直观看到请求与回复数据包完整流转路径,后续课程学习 Wireshark 深度流量分析、异常攻击流量识别都建立在本次 ICMP 抓包的基础认知之上。
知识感悟:
- 本次攻防实验环境搭建完成后,我最直观的感受是网络配置一环扣一环,而且都是细节。前期虚拟网络编辑器里子网掩码、DHCP 起止 IP 填错一个数字,后面所有虚拟机都会出现 ping 不通的情况,比如我在实验里安装 Kali 时因为默认镜像仓库无法访问一度卡住安装进度,后来跳过网络镜像才顺利完成系统部署,配置 Metasploitable 开机网络脚本时把 /etc 写成 /ect 直接导致文件无法保存,反复核对命令拼写才找到问题,这让我意识到网络安全工作对细节的要求非常高,微小的输入错误都会直接导致整套防御体系失效。不能只依靠课本理论,必须动手实操才能快速定位排错。另外以前只抽象知道网关、路由转发的理论,这次看着 ping 数据包从 Kali 发出,经过 Honeywall 网关转发到靶机,同时网关完整抓取全部流量并在 Web 后台展示流量统计,实实在在看懂了跨网段通信的完整流程,不再是纸上谈兵;在实验的时候我一开始没有提前规划每台虚拟机对应的虚拟网卡,反复修改虚拟机网络适配器,浪费了大量时间,后来先画好拓扑、分配好每台设备 IP 再分步部署,效率提升很多。最后这次实验作为课程第一次实践,搭建起后续十次攻防实验的基础平台,我收获了很多,动手排查网络故障的能力也明显提升,为之后 Web 漏洞、操作系统安全防护等实验打下了扎实的实操基础。
第2次实践 网络信息收集:
知识介绍:
- 首先是主动与被动信息收集的基础理论,被动收集不与目标产生网络交互,隐蔽且无告警风险,实验里 Whois 查域名、搜索引擎搜个人信息、IP 属地查询都属于这类手段,日常护网行动、钓鱼溯源都会先用被动方式摸清目标基础资产,主动收集需要直接向目标发送探测数据包,Nmap、Nessus 扫描均属于主动侦察,优势是数据精准但会留下访问日志,企业内网安全巡检时通常先被动测绘资产再主动深度扫描;
- 其次是 DNS 域名系统配套 Whois、nslookup 工具相关知识,DNS 负责域名和 IP 双向解析,正向解析把域名转成访问用的 IP,反向解析依靠 IP 反查绑定域名,Whois 数据库留存域名注册商、持有人、滥用联系邮箱,本次实验通过查询百度域名的 Whois 数据,直观地查看相关信息;
- 再者是 Nmap 端口扫描全套技术,端口是系统对外服务出入口,不同端口对应 SSH、Web 等服务,-sS 半开扫描只完成 TCP 握手前两步,不会建立完整连接,隐蔽性更强适合红队渗透,-sT 全连接扫描会完整握手,记录清晰适合内网合规检测,-O 依靠 TCP/IP 数据包 TTL、窗口指纹识别系统,-sV 抓取服务版本用于匹配对应 CVE 漏洞,实验中用多条参数组合扫描 SEED 靶机,只开放 22 端口的结果也让我明白开放端口越少攻击面越小,企业加固首要操作就是关闭无用端口;感觉这套命令用起来还挺方便的,输入不同的参数就能得到不同的信息。
- 第四是 Nessus 漏洞扫描相关的安全检测技术,该工具内置海量漏洞插件,能自动匹配端口服务对应的已知漏洞并划分高、中、低风险,输出包含修复方案的报告,实验扫描出 SSH 相关配置漏洞后梳理出先弱口令爆破、再漏洞提权的入侵思路,对应现实中安全工程师定期对服务器做漏洞体检、提前修补隐患的工作。这个工具当时我使用的是WinXP自带的,感觉也挺好用,输出也比较详细。
知识感悟:
- 在进行信息收集实验时,一开始操作 Kali 的时候反复出现域名解析超时,ping 全部丢包,我挨个检查静态 IP、DHCP 服务、虚拟机网卡模式都没有效果,最后才想到重置 VMware 虚拟网络,这件事让我意识到虚拟网络环境环环相扣,底层虚拟交换机配置出错,上层所有扫描、查询工具都会失效;安装 VMware Tools 复制 Nessus 安装包时又遇到挂载目录只读、软件源缺少公钥无法下载工具的问题,折腾很久才换 WinXP 完成漏扫,也让我明白安全实操不能只依赖单一系统,多系统搭配、备选方案非常重要,遇到环境故障不用死磕一个点;我觉得最有趣的是抓取 QQ 好友 IP 的实验,我和朋友之间只需要打一个语音通话就能知道对方所在的IP,当我把对方的IP告诉他的时候,他非常惊讶觉得很神奇。另外我也理清了完整攻防前置流程,先搜索引擎、域名库做被动摸底,再用 Nmap 测绘内网存活主机与端口,最后用 Nessus 定位漏洞,这套流程以后可以直接套用。对比第一次搭建环境的实验,本次偏向侦察探测,信息收集是进攻和防御的核心前提,没有这些信息,后续漏洞利用无从下手。实践中找到的每条信息,都是在帮助缩小攻击范围,并便于后续制定防御策略。
- 最后,我也直观体会到个人网络隐私防护相关常识,在日常生活中除了上面和朋友通话会泄露隐私外,搜索引擎也会长期缓存文档、网页(比如我就在网页上搜到了自己的作业),随意上传带学号姓名的文件极易造成信息泄露,对应《网络安全法》中个人信息保护相关法规要求。
第3次实践 网络嗅探与协议分析:
知识介绍:
- 本次实验涉及很多网络安全基础与流量分析相关知识点,首先是 tcpdump 命令行抓包工具,它仅能在 root 权限下运行,依靠 BP 过滤语法精准筛选 IP、端口、协议流量,适合服务器无图形环境下轻量抓包,实验中通过限定源 IP 与 80 端口过滤,直观看到网页请求会分发至多台后端服务器,是网站负载均衡的网络表现;
- 其次是 Wireshark 工具,这个工具其实我在以前本科从来没用过,在这门课上是第一次用,本来以为会很难,但感觉用着用着就会了。此工具具备分层协议解析、TCP 流追踪、多维度过滤功能,能够拆解二层以太网到七层应用层完整数据包,本次 Telnet 实验借助追踪流功能直接读出明文账号,清晰展现明文传输的缺陷;
- 然后是 Telnet 协议相关加密安全知识点,该协议基于 TCP 23 端口纯 ASCII 明文传输所有交互内容,不存在任何加密处理,内网攻击者只要开启嗅探就能截取账号密码,对应安全加固知识点里的基线配置要求,企业内部运维都会强制替换为 SSH 加密远程工具,杜绝明文登录风险;
- 再者是 TCP 协议底层知识,这个知识结合Wireshark 工具很常用。包含三次握手、SYN/ACK/RST 标志位作用,SYN 半开扫描仅发送 SYN 包不完成完整握手,隐蔽性更强,实验解析 listen.cap 时通过大量 SYN 数据包判定攻击者使用 Nmap 半开扫描,依靠 SYN+ACK 响应包统计蜜罐开放端口,依靠不同系统默认 TTL、TCP 窗口、MSS 指纹区分 Windows 与 Linux 主机,这里同时用到 p0f 被动指纹工具知识点,该工具无需主动发包,仅靠抓取流量特征识别系统,适合蜜罐后台静默监控攻击者;
知识感悟:
- 本次实验,和前两次搭建环境、信息收集实操相比,我最大的感受是终于看懂书本上抽象的 TCP 数据包到底是什么样,之前只知道 Telnet 不安全,这次亲手抓包看到明文账号直接显示在流量里,才真正意识到老旧明文协议带来的泄露风险,实操里踩了不少环境坑,一开始 Kali 软件源缺少公钥无法更新,装不了 Telnet 客户端导致任务卡住,反复查找命令导入密钥才解决,抓取海量扫描流量时,一开始不会写过滤语句(毕竟第一次使用),后来才慢慢学会用协议、端口、TCP 标志分层筛选,同时通过离线取证样本复盘扫描全过程,把第二次实验学到的 Nmap 扫描知识和本次流量分析结合起来,知道红队扫描会留下特征流量,蓝队依靠抓包工具就能捕捉攻击痕迹,这种攻防的思路比单纯记命令更重要;也意识到日常上网、办公都要尽量避开 HTTP、Telnet 这类无加密服务,一旦连入公共 WiFi 很容易被他人嗅探窃取账号,而加密传输是最基础的安全防护手段。
第4次实践 TCP/IP网络协议攻击:
知识介绍:
- 首先是 ARP 协议相关内容,这几个协议部分知识在本科计算机网络就学过。ARP 负责 IP 转 MAC,协议不存在报文身份校验机制,主机收到任意 ARP 应答都会更新本地缓存,实验中用 netwox 80 伪造应答篡改靶机 IP-MAC 映射就是利用该漏洞,现实内网攻击里 ARP 中间人劫持常用来窃取 Telnet、FTP 明文账号,企业防御会用交换机 DAI、端口绑定固定合法 MAC;
- 其次是 ICMP 协议,ICMP 重定向本是路由优化报文,但无校验机制,攻击者可冒充网关下发虚假路由,实验 netwox 86 伪造重定向包修改 SEED 外网下一跳,真实场景下会导致所有外网流量流经攻击者主机,运维可关闭主机 ICMP 重定向接收防护;
- 然后是 TCP 协议三层缺陷,SYN Flood 滥用三次握手半连接状态,大量伪造 SYN 报文耗尽服务器监听队列,实验针对 WinXP 23 端口发起攻击后, Telnet 无法接入,生产环境依靠 SYN Cookie、连接限流抵御,TCP RST 报文无需身份验证,伪造 RST 包可强行切断已有 TCP 会话,日常运维监控大量 RST 异常流量就能发现断网攻击;
- TCP 会话劫持建立在 ARP 欺骗中间人基础上,先劫持双向流量再抓取明文交互,实验用 ettercap 同时毒化两台主机,完整截获 Telnet 登录账号,也直观体现明文传输协议的巨大隐患;
- 本次实验同时还掌握多种安全检测工具,netwox 是轻量化报文生成工具,内置各类协议攻击模块无需手动构造数据包,ettercap 专注局域网中间人攻击,Wireshark 则是我们常用的流量分析工具(这个比较熟)。
知识感悟:
- 做完整套协议攻击实验,和之前信息收集、流量嗅探实验串联起来,我才真正看懂互联网通信的安全风险,可能是协议诞生之初没有考虑恶意环境。实操时印象最深的是 ARP 欺骗那一步,仅仅一条命令就能改动靶机的 MAC 对应关系,原本两台主机的通信全部经过 Kali,再通过劫持看到明文账号,瞬间理解为什么公司内网严禁使用 Telnet,全部替换 SSH 加密登录;实操过程中同样让我明白网络攻防中细节的重要性,参数、IP、MAC 这类字符一个数字写错会导致整个攻击流程完全失效;之前看书只记住攻击名词,亲手抓包看到海量伪造 SYN 包、带 RST 标志的断开报文、ICMP 重定向包后,让我对相关概念有了更深的理解,实验排查故障的能力也明显提升。
第5次实践 网络安全防范技术:
知识介绍:
- 首先是 iptables 防火墙相关安全技术,以前只听说过防火墙,但是iptables是第一次听说。iptables是Linux系统内置的防火墙工具。iptables 依托 Linux 内核 netfilter 框架运作,INPUT、OUTPUT、FORWARD 三条核心链分别处理入站、本机出站、跨主机转发流量,每条规则由匹配条件(源 IP、目标端口、协议)和动作 ACCEPT/DROP 构成,规则自上而下依次匹配,实验中限制 HTTP 访问时先放行白名单 IP 再丢弃全部流量就是对该特性的实际运用,真实服务器运维会通过 iptables 关闭闲置端口、屏蔽扫描 ICMP 报文缩小攻击面;
- 其次是 Snort 入侵检测技术,属于基于攻击特征的 IDS 工具,既能实时抓包也可离线解析 pcap 文件,依靠 snort.lua 内置海量攻击特征匹配数据包,检测到异常后生成告警日志记录攻击源、目标与攻击类型,本次读取的扫描流量匹配出大量 SYN 扫描告警,日常应急响应可通过历史 pcap 搭配 Snort 回溯完整攻击链路,对应网络溯源技术的实操手段;
- 然后是蜜网网关整套防护架构知识,前面也提到了。蜜网作为诱捕防御手段,网关 iptables 设置特殊转发策略,对外放开蜜罐访问权限方便攻击者进入,对内严格限制蜜罐向外发起连接防止横向扩散,同时把全部流量转发至 Snort 内联模式做深度检测,防火墙做粗粒度流量管控、Snort 做细粒度攻击识别,二者联动完成攻击数据完整留存。
知识感悟:
- 本次防御实验,我最大的感受是之前四次实验一直在学习各类攻击手段,这次终于站在防守方视角看懂对应的防护思路,才明白攻击和防御其实是一套对应的逻辑,之前实操 ARP、SYN 扫描时学到的攻击特征,现在用 iptables 和 Snort 就能针对性拦截记录,比如之前用 Ping 探测靶机,一条 ICMP 丢弃规则就能直接屏蔽这类探测行为。在本次实验中,分析蜜网脚本的相关操作刷新了我的认知,我原本以为蜜网只是单纯放漏洞靶机,看完防火墙黑白名单和 Snort 联动配置才知道蜜网网关其实有严格的隔离规则,不会让攻击者顺着蜜罐渗透到真实内网。
第6次实践 Windows操作系统安全攻防:
知识介绍:
- 首先是 Metasploit 渗透框架相关知识(这个知识后面好多次实践都用到了),它集成漏洞利用模块、载荷、编码器、辅助工具,是红队渗透、安全测试标准化工具,实验里 search 检索漏洞、use 加载脚本、set 配置参数、exploit 发起攻击都是框架基础操作,真实渗透测试中安全工程师会依靠 MSF 批量检测内网未打补丁设备,快速验证漏洞风险;
- 其次是 MS08-067 缓冲区溢出漏洞,该漏洞存在于 Windows NetAPI32.dll 组件,利用 445 端口 SMB 协议畸形数据包实现无认证远程代码执行,当年大规模蠕虫依靠该漏洞扩散,实验中全程围绕 445 端口建立攻击连接,对应安全加固里关闭闲置端口、及时安装系统补丁、禁用不必要 SMB 服务的基础要求,是系统安全基线配置的典型案例。
- 反向 TCP Shell 载荷知识点在实验中用到很多,它和正向连接相反(和正向连接的最大区别就是正向是攻击机主动连靶机,但是反向是靶机主动连攻击机),由靶机主动向外连接攻击机监听端口,能绕过防火墙拦截入站流量的默认规则,企业内网渗透、内网横向移动场景中黑客普遍使用该技术,防御端则需要监控内网主机对外陌生出站端口连接,本次实验通过 4444 端口回连流量直观看到反弹 shell 特征。
- 网络协议分析与 Wireshark 取证溯源技术属于蓝队应急响应核心能力,依托 TCP/IP、SMB、FTP、HTTP 协议基础,借助过滤器、追踪 TCP 流,还原攻击证据,还有就是SMB、FTP、IIS Web 相关协议安全知识,SMB 负责局域网文件共享,是内网渗透最常用通道,FTP 明文传输极易泄露恶意工具,IIS 早期版本存在 % C0% AF Unicode 编码路径穿越漏洞,可绕过目录限制读取 boot.ini 等系统敏感文件,msadcs.dll 的 RDS 漏洞允许构造 SQL 语句执行系统命令,实验抓包中完整看到两类漏洞的恶意请求报文。
- 同时实验涉及系统账号安全相关知识点,Windows SAM 文件存储全部用户密码哈希,samdump、pdump 工具可导出破解账号凭证,对应安全加固中限制 SAM 文件访问、设置复杂账户密码、定期清理冗余账号的策略;nc.exe 网络后门工具是轻量端口监听程序,黑客入侵后用于持久化控制,现实中杀毒软件、流量监控会识别 nc 异常端口监听行为。另外 Unicode 路径绕过、RDS msadcs Web 漏洞属于早期 NT 系统经典 Web 安全缺陷,黑客通过特殊编码绕过目录访问限制、构造恶意 SQL 执行系统命令,对应 Web 防护中输入过滤、禁用废弃组件、限制危险 dll 访问的修复方案;TCP 三次握手、SMB 协议协商、FTP 认证传输等都是计算机网络的基础了,也是识别异常流量、判断攻击行为的依据。
知识感悟:
- 做完本次实验的三项任务,和之前流量嗅探、协议攻击实验串联起来,我觉得脑子里漏洞利用的链路好像已经构建出来了,之前只在课本上知道缓冲区溢出会造成远程控制,亲手用 Metasploit 利用445 端口拿到靶机 cmd 后,才直观感受到老旧系统里面,不打补丁会带来巨大风险。实验里我觉得比较有意思的是团队对抗实践,我和使用kali虚拟机攻击对方的虚拟机,并且在他的虚拟机里创建文件夹,查到他的IP地址等等,一系列操作让我觉得很有成就感。
第7次实践 Linux操作系统攻防:
知识介绍:
- 首先是 Samba 服务与 usermap_script 命令注入漏洞相关安全加固内容,Samba 用于 Linux 与 Windows 跨主机文件共享,默认开放 139、445 端口,3.0.20 至 3.0.25rc3 版本开启用户名映射脚本后,未对客户端传入用户名做字符过滤,攻击者嵌入特殊 shell 元字符就能在认证前执行系统指令,无需任何账号直接获取 root 权限;
- 其次是 Metasploit 渗透框架,前文也提到了。框架分为 exploit 漏洞利用模块、payload 控制载荷、auxiliary 辅助扫描三大组件,search 检索、use 加载、set 配置参数、exploit 执行是标准化渗透流程,实验里对比正向 bind_netcat 与反向 reverse_netcat 两种载荷,正向 Shell 由攻击机主动连接靶机端口,容易被入站防火墙拦截,反向 Shell 让靶机主动向外建立连接,内网、NAT 环境成功率更高,日常红队多优先选用反弹载荷绕过边界防护;
- 然后是网络溯源取证技术,还是使用Wireshark观察数据包,Wireshark 依靠端口过滤、TCP 流追踪功能拆解攻击全过程,SMB 协商数据包对应漏洞触发阶段,4444 监听端口流量是控制会话特征,追踪数据流能完整读出攻击者输入的所有系统命令。
知识感悟:
- 完整做完本次 Linux 攻防实验,我最大的直观感受就是,之前实验接触的 Windows 漏洞大多需要一定前置条件,而这个 Samba 漏洞完全不需要账号,输入恶意用户名就能拿到 root,让我意识到内网文件共享服务的相关风险,不能随意部署未更新的 Samba 服务。实验里,有一处让我印象很深,因为弄了很久:一开始测试 vsftpd 后门漏洞,完全没注意靶机运行的是 ProFTPD,和漏洞对应的 vsftpd 版本不兼容,反复执行 exploit 都没有会话,查阅漏洞介绍、更换适配虚拟机才解决。本次实践,把前面 Nmap 扫描、Wireshark 流量分析、防火墙配置的知识点串联起来,我发现可以构成从侦察、漏洞利用、流量捕获、事后溯源的完整链路,这让我想到这学期我在网络信任体系这门课里也学过类似的一整套知识,这种知识的类比串联让我觉得很有意义。
知识拓展:
-
关于和本次实践有关的vsftpd2.3.4后门漏洞,我比较感兴趣,于是专门去CVE官网查了一下:
![image]()
![image]()
vsftpd2.3.4后门漏洞的官方CVE编号是CVE-2011-2523,Red Hat(红帽公司)是这个漏洞的 “编号机构”,负责向 CVE 官方提交并维护这个漏洞的信息。 -
在CVE Details网站https://www.cvedetails.com/
可以进一步查到漏洞细节
![image]()
可以看到该漏洞被利用的概率高达94.27%,属于极易被利用的漏洞;且~100%说明他的利用活跃度超过了其他几乎所有漏洞。 -
该后门的触发逻辑简单:当攻击者通过 FTP 协议连接靶机 21 端口时,输入的用户名以“: )”(笑脸符号)结尾,vsftpd 服务会误将该特殊字符识别为后门触发指令,进而执行预设的恶意代码——关闭 21 端口,并在靶机上开启 6200 端口,同时在 6200 端口绑定一个 root 权限的交互式 Shell。此时攻击者只需连接靶机 6200 端口,即可直接获得靶机的最高权限,无需进行额外的权限提升操作。
第8次实践 恶意代码分析实践:
知识介绍:
- 首先是 PE 文件与 UPX 加壳脱壳相关逆向知识,PE 是 Windows 可执行文件标准格式,分为代码段、数据段等结构,UPX 是通用压缩壳,加壳会压缩加密原程序,运行时内存解压,脱壳就是还原出没加密的原始 PE 程序方便逆向分析。实验中先查壳再脱壳的流程就是真实样本研判标准步骤,脱壳后才能读取作者、C&C 服务器、自启动注册表等关键线索。脱壳工具中令我印象深刻的是工具的执行按钮上写的是“给我脱!”感觉很有趣。
- 其次是 IDA Pro 静态逆向技术,该工具能将机器码还原为汇编代码,展示函数调用、分支判断逻辑,实验中通过字符串窗口定位提示文本,跳转核心校验函数分析 cmp 比较指令,拆解两层嵌套判断规则,对应代码审计技术,可用于检测程序输入过滤缺失、恶意逻辑,软件安全行业常用来破解测试程序、分析恶意程序执行流程;
- 第三是恶意代码分类相关病毒技术知识点,木马、蠕虫、病毒存在明确区分,其实原本我对这三类经常搞不清楚区别,通过这次实践我才查明白。病毒依附文件感染、蠕虫自主漏洞传播、后门无自主扩散能力仅提供远程控制,本次实践中RaDa 样本属于典型后门程序。
- 第四是 IRC 协议与僵尸网络溯源知识,IRC 默认 6667 端口,客户端通过 NICK、USER、JOIN 消息接入频道实现一对多管控,僵尸网络依托该协议下发 DDoS、扫描指令,实验通过流量筛选统计受控主机数量,依靠 SMB 端口数据包确认攻击者利用 RPC、SMB 漏洞植入 IRC 后门,对应网络溯源技术,护网行动、企业入侵复盘时依靠 pcap 日志追溯攻击链路;
- MD5 哈希加密知识点,MD5 对文件生成不可逆唯一摘要,用于区分同源恶意样本。其实这个知识点在实践11中也运用到了。运维人员上传可疑文件到威胁平台都依靠哈希匹配。
知识感悟:
- 完整做完这次恶意代码分析实验,我和之前只做漏洞攻击的实验感受完全不同,之前大多是主动搭建环境发起攻击,这次全程站在防守者或者研究者视角,从一段程序、一堆数据包里一点点挖攻击者线索,最直观的体会就是加壳带来的隐蔽性有多强,最开始没脱壳直接提取 RaDa 字符串全是乱码,根本看不出任何功能,脱壳后一下子出现注册表、DDoS、IRC 服务器等大量关键文本,才明白病毒木马靠简单加壳就能躲开基础工具检测;本次实验我觉得过程特别繁琐,而且要真正理解每个工具的使用,每个命令的含义,每个知识点的原理,才能把这次的实验做好。
第9次实践 软件安全攻防--缓冲区溢出和shellcode:
知识介绍:
- 首先是 32 位 x86 汇编与 ELF 程序底层原理,CALL 指令以 0xE8 为操作码搭配四字节相对偏移,偏移等于目标地址减去下一条指令地址,内存遵循小端序低字节存低位。这个知识点我记得学计算机系统安全的时候就涉及到了。
- 其次是缓冲区溢出漏洞成因与栈帧结构,程序往固定大小栈缓冲区塞超长数据,没做长度校验就覆盖栈帧里的返回地址;栈帧是函数调用时栈上存局部变量、栈基址、返回地址的一块内存区域。foo 函数使用 gets 这类无边界校验危险函数,栈内依次存放缓冲区、ebp 栈基址、返回地址,超长输入会逐层覆盖。
- 第三是 Linux 两大内存防护机制,堆栈不可执行遵循 W^X 读写执行分离原则,默认栈仅能存数据无法运行代码,execstack 工具修改 ELF 头标签可临时放开限制,ASLR 地址随机化每次运行重置栈、库基址,内核参数 0/1/2 对应不同随机等级;
- 第四是 Shellcode 相关程序设计知识点,是机器码写成的微型指令段,无文件头、无导入表,直接在内存裸跑,不用依赖系统库。本次实验涉及的 Shellcode 依靠 int 0x80 触发 execve 系统调用,不依赖外部库,NOP 空指令 0x90 作为滑行区抵消地址微小误差,perl 可输出不可见十六进制二进制字符,是漏洞利用载荷编写常用手段。
知识感悟:
- 本次实验直接深入 CPU 指令、内存堆栈最底层,不再是调用工具执行现成漏洞脚本,而是亲手计算地址、改写机器码、手写系统调用代码,最开始静态修改程序时没弄懂小端序规则,直接照搬地址导致跳转失败;做第二个溢出任务的时候,我花费了很多时间,本来我在 gdb 里直接运行程序,root 权限下自动弹出 Shell,这让我误以为不用构造 Payload 就能攻击,但我对比其他同学们的发现他们获得权限并没有那么简单,后来才发现,我是在root权限下操作的,但实际上不能在此权限下操作,后来搞了很久,弄了很多遍才终于把这个流程执行完成;本次实践让我体会到,静态改码只适合本地一些无防护程序,自主 Shellcode 注入才贴近真实远程渗透场景,并且设置多层防护就能大幅降低溢出攻击成功率。
第10次实践 Web应用程序安全攻防:
知识介绍:
- 首先是 SQL 注入相关安全技术,直接把用户输入拼进 SQL 语句没做过滤,导致攻击者篡改数据库语句,单引号会破坏字符串边界、# 作为 MySQL 单行注释可截断后续校验逻辑,SELECT 注入多用于绕过身份认证,UPDATE 注入能突破页面字段限制篡改后台数据,而参数化查询是根治手段,预编译先固定 SQL 语法模板,用户输入仅作为纯数据绑定,无论包含引号、注释都不会被数据库解析为语法符号;
- 其次是存储型 XSS 漏洞原理,简单来说,就是恶意脚本存入网站数据库,其他用户打开页面时,页面加载并执行这段恶意代码,窃取 Cookie、伪造操作。在实践时就非常直观地感受到了。还有蠕虫依靠 URL 编码脚本实现跨用户传播,像日常生活中,真实论坛、社交平台留言区都是高发漏洞点,对应的防御手段有两种:服务端输入过滤、HTML 特殊字符转义,Elgg 的 HTMLawed 插件就是通过过滤 script 标签阻断恶意脚本执行;
- 此外,Netcat 工具是一种简易端口监听程序,无需搭建 Web 服务就能接收攻击带出的敏感数据,常用于渗透测试临时数据接收。
知识感悟:
- 本次实践通过亲手构造简短 Payload 就能绕过登录、修改他人薪资这件事,让我直观感受到随意信任用户输入会带来多大风险,我不再只停留在课本文字理解两类漏洞的危害,做 SQL 注入时一开始没分清 SELECT 和 UPDATE 注入的 Payload 差异,照搬登录页面的单引号注释写法修改资料完全失效,反复对照后端 SQL 语句结构,调整逗号分隔字段的写法才成功篡改数据,这些细节问题让我清楚 Web 攻击不能只复制现成脚本,必须先抓包摸清站点接口完整请求规则,不再只会单纯执行攻击。本次实践相比之前的实践会更加贴合实际场景,也很有意思,在相关人员不知情的情况下就进行了操作,也让我深知用户输入不可轻信这一结论。
第11次实践 浏览器安全攻防实践:
知识介绍:
- 首先是 MS06-014 浏览器远程代码执行漏洞相关知识,IE 自带的 MDAC 组件里 ActiveX 控件缺少安全校验,访问恶意网页就能触发内存破坏执行任意代码;攻击者用 Metasploit 生成挂马页面,点开就能拿到靶机反向 Shell。防御手段例如升级浏览器、禁用无用 ActiveX 控件、及时安装系统安全补丁,实验中构造钓鱼网页完整复现漏洞触发流程,也对比了反向 shell 载荷优势,靶机主动外联更容易绕过本地防火墙;
- 其次是多层代码混淆与加密技术,MD5 单向哈希用于恶意样本分发校验,任意文件生成唯一 32 位小写摘要,无法反向解密但可用于匹配同源样本,Base64 是可逆编码仅用于文本转换,XXTEA 属于轻量级对称加密必须匹配密钥才能解密,实验从文件末尾十六进制字符转译得到 script 密钥完成解密,Packed 脚本压缩混淆会打乱 JS 逻辑,需要专用工具脱壳,这三类混淆手段是恶意脚本躲避静态查杀的常规方式;
- 第三是逆向分析相关知识点,IDA Pro 静态反汇编工具(前面用过)可读取 PE 程序字符串、汇编指令,检索注册表操作、网络外联关键词就能识别木马自启动、后门下载行为,实验通过 strings 窗口批量提取全部恶意下载 URL,看懂后门批量拉取多款恶意程序的完整逻辑。感觉这个工具的使用基本就遵循一套类似的逻辑;
- 同时巩固之前实验中多次使用的 Metasploit 渗透框架完整使用流程,分清 exploit 漏洞模块、payload 载荷、监听处理器的分工。
知识感悟:
- 做完本次浏览器攻防实验,我最大的体会是之前的实验大多针对服务器、内网设备,这次把攻击目标放到普通使用者的浏览器,仅仅一个看似无害的链接,在未打补丁的旧系统里就能直接交出整机权限。实验中我收获最大的是任务二,任务二的木马取证看上去非常繁琐,全程都是重复找外链、算 MD5、解密、脱壳、逆向的流程,一开始我觉得任务二很难很麻烦,后面做多了才弄懂对方的套路,一下子就有思路了。本次实验也让我明白,日常使用中,应当注意及时更新系统、不点陌生钓鱼链接,从而大幅降低挂马风险。
四、课堂的收获与不足
- 在网络攻防实践这门课中,每个实践都是不同的内容,对我来说有不同的收获。具体每个实验的收获,已经在上面给出。但是整门课程我的感悟很深。以前经常听周围同学们说他们进行了网络攻防,当时对我来说是一个非常高大上、感觉非常厉害的一件事,直到我通过这门课能够亲自实践,我才真正了解到那些同学都在做些什么,才真正对网络攻防的场景、思路、步骤有了更具体的理解。
- 首先,本课程最核心的收获就是,通过实践我明白了,在做实验的过程中不能只记忆命令,不能照抄照搬,而是应当真正理解每个实践的底层原理、理解每条命令的具体含义,明白攻击或者防御的思路,知道自己每一步在做什么,这样就算在实践的过程中遇到前所未有的或者出乎意料的问题或现象,也不至于丈二和尚摸不着头脑。但是如果自己不先去理解知识点就开始盲目行动,为了完成实践而进行实践,这样不仅没有学到知识,没有收获,等遇到问题时也不知道该怎么解决。
- 其次,通过网络攻防实践课,我的动手能力有了很大的进步。以前没有接触过类似的课程,所以对知识的理解还停留在课本上,但是通过这11个实践,每个实践中又有好几个任务,每个任务自己亲自动手一步一步完成,要自己动手一行一行敲命令,自己亲自操作,这对我的动手能力无疑是很大的提升。此外,由于每个任务的完成并不是一帆风顺的,其中会遇到各种各样的问题,当遇到问题时,我通过查阅知识点、请教同学等各种方式,把问题解决,并且学到知识、总结经验的过程,让我收获颇多,对自己的实践能力也更有信心,也提高了自己解决问题、排除故障的能力。
- 再者就是知识层面的了,由于我以前本科的时候并不是网络安全专业,所以网络攻防领域的知识接触很少,而通过这门课程,我学习了很多网络安全相关领域的知识,学习了各类漏洞、工具、协议的原理、实践方法等等。
- 第四是对我网络攻防思维的培养。从对于一个网络攻防场景不知道该怎么办,到自己慢慢积累知识,再到对于特定场景有了一点模糊的思路,再到面对问题能按照自己的思路逐步尝试,直至把整个思维体系串联起来,独立解决问题。这个过程让我收获非常大,虽然过程比较漫长,但在过程中自己的网络攻防思维有了很大的提升。
- 再者就是实验中涉及细节的地方非常多,而且我也体会到在实践的过程中,一处细节出错就可能导致攻击失效,本课程也培养了我更加严谨的思维和做事更细心的态度。
- 关于不足之处,首先,虽然我在实践的过程中一直学习相关的知识,但是在学习和实操的过程中我发现,自己在底层相关的基础方面掌握得还是不够扎实,一些知识点只停留在会跟着步骤操作的程度,但是深层次原理理解比较浅显,如果脱离参考步骤后自主推演,就感觉有时候思路没有那么清晰,灵活运用的能力还有些不足。其次,我觉得课堂中的11次实践都是最最基础的实践,而针对于更复杂场景我可能还不能完全胜任,像实验中涉及到的一些很复杂的脚本,如果完全要自己独立完成编写还有些困难。再者,在进行实践的时候,有时我会先把所有实践的底层逻辑全部都搞懂,然后有一个明确的思路步骤这才开始实践,但是这会导致实践的周期比较长,效率偏低,因此,我觉得可以改变一下思路,有时候一边学习、一边尝试性地实践效率可能更高。




浙公网安备 33010602011771号