2.1.2.3 线程注入木马检测
线程注入隐藏技术是木马采用的最流行的技术之一。线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。采用线程插入技术,实际上就是以非进程的方式执行目标代码,逃避进程查看器的检查,从而达到“进程隐藏”的目的。在宿主进程中,以线程的方式执行木马代码。这样,使用查看进程的方法很难发现木马线程的运行。
线程注入的技术是一种“性价比”比较高的技术,在很多恶意代码中都能看到这种技术的身影。比如插入线程到系统进程或者在后台开启一个ie进程,然后再插入线程。本技术门槛相对比较低,而且在隐藏和穿透防火墙方面有非常好的表现,再配合一些rootkit技术,能够让恶意代码隐藏的更深。
下面介绍两种简单的线程注入木马的检测方法。
2.1.2.3.1 Process explorer检测线程注入
如下图所示,检测可疑进程空间下加载的未通过数字签名验证的dll文件。
- 23 - 2.1.2.3.2 IceSword检测线程注入
在icesword的工具包中有个叫Cooperator压缩包,用rar解压缩。其中有一个叫IsHelp.exe的小工具。要利用这个小工具,首先要运行icesword.exe。选中可疑进程,单击右键,在弹出下拉菜单中选中线程分析。
在IsHelp.exe线程分析的结果中,我们看到了它会标注了可疑的线程。
2.1.2.4 Spi木马检测
Winsock 2 SPI是一个新特性,是为书写服务提供者的人员提供的。Winsock 2不仅提供了一个供应用程序访问网络服务的Windows socket应用程序编程接口(API),还包含了由传输服务提供者和名字解析服务提供者实现的Winsock服务提供者接口(SPI)和ws2_32.dll。
- 24 - 在此以传输服务提供者为例来实现进程的隐藏。如下是应用程序,Ws2_32.dll和传输服务提供者接口之间的层次关系:
|Windows socket 2 应用程序|
----------------------------Windows socket 2 API | WS2_32.DLL |
----------------------------Windows socket 2 传输SPI | 传输服务提供者(DLL) | ----------------------------
基于这个原理,SPI木马的穿透防火墙的性能比较好,只要有程序能上网,它就能回连到控制端。正是这个原因,SPI木马曾今风靡一时,比如说早期比较典型的blueangle。
下面以blueangle为例来介绍spi木马的使用、检测方法。 在win2003(192.168.10.246)上打开木马程序所在文件夹。
生成采用端口反弹方式工作的木马程序。
将木马程序通过飞秋(局域网共享程序)传到一台XP(192.168.10.236)主主机上。
- 25 -
在XP上将传输过来的木马程序点击运行,木马程序运行后无法在任务管理器中看到,我们可以通过autoruns(微软自带的SysinternalsSuite工具包来完成,打开autoruns.exe,找到如图所示。
在win2003(192.168.10.246)主机上用nc去连接被挂马的主机xp(192.168.10.236),连接成功,如图所示,可以通过help查看具体的操作命令。
- 26 -
2.1.2.5 ActiveX自启动木马检测
早期,这种自启动方式在国内的木马中出现的并不是很多,主要是一些国外的木马对这种自启动方式比较偏爱。比如非常著名的木马Poison Ivy就采用了这种自启动方式。
- 27 -