云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 无进程无端口DLL木马的设计与实现论文

无进程无端口DLL木马的设计与实现论文

  • 62 次阅读
  • 3 次下载
  • 2025/5/6 19:32:07

1 引言

1.1 课题背景

木马的定义为:隐藏在正常程序中的一段具有特殊功能的恶意代码,是具

备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马的发展经过了伪装型病毒,AIDS型木马,网络传播性木马这三代。现在的木马功能越来越强,破坏性也越来越大,隐蔽性越来越好,所以也就越来越难查找和杀除掉。

1.2 国内外研究现状

从有关的文献看,国外一些学术组织和团体机构已经开始重视研究和探讨木马的发展趋势和特点,以帮助更多的计算机用户能更好的防范木马程序的攻击,使网络攻击的危害减少到最小。而我国虽然也开始重视网络安全领域的研究,但是在木马的研究上还处于起步阶段,所以我们更应该不断的学习研究,以提高防御木马的能力。

1.3 本课题研究的意义

在这个万“马”奔腾的时代,网络上充斥着各种各样的木马,不过随着杀毒技术的进步和大家防毒意识的提高,传统木马已渐渐失去市场。而DLL木马则“与时俱进”以其强大的生命力,继续网络中“为非作歹”。因为DLL木马的启动方式比较特别,它不像传统的木马,启动时会在进程列表中暴露自己,它可以通过插入系统进程运行自己,具有很强的隐蔽性。通过本设计的研究能更好的掌握DLL木马的原理和特点,使我们能更好的防范这种木马的攻击。

2 相关理论基础

2.1 动态链接技术

1.DLL的定义

Windows系统使用一种新的链接技术,这种被称为“动态链接”(Dynamic Link)的新技术同样也是使用库文件,微软称它们为“动态链接库”——Dynamic Link Library,DLL的名字就是这样来的。动态链接本身和静态链接没什么区别,也是把通用代码写进一些独立文件里,但是在编译方面,微软绕了个圈子,并没有采用把库文件加进程序的方法,而是用了把库文件做成已经编译好的程序文件,给它们开个交换数据的接口,程序员写程序的时候,一旦要使用某个库文件的一个功能函数,系统就把这个库文件调入内存,连接上这个程序占有的任务进程,然后执行程序要用的功能函数,并把结果返回给程序显示出来,在我们看来,就像是程序自己带有的功能一样。完成需要的功能后,这个DLL停止运行,整个调用过程结束。微软让这些库文件能被多个程序调用,实现了比较完美的共享,程序员无论要写什么程序,只要在代码里加入对相关DLL的

第 1 页 共 20 页

调用声明就能使用它的全部功能。

2. DLL 的类型

当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。

加载时动态链接:

在加载时动态链接中,应用程序像调用本地函数一样对导出的 DLL 函数进行显式调用。要使用加载时动态链接,请在编译和链接应用程序时提供头文件 (.h) 和导入的库文件 (.lib)。当您这样做时,链接器将向系统提供加载 DLL 所需的信息,并在加载时解析导出的 DLL 函数的位置。

运行时动态链接

在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。

2.2 应用编程接口 API

API的英文全称(Application Programming Interface),WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。

但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。 这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的

第 2 页 共 20 页

设计上,而不必过于关注技术细节。

实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。 这也是API函数使用的场合,所以我们对待API函数不必刻来研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。在Windows里,最基本的3个DLL文件是kernel32.dll、user32.dll、gdi32.dll。它们共同构成了基本的系统框架。

2.3 木马的有关知识

2.3.1 木马的定义

木马:指隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。

2.3.2 木马发展的方向

1. 跨平台性:主要是针对windows系统而言,木马的使用者当然认为一个木马可以在95/98下使用,在NT、windows2000下也可以使用更好。在95/98下也许大家没感觉,但NT和windows2000都具有了权限的概念,这和95/98是不同的,黑客NT、windows2000的木马需要更高的手段,如控制进程等,现在的一些木马也的确做到了这一点。

2. 模块化设计:似乎模块化设计是一种潮流,winamp就是模块化的典范,现在的木马也有了模块化设计的概念,像bo、net bus、sub7等经典木马都有一些优秀的插件在纷纷问世就是一个很好的说明。

3. 更新更强的感染模式:传统的修改ini文件和注册表的手法已经不能适应更加隐秘的需要,目前的很多的木马的感染方式已经开始在悄悄转变,像前一阶段的YAI事件就给了我们很多的启发,像病毒一样的感染,感染windows下的文件,我认为这件事对木马设计者们有很多的启发。

4. 即时通知:木马是否已经装入?目标在哪里?如果中招的人是使用固定IP的话,还能够补救,如果目标使用的是动态IP那么怎么办?如果要进行扫描,速度太慢,现在的木马已经有了即时通知的功能,如IRC,ICQ通知等,但还是太少,我不使用ICQ,也不是每次都用IRC,但是以后会更加的完善的,也许说不定某天木马们的即时通知功能变成了一个专门的软件也说不定。

5. 更强更多的功能:每个人都是不满足的,每当出现强大功能的时候,我们就期望更强大的功能,以后的木马的功能会如何呢?我也不大清楚,也许会

第 3 页 共 20 页

让大家大吃一惊的。

2.3.3 木马程序分类 1. “反弹端口”技术

由服务器主动连接客户端,因此在互联网上可以访问到局域网里通过 NAT 代理(透明代理)上网的电脑,并且可以穿过防火墙(包括:包过滤型及代理型防火墙)。

与一般的软件相反,反弹端口型软件的服务端(被控制端)主动连接客户端(控制端),为了隐蔽起见,客户端的监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用netstat等端口扫描软件检查自己的端口,发现的也是类似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情况,稍微疏忽一点你就会以为是自己在浏览网页(防火墙也会这么认为的)。

2. 线程插入技术

无进程、无端口的DLL(动态链接库)木马。这种木马涉及比较高深的编程技术(Windows Socket 2 SPI技术),所谓的无进程实际上是将DLL木马,注入到其它EXE文件中,使其成为木马的合法载体。(一般黑客会选择Explorer.exe、Svchost.exe等系统关键性服务程序,这样用户就很难终止木马的运行)。而所谓的无端口,实际上是重复利用了机器已经打开的端口(如80、135,139等常用端口)来传送数据,这样就避免了开新端口,也能骗过防火墙。并且这样的端口复用是在保证端口默认服务正常工作的条件下进行复用,这是它区别于端口劫持的地方。

3. 多线程技术

在操作系统中,进程是存储器、外设等资源的分配单位,同时也是处理器调度的对象,为提高进程内的并发性,Windows中引入了线程的概念,一个进程可以同时拥有多个并发线程。顾名思义,三线程就是指一个木马进程开启了三个线程,其中一个为主线程,负责远程控制的工作。另外两个为辅助线程,其中一个辅助线程称为监视线程,它负责检查木马程序是否被删除和是否被停止自启动,举例而言,一般木马侵入一台电脑后会创建一个备份文件,并在注册表中添加键值,以实现自启动。这个监视线程会定时检查木马程序和注册表中的键值是否存在,如果不存在则使用备份文件恢复木马,并向注册表添加自启动键值。另外一个辅助线程称为守护线程,它驻留在别的EXE文件内,与木马进程同步,一旦木马进程被停止,它就会重新启动该木马,并将自身数据赋给它,类似断点续传,这样就能保证木马程序一直运行。

第 4 页 共 20 页

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

1 引言 1.1 课题背景 木马的定义为:隐藏在正常程序中的一段具有特殊功能的恶意代码,是具备破坏和删除文件、发送密码、记录键盘和攻击Dos等特殊功能的后门程序。木马的发展经过了伪装型病毒,AIDS型木马,网络传播性木马这三代。现在的木马功能越来越强,破坏性也越来越大,隐蔽性越来越好,所以也就越来越难查找和杀除掉。 1.2 国内外研究现状 从有关的文献看,国外一些学术组织和团体机构已经开始重视研究和探讨木马的发展趋势和特点,以帮助更多的计算机用户能更好的防范木马程序的攻击,使网络攻击的危害减少到最小。而我国虽然也开始重视网络安全领域的研究,但是在木马的研究上还处于起步阶段,所以我们更应该不断的学习研究,以提高防御木马的能力。 1.3 本课题研究的意义 在这个万“马

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com