本文目录一览:
我的电脑中了特洛伊木马,谁能教我查杀?
网上用户特别需要小心的就是特络绎木马,大多木马程序,都是一个执行文件,当被用户执行后,会带来一些恶性后果。比如我收到的一个求救MAIL是这样的,某个网友在3月5收到一个名为leifeng.exe的程序(真实卑劣之极),他就运行了,果死机,而后软盘硬盘都不能启动了,其实,这个木马程序就是利 用高版本DOS启动中要读取分区信息的特性,制造分区表循环,使
系统在启动过程中死机。除了这种直接破坏性的木马程序外,有很多木马程序是隐藏在你机器中,使你的机器可以被他人远程控制。 这种远程控制程序可以被称为后门工具,它一般都采用SERVER/CLIENT的模式,SERVER端在你机器上运行,因此大家不必害怕,一般的说,如果你没有开放可以写的共享目录,它不会自己跑到你的机器上,同时如果不运行它的SERVER端,对方也无法控
制你。即使你的机器已经在它控制之下,但是你还是能发现一些蛛丝马迹,首先,既然要控制你的机器,一般要能够伴随开机运行。主要实现的方式有在WIN.INI的load和run选项中加载,在启动组中加载,和在注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion项下五个RUN开头的项目中加载,都可以起到开机运行的作用。正常情况下,在95/98系统的win.ini的load
选项不应该有任何东西,而注册表上述选项下可能有一些需要开机运行的程序和系统一些进程,比如intenent、systray、taskmon、以及用户安全的在线查毒工具、系统在线维护和优化工具等,也会在此处。当然,用自身替代这些程序运行,自己加载完毕后再把正常程序运行,或者干脆如病毒般的附身在某个系统的驱动或者应用程序上,更为隐蔽,后门工具的编制者们决不会想不到,但很少有人采用,我认为这其实更出于某种黑客式的道德因素。Autoexe.bat下的东东当然也会随开机运行,但目前还没有关于加载到atuoexec.bat中的后门工具的报道,因为先于9X系统的驱动和GUI进入系统,毕竟做起来不舒服。你可以对这几处加以检查,win.ini可以用任何编辑器查看,检查注册表可以在运行中执行regedit,查看上面提到的位置,如果你对此不是很了解,对98系统你可以通过MSCONFIG命令加以检查,这个工具显示你的常规信息和config.sys、atuoexec.bat、win.ini、system.ini和开机启动选项。其次,既然也是一个程序,就要作为一个进程存在,这意味着你可以用进程查看工具发现它的存在,有的你甚至用ctrl+alt+del激活的窗口中就能发现。最后,既然是要与你进行通讯就一定要有一定的通讯方式,通讯时要开放一些port。你可以用netstat -an命令进行观察,这个命令可以查看你当前所有的网络连接和开放端口,包括WWW、FTP、telnet等等,当然也可能发现后门工具的存在。因为一般的说,一个后门工具要通过TCP或者UDP的方式借助一个或多个PORT同clent端连接,因此,如果通讯正在进行,你一般还可以在Foreign Address处看到入侵者的IP。当然,这项操作最好是你断开其他网络连接后,因为从一堆连接中猜测哪个可能是可疑的也不见得很方便,最好是你对一些常见黑客工具的PORT有所警惕,比如netbus,它的port是12345,如果你用netstat -an 发现其中包含如下信息。
C:\netstat -an
Active Connections
Proto Local Address Foreign Address State
… … …
TCP 0.0.0.0:12345 0.0.0.0:0 LISTENING
TCP 0.0.0.0:12346 0.0.0.0:0 LISTENING
… … …
则说明你的机器已经运行了netbus的server端,但目前没有人遥控你的机器,如果netbus连接对应的Foreign Address处有一个地址,那么这个IP就是控制你的人的地址。其实我倾向于普通用户借助工具,来检查处理感染后门程序,但就我用十一种比较常见的木马程序对常见杀毒软件进行测试,发现没有一种可以全部发现,他们的表现甚至不如共享的专门清除后门工具的共享软件,因此还有必要介绍几种共享、清除实例和一些常见的后门工具,加强用户的自救意识。
LOCKDOWN:LOCKDOWN是一个个人防火墙性质的软件,他会以在线方式,监控你的网络连接,记录访问和入侵者的IP、主机名等信息,也可以清除BO、NETBUS等木马程序。
CLEANER:这是一个专门用来清除黑客程序的工具,据说能清除上千种木马,只能静态扫描。
SUDO99:搜毒99是由上海程序员陶辰制作的一个很出色的共享杀毒软件,特别一提的是其在清除BO时,会全面告知你Boserver端的设定信息,如端口、密码等等。
下面举一个发现清除特络绎木马的例子,为了给大家一个新鲜感,我举一个不太常见的木马happypig,它的标本是的站长小鲤提供给本人的。假定,我误运行了happypig.exe,此时屏幕出现了一只小猪,这时怎么办,是不是欣赏一下。我给网友最根本的忠告是,对网上的外来程序(也包括.doc、.exl),即使通过了你反病毒软件的检查也不要运行。如果一旦误运行了,要果断处理,比如发现运行后硬盘狂转,有可能是该程序开始破坏你的硬盘,你要马上关机,可能还有的补救。如果运行后毫无反映、或程序自身消失、或屏幕上出现一些好看的信息,这可能是某个黑客工具,你需要做的应该是马上断线,进行检查。好了,我看到屏幕的小猪,马上断线。用NETSTART命令检查一下,发现开放着一个44445端口,检查autoexec.bat和win.ini都没发现什么,注册表呢?也没看见什么呀。仔细看看HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersio
n\下,哦? Run下有个systray, RunServices下怎么还有一个,原来RunServices下的那个是happypig添加的主键,对应的程序名称是5ystray.exe,真狡猾,因为从注册表的字体看起来,5和S非常相象。好了,把这个主键删除,此时系统目录下的5ystray.exe因被系统占用,删除不掉,须重新启动,这是又发生问题,老说因进程无法终止不能关机,按crtl+alt+del一下,果然有个进程叫5ystray,把他结束任务就可以了。重启动后,把对应程序删除就可以了。
以上举了一个分析清除后门工具的例子,还要再强调几点,第一、就是不要过分敏感、疑神疑鬼,比如一般情况下,比如只要你装了microsoft网络的文件和打印机共享,你的139、138、137等端口就是开放的,并不是黑客工具开的。你的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RUNXX中,有很多的正常工具和进程,也不要乱改乱删。第二、就是要谨慎小心。不能过分敏感当然也不能麻木,如果机器表现异常,是否中了后门工具的标,也是考虑因素之一。再次提醒的是千万不要运行一些来历不明的程序,即使来自熟人,比如你的朋友的机器感染了HAPPY99,他向你发送邮件时,HAPPY99就会自己加在附件当中,而你的朋友一无所知。无论病毒还是后门,大家切记一个原则是,与其感染了再杀,不如不感染,特别是你的机器一旦被他人侵入过,他就可能埋下一些新后门,使你防不胜防。
计算机中病毒或木马时,常见的主要症状有哪些?
计算机感染了病毒后的症状很多,其中以下10种最为常见:
(1)计算机系统运行速度明显减慢;
(2)经常无缘无故地死机或重新启动;
(3)丢失文件或文件损坏;
(4)打开某网页后弹出大量对话框;
(5)文件无法正确读取、复制或打开;
(6)以前能正常运行的软件经常发生内存不足的错误,甚至死机;
(7)出现异常对话框,要求用户输入密码;
(8)显示器屏幕出现花屏、奇怪的信息或图像;
(9)浏览器自动链接到一些陌生的网站;
(10)鼠标或键盘不受控制等。
木马(Trojan),也称木马病毒,是指通过特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:一个是控制端,另一个是被控制端。木马这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的特洛伊木马本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。“木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种主机的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种主机。木马病毒的产生严重危害着现代网络的安全运行。
什么是病毒,什么是木马,病毒与木马有什么区别!!
什么是木马?
特洛伊木马(以下简称木马),英文叫做“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,可是对新手来说……总之就是比较难啊比较难,所以,最简单的方法:杀毒软件和防火墙(不是万能药,切忌长期服用)。
;ct=17pn=0tn=ikaslistrn=10
简述特洛伊木马的特点及平时防范习惯?
RFC1244(Request for Comments:1244)中是这样描述木马的:“木马程序是一种程序,它能提供一些有用的,或是仅仅令人感兴趣的功能。但是它还有用户所不知道的其他功能,例如在你不了解的情况下拷贝文件或窃取你的密码。”随着互联网的迅速发展,木马的攻击、危害性越来越大。木马实质上是一个程序,必须运行后才能工作,所以会在进程表、注册表中留下蛛丝马迹,我们可以通过“查、堵、杀”将它“缉拿归案”。
查
1.检查系统进程
大部分木马运行后会显示在进程管理器中,所以对系统进程列表进行分析和过滤,可以发现可疑程序。特别是利用与正常进程的CPU资源占用率和句柄数的比较,发现异常现象。
2.检查注册表、ini文件和服务
木马为了能够在开机后自动运行,往往在注册表如下选项中添加注册表项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
木马亦可在Win.ini和System.ini的“run=”、“load=”、“shell=”后面加载,如果在这些选项后面加载程序是你不认识的,就有可能是木马。木马最惯用的伎俩就是把“Explorer”变成自己的程序名,只需稍稍改“Explorer”的字母“l”改为数字“1”,或者把其中的“o”改为数字“0”,这些改变如果不仔细观察是很难被发现。
在Windwos NT/2000中,木马会将自己作为服务添加到系统中,甚至随机替换系统没有启动的服务程序来实现自动加载,检测时要对操作系统的常规服务有所了解。
3.检查开放端口
远程控制型木马以及输出Shell型的木马,大都会在系统中监听某个端口,接收从控制端发来的命令,并执行。通过检查系统上开启的一些“奇怪”的端口,从而发现木马的踪迹。在命令行中输入Netstat na,可以清楚地看到系统打开的端口和连接。也可从下载Fport软件,运行该软件后,可以知道打开端口的进程名,进程号和程序的路径,这样为查找“木马”提供了方便之门。
4.监视网络通讯
对于一些利用ICMP数据通讯的木马,被控端没有打开任何监听端口,无需反向连接,不会建立连接,采用第三种方法检查开放端口的方法就行不通。可以关闭所有网络行为的进程,然后打开Sniffer软件进行监听,如此时仍有大量的数据,则基本可以确定后台正运行着木马。
堵
1.堵住控制通路
如果你的网络连接处于禁用状态后或取消拨号连接,反复启动、打开窗口等不正常现象消失,那么可以判断你的电脑中了木马。通过禁用网络连接或拔掉网线,就可以完全避免远端计算机通过网络对你的控制。当然,亦可以通过防火墙关闭或过滤UDP、TCP、ICMP端口。
2.杀掉可疑进程
如通过Pslist查看可疑进程,用Pskill杀掉可疑进程后,如果计算机正常,说明这个可疑进程通过网络被远端控制,从而使计算机不正常。
杀
1.手工删除
对于一些可疑文件,不能立即删除,有可能由于误删系统文件而使计算机不能正常工作。首先备份可疑文件和注册表,接着用Ultraedit32编辑器查看文件首部信息,通过可疑文件里面的明文字符对木马有一个大致了解。当然高手们还可以通过W32Dasm等专用反编译软件对可疑文件进行静态分析,查看文件的导入函数列表和数据段部分,初步了解程序的主要功能。最后,删除木马文件及注册表中的键值。
2.软件杀毒
由于木马编写技术的不断进步,很多木马有了自我保护机制。普通用户最好通过专业的杀毒软件如瑞星杀毒软件进行杀毒,对于杀毒软件,一定要及时更新,并通过病毒公告及时了解新木马的预防和查杀绝技,或者通过下载专用的杀毒软件进行杀毒(如近期的冲击波病毒各大公司都开发了查杀工具)。