左懒2015/09/21 15:02 0x00 综述 这个植入木马由一个经过篡改的思科IOS镜像组成,能允许攻击者保持匿名性,同时从网络上加载不同的功能模块。这个植入木马还使用了一个秘密的后门密码,能给攻击者提供非限制权限。每个模块都能通过HTTP协议(不是HTTPS)来启用,只需向路由器的接口发送一个特别制作的TCP数据包。这些数据包都使用了非标准的序列号和相应的承认号。而这些模块可以把自己显示成路由器IOS中独立的可执行代码或hook,提供的功能与后门密码类似。后门密码通过控制台,远程登陆协议和权限提升,使用enable命令,能提供对路由器的访问。 图1:模块更新 图2:后门权限 已知受影响的路由器:思科1841路由器,思科2811路由器,思科3825路由器 注意:我们在识别之初发现,其他型号的一些路由器可能也受到了影响,因为这些路由器的核心功能、IOS代码都很类似。 0x01 维护 这个植入木马寄存于一个被篡改过的思科IOS镜像,并且在加载后,植入就能维护自己,系统重启也无法清除。但是,攻击者之后载入的模块就只能储存在路由器的内存中,系统重启后就没有了。从分析的角度看,如果模块是加载到内存中,分析人员就可以通过获取路由器镜像的核心转储来对这些模块进行分析。 0x02 检测方法 对于能发出命令并接收响应的组织来说,主机标识非常实用。但是只有一小部分的路由器是放置在比较容易接触的网络区域中,在这种情况下,这种方法就是可行的。 对于更分散的组织和不能执行本地命令并接收响应的组织来说,网络标识能起到帮助作用。 最终来看,结合主机标识和网络标识的方法基本上能用于判断底层网络的健康情况。 主机标识 表1-主机标识命令和预期输出 除了表1中的命令,思科的IOS防篡改文档中还提供了其他的一些检测技术: http://www.cisco.com/web/about/security/ intelligence/integrity-assurance.html 从文件大小上来看,包含有植入木马的IOS二进制与合法镜像是一样的。所以,从文件大小上无法区别这个镜像有没有遭到篡改。最好的办法之一就是获取思科镜像的哈希,通过比较哈希来检测二进制是不是被篡改过。但是,只有当镜像是在磁盘上,而不是加载到内存上时,这种方法才能发挥作用。 网络标识 曼迪昂特公司提供有主动和被动两种网络检测方法。关于这两种方法的详细介绍请参见下文中的 “网络检测”部分。 0x03 攻击者主要篡改了IOS二进制的下面四个函数: 修改转换后援缓冲器(TLB)读写属性 修改一个会被调用的合法IOS函数,并初始化木马 使用恶意代码替换合法的协议处理函数 使用木马的字符串替换合法函数引用的字符串 TLB读写属性 木马会强制把TLB的所有与读和写相关的属性都篡改成Read-Write(RW)。我们认为这种篡改是为了让载入模块hook到IOS的函数。如果没有把TLB权限设置成RW,那么缓存页篡改可能就无法影响到内存中的原始页。 遭到篡改的函数可能是IOS中疑似负责配置TLB的函数,攻击者修改了函数中的两个单字节,从而实现了对TLB属性的篡改。在没有篡改时,函数会把寄存器中的前两位设置成1;篡改后,函数会把寄存器的前三位设置成1。曼迪昂特公司认为控制着TLB项写入权限的就是第三位。图3中是遭到篡改的指令。 图3-篡改TLB权限(上为未篡改,下为篡改后) 这就联系到了我们上面讨论过的主机标识方法。使用enable模式命令 “show platform”就能检查TLB属性。如果IOS映像没有遭到篡改,TLB就会输出图4中的内容。 图4-合法IOS镜像的TLB项 如果路由器中植入了篡改过的IOS镜像,其RW属性就会如下: 图5-篡改后IOS镜像的TLB项 视路由器硬件而定,内存地址的有些特定范围一般是只读的可执行代码部分。检测路由器是否遭篡改的最简单方法就是使用命令“show platform | include RO, Valid”。如果没有结果显示,那么,IOS镜像很可能就遭到了篡改,其目的是为了篡改可行代码。 初始化木马 曼迪昂特公司认为,要想在IOS镜像载入时执行木马,肯定要修改一个与进程调度相关的函数。这是因为,在IOS启动顺序中,遭到篡改的函数会被更早地调用,并且只要IOS启动正确,这个函数就一定会被调用。函数调用的目标地址经过篡改,指向了木马的hook处理函数。我们的研究证明,hook处理函数先会检查被篡改IOS中的调用函数是否是有效的,之后木马就会初始化。现在,木马就上线并运行了,并且会执行原来的IOS函数,这样谁也不会怀疑。 曼迪昂特公司认为,遭到篡改的函数与进程调度任务有关联,当这个函数被调用时,函数就会进入一个无限循环。另外,它的几个子函数也会引用与进程调度相关的字符串,比如 “Threshold: %s CPU Utilization(Total/Intr):…”。 […]