固件安全基础
- 思科设备固件概述
- 固件获取途径
- binwalk / firmware-mod-kit 安装与使用
固件分析环境搭建
- Ubuntu虚拟机配置
- IDA Pro / Ghidra安装
- QEMU模拟环境搭建 · GDB调试器配置
固件文件系统分析
- SquashFS / JFFS2解析
- 文件系统挂载
- 关键文件定位 (httpd, sshd)
漏洞挖掘前置知识
- MIPS/ARM架构基础
- 栈溢出原理 · 堆溢出原理
- 格式化字符串漏洞
静态分析入门
- IDA Pro加载固件二进制
- 函数识别 · 字符串搜索
- 交叉引用分析
动态分析基础
- QEMU用户态模拟
- 网络服务启动 · 端口映射
- 远程连接测试
Web服务漏洞分析
- 思科HTTP服务器解析
- CGI脚本分析 · 参数传递
- 常见入口点
命令注入漏洞
- system/popen函数定位
- 用户输入过滤绕过
- 命令执行验证
栈缓冲区溢出
- 危险函数识别 (strcpy/sprintf/gets)
- 返回地址覆盖
- 控制流劫持
堆溢出利用
- malloc/free函数分析
- 堆块结构 · UAF漏洞
- 堆喷射技术
格式化字符串漏洞
- printf参数解析
- 任意地址读写
- GOT表覆写 · 利用链构建
认证绕过漏洞
- 登录逻辑逆向
- 会话管理分析
- 硬编码凭证搜索 · 权限提升
ROP链构建
- gadget搜索
- MIPS/ARM ROP技术
- 栈迁移 · syscall调用
Shellcode编写
- MIPS/ARM shellcode基础
- 反连shell · bind shell
- 编码与混淆
漏洞利用开发
- Python exploit框架搭建
- socket通信 · payload发送
- 交互式shell
ASLR/DEP绕过
- 地址泄露技术
- 部分覆盖 · ret2plt
- mprotect调用
真实漏洞案例分析
- CVE-2019-1663 (RV320命令注入)
- CVE-2020-3331 (堆溢出)
CVE-2021-34730
- 思科Small Business RV系列
- 远程代码执行漏洞复现
模糊测试入门
- AFL / libFuzzer安装
- 网络协议fuzz · 固件二进制fuzz
- crash分析
自动化漏洞扫描
- FirmAE / Firmadyne固件模拟
- 批量漏洞检测 · 结果分析
补丁对比分析
- 固件版本差异对比
- 二进制diff (Bindiff/Diaphora)
- 补丁绕过技术
漏洞利用缓解
- 思科安全机制 (NX/DEP/ASLR/Stack Canary)
- 绕过策略总结
思科漏洞奖励计划
- Cisco PSIRT · 漏洞提交流程
- 奖励机制 · 合规要求
实战靶场搭建
- GNS3 / EVE-NG模拟器配置
- 思科IOS镜像加载
- 漏洞环境复现
综合实战演练
- 从固件获取到漏洞利用全流程
- 时间线管理 · 文档记录
课程总结与进阶
- 学习路线推荐 · 工具链总结
- 社区资源 · 职业发展建议