第5章恶意代码祥解.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章恶意代码祥解.ppt

为了隐藏端口,采用两种思路:寄生和潜伏 寄生就是找一个已经打开的端口,寄生其上,平时只是监听,遇到特殊的指令就进行解释执行。 潜伏是说使用IP协议族中的其它协议而不是TCP或UDP来进行通讯,从而瞒过Netstat和端口扫描软件。一种比较常见的潜伏手段是使用ICMP协议。 其他方法:对网卡或Modem进行底层的编程。 进程 和 端口 联系在一起的方法很常见。因此,需要隐藏进程来达到隐藏木马的目的。 实现进程隐藏有两种思路: 第一是让系统管理员看不见(或者视而不见)你的进程; 第二是不使用进程。 能否使用第一种方式? 在Windows中有多种方法能够看到进程的存在: PSAPI(Process Status API); PDH(Performance Data Helper); ToolHelp API。 如果我们能够欺骗用户和入侵检测软件用来查看进程的函数(例如截获相应的API调用,替换返回的数据),我们就完全能实现进程隐藏。 但是存在两个难题: 一来我们并不知道用户和入侵软件使用的是什么方法来查看进程列表; 二来如果我们有权限和技术实现这样的欺骗,我们就一定能使用其它的方法更容易的实现进程的隐藏。 使用第二种方式最流行。 DLL是Windows系统的另一种“可执行文件”。DLL文件是Windows的基础,因为所有的API函数都是在DLL中实现的。DLL文件没有程序逻辑,是由多个功能函数构成,它并不能独立运行,一般都是由进程加载并调用的。 假设我们编写了一个木马DLL,并且通过别的进程来运行它,那么无论是入侵检测软件还是进程列表中,都只会出现那个进程而并不会出现木马DLL,如果那个进程是可信进程,(例如资源管理器Explorer.exe,没人会怀疑它是木马吧?)那么我们编写的DLL作为那个进程的一部分,也将成为被信赖的一员而为所欲为。 用DLL实现木马功能,然后,用其他程序启动该DLL. 有三种方式: 最简单的方式——RUNDLL32 特洛伊DLL 线程插入技术 最简单的方式——RUNDLL32 Rundll32 DllFileName FuncName Rundll32.exe MyDll.dll MyFunc 比较高级的方式-特洛伊DLL 特洛伊DLL(欺骗DLL)的工作原理是使用欺骗DLL替换常用的DLL文件,通过函数转发器将正常的调用转发给原DLL,截获并处理特定的消息。 函数转发器forward的认识。 Visual Studio 7命令提示符dumpBin -Exports c:\windows\system32\Kernel32.dll | more 程序实现 // Function forwarders to functions in DllWork #pragma comment(linker, /export:ForwardFunc=Kernel32.HeapCreate“) 实现描述 我们知道WINDOWS的Socket1.x的函数都是存放在wsock32.dll中的,那么我们自己写一个wsock32.dll文件,替换掉原先的wsock32.dll(将原先的DLL文件重命名为wsockold.dll)我们的wsock32.dll只做两件事,一是如果遇到不认识的调用,就直接转发给wsockold.dll(使用函数转发器forward);二是遇到特殊的请求(事先约定的)就解码并处理。 特洛伊DLL的弱点: system32目录下有一个dllcache的目录,这个目录中存放着大量的DLL文件,一旦操作系统发现被保护的DLL文件被篡改(数字签名技术),它就会自动从dllcache中恢复这个文件。 有些方法可以绕过dllcache的保护: 先更改dllcache目录中的备份再修改DLL文件 利用KnownDLLs键值更改DLL的默认启动路径等 同时特洛伊DLL方法本身也有一些漏洞(例如修复安装、安装补丁、升级系统、检查数字签名等方法都有可能导致特洛伊DLL失效),所以这个方法也不能算是DLL木马的最优选择。 最高级方式——动态嵌入技术 DLL木马的最高境界是动态嵌入技术,动态嵌入技术指的是将自己的代码嵌入正在运行的进程中的技术。 多种嵌入方式:窗口Hook、API hook、远程线程。 远程线程技术指的是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间。 通过CreateRemoteThread也同样可以在另一个进程内创建新线程,新线程同样可以共享远程进程的地址空间。 HANDLE CreateRemoteThread( HANDLE hProcess, PSECURITY_ATTRIBUTES psa, DWORD dwStackSize, PTHREAD_START_ROUTINE

文档评论(0)

四娘 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档