WINDOWS系统下木马程序的设计与实现

http://www.e-works.net.cn/ewk2004/ewkArticles/509/Article14881.htm 引言 近年来,黑客攻击层出不穷,对网络安全构成了极大的威胁。木马是黑客的主要攻击手段之一,它通过渗透进入对方主机系统,从而实现对目标主机的远程操作,破坏力相当之大。 到目前为止,木马的发展已经历了五代: 第一代木马只是实现简单的密码窃取、发送等,在隐藏和通信方面均无特别之处。 第二代木马的典型代表是冰河,它以文件关联方式启动,通过电子邮件传送信息,在木马技术发展史上开辟了新的篇章。 第三代木马的信息传输方式有所突破,采用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文件不能独立运行&
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值