木马程序的原理-木马程序难吗

hacker|
144

什么是木马程序?她是怎么发挥功能?

木马,全称特洛伊木马(Trojan horse),这个词语来源于古希腊神话,在计算机领域是一种客户/服务器程序,是黑客最常用的基于远程控制的工具。目前,比较有名的国产木马有:“冰河”、“广外女生”、“黑洞”、“黑冰”等;国外有名的木马则有:“SubSeven”、“Bo2000(Back Orifice)”、“NetSpy”、“Asylum”等。木马对计算机系统和网络安全危害相当大,因此,如何防范特洛伊木马入侵成为了计算机网络安全的重要内容之一。

1 木马的实现原理及特征

1.1 木马的实现原理

从本质上看,木马都是网络客户/服务模式,它分为两大部分,即客户端和服务端。其原理是一台主机提供服务(服务器) ,另一台主机接受服务(客户机),作为服务器的主机一般会打开一个默认的端口进行监听。如果有客户机向服务器的这一端口提出连接请求,服务器上的相应程序就会自动运行,来应答客户机的请求。这个程序被称为守护进程。

当攻击者要利用木马进行网络入侵,一般都要完成“向目标主机传播木马”,“启动和隐藏木马”,“建立连接”,“远程控制”等环节。

1.2 木马的特征

一个典型的木马程序通常具有以下四个特征:隐蔽性、欺骗性、顽固性和危害性。

(1)隐蔽性:隐蔽性是木马的生命力,也是其首要特征。木马必须有能力长期潜伏于目标机器中而不被发现。一个隐蔽性差的木马往往会很容易暴露自己,进而被杀毒(或杀马)软件,甚至用户手工检查出来,这样将使得这类木马变得毫无价值。木马的隐蔽性主要体现在以下两方面:

a.不产生图标。木马虽然在系统启动时会自动运行,但它不会在“任务栏”中产生一个图标。

b.木马自动在任务管理器中隐藏或者以“系统服务”的方式欺骗操作系统。这也就使得要及时了解是否中了木马带来了一定的困难。

(2)欺骗性:木马常常使用名字欺骗技术达到长期隐蔽的目的。它经常使用常见的文件名或扩展名,如dll、win、sys、explorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”、字母“o”与数字“0”,常常修改几个文件中的这些难以分辨的字符,更有甚者干脆就借用系统文件中已有的文件名,只不过它保存在不同路径之中而已。

(3)顽固性:很多木马的功能模块已不再是由单一的文件组成,而是具有多重备份,可以相互恢复。当木马被检查出来以后,仅仅删除木马程序是不行的,有的木马使用文件关联技术,当打开某种类型的文件时,这种木马又重新生成并运行。

(4)危害性:当木马被植入目标主机以后,攻击者可以通过客户端强大的控制和破坏力对主机进行操作。比如可以窃取系统密码,控制系统的运行,进行有关文件的操作以及修改注册表等。

2 木马入侵手段

木马能不能完全发挥它的功能和作用,关键一步就是能否成功地进入到目标主机。随着网络知识的普及以及网络用户安全意识的提高,木马的入侵手段也随着发生了许多变化。

2.1木马的传统入侵手段

所谓传统入侵手段就是指大多数木马程序采取的、已经广为人知的传播方式,主要有以下几种:

1)电子邮件(E-mail)进行传播:攻击者将木马程序伪装成E-mail附件的形式发送过去,收信方只要查看邮件附件就会使木马程序得到运行并安装进入系统。

2)网络下载进行传播:一般的木马服务端程序都不是很大,最大也不超过200K,有的甚至只有几K。如果把木马捆绑到其它正常文件上,是很难发现的。一些非正规的网站以提供软件下载为名,将木马捆绑在软件安装程序上,下载后,只要运行这些程序,木马就会自动安装。通过Script、ActiveX及Asp、Cgi交互脚本的方法传播:由于微软的浏览器在执行Script脚本上存在一些漏洞,攻击者可以利用这些漏洞传播病毒和木马,甚至直接对浏览者主机进行文件操作等控制。如果攻击者有办法把木马服务端程序上载到目标主机的一个可执行WWW目录夹里面,他就可以通过编制Cgi程序在被攻击的目标主机上执行木马程序。

3)网页浏览传播:这种方法利用Java Applet编写出一个HTML网页,当我们浏览该页面时,Java Applet会在后台将木马程序下载到计算机缓存中,然后修改注册表,使指向木马程序。

4)利用系统的一些漏洞进行传播:如微软著名的IIS服务器溢出漏洞,通过一个IISHACK攻击程序即可把IIS服务器崩溃,并且同时在受控服务器执行木马程序。

5)远程入侵进行传播:黑客通过破解密码和建立IPC$远程连接后登陆到目标主机,将木马服务端程序拷贝到计算机中的文件夹(一般在C:\WINDOWS\system32或者C:\WINNT\system32)中,然后通过远程操作让木马程序在某一个时间运行。

2.2 木马入侵手段的发展

以上的木马入侵手段虽然使用广泛,但也很容易引起用户的警觉,所以一些新的入侵手段也相继出现,主要有:

1) 基于DLL和远程线程插入的木马植入

这种传播技术是以DLL的形式实现木马程序,然后在目标主机中选择特定目标进程(如系统文件或某个正常运行程序),由该进程将木马DLL植入到本系统中。

DLL文件的特点决定了这种实现形式的木马的可行性和隐藏性。首先,由于DLL文件映像可以被映射到调用进程的地址空间中,所以它能够共享宿主进程(调用DLL的进程)的资源,进而根据宿主进程在目标主机的级别未授权地访问相应的系统资源。其次,因为DLL没有被分配独立的进程地址空间,也就是说DLL的运行并不需要创建单独的进程,所以从系统的进程列表里看不见DLL的运行踪迹,从而可以避免在目标主机中留下木马进程踪迹,因此满足了隐蔽性的要求。将木马程序以DLL的形式实现后,需要使用插入到目标进程中的远程线程将该木马DLL插入到目标进程的地址空间,即利用该线程通过调用Load Library函数来加载木马DLL,从而实现木马的传播。

2)利用蠕虫病毒传播木马

以前的木马传播大都比较被动,而使用E-mail传播效率又太低,系统漏洞很快又被打上补丁,所以在某种程度上限制了木马的传播能力。网络蠕虫病毒具有很强的传染性和自我复制能力,将木马和蠕虫病毒结合在一起就可以大大地提高木马的传播能力。结合了蠕虫病毒的木马利用病毒的特性,在网络上大批量地进行传播、复制,这就加快了木马的传播速度,扩大了其传播范围。

3 木马的防范措施

为了减少或避免木马给主机以及网络带来危害,我们可以从两方面来有效地防范木马:使用防火墙阻止木马入侵以及及时查杀入侵后的木马。

防火墙是抵挡木马入侵的第一道门,也是最好的方式。绝大多数木马都是必须采用直接通讯的方式进行连接,防火墙可以阻塞拒绝来源不明的TCP数据包。防火墙的这种阻塞方式还可以阻止UDP、ICMP等其它IP数据包的通讯。防火墙完全可以进行数据包过滤检查,在适当规则的限制下,如对通讯端口进行限制,只允许系统接受限定几个端口的数据请求,这样即使木马植入成功,攻击者也是无法进入到你的系统,因为防火墙把攻击者和木马分隔开来了。但是,仍然有一些木马可以绕过防火墙进入目标主机(比如反弹端口木马),还有一些将端口寄生在合法端口上的木马,防火墙对此也无能为力。因此,我们必须要能迅速地查杀出已经入侵的木马。

怎么做木马

1,制作木马和使用木马病毒都是违法犯罪的行为,不建议您去学习。

2,制作出木马病毒程序后,这个程序就会自动开始执行,对您的电脑首先开始盗取帐号木马以及破坏程序。

3,所以如果自己受到了攻击或者盗号,不要用这种方式,要以正当途径来解决。

4,建议您到腾讯电脑管家官网下载一个电脑管家。

5,电脑管家拥有16层实时防护功能和QQ帐号全景防御系统,可以从上网安全、应用入口、系统底层等全方位保护电脑安全不受木马病毒侵袭,而且电脑管家还可以全方位多维度保护账号安全,精确打击盗号木马,瞬时查杀并对风险预警。

如何破解木马程序?

您好,对于我们一般使用电脑的普通用户而言,破解木马程序其实是很难的,因为其中有很多个代码,交错复杂一环扣一环,需要具有反编译能力的人才有可能破解的。

不过您可以使用电脑管家来讲木马程序彻底杀除,从根本上阻止其破坏电脑。

电脑管家拥有基于CPU虚拟执行技术,可以彻底根除电脑中的木马病毒。

希望帮助到您,电脑管家竭诚为您服务,您的支持是我们的动力,望采纳。

管家下载地址 腾讯电脑管家官网

腾讯电脑管家企业平台:

木马网络病毒怎样制作

问题一:木马和病毒是怎么做出来的呢? 哈哈...木马和病毒都属于执行程序...

木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。

“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。“木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。

它是指通过一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了! 木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。

随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。

木马得种类

1. 网络游戏木马

随着网络在线游戏的普及和升温,我国拥有规模庞大的网游玩家。网络游戏中的金钱、装备等虚拟财富与现实财富之间的界限越来越模糊。与此同时,以盗取网游帐号密码为目的的木马病毒也随之发展泛滥起来。

网络游戏木马通常采用记录用户键盘输入、Hook游戏进程API函数等方法获取用户的密码和帐号。窃取到的信息一般通过发送电子邮件或向远程脚本程序提交的方式发送给木马作者。

网络游戏木马的种类和数量,在国产木马病毒中都首屈一指。流行的网络游戏无一不受网游木马的威胁。一款新游戏正式发布后,往往在一到两个星期内,就会有相应的木马程序被制作出来。大量的木马生成器和黑客网站的公开销售也是网游木马泛滥的原因之一。

2. 网银木马

网银木马是针对网上交易系统编写的木马病毒,其目的是盗取用户的卡号、密码,甚至安全证书。此类木马种类数量虽然比不上网游木马,但它的危害更加直接,受害用户的损失更加惨重。

网银木马通常针对性较强,木马作者可能首先对某银行的网上交易系统进行仔细分析,然后针对安全薄弱环节编写病毒程序。如2004年的“网银大盗”病毒,在用户进入工行网银登录页面时,会自动把页面换成安全性能较差、但依然能够运转的老版页面,然后记录用户在此页面上填写的卡号和密码;“网银大盗3”利用招行网银专业版的备份安全证书功能,可以盗取安全证书;2005年的“新网银大盗”,采用API Hook等技术干扰网银登录安全控件的运行。

随着我国网上交易的普及,受到外来网银木马威胁的用户也在不断增加。

3. 即时通讯软件木马

现在,国内即时通讯软件百花齐放。QQ、新浪UC、网易泡泡、盛大圈圈……网上聊天的用户群十分庞大。常见的即时通讯类木马一般有3种:

一、发送消息型。通过即时通讯软件自动发送含有恶意网址的消息,目的在于让收到消息的用户......

问题二:木马病毒怎么制作 你懂的电脑程序编程吗,其实所谓的木马病毒也就是非法程序,如果你不懂编程和你说是对牛弹琴,不要害人了~还是研究一下怎么把你的人生搞个木马吧,让自己多活几年长命百岁吧!(忠告哦!)

问题三:怎么制作木马病毒 5分 这是个比较复杂的问题,病毒开发不同于普通应用开发,需要更广泛的和更深入的编成技术 系统底层问题:截取屏幕、Hook鼠标键盘 网络问题:涉及到拦截数据报文,加解密数据 反侦测问题:隐藏进程…………学编程2~3个月,用Delphi之类的软件,一般就可以开发普通应用程序 VC++最多6个月,也能搞出些东西 但要搞病毒木马等,先学3年再考虑。

问题四:制造木马病毒是违法的么? 制造并传播是犯罪

问题五:如何制作并使用木马病毒,以及他的作用和功能 木马病毒是指以非法手段达到破坏,盗取,更改目的的可执行文件。要想制作,首先要有稳扎的编程基础,其次。。。。。你为何要制作木马,编程牛逼去做好事吧

问题六:木马病毒是怎么制造出来的呢? 木马病毒就是一种程序,这种程序专偷染上病毒电脑的用户名和密码,从而盗取金钱!

问题七:病毒木马是怎么制作的 也是程序,会写代码、编程 就会做。

最厉害的病毒是烧主板。

问题八:木马病毒制作软件有哪些 “木马”程序是目前

比较流行的病毒文件,与一般的

病毒不同,它不会自我繁殖,也

并不 “刻意”地去感染其他文件

,它通过将自身伪装吸引用户下

载执行,向施种木马者提供打开

被 种者电脑的门户, 使施种者

可以任意毁坏、 窃取被种者的文

件, 甚至远程操控被种者的电脑

。 “木马”与计算机网络中常常

要用到的远程控制软件有些相似

,但由于远程控制软件是“善意

” 的控制,因此通常不具有隐蔽

性;“木马”则完全相反,木马

要达到的是“偷窃”性的远程控

制, 如果没有很强的隐蔽性的话

,那就是“毫无价值”的。

问题九:木马病毒怎么做的啊? 木马是C语言编写出来的,不过建议楼主不要做木马,害人害己

如果楼主中了木马建议马上查杀

建议楼主下载安装腾讯电脑管家来进行杀毒,

重启电脑按F8进入安全模式--打开腾讯电脑管家--闪电杀毒--全盘扫描--完成重启电脑就可以了,

腾讯电脑管家应用了具有“自学习能力”的自研第二代“鹰眼”引擎,

业界首创将CPU虚拟执行技术运用到杀毒软件中,

能够根除顽固病毒、大幅度提升深度查杀能力,

并且大大降低了杀毒软件对用户电脑系统资源的占用率。

同时,沿用“4+1”多引擎架构保证了腾讯电脑管家病毒查杀的稳定性。

误杀率也极低,深受广大用户的认可。

问题十:怎么制作游戏木马病毒 楼主您好

dim s

do until s=500

s=s+1

msgbox 哥们,给我按500次回车吧,64

loop 这是一个无害病毒代码

1. 先建立一个 文本文档(txt)

2. 打开 输入以上代码

3 保存4. 重命名这个文本文档 把 后缀名 .TXT 改为 .VBE

无害整人病毒就完成了

如果楼主想知道 更多代码 加 Q982862478 显示后缀名过程 打开我的电脑 工具 文件夹选项 查看

望采纳

什么是木马程序,他是怎样盗取密码的,能详细说说吗?应该怎样判断是否是木马程序呢?

什么是木马?

特洛伊木马(以下简称木马),英文叫做“Trojan house”,其名称取自希腊神话的特洛伊木马记。

它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。

所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。

所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。

从木马的发展来看,基本上可以分为两个阶段。

最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。

而后随着WINDOWS平台的日益普及,一些基于图形操作的木马程序出现了,用户界面的改善,使使用者不用懂太多的专业知识就可以熟练的操作木马,相对的木马入侵事件也频繁出现,而且由于这个时期木马的功能已日趋完善,因此对服务端的破坏也更大了。

所以所木马发展到今天,已经无所不用其极,一旦被木马控制,你的电脑将毫无秘密可言。

参考资料:

回答者:完颜康康 - 探花 十一级 9-18 12:40

--------------------------------------------------------------------------------

DLL 木马揭秘

相信经常玩木马的朋友们都会知道一些木马的特性,也会有自己最喜爱的木马,不过,很多朋友依然不知道近年兴起的“DLL木马”为何物。什么是“DLL木马”呢?它与一般的木马有什么不同?

一、从DLL技术说起

要了解DLL木马,就必须知道这个“DLL”是什么意思,所以,让我们追溯到几年前,DOS系统大行其道的日子里。在那时候,写程序是一件繁琐的事情,因为每个程序的代码都是独立的,有时候为了实现一个功能,就要为此写很多代码,后来随着编程技术发展,程序员们把很多常用的代码集合(通用代码)放进一个独立的文件里,并把这个文件称为“库”(Library),在写程序的时候,把这个库文件加入编译器,就能使用这个库包含的所有功能而不必自己再去写一大堆代码,这个技术被称为“静态链接”(Static Link)。静态链接技术让劳累的程序员松了口气,一切似乎都很美好。可是事实证明,美好的事物不会存在太久,因为静态链接就像一个粗鲁的推销员,不管你想不想要宣传单,他都全部塞到你的手上来。写一个程序只想用到一个库文件包含的某个图形效果,就因为这个,你不得不把这个库文件携带的所有的图形效果都加入程序,留着它们当花瓶摆设,这倒没什么重要,可是这些花瓶却把道路都阻塞了——静态链接技术让最终的程序成了大块头,因为编译器把整个库文件也算进去了。

时代在发展,静态链接技术由于天生的弊端,不能满足程序员的愿望,人们开始寻找一种更好的方法来解决代码重复的难题。后来,Windows系统出现了,时代的分水岭终于出现。Windows系统使用一种新的链接技术,这种被称为“动态链接”(Dynamic Link)的新技术同样也是使用库文件,微软称它们为“动态链接库”——Dynamic Link Library,DLL的名字就是这样来的。动态链接本身和静态链接没什么区别,也是把通用代码写进一些独立文件里,但是在编译方面,微软绕了个圈子,并没有采取把库文件加进程序的方法,而是把库文件做成已经编译好的程序文件,给它们开个交换数据的接口,程序员写程序的时候,一旦要使用某个库文件的一个功能函数,系统就把这个库文件调入内存,连接上这个程序占有的任务进程,然后执行程序要用的功能函数,并把结果返回给程序显示出来,在我们看来,就像是程序自己带有的功能一样。完成需要的功能后,这个DLL停止运行,整个调用过程结束。微软让这些库文件能被多个程序调用,实现了比较完美的共享,程序员无论要写什么程序,只要在代码里加入对相关DLL的调用声明就能使用它的全部功能。最重要的是,DLL绝对不会让你多拿一个花瓶,你要什么它就给你什么,你不要的东西它才不会给你。这样,写出来的程序就不能再携带一大堆垃圾了——绝对不会让你把吃剩的东西带回家,否则罚款,这是自助餐。

DLL技术的诞生,使编写程序变成一件简单的事情,Windows为我们提供了几千个函数接口,足以满足大多数程序员的需要。而且,Windows系统自身就是由几千个DLL文件组成,这些DLL相互扶持,组成了强大的Windows系统。如果Windows使用静态链接技术,它的体积会有多大?我不敢想。

二、应用程序接口API

上面我们对DLL技术做了个大概分析,在里面我提到了“接口”,这又是什么呢?因为DLL不能像静态库文件那样塞进程序里,所以,如何让程序知道实现功能的代码和文件成了问题,微软就为DLL技术做了标准规范,让一个DLL文件像奶酪一样开了许多小洞,每个洞口都注明里面存放的功能的名字,程序只要根据标准规范找到相关洞口就可以取得它要的美味了,这个洞口就是“应用程序接口”(Application Programming Interface),每个DLL带的接口都不相同,尽最大可能的减少了代码的重复。用Steven的一句话:API就是一个工具箱,你根据需要取出螺丝刀、扳手,用完后再把它们放回原处。在Windows里,最基本的3个DLL文件是kernel32.dll、user32.dll、gdi32.dll。它们共同构成了基本的系统框架。

三、DLL与木马

DLL是编译好的代码,与一般程序没什么大差别,只是它不能独立运行,需要程序调用。那么,DLL与木马能扯上什么关系呢?如果你学过编程并且写过DLL,就会发现,其实DLL的代码和其他程序几乎没什么两样,仅仅是接口和启动模式不同,只要改动一下代码入口,DLL就变成一个独立的程序了。当然,DLL文件是没有程序逻辑的,这里并不是说DLL=EXE,不过,依然可以把DLL看做缺少了main入口的EXE,DLL带的各个功能函数可以看作一个程序的几个函数模块。DLL木马就是把一个实现了木马功能的代码,加上一些特殊代码写成DLL文件,导出相关的API,在别人看来,这只是一个普通的DLL,但是这个DLL却携带了完整的木马功能,这就是DLL木马的概念。也许有人会问,既然同样的代码就可以实现木马功能,那么直接做程序就可以,为什么还要多此一举写成DLL呢?这是为了隐藏,因为DLL运行时是直接挂在调用它的程序的进程里的,并不会另外产生进程,所以相对于传统EXE木马来说,它很难被查到。

四、DLL的运行

虽然DLL不能自己运行,可是Windows在加载DLL的时候,需要一个入口函数,就如同EXE的main一样,否则系统无法引用DLL。所以根据编写规范,Windows必须查找并执行DLL里的一个函数DllMain作为加载DLL的依据,这个函数不作为API导出,而是内部函数。DllMain函数使DLL得以保留在内存里,有的DLL里面没有DllMain函数,可是依然能使用,这是因为Windows在找不到DllMain的时候,会从其它运行库中找一个不做任何操作的缺省DllMain函数启动这个DLL使它能被载入,并不是说DLL可以放弃DllMain函数。

五、DLL木马技术分析

到了这里,您也许会想,既然DLL木马有那么多好处,以后写木马都采用DLL方式不就好了吗?话虽然是这么说没错,但是DLL木马并不是一些人想象的那么容易写的。要写一个能用的DLL木马,你需要了解更多知识。

1.木马的主体

千万别把木马模块写得真的像个API库一样,这不是开发WINAPI。DLL木马可以导出几个辅助函数,但是必须有一个过程负责主要执行代码,否则这个DLL只能是一堆零碎API函数,别提工作了。

如果涉及一些通用代码,可以在DLL里写一些内部函数,供自己的代码使用,而不是把所有代码都开放成接口,这样它自己本身都难调用了,更不可能发挥作用。

DLL木马的标准执行入口为DllMain,所以必须在DllMain里写好DLL木马运行的代码,或者指向DLL木马的执行模块。

2.动态嵌入技术

Windows中,每个进程都有自己的私有内存空间,别的进程是不允许对这个私人领地进行操作的,但是,实际上我们仍然可以利用种种方法进入并操作进程的私有内存,这就是动态嵌入,它是将自己的代码嵌入正在运行的进程中的技术。动态嵌入有很多种,最常见的是钩子、API以及远程线程技术,现在的大多数DLL木马都采用远程线程技术把自己挂在一个正常系统进程中。其实动态嵌入并不少见,罗技的MouseWare驱动就挂着每一个系统进程-_-

远程线程技术就是通过在另一个进程中创建远程线程(RemoteThread)的方法进入那个进程的内存地址空间。在DLL木马的范畴里,这个技术也叫做“注入”,当载体在那个被注入的进程里创建了远程线程并命令它加载DLL时,木马就挂上去执行了,没有新进程产生,要想让木马停止惟有让挂接这个木马DLL的进程退出运行。但是,很多时候我们只能束手无策——它和Explorer.exe挂在一起了,你确定要关闭Windows吗?

3.木马的启动

有人也许会迫不及待的说,直接把这个DLL加入系统启动项目不就可以了。答案是NO,前面说过,DLL不能独立运行,所以无法在启动项目里直接启动它。要想让木马跑起来,就需要一个EXE使用动态嵌入技术让DLL搭上其他正常进程的车,让被嵌入的进程调用这个DLL的DllMain函数,激发木马运行,最后启动木马的EXE结束运行,木马启动完毕。

启动DLL木马的EXE是个重要角色,它被称为Loader,如果没有Loader,DLL木马就是破烂一堆,因此,一个算得上成熟的DLL木马会想办法保护它的Loader不会那么容易被毁灭。记得狼狈为奸的故事吗?DLL木马就是爬在狼Loader上的狈。

Loader可以是多种多样的,Windows的rundll32.exe也被一些DLL木马用来做了Loader,这种木马一般不带动态嵌入技术,它直接挂着rundll32进程运行,用rundll32的方法(rundll32.exe [DLL名],[函数] [参数])像调用API一样去引用这个DLL的启动函数激发木马模块开始执行,即使你杀了rundll32,木马本体还是在的,一个最常见的例子就是3721中文实名,虽然它不是木马。

注册表的AppInit_DLLs键也被一些木马用来启动自己,如求职信病毒。利用注册表启动,就是让系统执行DllMain来达到启动木马的目的。因为它是kernel调入的,对这个DLL的稳定性有很大要求,稍有错误就会导致系统崩溃,所以很少看到这种木马。

有一些更复杂点的DLL木马通过svchost.exe启动,这种DLL木马必须写成NT-Service,入口函数是ServiceMain,一般很少见,但是这种木马的隐蔽性也不错,而且Loader有保障。

4.其它

到这里大家也应该对DLL木马有个了解了,是不是很想写一个?别急,不知道大家想过没有,既然DLL木马这么好,为什么到现在能找到的DLL木马寥寥无几?现在让我来泼冷水,最重要的原因只有一个:由于DLL木马挂着系统进程运行,如果它本身写得不好,例如没有防止运行错误的代码或者没有严格规范用户的输入,DLL就会出错崩溃。别紧张,一般的EXE也是这样完蛋的,但是DLL崩溃会导致它挂着的程序跟着遭殃,别忘记它挂接的是系统进程哦,结局就是……惨不忍睹。所以写一个能公布的DLL木马,在排错检查方面做的工作要比一般的EXE木马多,写得多了自己都烦躁……

六、DLL木马的发现和查杀

经常看看启动项有没有多出莫名其妙的项目,这是Loader的所在,只要杀了狼,狈就不能再狂了。而DLL木马本体比较难发现,需要你有一定编程知识和分析能力,在Loader里查找DLL名称,或者从进程里看多挂接了什么陌生的DLL,可是对新手来说……总之就是比较难啊比较难,所以,最简单的方法:杀毒软件和防火墙(不是万能药,切忌长期服用)。

0条大神的评论

发表评论