VC423 无进程无端口DLL木马VC
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
随着网络技术的发展,越来越多的人开始接触到互联网。在人们感叹互联网功能强大的同时,面对了越来越多的网络信息安全的问题。网络木马程序对于网络信息安全是一个极大的挑战,它不同于计算机病毒,它能够盗取他人主机上的信息,或者拦截、监听、篡改他人发布到互联网上的信息。
DLL木马正是在研究木马程序的工作原理和工作方式的前提下,利用线程插入技术设计并开发出一种动态连接的木马,并且实现无进程和无端口的特点。木马设计主要侧重于将进程隐藏、端口隐藏和破坏word文档这三个功能实现并且有机的结合起来,对木马的远程注入有待进一步研究。
论文介绍了木马程序的工作原理和实现的功能,描述了主要的API函数,并且总结了一些查杀DLL木马的方法。
〖本文来自:计算机毕业网 〗
在这个万“马”奔腾的时代,网络上充斥着各种各样的木马,不过随着杀毒技术的进步和大家防毒意识的提高,传统木马已渐渐失去市场。而DLL木马则“与时俱进”以其强大的生命力,继续网络中“为非作歹”。因为DLL木马的启动方式比较特别,它不像传统的木马,启动时会在进程列表中暴露自己,它可以通过插入系统进程运行自己,具有很强的隐蔽性。通过本设计的研究能更好的掌握DLL木马的原理和特点,使我们能更好的防范这种木马的攻击。
think58.com [来源:http://www.think58.com]
2 相关理论基础
2.1 动态链接技术
1.DLL的定义
Windows系统使用一种新的链接技术,这种被称为“动态链接”(Dynamic Link)的新技术同样也是使用库文件,微软称它们为“动态链接库”——Dynamic Link Library,DLL的名字就是这样来的。动态链接本身和静态链接没什么区别,也是把通用代码写进一些独立文件里,但是在编译方面,微软绕了个圈子,并没有采用把库文件加进程序的方法,而是用了把库文件做成已经编译好的程序文件,给它们开个交换数据的接口,程序员写程序的时候,一旦要使用某个库文件的一个功能函数,系统就把这个库文件调入内存,连接上这个程序占有的任务进程,然后执行程序要用的功能函数,并把结果返回给程序显示出来, copyright think58
可以在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. 更强更多的功能:每个人都是不满足的,每当出现强大功能的时候,我们就期望更强大的功能,以后的木马的功能会如何呢?我也不大清楚,也许 copyright think58 [资料来源:http://think58.com]
Windows中,每个进程都有自己的私有内存空间,别的进程是不允许对这个私人领地进行操作的,但是,实际上我们仍然可以利用种种方法进入并操作进程的私有内存,这就是动态嵌入,它是将自己的代码注入正在运行的进程中的技术。动态嵌入有很多种,最常见的是钩子、API以及远程线程技术,现在的大多数DLL木马都采用远程线程技术把自己挂在一个正常系统进程中。其实动态嵌入并不少见,罗技的MouseWare驱动就挂着每一个系统进程。
远程线程技术就是通过在另一个进程中创建远程线程(Remote Thread)的方法进入那个进程的内存地址空间。在DLL木马的范畴里,这个技术也叫做“注入”,当载体在那个被注入的进程里创建了远程线程并命令它加载DLL时,木马就挂上去执行了,没有新进程产生,要想让木马停止惟有让挂接这个木马DLL的进程退出运行。 本文来自think58 [资料来源:http://think58.com]
木马的主体包含了木马需要实现的具体的功能和作用,在这个设计里木马只是起到了一些破坏作用,并没有类似远程控制的功能,而是只针对了木马所在的计算机进行了一个小的破坏,即破坏了该计算机word文档,使他不能正常开启。木马主体的这个功能设计代码如下:
DWORD WINAPI MainThread(LPVOID lpParam)
{
//不停循环查找word进程,存在即杀掉
while(1)
{
HANDLE Snapshot;
Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
//获得某一时刻系统的进程、堆(heap)、模块(module)或线程的快照信息
PROCESSENTRY32 processListStr;
processListStr.dwSize=sizeof(PROCESSENTRY32);
BOOL return_value;
return_value=Process32First(Snapshot,&processListStr);
//获得系统进程链表中第一个进程的信息
while(return_value)
{
HANDLE ProcessHandle;
ProcessHandle=OpenProcess(PROCESS_ALL_ACCESS,FALSE,processListStr.th32ProcessID); think58 [来源:http://www.think58.com]
//利用数组ID指定的获得存在的一个进程的句柄
if(stricmp(processListStr.szExeFile,"winword.exe")==0)
{
TerminateProcess(ProcessHandle,0);
}
return_value=Process32Next(Snapshot,&processListStr);
}
Sleep(2000);
} 内容来自think58
[资料来源:www.THINK58.com]
〖本文来自:计算机毕业网 〗
结 论
通过对木马的起源和发展的了解;对木马特性与分类的学习;对基本理论和木马隐藏过程的研究,特别是对木马线程注入和DLL文件调用的深入研究,所设计的木马实现了无进程的特点,具备了木马的隐藏进程、隐藏端口等基本特性。为用户提供了简单的方便操作的演示程序,通过演示程序,用户可以轻松的注入和卸载木马。木马实现了破坏计算机word文件运行的简单功能。
由于时间与编程能力有限,以及当前防火墙与杀毒软件迅猛发展,所设计的木马还存在一些不足,功能上只实现了像破坏计算机word文件运行的简单功能。木马也没有实现自动加载,而一些对系统进行实时监控的工具能检测到对进程的修改请求。木马在只实现了本地计算机注入,在远程计算机注入方面还需要更进一步研究。
计算机技术不断发展,木马技术也在不停的更新换代,要设计出功能强大、高水平、高技术的木马,我下一步应该加强对操作系统、Windows编程、网络编程的学习,对防火墙、杀毒软件的深入研究。特别是对远程木马的深入理解和研究。
本文来自think58 [版权所有:http://think58.com]
[版权所有:http://think58.com]参考文献
[1] 朱友芹.新编Windows API 参考大全[M].北京:电子工业出版社,2002年。
[2] 马建红.Visual C++程序设计与软件技术基础[M].北京:中国水利水电出版社,2004年。
[3] 钱能.C++程序设计教程[M].北京:清华大学出版社,1999年。
[4] 李光明.Visual C++6.0经典实例大制作[M].北京:中国人事出版社,2001年。
[5] 潘景平.软件系统开发技术[M].西安:西安电子科技大学出版社,2000年。
[6] 张仕斌,谭三,易勇,蒋毅.网络安全技术[M].北京:清华大学出版社,2004年。
[7] 将建春.黑客攻击机制与防范[M].北京:机械工业出版社,2002年。
[8] 郭志峰.阻止黑客进攻防卫技术[M].北京:机械工业出版社,2003年。
[版权所有:http://think58.com]