Cisco的反编译过程的几个点分享

Cisco的多元性是它的1个鲜明特点,关键分成系统多元性和命令构造多元性。

管理体系多元化:CiscoIOS,CiscoIOSXE,CiscoNX-iQ,CiscoIOSXR,ASAOS。

多元化的命令构造:PowerPC,MIPS,x86_64。

(1)CiscoIOS固件需要反向分析。

(2)通常镜像是需要进行静态分析的大型二进制文件。

(3)在苹果系统中,所有代码都以提权模式执行,因此可以使用特权命令。

(4)在苹果系统中,很有可能好多个虚拟内存设置段相匹配相同物理空间段(如20000000和80000000)

(5)溢出进行shellcode,将链表排序回到到正常的服务。

(6)CiscoIOS在苹果系统触发1个异常时重新启动设备(dos攻击很简单,RCE需要重新构建)

由于CiscoIOS没有额外的API函数或命令支持,所以如果想调用tcp连接之类的功能,就需要找到相关的函数。

outputo-20210828-085552-971-jump.png

(1)DEP:内存栈、堆等无法执行,要进行ROP攻击。

(2)ASLR:栈、堆具有随机化特征,避免地址的随机化。

(3)堆检查:苹果系统将在固定时间检查堆结构,并在堆释放时进行堆检查(在以前的公共号文章中介绍了具体检查方法),并且苹果系统的栈的空间也是在堆中,因此栈溢出和堆溢出运用都可以检查。

(4)代码完整性检查:完整性检查是否在镜像文件中植入1个后门或shellcode(一般使用签名)

定时器:如果shellcode运行时间过长,定时器将触发,然后终止攻击进程。

(6)Cisco多元化:思科镜像的多元性,将exp移植到镜像之间需要时间。

(7)I-cache,D-cache防护:Powerpc架构的处理器将隔离代码区域和数据区域,因此有时无法将链表排序劫持到数据区域。

5.CiscoIOS漏洞利用总体思路:

1.交换调试器:

要实现漏洞的运用,首先要能够执行漏洞调试,这里关键介绍两种调试方法。

虚拟平台调试:

①安装Ciscodynamips调试平台(支持gdb调试版):

cddynamips-gcc-mod/src。

updatedb。

locatelibelf.a。

②使用dynamips运行相对应仿真模拟调试:

dynamips-Z+连接端口-j(禁用JIT编译器)-P+仿真模拟的硬件平台-t2621-s0:0:tap:tap1-s0:1:linux_eth:eth0+镜像文件。

③使用gcc连接进行调试:

请注意,此处使用的gcc连接调试需要使用相对应模式的gcc,有两种解决方案:

一是运用gcc-multiarch;二是运用buildroot或交叉编译器软件链交叉编译器1个gdb调试软件。

分享: