下面是小编整理的Windows通用四招对付捆绑木马WEB安全,本文共7篇,欢迎大家阅读分享借鉴,欢迎大家分享。

篇1:Windows通用四招对付捆绑木马WEB安全
现在的牧“马”者是越来越狡猾,他们常用文件捆绑的方法,将木马捆绑到图像、纯文本等常见的文件中,然后通过QQ、Email或MSN等将这些文件传送给受害者,而一旦不慎打开这些文件,你就“中招”了(当然是木马了),那对付这些捆绑木马有哪些通用规则值得我们平时注意的?
现在的牧“马”者是越来越狡猾,他们常用文件捆绑的方法,将木马捆绑到图像、纯文本等常见的文件中,然后通过QQ、Email或MSN等将这些文件传送给受害者,而一旦不慎打开这些文件,你就“中招”了(当然是木马了)。那对付这些捆绑木马有哪些通用规则值得我们平时注意的?
第一招:常用杀毒软件
这是最安全、最经典的防御方法了,特别是对通过QQ、MSN等即时通讯工具传送过来的文件,在打开他们之前一定要用杀毒软件查毒。对于一些常见的木马,只要升级到最新
图1
在MSN Messenger中,选择“工具→选项”,再单击“消息”标签,在“文件传输”下,选中“使用下列程序进行病毒扫描”复选框,然后选择相应的杀毒程序,可以让MSN对传输的文件自动杀毒(如图2)。
第二招:显示文件全名
其实很多牧“马”者是利用Windows默认的“隐藏已知类型文件扩展名”,比如把木马捆绑到一幅JPG图片中,当你双击打开这个文件时,的确实是一幅JPG图片,而木马却在后台偷偷的运行了。解决方法:打开“我的电脑”,单击“工具→文件夹选项”,单击“查看”,去除“隐藏已知类型文件扩展名”前的小钩(如图4),
这样如果碰到类似a.jpg.exe的文件就可以看到它的真面目,并格外小心了。
图3
图4
第三招:善用进程监视
如上所述,被捆绑木马是当我们打开一个文件的时候,它就在后台运行,比如说在打开一个图像文件的时候,除了看图程序外还应该有一个进程在运行。这样我们在打开这类文件时,先用Ctrl+Alt+Del调出系统当前的进程列表并记下,打开文件后迅速切换到任务管理器窗口查看,多出的那个进程就是被释放出来的木马了。
小提示
有些木马程序非常的小巧,它的安装过程也是一晃而过,所以切换到任务管理器速度也要快。也可让任务管理器常驻内存,请参考本期系统一句话技巧中的《隐藏运行任务管理器》。
第四招:专业工具协助
Fearless Bound File Detector就是一款专门用于探测是否捆绑文件的软件,运行程序后,将需要检测的文件拖到窗口中,然后单击“扫描文件”按钮即可。如果正常,程序提示“没发现任何东西,文件显然清洁的”,如果是捆绑文件,程序则给出“发现 4E007h 额外的字节,开始补偿于 C600h”的提示,如图5所示。
图5
小提示
如果用它清洁被捆绑文件,剩下的只是捆绑的头文件了,而且大小均为57.5KB,会破坏原来的文件,所以如果觉得被捆绑文件对你有用,切勿采取清洁文件的方法,但可以用程序来检测是否捆绑其他文件。
篇2:RootKit木马的亲密接触WEB安全
前一段时间Sony的CD反盗版保护RootKit被Sysinternals的Mark揭露后,在网上吵的沸沸扬扬,国外杀毒厂商也说 已利用了Sony的Rookit漏洞,本人前几天在一朋友的机器上发现了一个类似的木马,现把此木马的发现和删除过程与大家分享,木马技术也发展到了驱动级,希望大家提高防范意识,现在的网络真的是太不安全了。
我的安全意识还是比较强的,使用别人机器上网前都会用procexp(www.sysinternals.com/Files/ProcessExplorerNt.zip)查看一下有没有可疑的进程,用Autoruns(www.sysinternals.com/Files/Autoruns.zip)查看有没有可疑的启动项,检查未发现异常,开始上网,上了一会,关闭IE,准备关机。不经意间在防火墙网络访问信息中发现有iexplorer.exe访问网络,并且一会又消失了,因为我已经关闭了所有的IE窗口,所以这引起了我得注意。我马上打开procexp查看,但我并未发现那个iexplorer.exe,难道是防火墙误报,我下载了一个TcpView(www.sysinternals.com/Files/TcpView.zip),果然看到一个在进程列表中不存在的IE进程不停的访问网络。
如图:
这时我确定机器肯定中了木马,那个木马又是怎么启动的呢,我打开Autoruns仔细查找启动项,但找不到。此时我确认机器中了一个比较难缠的木马,我下载了RootkitRevealer(www.sysinternals.com/Files/RootkitRevealer.zip) 进行查找,果然不出所料,机器上有几个注册表隐藏项,和文件隐藏项
如图:
到问题所在就好办了,打开IceSword (xfocus.net/tools/09/IceSword_en1.12.rar),马上看到了那个IE进程
如图:
驱动注册表隐藏项,如图:
文件隐藏项,若图:
删除驱动文件,重启计算机,病毒进程立即现身,如图:
RootkitRevealer还报RPCSS服务的注册表一项被隐藏,因为驱动已经删除,再此打开注册表,木马更改的项马上现身了,若图:
将Rpcss服务的注册表项改回初始值,如图,重启问题搞定
总结:此木马为驱动级木马,底层勾了ntoskrnl.exe导出函数,实现进程隐藏,文件隐藏,
zwvmlmtz.dll:替换Rpcss服务的DLL,实现自启动功能(Rpcss服务是系统重要服务),调用驱动。
zwvmlmtz.sys:挂接系统函数,隐藏自己的注册表项,隐藏Rpcss改动的注册表项(通过regedit查询到的值不准确),隐藏文件,把自己伪装为IE进程(防火墙一般默认IE进程访问网络自动放行的)。
zwvmlmtz.d1l:木马作者真正用意所在模块。
补充1:若只删除问题文件,不把rpcss服务的DLL改回初始值会导致Rpcss服务无法启动的。
补充2:木马作者也许没有在XP系统测试,此木马在XP系统驱动无法加载,rpcss替换DLL也有问题。本文中计算机系统为win2K。
篇3:aspx木马安全设置与防御WEB安全
1、aspx 木马文件可以在asp.net空间中实现读取进程、iis信息、跨站、执行cmd命令,
解决方法
1、对于每个网站建立一个用户、并将用户放入guest组,给站点写入、读取的权限。并在iis上允许匿名访问。
2、
将以上代码复制到C:WINDOWSMicrosoft.NETFrameworkv2.0.50727CONFIG web.config 中
的以下地方:即可实现禁止跨站、禁止读取iis信息、禁止cmd命令执行,
3、asp.net1.1 在machine.config 中搜索 代码作用:模拟匿名帐户来运行网站程序。 此法可以禁止跨目录、读取iis站点信息,禁止执行cmd。
篇4:如何应对针对网游的 木马WEB安全
今年的网络游戏可谓是一枝独秀,人气旺盛,网络游戏已经成为很多人另外一个生活的世界,网络游戏中的很多装备甚至级别高的账号本身也成为了玩家的财产,在现实世界中用现金来进行交易。于是,在这样的诱惑下, 已经开始瞄上了网络游戏。
近日,某公司截获了首例能感染网络游戏的木马病毒,该病毒专门针对国内第二大 类网络游戏:“边锋”游戏。该病毒通过电子邮件进行传播,如果“边锋”游戏的用户收到了病毒邮件,并打开附件,就感染了该木马病毒。
据介绍:用户感染了这种木马病毒后,不仅会将自己的用户名、密码外泄,而且在游戏中辛辛苦苦赚来的虚拟货币也将被他人窃取;该木马同时还会将中招的电脑共享到互联网上,被 远程控制。目前这种木马还没有进行广泛传播,但是,已经有很多恶意的玩家已经在利用这种木马盗取别人的账号了,请“边锋”游戏的玩家慎重对待别人发送的电子邮件。
业内人士分析,随着网络游戏用户不断增多,针对网络游戏的病毒与 行为也会越来越多,广大游戏玩家一定要提高警惕,并随时升级您的病毒库!
该木马的病毒名称为:Trojan.Benfgame.214310,如果您没有安装杀毒软件,而怀疑自己中了此种木马病毒,可以进行手工清除:
(1)先打开注册表编辑器;
(2)编辑注册表,恢复注册表中被病毒程序修改的文件关联,并记住被修改的默认关联(病毒程序的名字),
如exe文件的默认关联为“%1”%*,chm文件的默认关联为hh“%1”,txt文件的默认关联为Notepad %1,scr文件的默认关联为“%1” /S;
(3)然后打开进程管理器,用进程管理器关掉正在运行的病毒程序(被修改的默认关联病毒程序和MSCVT2.EXE);
(4)编辑注册表中的HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun,找到键值MSBenCheck,并将其删除;
(5)删除掉病毒生成的文件,但不要删除系统目录下的那个控件Mswinsck.ocx;
(6)修改Windows目录下的win.ini文件,删除[windows]栏中“run=C:WINDOWSMSCVT2.EXE”。
篇5:Windows Server服务器安全配置WEB安全
一、先关闭不需要的端口
我比较小心,先关了端口,只开了3389、21、80、1433,有些人一直说什么默认的3389不安全,对此我不否认,但是利用的途径也只能一个一个的穷举爆破,你把帐号改了密码设置为十五六位,我估计他要破上好几年,哈哈!办法:本地连接--属性--Internet协议(TCP/IP)--高级--选项--TCP/IP筛选--属性--把勾打上,然后添加你需要的端口即可。PS一句:设置完端口需要重新启动!
当然大家也可以更改远程连接端口方法:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE SYSTEM Current ControlSet Control Terminal ServerWinStationsRDP-Tcp]
“PortNumber”=dword:00002683
保存为.REG文件双击即可!更改为9859,当然大家也可以换别的端口,直接打开以上注册表的地址,把值改为十进制的输入你想要的端口即可!重启生效!
还有一点,在2003系统里,用TCP/IP筛选里的端口过滤功能,使用FTP服务器的时候,只开放21端口,在进行FTP传输的时候,FTP 特有的Port模式和Passive模式,在进行数据传输的时候,需要动态的打开高端口,所以在使用TCP/IP过滤的情况下,经常会出现连接上后无法列出目录和数据传输的问题。所以在2003系统上增加的Windows连接防火墙能很好的解决这个问题,不推荐使用网卡的TCP/IP过滤功能。
做FTP下载的用户看仔细,如果要关闭不必要的端口,在system32driversetcservices中有列表,记事本就可以打开的。如果懒的话,最简单的方法是启用WIN2003的自身带的网络防火墙,并进行端口的改变。功能还可以!
Internet 连接防火墙可以有效地拦截对Windows 2003服务器的非法入侵,防止非法远程主机对服务器的扫描,提高Windows 2003服务器的安全性。同时,也可以有效拦截利用操作系统漏洞进行端口攻击的病毒,如冲击波等蠕虫病毒。如果在用Windows 2003构造的虚拟路由器上启用此防火墙功能,能够对整个内部网络起到很好的保护作用。
二.关闭不需要的服务 打开相应的审核策略
我关闭了以下的服务
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Distributed File System: 局域网管理共享文件,不需要禁用
Distributed linktracking client:用于局域网更新连接信息,不需要禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,不需要可禁用
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
Workstation关闭的话远程NET命令列不出用户组
把不必要的服务都禁止掉,尽管这些不一定能被攻击者利用得上,但是按照安全规则和标准上来说,多余的东西就没必要开启,减少一份隐患。
在“网络连接”里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--“NetBIOS”设置“禁用tcp/IP上的NetBIOS(S)”。在高级选项里,使用“Internet连接防火墙”,这是windows 2003 自带的防火墙,在系统里没有的功能,虽然没什么功能,但可以屏蔽端口,这样已经基本达到了一个IPSec的功能。
在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。
推荐的要审核的项目是:
登录事件
账户登录事件
系统事件
策略更改
对象访问
目录服务访问
特权使用
三、关闭默认共享的空连接
地球人都知道,我就不多说了!
四、磁盘权限设置
C盘只给administrators和system权限,其他的权限不给,其他的盘也可以这样设置,这里给的system权限也不一定需要给,只是由于某些第三方应用程序是以服务形式启动的,需要加上这个用户,否则造成启动不了。
Windows目录要加上给users的默认权限,否则ASP和ASPX等应用程序就无法运行。以前有朋友单独设置Instsrv和temp等目录权限,其实没有这个必要的。
另外在c:/Documents and Settings/这里相当重要,后面的目录里的权限根本不会继承从前的设置,如果仅仅只是设置了C盘给administrators权限,而在All Users/Application Data目录下会 出现everyone用户有完全控制权限,这样入侵这可以跳转到这个目录,写入脚本或只文件,再结合其他漏洞来提升权限;譬如利用serv-u的本地溢出提升权限,或系统遗漏有补丁,数据库的弱点,甚至社会工程学等等N多方法,从前不是有牛人发飑说:“只要给我一个webshell,我就能拿到system”,这也的确是有可能的。在用做web/ftp服务器的系统里,建议是将这些目录都设置的锁死。其他每个盘的目录都按照这样设置,每个盘都只给adinistrators权限。
另外,还将:
net.exe NET命令
cmd.exe CMD 懂电脑的都知道咯~
tftp.exe
netstat.exe
regedit.exe 注册表啦 大家都知道
at.exe
attrib.exe
cacls.exe ACL用户组权限设置,此命令可以在NTFS下设置任何文件夹的任何权限!偶入侵的时候没少用这个....(:
format.exe 不说了,大家都知道是做嘛的
大家都知道ASP木马吧,有个CMD运行这个的,这些如果都可以在CMD下运行..55,,估计别的没啥,format下估计就哭料~~~(:这些文件都设置只允许administrator访问,
五、防火墙、杀毒软件的安装
关于这个东西的安装其实我也说不来,反正安装什么的都有,建议使用卡巴,卖咖啡。用系统自带的防火墙,这个我不专业,不说了!大家凑合!
六、SQL2000 SERV-U FTP安全设置
SQL安全方面
1、System Administrators 角色最好不要超过两个
2、如果是在本机最好将身份验证配置为Win登陆
3、不要使用Sa账户,为其配置一个超级复杂的密码
4、删除以下的扩展存储过程格式为:
use master
sp_dropextendedproc '扩展存储过程名'
xp_cmdshell:是进入操作系统的最佳捷径,删除
访问注册表的存储过程,删除
Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvalues
Xp_regread Xp_regwrite Xp_regremovemultistring
OLE自动存储过程,不需要,删除
Sp_OACreate Sp_OADestroySp_OAGetErrorInfoSp_OAGetProperty
Sp_OAMethodSp_OASetPropertySp_OAStop
5、隐藏 SQL Server、更改默认的1433端口。
右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。
serv-u的几点常规安全需要设置下:
选中“Block ”FTP_bounce“attack and FXP”。什么是FXP呢?通常,当使用FTP协议进行文件传输时,客户端首先向FTP服务器发出一个“PORT”命令,该命令中包含此用户的IP地址和将被用来进行数据传输的端口号,服务器收到后,利用命令所提供的用户地址信息建立与用户的连接。大多数情况下,上述过程不会出现任何问题,但当客户端是一名恶意用户时,可能会通过在PORT命令中加入特定的地址信息,使FTP服务器与其它非客户端的机器建立连接。虽然这名恶意用户可能本身无权直接访问某一特定机器,但是如果FTP服务器有权访问该机器的话,那么恶意用户就可以通过FTP服务器作为中介,仍然能够最终实现与目标服务器的连接。这就是FXP,也称跨服务器攻击。选中后就可以防止发生此种情况。
七、IIS安全设置
IIS的安全:
1、不使用默认的Web站点,如果使用也要将IIS目录与系统磁盘分开。
2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。
3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。
4、删除不必要的IIS扩展名映射。
右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml、.shtm、 .stm。
5、更改IIS日志的路径
右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性
6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。
八、其它
1、系统升级、打操作系统补丁,尤其是IIS 6.0补丁、SQL SP3a补丁,甚至IE 6.0补丁也要打。同时及时跟踪最新漏洞补丁;
2、停掉Guest 帐号、并给guest 加一个异常复杂的密码,把Administrator改名或伪装!
3、隐藏重要文件/目录
可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows Current-VersionExplorerAdvancedFolderHi-ddenSHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0。
4、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。
5、防止SYN洪水攻击。
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新建DWORD值,名为SynAttackProtect,值为2
6. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet ServicesTcpipParametersInterfacesinterface
新建DWORD值,名为PerformRouterDiscovery 值为0。
7. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
将EnableICMPRedirects 值设为0
8. 不支持IGMP协议
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
新建DWORD值,名为IGMPLevel 值为0。
9、禁用DCOM:
运行中输入Dcomcnfg.exe。回车,单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。
对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。
清除“在这台计算机上启用分布式 COM”复选框。
最后,建议安全以上步骤做的朋友们,每做一步先进行一下测试,省的无可挽回,毕竟Microsoft会出一些非常规性的问题的咯!
篇6:让杀毒软件束手无策:DLL木马揭秘WEB安全
相信经常玩木马的朋友们都会知道一些木马的特性,也会有自己最喜爱的木马,不过,很多朋友依然不知道近年兴起的“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,可是对新手来说……总之就是比较难啊比较难,所以,最简单的方法:杀毒软件和防火墙(不是万能药,切忌长期服用)。
篇7:知已知彼 教你木马防身术WEB安全
木马程序是由服务器端和客户端器程序共同组成,当目标电脑运行服务器端程序后就会定时将目标用户信息发送到指定的地址,并偷偷开设后门为客户端程序放行,使 能够随意控制目标电脑。了解木马的主要传播手段,做好预防工作,做到知已知彼才能将木马程序最大程度地拒之门外。
文件捆绑
文件捆绑是指将木马程序与其它程序或文件捆绑在一起,比较低级的方式是采用压缩包的形式,而高级一点的方式则会使用专门的捆绑软件将两个文件合二为一。当用户运行了寄生程序或文件时在表面上看来一切正常,但木马程序已经神不知鬼不觉地悄悄运行并入驻到系统中了。
预防措施:不要从非正规网站下载文件,不要轻易接受从QQ等程序中传输的文件,尤其是EXE格式的可执行文件,一定要养成先使用最新的杀毒软件对文件进行扫描后再运行的好习惯。
文件伪装
为了掩人耳目,木马程序通常会将自己的程序图标、文件名等信息更改成其它程序的样子,
比如将图标更换成文件夹图标,在文件名中添加后缀名等来欺骗用户运行。
预防措施:无论木马如何伪装自己的图标和文件名,它的后缀名必须是一个可执行扩展名才能运行,比如EXE、COM、BAT等。在“我的电脑/工具/文件夹选项/查看”对话框中,去掉“隐藏已知文件类型的扩展名”选项前的钩,点击“确定”按钮,任何伪装文件都会露出“马脚”。
网页木马
将木马程序嵌入到网页中,当用户在浏览网页时,网页木马就会利用系统以及一些程序的漏洞将服务端程序悄悄安装到系统中。例如以前很知名的网页图片木马,就是利用IE浏览器自身的漏洞进行传播的。
预防措施:不要随意浏览非正规网站,不要随意点击网页中的弹出窗口链接。及时更新系统补丁以及安装最新的杀毒软件进行网页监控等,都可以有效地避免网页木马的侵袭。
木马程序林林总总,要达到最好的防范效果,还是应该从自身入手,养成良好的使用电脑和上网的习惯,才能以不变应万变,拒木马于千里之外。
文档为doc格式