关键漏洞信息 漏洞概述 漏洞名称: Cisco ASA 的EXTRABACON漏洞 影响版本: Cisco ASA多个版本,包括最初的漏洞版本和约20个后续版本 漏洞类型: 远程代码执行漏洞 - 通过SNMP包引起的栈缓冲区溢出 漏洞利用步骤 1. 劫持执行流 - 利用栈溢出覆盖返回地址,改变返回地址到恶意代码 - 示例代码演示了如何找到返回地址的偏移量 2. 多阶段 shellcode: - Stage 1: "Finder" - 通过 指令找到并跳转到第二阶段 - Stage 2: "Preamble" - 设置环境和堆栈以执行后续代码 - 示例代码展示了如何构建shellcode的preamble部分 - Stage 3: "Payload" - 实际执行恶意代码的部分 - 调整pmcheck()和admauth()函数以直接返回TRUE, 获取管理权限 - 示例代码展示了如何构造pass-disable payload 找出关键偏移量 1. RET Smash - 在可执行段中寻找JMP ESP指令即可找到。 - 例如,在Cisco ASA 8.4(3)上使用 来找到合适的返回地址 2. 安全返回地址 - 恢复正常的功能代码入口点, 以便正常操作 - 通过分析相关代码段寻找, 如 来定位 3. 身份验证函数 - 关键函数 和 的偏移量, 以绕过身份验证 - 分析二进制文件的相应代码片段 改进原始shellcode 去除不必要的XOR 0x5A的操作以减少代码长度 合并“Preamble”和“Payload”阶段以减少总长度 使用更高效的指令,如利用单个 指令代替 通过上述方法优化后,shellcode从200字节以上缩短至69字节 后续工作 开发Python脚本以支持其他Cisco ASA版本并自动查找所需偏移量 将Python代码移植到Ruby语言,以便将其集成到Metasploit框架中