本文目录一览:
木马病毒怎么检测
首先进行全盘杀毒操作,确认是否有病毒。可以尝试网络在线杀毒。
如果无法杀毒,建议使用PE系统盘启动电脑,备份重要的数据后,对硬盘进行快速分区,重建主引导记录,彻底清除可能的病毒隐患,然后重新安装系统。
系统安装完成,记得安装杀毒软件,并升级病毒库,再对备份数据杀毒。
怎样鉴别木马病毒?
愿我的答案 能够解决您的烦忧
检测电脑是否中毒最好的办法自然就是用杀毒软件检测了
直接用杀毒软件扫描一下,就知道你电脑到底有没有中毒了
1,下载腾讯电脑管家“8.11”最新版
2,打开杀毒页面开始查杀,切记要打开小红伞引擎。如果普通查杀不能解决问题,您可以打开腾讯电脑管家---杀毒——全盘杀毒- 进行深度扫描。
3,查杀处理完所有病毒后,立刻重启电脑,再进行一次安全体检,清除多余系统缓存文件,避免二次感染。
如果您对我的答案不满意,可以继续追问或者提出宝贵意见,谢谢
我的笔记本电脑检测出了木马病毒,该怎么办?
现在我们来说防范木马的方法,就是把 windows\system\mshta.exe文件改名,
改成什么自己随便 (xp和win2000是在system32下)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\ 下为Active Setup controls创建一个基于CLSID的新键值 {6E449683_C509_11CF_AAFA_00AA00 B6015C},然后在新键值下创建一个REG_DWORD 类型的键Compatibility,并设定键值为0x00000400即可。
还有windows\command\debug.exe和windows\都给改个名字 (或者删除)
一些最新流行的木马 最有效果的防御~~
比如网络上流行 的木马 smss.exe 这个是其中一种木马的主体 潜伏在 98/winme/xp c:\windows目录下 2000 c:\winnt .....
假如你中了这个木马 首先我们用进程管理器结束 正在运行的木马smss.exe 然后在C:\windows 或 c:\winnt\目录下 创建一个假的 smss.exe 并设置为只读属性~ (2000/XP NTFS的磁盘格式 的话那就更好 可以用“安全设置” 设置为读取) 这样木马没了~ 以后也不会在感染了这个办法本人测试过对很多木马
都很有效果的
经过这样的修改后,我现在专门找别人发的木马网址去测试,实验结果是上了大概20个木马网站,有大概15个瑞星会报警,另外5个瑞星没有反映,而我的机器没有添加出来新的EXE文件,也没有新的进程出现,只不过有些木马的残骸留在了IE的临时文件夹里,他们没有被执行起来,没有危险性,所以建议大家经常清理 临时文件夹和IE
随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。
防治木马的危害,应该采取以下措施:
第一,安装杀毒软件和个人防火墙,并及时升级。
第二,把个人防火墙设置好安全等级,防止未知程序向外传送数据。
第三,可以考虑使用安全性比较好的浏览器和电子邮件客户端工具。
第四,如果使用IE浏览器,应该安装卡卡安全助手,防止恶意网站在自己电脑上安装不明软件和浏览器插件,以免被木马趁机侵入。
远程控制的木马有:冰河,灰鸽子,上兴,PCshare,网络神偷,FLUX等,现在通过线程插入技术的木马也有很多.现在的木马程序常常和和DLL文件息息相关,被很多人称之为“DLL木马”。DLL木马的最高境界是线程插入技术,线程插入技术指的是将自己的代码嵌入正在运行的进程中的技术。理论上说,在Windows中的每个进程都有自己的私有内存空间,别的进程是不允许对这个私有空间进行操作的,但是实际上,我们仍然可以利用种种方法进入并操作进程的私有内存,因此也就拥有了那个远程进程相当的权限。无论怎样,都是让木马的核心代码运行于别的进程的内存空间,这样不仅能很好地隐藏自己,也能更好地保护自己。
DLL不能独立运行,所以要想让木马跑起来,就需要一个EXE文件使用动态嵌入技术让DLL搭上其他正常进程的车,让被嵌入的进程调用这个DLL的 DllMain函数,激发木马运行,最后启动木马的EXE结束运行,木马启动完毕。启动DLL木马的EXE是个重要角色,它被称为Loader, Loader可以是多种多样的,Windows的Rundll32.exe也被一些DLL木马用来作为Loader,这种木马一般不带动态嵌入技术,它直接注入Rundll32进程运行,即使你杀了Rundll32进程,木马本体还是存在的。利用这种方法除了可以启动木马之外,不少应用程序也采用了这种启动方式,一个最常见的例子是“3721网络实名”。
“3721网络实名”就是通过Rundll32调用“网络实名”的DLL文件实现的。在一台安装了网络实名的计算机中运行注册表编辑器,依次展开 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”,发现一个名为“CnsMin”的启动项,其键值为“Rundll32 C:\WINDOWS\Downlo~1\CnsMin.dll,Rundll32”,CnsMin.dll是网络实名的DLL文件,这样就通过 Rundll32命令实现了网络实名的功能。
简单防御方法
DLL木马的查杀比一般病毒和木马的查杀要更加困难,建议用户经常看看系统的启动项中有没有多出莫名其妙的项目,这是DLL木马Loader可能存在的场所之一。如果用户有一定的编程知识和分析能力,还可以在Loader里查找DLL名称,或者从进程里看多挂接了什么陌生的DLL。对普通用户来说,最简单有效的方法还是用杀毒软件和防火墙来保护自己的计算机安全。现在有一些国外的防火墙软件会在DLL文件加载时提醒用户,比如Tiny、SSM等,这样我们就可以有效地防范恶意的DLL木马了。木马的防治方法1、禁用系统还原(Windows Me/XP)
如果您运行的是 Windows Me 或 Windows XP,建议您暂时关闭“系统还原”。此功能默认情况下是启用的,一旦计算机中的文件被破坏,Windows 可使用该功能将其还原。如果病毒、蠕虫或特洛伊木马感染了计算机,则系统还原功能会在该计算机上备份病毒、蠕虫或特洛伊木马。
Windows 禁止包括防病毒程序在内的外部程序修改系统还原。因此,防病毒程序或工具无法删除 System Restore 文件夹中的威胁。这样,系统还原就可能将受感染文件还原到计算机上,即使您已经清除了所有其他位置的受感染文件。
此外,病毒扫描可能还会检测到 System Restore 文件夹中的威胁,即使您已将该威胁删除。
注意:蠕虫移除干净后,请按照上述文章所述恢复系统还原的设置。
2、将计算机重启到安全模式或者 VGA 模式
关闭计算机,等待至少 30 秒钟后重新启动到安全模式或者 VGA 模式
Windows 95/98/Me/2000/XP 用户:将计算机重启到安全模式。所有 Windows 32-bit 作系统,除了Windows NT,可以被重启到安全模式。更多信息请参阅文档 如何以安全模式启动计算机 。
Windows NT 4 用户:将计算机重启到 VGA 模式。
扫描和删除受感染文件启动防病毒程序,并确保已将其配置为扫描所有文件。运行完整的系统扫描。如果检测到任何文件被 Download.Trojan 感染,请单击“删除”。如有必要,清除 Internet Explorer 历史和文件。如果该程序是在 Temporary Internet Files 文件夹中的压缩文件内检测到的,请执行以下步骤:
启动 Internet Explorer。单击“工具”“Internet 选项”。单击“常规”选项卡“Internet 临时文件”部分中,单击“删除文件”,然后在出现提示后单击“确定”。在“历史”部分,单击“清除历史”,然后在出现提示后单击“是”。
[1]木马病毒专杀工具
远程控制的木马有:冰河(国人的骄傲,中国第一款木马),灰鸽子,上兴,PCshare,网络神偷,FLUX等,现在通过线程插入技术的木马也有很多,大家自己找找吧
反木马病毒
木马专杀工具
木马防线 2005 V4.16
木马分析专家 2005 V6.57
木马克星(iparmor) V5.47
病毒.流行木马.盗号软件统杀工具
木马专杀大师 V2.6
木马专家 2005 0102
Windows木马清道夫
木马分析专家个人防火墙排查出电脑的木马1、集成到程序中
由于用户一般不会主动程序,而种木马者为了吸引用户运行,他们会将木马文件和其它应用程序进行捆绑,用户看到的只是正常的程序。但是你一旦运行之后,不仅该正常的程序运行,而且捆绑在一起的木马程序也会在后台偷偷运行。
这种隐藏在其它应用程序之中的木马危害比较大,而且不容易发现。如果捆绑到系统文件中,那么则会随Windows启动而运行。不过只要我们安装个人防火墙或者启用Windows XP SP2中的Windows防火墙,那么在木马服务端试图连接种木马的客户端时,则会询问是否放行,据此即可判断出自己有无中木马。
2、隐藏在媒体文件中
这种类型严格上说,用户还没有中木马。不过它的危害容易被人忽略。因为大家对影音文件的警惕性不高。它的常用手段是在媒体文件中插入一段代码,代码中包含了一个网址,当播放到指定时间时即会自动访问该网址,而该网址所指页面的内容却是一些网页木马或其它危害。
因此,当我们在播放网上下载的影片时,如果发现突然打开了窗口,那么切不可好奇而应将其立即关闭,然后跳过该时间段影片的播放。
3、隐藏在System.ini
4、隐藏在Win.ini
与System.ini相似,Win.ini中也是木马喜欢加载的一个地方。对此我们可以打开系统目录下的Win.ini文件,然后查看[Windows]区域“load=”和“run=”,正常情况下它们后面应该是空白,如果你发现它们后面加了某个程序,那么加载的程序则可能是木马,需要将它们删除。
5、隐藏在Autoexec.bat
在C盘根目录下有一个Autoexec.bat文件,这里的内容将会在系统启动时自动运行。与该文件类似的还有Config.sys。因为它自动运行,因此也成为木马的一个藏身之地。对此我们同样需要打开这两个文件,检查里面是否加载了来历不明的程序在运行。
6、任务管理器
部分木马运行后我们可以在任务管理器中找出它的踪迹。在任务栏上右击,在弹出的菜单中选择“任务管理器”,将打开的窗口切换到“进程”标签,在这里查看有没有占用较多资源的进程,有没有不熟悉的进程。若有,可以先试着将它们关闭。另外要特别注意Explorer.exe这类进程,因为很多木马会使用Exp1orer.exe进程名,即把l换成1,用户不仔细查看,还以为是系统进程呢。
7、启动
在Windows XP中,我们可以运行“msconfig”,将打开的窗口切换到“启动”标签,在这里可以看到所有启动加载的项目,此时就可以根据“命令”和“位置”来判断是启动加载的是否为木马。如果判断为木马则可以将其启动取消,然后再作进一步的处理。
8、注册表
我们程序的运行控制大多是由注册表控制的,因此我们有必要对注册表进行检查。运行“regedit”打开注册表编辑器,然后依次检查如下区域:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion、
HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion,看看这三个区域下所有以“run”开头的键值,如果键值的内容指向一些隐藏的文件或自己从未安装过的程序,那么这些则很可能是木马了。
木马之所以能够为非作歹,正是因为其善于隐藏自己。不过我们掌握了其藏身之处,那么则可以将其一一清除。当然,木马在实际的伪装隐藏自己中,可能会综合使用上面一种或几种方法来伪装,这就需要我们在检查清除时,不能只检查其中的部分地点。新人快速上手指南之电脑木马查杀大全 常在河边走,哪有不湿脚?所以有时候上网时间长了,很有可能被攻击者在电脑中种了木马。如何来知道电脑有没有被装了木马呢?
一、手工方法:
1、检查网络连接情况
由于不少木马会主动侦听端口,或者会连接特定的IP和端口,所以我们可以在没有正常程序连接网络的情况下,通过检查网络连情情况来发现木马的存在。具体的步骤是点击“开始”-“运行”-“cmd”,然后输入netstat -an这个命令能看到所有和自己电脑建立连接的IP以及自己电脑侦听的端口,它包含四个部分——proto(连接方式)、local address(本地连接地址)、foreign address(和本地建立连接的地址)、state(当前端口状态)。通过这个命令的详细信息,我们就可以完全监控电脑的网络连接情况。
2、查看目前运行的服务
服务是很多木马用来保持自己在系统中永远能处于运行状态的方法之一。我们可以通过点击“开始”-“运行”-“cmd”,然后输入“net start”来查看系统中究竟有什么服务在开启,如果发现了不是自己开放的服务,我们可以进入“服务”管理工具中的“服务”,找到相应的服务,停止并禁用它。
3、检查系统启动项
由于注册表对于普通用户来说比较复杂,木马常常喜欢隐藏在这里。检查注册表启动项的方法如下:点击“开始”-“运行”-“regedit”,然后检查HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值;HKEY-USERS\.Default\Software\Microsoft\Windows\CurrentVersion下所有以“run”开头的键值。
Windows安装目录下的System.ini也是木马喜欢隐蔽的地方。打开这个文件看看,在该文件的[boot]字段中,是不是有shell=Explorer.exe file.exe这样的内容,如有这样的内容,那这里的file.exe就是木马程序了!
4、检查系统帐户
恶意的攻击者喜在电脑中留有一个账户的方法来控制你的计算机。他们采用的方法就是激活一个系统中的默认账户,但这个账户却很少用的,然后把这个账户的权限提升为管理员权限,这个帐户将是系统中最大的安全隐患。恶意的攻击者可以通过这个账户任意地控制你的计算机。针对这种情况,可以用以下方法对账户进行检测。
点击“开始”-“运行”-“cmd”,然后在命令行下输入net user,查看计算机上有些什么用户,然后再使用“net user 用户名”查看这个用户是属于什么权限的,一般除了Administrator是administrators组的,其他都不应该属于administrators组,如果你发现一个系统内置的用户是属于administrators组的,那几乎可以肯定你被入侵了。快使用“net user用户名/del”来删掉这个用户吧!
如果检查出有木马的存在,可以按以后步骤进行杀木马的工作。
1、运行任务管理器,杀掉木马进程。
2、检查注册表中RUN、RUNSERVEICE等几项,先备份,记下可以启动项的地址, 再将可疑的删除。
3、删除上述可疑键在硬盘中的执行文件。
4、一般这种文件都在WINNT,SYSTEM,SYSTEM32这样的文件夹下,他们一般不会单独存在,很可能是有某个母文件复制过来的,检查C、D、E等盘下有没有可疑的.exe,.com或.bat文件,有则删除之。
5、检查注册表HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main中的几项(如Local Page),如果被修改了,改回来就可以。
6、检查HKEY_CLASSES_ROOT\txtfile\shell\open\command和 HKEY_CLASSES_ROOTxtfileshellopencommand等等几个常用文件类型的默认打开程序是否被更改。这个一定要改回来。很多病毒就是通过修改.txt文件的默认打开程序让病毒在用户打开文本文件时加载的。
二、利用工具:
查杀木马的工具有LockDown、The Clean、木马克星、金山木马专杀、木马清除大师、木马分析专家等,其中有些工具,如果想使用全部功能,需要付一定的费用,木马分析专家是免费授权使用。修改注册表增强系统对木马病毒的防御通常木马病毒是通过注册表来启动服务的,所以注册表对于系统防御病毒有着比较重要的意义。按照理论上来说,我们可以通过修改注册表的属性来预防病毒和木马,实际上亦可行,具体的实施方法如下:
Windows2000/XP/2003的注册表是可以设置权限的,只是我们比较少用到。设置以下注册表键的权限:
1、设置注册表自启动项为everyone只读(Run、RunOnce、RunService),防止木马、病毒通过自启动项目启动
2、设置.txt、.com、.exe、.inf、.ini、.bat等等文件关联为everyone只读,防止木马、病毒通过文件关联启动
3、设置注册表HKLM\SYSTEM\CurrentControlSet\Services为everyone只读,防止木马、病毒以"服务"方式启动
注册表键的权限设置可以通过以下方式实现:
1、如果在域环境里,可能通过活动目录的组策略实现的
2、本地计算机的组策略来(命令行用gpedit.msc)
3、手工操作可以通过regedt32(Windows2000系统,在菜单“安全”下的“权限”)或regedit(Windows2003/XP,在“编辑”菜单下的“权限”)
如果只有users组权限,以上键值默认是只读的,就可以不用这么麻烦了。 [3]
什么是木马??怎样检测木马??机器中了木马会怎样??
什么是木马?
特洛伊木马(以下简称木马),英文叫做“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