引言 近年来,黑客攻击层出不穷,对网络安全构成了极大的威胁.木马是黑客的主要攻击手段之一,它通过渗透进入对方主机系统,从而实现对目标主机的远程操作,破坏力相当之大. 到目前为止,木马的发展已经历了五代: 第一代木马只是实现简单的密码窃取.发送等,在隐藏与通信方面均无特别之处. 第二代木马的典型代表是冰河,它以文件关联方式启动,通过电子邮件传送信息,在木马技术发展史上开辟了新的篇章. 第三代木马的信息传输方式有所突破,采用icmp协议,增加了查杀的难度. 第四代木马在进程隐藏方面获得了重大突破,采用插入内核的嵌入方式.利用远程插入线程技术.嵌入dll线程.或挂接psapi等,实现木马程序的隐藏,利用反弹端口技术突破防火墙限制,在windows nt/2000下取得了良好的隐藏效果. 第五代木马与病毒紧密结合,利用操作系统漏洞,直接实现感染传播的目的,而不必象以前的木马那样需要欺骗用户主动激活,例如最近新出现的类似冲击波病毒的木马—噩梦ii. 木马的关键技术 木马基于c/s模式,服务器端程序运行于被控制的主机上,客户端完成控制功能.设计木马时,需考虑几个关键因素:首先要具有深度的隐蔽性,保证木马的隐蔽运行与启动,其次要能顺利实现客户端与服务器端的通信,最后还要根据需要实现其他功能.一.木马的隐藏 有两种方法可以隐藏木马:一种是dll 木马,它让木马消失在进程列表里,但程序的进程仍然存在;另一种方法则是线程注入式木马,它让程序彻底消失,不以进程或服务方式工作. 1.dll木马 只要把木马服务器端的程序注册为一个服务,系统就不会再把它当作进程,程序便会从任务列表中消失,按下ctrl+alt+delete后,也就看不到该程序. 此方法首先要装载kernel32.dll,然后在该dll中确定函数registerserviceprocess()的地址进行调用,但只适用于windows9x/me的系统,windows nt/2000通过服务管理器依然能够发现在系统中注册过的服务. 在windows nt/2000下可采用过滤进程的方法(即api拦截技术),通过建立一个后台系统钩子(hook),拦截psapi的enumprocessmodules等相关函数控制进程与服务的遍历调用,当检测到木马程序的服务器端进程时直接跳过,从而实现进程的隐藏.这种方法应用广泛,除了用于进程隐藏以外,还广泛应用于诸多即时软件,如金山词霸就使用类似方法,拦截textouta.textoutw函数,截获屏幕输出,实现即时翻译. dll文件是windows的基础,所有的api函数都是在dll中实现的.dll由多个功能函数构成,入口函数是dllmain,它并不能独立运行,一般由进程加载并调用.由于dll文件不能独立运行,所以在进程列表中并不会出现dll,而只出现加载进程.运行dll文件隐藏进程的最简单方法是利用rundll32.exe,但也很容易被识破,比较高级的做法是使用特洛伊dll,它使用木马dll替换常用的dll文件,通过函数转发器将正常的调用转发给原dll,截获并处理特定的消息.... 下一页