vb431线程插入木马的设计

vb431线程插入木马的设计

ID:21690478

大小:385.50 KB

页数:19页

时间:2018-10-23

vb431线程插入木马的设计_第1页
vb431线程插入木马的设计_第2页
vb431线程插入木马的设计_第3页
vb431线程插入木马的设计_第4页
vb431线程插入木马的设计_第5页
资源描述:

《vb431线程插入木马的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VB431线程插入木马的设计

2.2 关键技术
2.2.1 远程线程插入
更好的隐藏方式是使木马程序不以进程和服务的方式存在,而是完全溶入系统内核。因此,在设计时,我们不应把它做成一个应用程序,而是做成一个可以注入应用程序地址空间的线程。该应用程序必须确保绝对安全,这样才能达到彻底隐藏的效果,增加查杀的难度。线程注入式木马采用动态嵌入技术将自己的代码嵌入正在运行的进程中。Windows中每个进程都有自己的私有内存空间,其他进程不得对该私有空间进行操作,但实际上,有很多方法可操作私有空间。动态嵌入技术很多,如窗口Hook、挂接API、远程

2、线程等。
(1)远程线程插入技术。远程线程技术指的是通过在一个远程进程中创建远程线程的方法进入该进程的内存地址空间。可以通过CreateRemoteThread函数在一个远程进程内创建远程线程,被创建的远程线程可以共享远程进程的地址空间,这样就可以通过该线程进入远程进程的内存地址空间,从而拥有了远程进程相当的权限,如在远程进程内部启动一个DLL木马,甚至可以随意篡改其中的数据。远程线程技术的关键在于要将线程函数执行体及其参数复制到远程进程空间中,否则远程线程会在执行时因找不到参数而报错。
在实现上,这个技术比较复杂,因为这个线程在目标进程中的寻址会出现问题,必

3、须要进行地址的重定位。为了实现地址的重定位,需要将许多要用到的使用地址进行访问的函数和变量的地址保存下来,然后将这些函数和变量的名城字符串插入到目标进程中去。需要插入到目标进程中的内容包括线程的过程体,线程中要用到的所有的API函数,所有自己定义的函数,所有的全局变量,所有的字符串。也就是说,在编程实现中,需要用到上述的任何东西,都要再次在启动进程中分配存储空间,并要插入到目标进程中去,这种方法对于实现较少功能的程序来说,还可以忍受,但是,一旦程序实现的功能较多,其编程的复杂性会非常高,其不符合常规程序设计的特点也会突现,最终可能导致程序的崩溃。从总体上来分析发现,这种技

4、术不适合功能比较多的后门控制程序的编写。
(2)动态链接库插入技术。将后门程序做成一个动态链接库文件,然后仍然使用远程线程插入技术,将此动态链接库的加载语句插入到目标进程中去,并将调用动态链接库函数的语句插入到目标进程,这个函数类似于普通程序中的入口程序。这里需要提及的就是,在现有公布的文档中,似乎大家都觉得应该将实现后门功能的入口程序放在DLL_PROCESS_ATTACH或者分支语句处DLL_THREAD_ATTACH。但是在实验中发现,这样做会引出诸多的问题,每个进程在调用自己需要的动态链接库的时候都会调用入口函数,这样就会出现一些多次加载的错误。对于这一点,

5、微软的文档中没有做明确的说明。
远程线程函数插入到目标进程中的程序,不能使用目标程序的消息循环,所以,对于既要使用进程隐藏,又要使用交互式程序界面的程序是不能实现的。目前使用这种方法进行隐藏的后门软件主要有PortLessVB431线程插入木马的设计

2.2 关键技术
2.2.1 远程线程插入
更好的隐藏方式是使木马程序不以进程和服务的方式存在,而是完全溶入系统内核。因此,在设计时,我们不应把它做成一个应用程序,而是做成一个可以注入应用程序地址空间的线程。该应用程序必须确保绝对安全,这样才能达到彻底隐藏的效果,增加查杀的难度。线程

6、注入式木马采用动态嵌入技术将自己的代码嵌入正在运行的进程中。Windows中每个进程都有自己的私有内存空间,其他进程不得对该私有空间进行操作,但实际上,有很多方法可操作私有空间。动态嵌入技术很多,如窗口Hook、挂接API、远程线程等。
(1)远程线程插入技术。远程线程技术指的是通过在一个远程进程中创建远程线程的方法进入该进程的内存地址空间。可以通过CreateRemoteThread函数在一个远程进程内创建远程线程,被创建的远程线程可以共享远程进程的地址空间,这样就可以通过该线程进入远程进程的内存地址空间,从而拥有了远程进程相当的权限,如在远程进程内部启动一个DL

7、L木马,甚至可以随意篡改其中的数据。远程线程技术的关键在于要将线程函数执行体及其参数复制到远程进程空间中,否则远程线程会在执行时因找不到参数而报错。
在实现上,这个技术比较复杂,因为这个线程在目标进程中的寻址会出现问题,必须要进行地址的重定位。为了实现地址的重定位,需要将许多要用到的使用地址进行访问的函数和变量的地址保存下来,然后将这些函数和变量的名城字符串插入到目标进程中去。需要插入到目标进程中的内容包括线程的过程体,线程中要用到的所有的API函数,所有自己定义的函数,所有的全局变量,所有的字符串。也就是说,在编程实现

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。