后门!相信这个词语对您来说一定不会陌生,它的危害不然而欲,但随着人们的安全意识逐步增强,又加上杀毒软体的"大力支持",使传统的后门无法在隐藏自己,任何稍微有点电脑知识的人,都知道"查埠""看进程",以便发现一些"蛛丝马迹"。所以,后门的编写者及时调整了思路,把目光放到了动态链结程式库上,也就是说,把后门做成DLL档,然后由某一个EXE做为载体,或者使用Rundll32.exe来启动,这样就不会有进程,不开埠等特点,也就实现了进程、埠的隐藏。本文以"DLL的原理""DLL的清除""DLL的防范"为主题,并展开论述,旨在能让大家对DLL后门"快速上手",不再恐惧DLL后门。好了,进入我们的主题。
一,DLL的原理
1,动态链结程式库
动态链结程式库,全称:Dynamic Link Library,简称:DLL,作用在于为应用程式提供扩展功能。应用程式想要调用DLL档,需要跟其进行"动态链结";从编程的角度,应用程式需要知道DLL档导出的API函数方可调用。由此可见,DLL档本身并不可以运行,需要应用程式调用。正因为DLL档运行时必须插入到应用程式的记忆体模组当中,这就说明了:DLL档无法删除。这是由于Windows内部机制造成的:正在运行的程式不能关闭。所以,DLL后门由此而生!
2,DLL后门原理及特点
把一个实现了后门功能的代码写成一个DLL档,然后插入到一个EXE档当中,使其可以执行,这样就不需要占用进程,也就没有相对应的PID号,也就可以在任务管理器中隐藏。DLL档本身和EXE档相差不大,但必须使用程式(EXE)调用才能执行DLL档。DLL档的执行,需要EXE档载入,但EXE想要载入DLL档,需要知道一个DLL档的入口函数(既DLL档的导出函数),所以,根据DLL档的编写标准:EXE必须执行DLL档中的DLLMain()作为载入的条件(如同EXE的mian())。做DLL后门基本分为两种:1)把所有功能都在DLL档中实现;2)把DLL做成一个启动档,在需要的时候启动一个普通的EXE后门。
常见的编写方法:
(1),只有一个DLL档
这类后门很简单,只把自己做成一个DLL档,在注册表Run键值或其他可以被系统自动载入的地方,使用Rundll32.exe来自动启动。Rundll32.exe是什么?顾名思意,"执行32位的DLL档"。它的作用是执行DLL档中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个Rundll32.exe,不必惊慌,这证明用Rundll32.exe启动了多少个的DLL档。当然,这些Rundll32.exe执行的DLL档是什么,我们都可以从系统自动载入的地方找到。
现在,我来介绍一下Rundll32.exe这个档,意思上边已经说过,功能就是以命令行的方式调用动态链结程式库。系统中还有一个Rundll.exe档,他的意思是"执行16位的DLL档",这里要注意一下。在来看看Rundll32.exe使用的函数原型:
Void CALLBACK FunctionName (
HWND hwnd,
HINSTANCE hinst,
LPTSTR lpCmdLine,
Int nCmdShow
);
其命令行下的使用方法为:Rundll32.exe DLLname,Functionname [Arguments]
DLLname为需要执行的DLL档案名;Functionname为前边需要执行的DLL档的具体引出函数;[Arguments]为引出函数的具体参数。
(2),替换系统中的DLL档
这类后门就比上边的先进了一些,它把实现了后门功能的代码做成一个和系统匹配的DLL档,并把原来的DLL文件改名。遇到应用程式请求原来的DLL档时, DLL后门就启一个转发的作用,把"参数"传递给原来的DLL档;如果遇到特殊的请求时(比如用户端),DLL后门就开始,启动并运行了。对于这类后门,把所有操作都在DLL档中实现最为安全,但需要的编程知识也非常多,也非常不容易编写。所以,这类后门一般都是把DLL档做成一个"启动"档,在遇到特殊的情况下(比如用户端的请求),就启动一个普通的EXE后门;在用户端结束连接之后,把EXE后门停止,然后DLL档进入"休息"状态,在下次用户端连接之前,都不会启动。但随着微软的"数位签名"和"档恢复"的功能出台,这种后门已经逐步衰落。
系统保护只用两三招 病毒木马不上门
网友世界 【转载】 作者:胖猫
同在一个宿舍中,共用同一条宽带,木瓜的电脑总是感染一些木马病毒或是流氓软体,而我的电脑上却是“一尘不染”。这样在木瓜每次气急败坏的重装系统时,就会说我没义气。听到兄弟这么说,我还真是感觉有些冤枉,其实保护系统的方法不过就这两三招,还是统统都传授给他吧!
一、赤手空拳防木马
木瓜的Windows XP系统可称得上是一个“毒窝”了,不仅有木马程式“潜伏”,各类恶意插件也在其中死缠烂打。而造成这种情况的主要原因就是给予了登录帐户和上网者过多的使用权限,使木马和插件能够堂而皇之的出入系统。所以,要想有效的加强系统安全,就要在帐户许可权上加以限制。
步骤一:建立受限帐户
打开“运行”对话方块,在其中输入命令“net user xiaoyao 123456 /add”,回车执行后,即可在系统中添加一个名为“xiaoyao”的新帐户,密码为“123456”。
用“net user”命令添加的新帐户,其默认许可权为“USERS组”,所以只能运行许可的程式,而不能随意添加删除程式和修改系统设置,这样便可避免大部分的木马程式和恶意网页的破坏。
步骤二:金蚕脱壳 加固IE
恶意网页是系统感染木马病毒及流氓插件的最主要途径,因此很有必要对IE作一些保护设置。
1.建壳
删除桌面上的IE图示,打开“C:\Program Files\Internet Explorer”文件夹,右键点击“Iexplore.exe”程式,选择“发送到”→“桌面快捷方式”命令,在桌面上创建一个新的IE快捷图示。接着回到桌面,右键点击新建的IE图示,选择“属性”命令,在弹出视窗中,切换到“快捷方式”选项卡,点击“高级”按钮,勾选“以其他用户身份运行”选项(如图1),确定后关闭对话方块。
图1
2.脱壳
现在以管理员帐户或其他非“xiaoyao”帐户登录Windows XP系统后,双击桌面上的IE快捷方式时,就会弹出一个运行身份对话方块,在其中输入之前新建的帐户名“xiaoyao”及密码,确定后便可进行正常上网操作(如图2)。
图2
接下来,我们试试IE是否还能受到恶意插件的骚扰。进入“
baidu.com...”,点击百度页面中的“把百度设为首页”按钮,修改IE的主页。然后点击页面中的“更多”→“搜霸”链结,下载“百度搜霸”。当下载完毕后,该插件将自动运行安装程式,此时会看到它弹出了一个身份认证对话方块,默认是以“xiaoyao”身份进行安装的(如图3)。
图3
在安装完成后,以“xiaoyao”帐户身份再次运行IE时,将会发现首页已变成了百度。以非“xiaoyao”帐户运行IE时,可看到IE首页没有任何改变。而之前安装的百度搜霸,则无论以什么帐户运行IE,都不会见到它的踪影!
此时我们是以“xiaoyao”这个USERS组的帐户,来进行上网操作的。由于“xiaoyao”帐户在当前并未登陆,所以百度搜霸根本无法安装并载入到IE中,网页也仅能对“xiaoyao”帐户的IE首页进行修改。也就是说,以“xiaoyao”帐户身份运行IE后,流览到的恶意网页只能对“xiaoyao”帐户的IE设置进行修改,而恶意网页中的流氓软体或木马间谍运行后,根本就无法对当前帐户和系统产生任何影响。
3.换壳
如果“xiaoyao”帐户的IE设置被更改或破坏,那么可在“运行”对话方块中执行“net user xiaoyao /delete”命令,来删除“xiaoyao”帐号。之后,再次执行创建帐户命令,新建一个名为“xiaoyao”的帐户,即可使IE“完好如初”。
步骤三:加固系统
通过网页流览感染系统,只是木马病毒和流氓插件的一种途径。如果不小心以当前帐户身份运行了木马病毒程式,系统还是会被破坏。只是这类破坏“迹象”都较明显,不像恶意网页在后台进行“暗箱操作”,因此我们可提前阻止它们。
1.禁止程式启动
很多木马病毒都是通过注册表载入启动的,因此可通过许可权设置,禁止病毒和木马对注册表的启动项进行修改。
启动注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Run”分支,在“Run”分支上点击右键,选择“许可权”命令,将当前帐户对该分支的“读取”许可权设置为“允许”,并取消对“完全控制”许可权的选择(如图4)。使用同样方法设置以下注册表启动键的许可权:
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunEx
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\Policies\ Explorer\Run
HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion\RunServices
在“HKEY_CURRENT_USER”下,也有相同的多个注册表启动项需要设置许可权。
图4
2.禁止服务启动
一些高级的木马病毒会通过系统服务进行载入,对此可禁止木马病毒启动服务的许可权。
可依次展开“HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\ Services”分支,将当前帐户的“读取”许可权设置为“允许”,同时取消其“完全控制”许可权。
3.系统安全设置
最厉害的木马病毒会采用DLL注入方式,或者抢先系统启动运行,对此可在注册表中限制其启动许可权。
设置的方法同上,需设置许可权的注册表项有以下分支:
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\UserInit
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\Shell
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\GinaDll
HKEY_LOCAL_MACHINE\Software\Microsoft \Windows NT\CurrentVersion\Winlogon\System
HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Policies\
4.保护档关联
有些狡猾的木马,还会通过更改系统档关联,达到启动运行目的。对此可展开“HKEY_CLASSES_ ROOT”分支,将其下的“.exe”、.“com”、“.cmd”、“.BAT”、“.VBS”等项目设置许可权,操作方法同上。
使用设置了注册表许可权的帐户登录系统后,是无法安装软体或进行重要系统更改设置的。如要安装软体,可更换为管理员帐户登录系统,并进行正常的安装操作。
二、另类“还原精灵”保系统
对于木瓜这种超级懒惰的人来说,使用手动设置来保护系统显得太过繁琐了,所以最好还是给他一款软体来达到自动保护系统的目的。而他提出使用“还原精灵”之类的软体,真是太耗费系统资源了,搞不好还会把硬碟锁死了,这里我有更高级的“秘密武器”。
1.IE从此无忧’
安装这款名为“Sandboxie”的软体后,它会随系统自动运行,利用软体的沙盘功能,即可保护系统不受任何病毒和插件的侵袭。
右键点击桌面上的IE图示,在弹出功能表中选择“Run Sandboxed”命令,即可以沙盘保护方式运行IE(如图5)。此时流览任意恶意带毒的网站,系统都会经过“沙盘”的过滤保护,保证自身不会受到任何影响。即使木马病毒程式已下载到硬碟中,也会随着Sandboxie的关闭而自动消失。
图5
如果要保存通过“沙盘”下载的档,可右键点击系统托盘区的沙盘图示,在弹出功能表中选择“从沙盘恢复档”命令。在打开的对话方块中,选择沙盘中暂存的档,点击“恢复到同一档夹”按钮,即可将档保存到硬碟中了(如图6)。
图6
2.告别木马病毒
下载了好多软体要安装,但不能确定其中是否夹带着流氓插件或木马,这时可使用右键点击程式档,通过“Run Sandboxed”命令运行安装,此时程式对系统所作的修改都会被沙盘拦截保护,在关闭沙盘后安装的木马病毒也将随之消失。
如果在沙盘中安装运行后,确认程式是安全的,那么就可再次以正常方式安装运行程式了。
三、程式许可权轻松设
虽然限制用户许可权保护系统安全的方法很好用,但对于木瓜这种经常安装卸载软体的用户来说,不时弹出的“许可权不够”提示便显得太过“烦人”了,这里就在给出一个两全其美的方法。
安装名为“DropMyRights”的软体,用这个软体启动其他程式,这样启动的程式就只具有基本的许可权,无法对系统产生破坏了。方法很简单,以IE为例。
右键点击桌面IE快捷图示,选择“属性”→“快捷方式”,在“目标”位置中输入如下命令(如图7):
"C:\程式安装目录\DropMy Rights.exe" "C:\Program Files\Internet Explorer\Iexplore.exe" N
程式后面的参数“N”,代表以普通用户许可权运行程式。确定后关闭对话方块,双击该快捷方式就能以指定的身份启动IE流览器,以后流览到恶意网页也不用担心系统会遭到破坏了,所达到的效果与前面提到的“金蚕脱壳”法差不多(如图8)。
图7
图8