什麼是特洛伊木马?最先是谁编写出来的,有多大的危害???
特洛伊木马没有复制能力,它的特点是伪装成一个实用工具或者一个可爱的游戏,这会诱使用户将其安装在PC或者服务器上。
“特洛伊木马”(trojan horse)简称“木马”,据说这个名称来源于希腊神话《木马屠城记》。古希腊有大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神,让士兵藏匿于巨大的木马中,大部队假装撤退而将木马摈弃于特洛伊城下。城中得知解围的消息后,遂将“木马”作为奇异的战利品拖入城内,全城饮酒狂欢。到午夜时分,全城军民尽入梦乡,匿于木马中的将士开秘门游绳而下,开启城门及四处纵火,城外伏兵涌入,部队里应外合,焚屠特洛伊城。后世称这只大木马为“特洛伊木马”。如今黑客程序借用其名,有“一经潜入,后患无穷”之意。
完整的木马程序一般由两个部分组成:一个是服务器程序,一个是控制器程序。“中了木马”就是指安装了木马的服务器程序,若你的电脑被安装了服务器程序,则拥有控制器程序的人就可以通过网络控制你的电脑、为所欲为,这时你电脑上的各种文件、程序,以及在你电脑上使用的帐号、密码就无安全可言了。
木马程序不能算是一种病毒,但越来越多的新版的杀毒软件,已开始可以查杀一些木马了,所以也有不少人称木马程序为黑客病毒。
详解木马原理
介绍特洛伊木马程序的原理、特征以及中了木马后系统出现的情况……
QUOTE:
特洛伊木马是如何启动的
作为一个优秀的木马,自启动功能是必不可少的,这样可以保证木马不会因为你的一次关机操作而彻底失去作用。正因为该项技术如此重要,所以,很多编程人员都在不停地研究和探索新的自启动技术,并且时常有新的发现。一个典型的例子就是把木马加入到用户经常执行的程序 (例如explorer.exe)中,用户执行该程序时,则木马自动发生作用。当然,更加普遍的方法是通过修改Windows系统文件和注册表达到目的,现经常用的方法主要有以下几种:
1.在Win.ini中启动
在Win.ini的[windows]字段中有启动命令"load="和"run=",在一般情况下 "="后面是空白的,如果有后跟程序,比方说是这个样子:
run=c:\windows\file.exe
load=c:\windows\file.exe
要小心了,这个file.exe很可能是木马哦。
2.在System.ini中启动
System.ini位于Windows的安装目录下,其[boot]字段的shell=Explorer.exe是木马喜欢的隐藏加载之所,木马通常的做法是将该何变为这样:shell=Explorer.exefile.exe。注意这里的file.exe就是木马服务端程序!
另外,在System.中的[386Enh]字段,要注意检查在此段内的"driver=路径\程序名"这里也有可能被木马所利用。再有,在System.ini中的[mic]、[drivers]、[drivers32]这3个字段,这些段也是起到加载驱动程序的作用,但也是增添木马程序的好场所,现在你该知道也要注意这里喽。
3.利用注册表加载运行
如下所示注册表位置都是木马喜好的藏身加载之所,赶快检查一下,有什么程序在其下。
4.在Autoexec.bat和Config.sys中加载运行
请大家注意,在C盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都需要控制端用户与服务端建立连接后,将己添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行,而且采用这种方式不是很隐蔽。容易被发现,所以在Autoexec.bat和Confings中加载木马程序的并不多见,但也不能因此而掉以轻心。
5.在Winstart.bat中启动
Winstart.bat是一个特殊性丝毫不亚于Autoexec.bat的批处理文件,也是一个能自动被Windows加载运行的文件。它多数情况下为应用程序及Windows自动生成,在执行了Windows自动生成,在执行了Win.com并加截了多数驱动程序之后
开始执行 (这一点可通过启动时按F8键再选择逐步跟踪启动过程的启动方式可得知)。由于Autoexec.bat的功能可以由Witart.bat代替完成,因此木马完全可以像在Autoexec.bat中那样被加载运行,危险由此而来。
6.启动组
木马们如果隐藏在启动组虽然不是十分隐蔽,但这里的确是自动加载运行的好场所,因此还是有木马喜欢在这里驻留的。启动组对应的文件夹为C:\Windows\start menu\programs\startup,在注册表中的位置:HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Explorer\shell
Folders Startup="c:\windows\start menu\programs\startup"。要注意经常检查启动组哦!
7.*.INI
即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。只启动一次的方式:在winint.ini.中(用于安装较多)。
8.修改文件关联
修改文件关联是木马们常用手段 (主要是国产木马,老外的木马大都没有这个功能),比方说正常情况下TXT文件的打开方式为Notepad.EXE文件,但一旦中了文件关联木马,则txt文件打开方式就会被修改为用木马程序打开,如著名的国产木马冰河就是这样干的. "冰河"就是通过修改HKEY_CLASSES_ROOT\txtfile\whell\open\command下的键值,将“C:\WINDOWS\NOTEPAD.EXE本应用Notepad打开,如著名的国产HKEY一CLASSES一ROOT\txt闹e\shell\open\commandT的键值,将 "C:\WINDOWS\NOTEPAD.EXE%l"改为 "C:\WINDOWS\SYSTEM\SYSEXPLR.EXE%l",这样,一旦你双击一个TXT文件,原本应用Notepad打开该文件,现在却变成启动木马程序了,好狠毒哦!请大家注意,不仅仅是TXT文件,其他诸如HTM、EXE、ZIP.COM等都是木马的目标,要小心搂。
对付这类木马,只能经常检查HKEY_C\shell\open\command主键,查看其键值是否正常。
9.捆绑文件
实现这种触发条件首先要控制端和服务端已通过木马建立连接,然后控制端用户用工具软件将木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖源文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马义会安装上去。绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。
10.反弹端口型木马的主动连接方式
反弹端口型木马我们已经在前面说过了,由于它与一般的木马相反,其服务端 (被控制端)主动与客户端 (控制端)建立连接,并且监听端口一般开在80,所以如果没有合适的工具、丰富的经验真的很难防范。这类木马的典型代表就是网络神偷"。由于这类木马仍然要在注册表中建立键值注册表的变化就不难查到它们。同时,最新的天网防火墙(如我们在第三点中所讲的那样),因此只要留意也可在网络神偷服务端进行主动连接时发现它。
QUOTE:
木马的隐藏方式
1.在任务栏里隐藏
这是最基本的隐藏方式。如果在windows的任务栏里出现一个莫名其妙的图标,傻子都会明白是怎么回事。要实现在任务栏中隐藏在编程时是很容易实现的。我们以VB为例。在VB中,只要把from的Visible属性设置为False,ShowInTaskBar设为False程序就不会出现在任务栏里了。
2.在任务管理器里隐藏
查看正在运行的进程最简单的方法就是按下Ctrl+Alt+Del时出现的任务管理器。如果你按下Ctrl+Alt+Del后可以看见一个木马程序在运行,那么这肯定不是什么好木马。所以,木马会千方百计地伪装自己,使自己不出现在任务管理器里。木马发现把自己设为 "系统服务“就可以轻松地骗过去。
因此,希望通过按Ctrl+Alt+Del发现木马是不大现实的。
3.端口
一台机器有65536个端口,你会注意这么多端口么?而木马就很注意你的端口。如果你稍微留意一下,不难发现,大多数木马使用的端口在1024以上,而且呈越来越大的趋势;当然也有占用1024以下端口的木马,但这些端口是常用端口,占用这些端口可能会造成系统不正常,这样的话,木马就会很容易暴露。也许你知道一些木马占用的端口,你或许会经常扫描这些端口,但现在的木马都提供端口修改功能,你有时间扫描65536个端口么?
4.隐藏通讯
隐藏通讯也是木马经常采用的手段之一。任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,如攻击者通过客户端直接接人被植人木马的主机;或者通过间接通讯。如通过电子邮件的方式,木马把侵入主机的敏感信息送给攻击者。现在大部分木马一般在占领主机后会在1024以上不易发现的高端口上驻留;有一些木马会选择一些常用的端口,如80、23,有一种非常先进的木马还可以做到在占领80HTTP端口后,收到正常的HTTP请求仍然把它交与Web服务器处理,只有收到一些特殊约定的数据包后,才调用木马程序。
5.隐藏隐加载方式
木马加载的方式可以说千奇百怪,无奇不有。但殊途同归,都为了达到一个共同的目的,那就是使你运行木马的服务端程序。如果木马不做任何伪装,就告诉你这是木马,你会运行它才怪呢。而随着网站互动化避程的不断进步,越来越多的东西可以成为木马的传播介质,Java Script、VBScript、ActiveX.XLM....几乎WWW每一个新功能部会导致木马的快速进化。
6.最新隐身技术
在Win9x时代,简单地注册为系统进程就可以从任务栏中消失,可是在Windows2000盛行的今天。这种方法遭到了惨败。注册为系统进程不仅仅能在任务栏中看到,而且可以直接在Services中直接控制停止。运行(太搞笑了,木马被客户端控制)。使用隐藏窗体或控制台的方法也不能欺骗无所不见的Admlin大人(要知道,在NT下,Administrator是可以看见所有进程的)。在研究了其他软件的长处之后,木马发现,Windows下的中文汉化软件采用的陷阱技术非常适合木马的使用。
这是一种更新、更隐蔽的方法。通过修改虚拟设备驱动程序(VXD)或修改动态遵掇库 (DLL)来加载木马。这种方法与一般方法不同,它基本上摆脱了原有的木马模式---监听端口,而采用替代系统功能的方法(改写vxd或DLL文件),木马会将修改后的DLL替换系统已知的DLL,并对所有的函数调用进行过滤。对于常用的调用,使用函数转发器直接转发给被替换的系统DLL,对于一些相应的操作。实际上。这样的事先约定好的特种情况,DLL会执行一般只是使用DLL进行监听,一旦发现控制端的请求就激活自身,绑在一个进程上进行正常的木马操作。这样做的好处是没有增加新的文件,不需要打开新的端口,没有新的进程,使用常规的方法监测不到它。在往常运行时,木马几乎没有任何瘫状,且木马的控制端向被控制端发出特定的信息后,隐藏的程序就立即开始运作。
QUOTE:
特洛伊木马具有的特性
1.包含干正常程序中,当用户执行正常程序时,启动自身,在用户难以察觉的情况下,完成一些危害用户的操作,具有隐蔽性
什么是计算机木马?有什么特点?
一、性质不同
计算机病毒(Computer Virus)是编制者在计算机程序中插入的破坏计算机功能或者数据的代码,能影响计算机使用,能自我复制的一组计算机指令或者程序代码。
木马,来源于古希腊神话《荷马史诗》中的故事《木马屠城记》。而现在所谓的特洛伊木马正是指那些表面上是有用的软件、实际目的却是危害计算机安全并导致严重破坏的计算机程序。
二、特点不同
计算机病毒具有传播性、隐蔽性、感染性、潜伏性、可激发性、表现性或破坏性。计算机病毒的生命周期:开发期→传染期→潜伏期→发作期→发现期→消化期→消亡期。木马是具有欺骗性的文件 ,是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。
扩展资料
木马程序表面上是无害的,甚至对没有警戒的用户还颇有吸引力,它们经常隐藏在游戏或图形软件中,但它们却隐藏着恶意。这些表面上看似友善的程序运行后,就会进行一些非法的行动,如删除文件或对硬盘格式化。
完整的木马程序一般由两部分组成:一个是服务器端.一个是控制器端。“中了木马”就是指安装了木马的服务器端程序,若你的电脑被安装了服务器端程序,则拥有相应客户端的人就可以通过网络控制你的电脑。为所欲为。这时你电脑上的各种文件、程序,以及在你电脑上使用的账号、密码无安全可言了。
参考资料来源:百度百科-计算机木马
百度百科-计算机病毒
高手看看,这些是什么木马病毒,还会复生吗??
这个木马替换了C:\WINDOWS\system32\notepad.exe
并切不让恢复,木马(特洛伊木马),也称为后门,英文叫做“Trojan house”,其名称取自希腊神话的《特洛伊木马记》,它是一种基于远程控制的黑客工具,木马的特性一般有:①包含于正常程序中,当用户执行正常程序时,启动自身,在用户难以察觉的情况下,完成一些危害用户的操作,具有隐蔽性②具有自动运行性③具有自动恢复功能。④能自动打开特别的端口。⑤包含具有未公开且可能产生危险后果的功能和程序。木马一般有两个程序组成:一个是服务器程序,一个是控制器程序。当你的计算机运行了服务器后,恶意攻击者可以使用控制器程序进入你的计算机,通过指挥服务器程序达到控制你的计算机的目的。黑客可以利用它锁定你的鼠标、记录你的键盘按键、窃取你的口令屡屡拉、浏览及修改你的文件、修改注册表、远程关机、重新启动等等功能。
木马的种类:①远程控制木马。例如冰河②密码发送木马。例如 QQ 木马③键盘记录木马。一般的木马都具有这功能④破坏性质的木马。⑤代理木马。在肉鸡上作跳板的木马。⑥FTP 木马⑦反弹端口型木马。简单来说就是反防火墙的木马,例如网络神偷⑧dll 木马。这是现在最新出来的采用进程插入技术的木马,是最难对付的木马之一。⑨综合型。
想不中木马,先要了解木马植入的惯用伎俩(很多病毒的传播也是利用同样的手段,因为木马也算是病毒的一种):
1. 邮件传播:木马很可能会被放在邮箱的附件里发给你,当你在没采取任何措施的情况下下载运行了它,即便中了木马。因此对于带有附件的邮件,你最好不要下载运行,尤其是附件名为*.exe的,并且请养成用杀毒软件扫描附件的习惯。
2. QQ传播:因为QQ有文件传输功能,所以现在也有很多木马通过QQ传播。恶意破坏者通常把木马服务器程序通过合并软件和其他的可执行文件绑在一起,然后骗你说是一个好玩的东东或者是PLMM的照片,你接受后运行的话,你就成了木马的牺牲品了。
3. 下载传播:在一些个人网站或论坛下载软件时有可能会下载到绑有木马服务器的东东。所以建议要下载工具的话最好去比较知名的网站。在解压缩安装之前也请养成对下好的软件进行病毒扫描的习惯。
在这里提醒一下,若被杀毒软件扫描到有病毒请立即清除。不要以为不运行这些带木马的文件就可以了,下面这种木马植入方法专门用来对付有此想法的人。
4. 修改文件关联。这是木马最常用的手段之一,比方说正常情况下txt文件的打开方式为Notepad.exe(记事本),攻击者可以把txt文件打开方式修改为用木马程序打开,这样一旦你双击一个txt文件,原本应用记事本打开的,现在却变成启动木马程序了!当然,不仅仅是txt文件,其它诸如htm、exe、zip、com等都是木马的目标。对付文件关联木马,只能检查“HKEY_CLASSES_ROOT\文件类型\shell\open\command”这个子键,查看其键值是否正常。
5. 直接运行植入。一般是利用系统漏洞把配置好的木马在目标主机上运行就完成了。有关系统安全策略后文会作进一步的讲解。
6. 网页植入。现在比较流行的种植木马方法,也是黑客们惯用的无形杀手,即所谓的网页木马。经常上网的朋友是不是发现在浏览网页的时候,浏览器动不动就会弹出几个提示窗口,其中看见最多的就数3721的提示窗口了。这些窗口的源代码中包含了ActiveX控件,如果不安装里面的控件,以后仍然会出现这种窗口,并且网页的功能就不能实现了。利用这一点,可以制作一个ActiveX控件,放在网页里面,只要用户选择了安装,就会自动从服务器上下载一个木马程序并运行,这样就达到植入木马的目的了。按此方法制作的木马对任何版本的IE都有效,但是在打开网页的时候弹出对话框要用户确定是否安装,只要用户不安装,黑客们就以点办法也没有了。所以当上网的时候弹出对话框询问是否安装某软件或插件,请务必看清楚此消息的来源站点。若是知名网站根据实际需要选择是否安装,若是比较少见或没见过的网址甚至根本看不到网址请毫不犹豫的点击“否”并关闭该窗口。另一类木马主要是利用微软的HTML Object标签的一个漏洞,Object标签主要是用来把ActiveX控件插入到HTML页面里。由于加载程序没有根据描述远程Object数据位置的参数检查加载文件的性质,因此Web页面里面的木马会悄悄地运行。对于DATA所标记的URL,IE会根据服务器返回HTTP头中的Content-Type来处理数据,也就是说如果HTTP头中返回的是appication/hta等,那么该文件就能够执行,而不管IE的安全级别有多高。如果恶意攻击者把该文件换成木马,并修改其中ftp服务器的地址和文件名,将其改为他们的ftp服务器地址和服务器上木马程序的路径。那么当别人浏览该网页时,会出现“Internet Explorer脚本错误”的错误信息,询问是否继续在该页面上运行脚本错误,当点击“是”便会自动下载并运行木马。以上两种网页木马都会弹出安全提示框,因此不够隐蔽,遇到此情况只要看清消息来源的站点,再视情况判断有没必要点击“是”。还有一种网页木马是直接在网页的源代码中插入木马代码,只要对方打开这个网页就会中上木马,而他对此还是一无所知。在这里提醒各位网民,对于从未见过的URL(通常都是个人网站/论坛),最好不要访问。
那么怎样判断自己的电脑是否中了木马,中了木马时有什幺现象?很难说,因为它们发作时的情况多种多样。
但是如果你的计算器有以下表现,就很可能染上黑客病毒了。
计算器有时死机,有时又重新激活;在没有执行什么操作的时候,却在拼命读写硬盘;系统莫明其妙地对软驱进行搜索;没有运行大的程序,而系统的速度越来越慢,系统资源占用很多;用CTRL+ALT+DEL调出任务表,发现有多个名字相同的程序在运行,而且可能会随时间的增加而增多。(可是,有一些程序是不会出现在这个列表里的。懂得编程的朋友应该知道这不难做到,借助PVIEW95就可以看到)。特别是在连入Internet网或是局域网后,如果你的机器有这些现象,就应小心了,当然也有可能是一些其它的病毒在作怪。由于木马程序的破坏通常需要里应外合,大多数的木马不如病毒般可怕。即使运行了,也不一定会对你的机器造成危害。不过,潜在的危害还是有的。比如,你的上网密码有可能已经跑到别人的收件箱里了!
我们也可以利用查看本机开放端口的方法来检查自己是否被种了木马或其它黑客程序。你在网络上冲浪,别人和你聊天,你发电子邮件,必须要有共同的协议,这个协议就是TCP/IP协议,任何网络软件的通讯都基于TCP/IP协议。如果把互联网比作公路网,电脑就是路边的房屋,房屋要有门你才可以进出,TCP/IP协议规定,电脑可以有256*256扇门,即从0到65535号“门”,TCP/IP协议把它叫作“端口”。当你发电子邮件的时候,E-mail软件把信件送到了邮件服务器的25号端口,当你收信的时候,E-mail软件是从邮件服务器的110号端口这扇门进去取信的,你现在看到的我写的东西,是进入服务器的80端口。新安装好的个人电脑打开的端口号是139端口,你上网的时候,就是通过这个端口与外界联系的。黑客也是通过端口进入你的电脑。因此,我们可以利用查看本机开放端口的方法来检查自己是否被种了木马或其它黑客程序。以下是详细方法介绍:
①Windows本身自带的netstat命令
此命令是显示协议统计和当前的 TCP/IP 网络连接。该命令只有在安装了 TCP/IP 协议后才可以使用。
netstat [-a] [-e] [-n] [-s] [-p protocol] [-r] [interval]
-a显示所有连接和侦听端口。服务器连接通常不显示。
-e显示以太网统计。该参数可以与 -s 选项结合使用。
-n以数字格式显示地址和端口号(而不是尝试查找名称)。
-s显示每个协议的统计。默认情况下,显示 TCP、UDP、ICMP 和 IP 的统计。-p 选项可以用来指定默认的子集。
-p protocol显示由 protocol 指定的协议的连接;protocol 可以是 tcp 或 udp。如果与 -s 选项一同使用显示每个协议的统计,protocol 可以是 tcp、udp、icmp 或 ip。
-r显示路由表的内容。
interval重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+B 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。
如果发现有异常的端口出现,就有可能是木马常用的端口被占用。立即断开网络,用病毒库升级到最新的杀毒软件查杀病毒。
②工作在windows2000下的命令行工具fport
Fport是FoundStone出品的一个用来列出系统中所有打开的TCP/IP和UDP端口,以及它们对应应用程序的完整路径、PID标识、进程名称等信息的软件。在命令行下使用,请看例子:
D:\fport.exe
FPort v1.33 - TCP/IP Process to Port Mapper
Copyright 2000 by Foundstone, Inc.
Pid Process Port Proto Path
748 tcpsvcs - 7 TCP C:\WINNT\System32\ tcpsvcs.exe
748 tcpsvcs - 9 TCP C:\WINNT\System32\tcpsvcs.exe
748 tcpsvcs - 19 TCP C:\WINNT\System32\tcpsvcs.exe
416 svchost - 135 TCP C:\WINNT\system32\svchost.exe
利用此命令,各个端口究竟是什么程序打开的就都在你眼皮底下了。如果发现有某个可疑程序打开了某个可疑端口,可千万不要大意,也许那就是一只狡猾的木马!
③与Fport功能类似的图形化界面工具Active Ports
Active Ports为SmartLine出品,你可以用来监视电脑所有打开的TCP/IP/UDP端口,不但可以将你所有的端口显示出来,还显示所有端口所对应的程序所在的路径,本地IP和远端IP(试图连接你的电脑IP)是否正在活动,而且它还提供了一个关闭端口的功能,在你用它发现木马开放的端口时,可以立即将端口关闭。
利用查看本机开放端口,以及端口和进程对应关系的方法,可以轻松的发现基于TCP/UDP协议的木马。一般中了木马程序最简单的办法就是用杀毒软件清除,如金山毒霸等。现在的杀毒程序能查杀大部分木马,当然也有一部分查杀不了的木马。这时就需要手动清除。要想手工清除,首先需要了解一下木马通常喜欢隐藏在哪里,并自动加载。
“木马”程序会想尽一切办法隐藏自己,主要途径有:在任务栏中隐藏自己,这是最基本的只要把form的Visible属性设为False、ShowInTaskBar设为False,程序运行时就不会出现在任务栏中了。在任务管理器中隐形:将程序设为“系统服务”可以很轻松地伪装自己。 当然它也会悄无声息地启动。木马会在计算机启动时自动装载服务端,Windows系统启动时自动加载应用程序的方法,木马都会用上,如:启动组、win.ini、system.ini、注册表等等都是“木马”藏身的好地方。下面具体谈谈“木马”是怎样自动加载的。
①win.ini 中启动 :在 win.ini 文件中,在 [WINDOWS] 下面, “run=” 和 “load=” 是可能加载 “ 木马 ” 程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上 “ 木马 ” 了。当然你也得看清楚,因为好多 “ 木马 ” ,如 “AOL Trojan 木马 ” ,它把自身伪装成 command.exe 文件,如果不注意可能不会发现它不是真正的系统启动文件。
②system.ini 中启动 :在 system.ini 文件中,在 [BOOT] 下面有个 “shell= 文件名 ” 。正确的文件名应该是 “explorer.exe” ,如果不是 “explorer.exe” ,而是 “shell= explorer.exe 程序名 ” ,那么后面跟着的那个程序就是 “ 木马 ” 程序,就是说你已经中 “ 木马 ” 了。
③利用注册表加载运行 :在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCALMACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的 Explorer 键值改为Explorer=“C:\WINDOWS\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。
④隐形于启动组中 : C:\windows\start menu\programs\startup ,在注册表中的位置: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Explorer\ShellFolders Startup="C:\windows\start menu\programs\startup"( 一般来说机率比较少 )
⑤隐蔽在 Winstart.bat 中 :按照上面的逻辑理论,凡是利于木马能自动加载的地方,木马都喜欢呆。这不, Winstart.bat 也是一个能自动被 Windows 加载运行的文件,它多数情况下为应用程序及 Windows 自动生成,在执行了 Win.com 并加载了多数驱动程序之后开始执行(这一点可通过启动时按 F8 键再选逐步跟踪启动过程的启动方式可得知)。由于 Autoexec.bat 的功能可以由 Winstart.bat 代替完成,因此木马完全可以像在 Autoexec.bat 中那样被加载运行,危险由此而来。
⑥在 Autoexec.bat 和 Config.sys 中加载运行
⑦通过文件关联启动 :此类木马上文已讲,在这里不再
⑧比较新的木马启动技术就是利用 dll 嵌入技术,把木马嵌进正常使用程序进程里,手工很难清理。这种木马不使用进程,而使用Windows系统中的另一种“可执行程序”——dll(应用程序扩展),这样我们就不能通过Windows的进程管理器来发现这种木马了,但是我们可以借助第三方软件(Windows优化大师的进程管理)来找到木马使用的dll文件,找到后到DOS下删除。
知道了“木马”的工作原理,查杀“木马”就变得很容易,如果发现有“木马”存在,最安全也是最有效的方法就是马上将计算机与网络断开,防止黑客通过网络对你进行攻击。然后编辑win.ini文件,将[WINDOWS]下面,“run=“木马”程序”或“load=“木马”程序”更改为“run=”和“load=”;编辑system.ini文件,将[BOOT]下面的“shell=‘木马’文件”,更改为:“shell=explorer.exe”;在注册表中,用regedit对注册表进行编辑,先在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索并替换掉“木马”程序,有时候还需注意的是:有的“木马”程序并不是直接将“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下的“木马”键值删除就行了,因为有的“木马”如:BladeRunner“木马”,如果你删除它,“木马”会立即自动加上,你需要的是记下“木马”的名字与目录,然后退回到DOS下,找到此“木马”文件并删除掉。重新启动计算机,然后再到注册表中将所有“木马”文件的键值删除。至此,我们就大功告成了。
(五)病毒防杀
计算机病毒,是指编制或者在计算机程序中插入的破坏计算机功能或毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或程序代码。
计算机病毒可根据感染形态进行分类,大致可分为以下几种:
① 引导型病毒:引导型病毒是病毒把自身的程序代码存放在软盘或硬盘的引导扇区中。由于现代计算机的启动机制,使得病毒可以在每次开机,操作系统还没有引导之前就被加载到内存中,这个特性使得病毒可以对计算机进行完全的控制,并拥有更大的能力进行传染和破坏。绝大多数引导型病毒有极强的传染性和破坏性,通常会格式化硬盘、修改文件分配表(FAT表)等,一旦发作,计算机的数据通常会全部丢失。这种类型病毒的清除也很简单,不管是什么名字的病毒,只要是引导型的,用干净的软盘(即不含病毒的启动软盘,注意:一定要关闭软盘的写保护,不允许对软盘进行写入操作)启动系统,然后重写硬盘的引导扇区即可清除。由于该类病毒的清除和发现很容易,所以这类病毒都属于很老的了,现在基本上已经灭绝。
② 文件型病毒:文件型病毒通常把病毒程序代码自身放在系统的其它可执行文件(如:*.COM、*.EXE、*.DLL等)中。当这些文件被执行时,病毒的程序就跟着被执行。文件型病毒依传染方式的不同,又分为非常驻型以及常驻内存型两种。非常驻型病毒是将病毒程序自身放置于*.COM、*.EXE或是*.SYS的文件中,当这些中毒的程序被执行时,就会尝试把病毒程序传染给另一个或多个文件。该类病毒只在感染病毒的程序被调用执行时,传染给其它程序,病毒本身并不常驻内存;常驻内存型病毒躲在内存中,一旦常驻内存型病毒进入了内存,只要有可执行文件被执行,就可以对其进行感染。由于病毒一直常驻内存,所以此时用杀毒软件进行杀毒,存在“带毒杀毒”的问题,通常不易杀干净。一般需要用干净的系统引导盘启动系统后,再进行杀毒才彻底。
③ 复合型病毒:复合型病毒具备引导型病毒和文件型病毒的特性,可以传染*.COM、*.EXE、*.DLL文件,也可以感染磁盘的引导扇区。由于这个特性,使得这种病毒具有很强的传染力,一旦发病,破坏程度也会非常强。
④ 变型病毒:又称幽灵病毒,这一类病毒使用一个复杂的算法,使自己每传播一次都具有不同的内容和长度。一般的做法是:病毒由一段混有无关指令的解码算法和被变化过的病毒体组成。病毒之所以费尽心机进行自身代码的变化,主要原因是为了躲避杀毒软件对其病毒特征代码的扫描,以避免被杀毒软件清除。
⑤ 宏病毒:宏病毒主要利用微软Office软件Word、Excel本身有宏命令的功能而写的一种病毒。所谓的宏,就是一段脚本程序,由于Word、Excel等软件在处理文档时,为了使程序更智能化地按人的意愿工作,允许在Word中加一些VBS程序,这给宏病毒提供了滋生的土壤,宏病毒就是用这些VBS程序书写的程序。
⑥ 网页病毒:网页病毒主要利用系统软件的安全漏洞,通过执行嵌入在网页HTML语言内的Jave Applet程序、JavaScript脚本程序、VBS脚本程序和ActiveX部件等可自动执行的程序,强行修改操作系统的注册表和系统配置,或非法控制系统资源,盗取用户文件。这种非法恶意程序能够自动执行,它完全不受用户的控制。你一旦浏览含有该病毒的网页,便可以在不知不觉的情况下中招,给系统带来不同程度的破坏。轻则消耗系统资源,使系统运行速度缓慢,直至重启;重则删除硬盘数据,甚至格式化硬盘。网页病毒发作通常有两种表现形式:一种是修改浏览器和注册表的各种设置,比如:IE的默认首页被修改,标题栏被添加非法信息,注册表被禁止打开等。另一种则是恶性结果,比如:开机出现对话框,格式化硬盘,全方位侵害封杀系统,最后导致瘫痪崩溃,非法读取或盗取用户文件等。网页病毒的预防通常是先打上IE补丁。接下来有两种方法:一是利用IE自身的设置进行预防,使浏览器自身不执行网页上的脚本程序,或屏蔽某些恶性网站。在IE6的internet选项的“常规”选项卡中,先选中某一网站区域,再点击“自定义级别”即可对IE6浏览器能执行的脚本程序进行限制。要注意的是:禁用IE的JS、VBS等脚本程序的运行后,很多网页特效就没办法显示了;另一种办法,就是使用病毒防火墙,或者直接用第三方IE保护软件来保护。
⑦ “蠕虫”型病毒:顾名思义,计算机蠕虫指的是某些恶性程序代码,会像蠕虫般在计算机网络中爬行,从一台计算机爬到另外一台计算机进行感染。一般来说蠕虫能感染文件,对自身进行复制,消耗系统资源。在互联网环境下,蠕虫病毒变得非常猖獗,它靠复制自己来传播,如果你不对蠕虫的传播渠道进行控制(如操作系统的漏洞、文件共享的权限等),即使你不执行任何外来文件,也会被感染。现在的病毒一般都是既能够感染文件,又可以像蠕虫那样到处爬动(无非就是通过E-mail、共享文件夹、感染HTML代码,然后就是寻找漏洞获得写权限等等),因此,未来能够给网络带来重大灾难的,必定将是网络蠕虫病毒。
⑧ 木马病毒。木马和蠕虫之间,有某种程度上的依附关系,越来越多的病毒同时具有木马和蠕虫两者的特点。
在病毒日益猖獗的今天,安装杀毒软件和防火墙是最基本的措施。同时建议至少每周更新一次病毒库。
从目前发现的病毒来看,计算机感染病毒后的主要症状有:
1:由于病毒程序把自己或操作系统的一部分用坏簇隐藏起来,磁盘坏簇莫名其妙地增多。
2:由于病毒程序附加在可执行程序头尾或插在中间,使可执行程序容量加大。
3:由于病毒程序把自己的某个特殊标志作为标签,使接触到的磁盘出现特别标签。
4:由于病毒程序本身或其复制品不断入侵占系统空间,使可用系统空间变小。
5:由于病毒程序的异常活动,造成异常的磁盘访问。
6:由于病毒程序附加或占用引导部分,使系统引导变慢。
7:丢失数据和程序。
8:中断向量发生变化。
9:打印出现问题。
10:死机现象增多。
11:生成不可见的表格文件或特定文件。
12:系统出现异常活动。
13:出现一些无意义的画面问候语等。
14:程序运行出现异常现象或不合理的结果。
15:磁盘卷标名发生变化。
16:系统不认识磁盘或硬盘,不能引导系统等。
17:在系统内装有汉字库正常的情况下不能调用汉字库或不能打印汉字。
18:在使用没有写保护的软件的软盘时屏幕上出现软盘写保护的提示。
19:异常要求用户输入口令。
你想尝试一下中病毒的滋味的话可去下载病毒感染模拟器。
若你的计算机发生以上状况,千万不要迟疑,遵循以下步骤处理:
1:立刻断开网络。
2:找“决对干净”的DOS系统磁盘启动计算机。这时,记得要关上这张磁盘个写保护。
3:用杀毒软件开始扫描病毒。
4:若侦测到是文件中毒时,则有三种方试处理:删除文件、重命名文件或是请除病毒。记住:千万不要对中毒文件置之不理,特别是不能让其停留在可执行文件中。
5:若侦测到的是硬盘分区或引导区的病毒时,则你可以用干净的DOS磁盘中的FDISK指令,执行FDISK/MBR命令,以恢复硬盘的引导信息;或是在A驱中执行A:/SYS C:(C:为中毒磁盘),以救回硬盘引导区的资料。
6:现在,可以重新建文件、重新安装软件或 ,准备备份资料,请切记,备份资料在重新导入系统前,应先进行扫描,以防万一。
7:千万记住,重新建文档到开始运行之前。应再次扫描整个系统,以免中毒文件不小心又被存入系统中。
8:现在可以安心的开始操作计算机了。
(六)Windows系统安全隐患
许多系统都会有这样那样的安全漏洞(Bugs),其中一些是操作系统或应用软件本身具有的。如缓冲区溢出攻击、Windows98中的共享目录密码验证漏洞和IE5漏洞等,这些漏洞在补丁未被开发出来之前一般很难防御黑客的破坏,除非你将网线拔掉;另一些是利用协议漏洞进行攻击,如攻击者利用POP3一定要在根目录下运行的这一漏洞发动攻击,破坏根目录,从而获得超级用户的权限;还有一些漏洞是由于系统管理员配置错误或疏忽引起的,如在网络文件系统中,将目录和文件以可写的方式调出,将未加Shadow的用户密码以明码方式存放在某一目录下,这都会给黑客带来可乘之机。
防范措施:①个人用户推荐使用Windows XP Professional。这个号称Windows家族最稳定的操作系统,基于NT内核的融合,与以前的各版本相比具有更加安全和更加保密的安全特性,它对系统安全性所做的改善,大大加强了用户建立安全、保密的系统环境的系数。②及时给系统打补丁。可以使用Windows自带的“Windows update”,建议至少每周更新一次,并多留意下官方网站的安全公告。③安装杀毒软件和防火墙。强烈建议至少每周对其更新一次。
另外我们也应充分利用Windows XP的安全特性进行一些必要的安全配置:①使用XP自带的免费Internet连接防火墙。②利用Windows XP内置的IE6.0来保护个人隐私。我们可以在IE6.0中定义透露个人信息的具体参数选项,浏览器会在用户上网时,自动判断所访问的站点的安全、可信等级,根据预先设定的隐私参数,来限制信息方面的流通。③利用加密文件系统(EFS)加密。在Windows XP中EFS使用扩展数据加密标准作为加密算法,EFS自动地为用户生成一对密钥和证书,并在利用了CryptoAPI结构的情况下以公钥加密为基础。加密后的文件夹将限制、识别用户是否属于非法访问,只有对这个文件进行加密的用户可以打开这个文件并使用它。要对文件进行加密,首先你得有NTFS分区,然后右击要加密的文件夹,在弹出的文件夹属性的“常规”栏里依次选择“高级”→“加密内容以便保护数据”→“确定”→“将更改应用于该文件夹、子文件夹和文件”→“确定”,这样,该文件夹、子文件夹及文件都已加密。需要注意的是当对文件夹进行了加密后,一定要制作备份密钥,以防万一。④屏蔽不需要的服务组件。XP众多的服务使用户享受到了前所未有的服务,但是出于种种原因,用户能真正在日常用到的组件还是为数不多,这就造成了很到的系统资源浪费和一定的安全隐患,甚至黑客们还会据此尝试一些入侵,所以屏蔽一些暂时还不需要的服务组件是安全设置中的一个重要部分。⑤管理好?/div
什么是木马?木马的工作原理是什么?
木马特洛伊木马(以下简称木马),英文叫做“Trojan horse”,其名称取自希腊神话的特洛伊木马记。 它是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。 所谓隐蔽性是指木马的设计者为了防止木马被发现,会采用多种手段隐藏木马,这样服务端即使发现感染了木马,由于不能确定其具体位置,往往只能望“马”兴叹。 所谓非授权性是指一旦控制端与服务端连接后,控制端将享有服务端的大部分操作权限,包括修改文件,修改注册表,控制鼠标,键盘等等,而这些权力并不是服务端赋予的,而是通过木马程序窃取的。 从木马的发展来看,基本上可以分为两个阶段。 最初网络还处于以UNIX平台为主的时期,木马就产生了,当时的木马程序的功能相对简单,往往是将一段程序嵌入到系统文件中,用跳转指令来执行一些木马的功能,在这个时期木马的设计者和使用者大都是些技术人员,必须具备相当的网络和编程知识。 而后随着WINDOWS平台的日益普及,一些基于图形操作的木马程序出现了,用户界面的改善,使使用者不用懂太多的专业知识就可以熟练的操作木马,相对的木马入侵事件也频繁出现,而且由于这个时期木马的功能已日趋完善,因此对服务端的破坏也更大了。 所以所木马发展到今天,已经无所不用其极,一旦被木马控制,你的电脑将毫无秘密可言。 鉴于木马的巨大危害性,我们将分原理篇,防御与反击篇,资料篇三部分来详细介绍木马,希望大家对特洛伊木马这种攻击手段有一个透彻的了解。 原理篇基础知识在介绍木马的原理之前有一些木马构成的基础知识我们要事先加以说明,因为下面有很多地方会提到这些内容。 一个完整的木马系统由硬件部分,软件部分和具体连接部分组成。 (1)硬件部分:建立木马连接所必须的硬件实体。 控制端:对服务端进行远程控制的一方。 服务端:被控制端远程控制的一方。 INTERNET:控制端对服务端进行远程控制,数据传输的网络载体。 (2)软件部分:实现远程控制所必须的软件程序。 控制端程序:控制端用以远程控制服务端的程序。 木马程序:潜入服务端内部,获取其操作权限的程序。 木马配置程序:设置木马程序的端口号,触发条件,木马名称等,使其在服务端藏得更隐蔽的程序。 (3)具体连接部分:通过INTERNET在服务端和控制端之间建立一条木马通道所必须的元素。 控制端IP,服务端IP:即控制端,服务端的网络地址,也是木马进行数据传输的目的地。 控制端端口,木马端口:即控制端,服务端的数据入口,通过这个入口,数据可直达控制端程序或木马 程序。 木马原理用木马这种黑客工具进行网络入侵,从过程上看大致可分为六步(具体可见下图),下面我们就按这六步来详细阐述木马的攻击原理。 一.配置木马 一般来说一个设计成熟的木马都有木马配置程序,从具体的配置内容看,主要是为了实现以下两方 面功能: (1)木马伪装:木马配置程序为了在服务端尽可能的好的隐藏木马,会采用多种伪装手段,如修改图标 ,捆绑文件,定制端口,自我销毁等,我们将在“传播木马”这一节中详细介绍。 (2)信息反馈:木马配置程序将就信息反馈的方式或地址进行设置,如设置信息反馈的邮件地址,IRC号 ,ICO号等等
请高手解答!木马是什么?它有多少种?有什么办法去防预它?被木马入侵后有什么现象?
什么是木马?
特洛伊木马(以下简称木马),英文叫做“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条大神的评论