2022年系统维护-防止黑客入侵:DLL后门完全清除方法文 .pdf

上传人:Q****o 文档编号:26494872 上传时间:2022-07-17 格式:PDF 页数:6 大小:78.13KB
返回 下载 相关 举报
2022年系统维护-防止黑客入侵:DLL后门完全清除方法文 .pdf_第1页
第1页 / 共6页
2022年系统维护-防止黑客入侵:DLL后门完全清除方法文 .pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年系统维护-防止黑客入侵:DLL后门完全清除方法文 .pdf》由会员分享,可在线阅读,更多相关《2022年系统维护-防止黑客入侵:DLL后门完全清除方法文 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、后门 !相信这个词语对您来说一定不会陌生,它的危害不然而欲,但随着人们的安全意识逐步增强,又加上杀毒软件的大力支持 ,使传统的后门无法在隐藏自己,任何稍微有点计算机知识的人,都知道查端口 看进程 ,以便发现一些蛛丝马迹 。所以,后门的编写者及时调整了思路,把目光放到了动态链接程序库上,也就是说,把后门做成DLL 文件,然后由某一个EXE 做为载体,或者使用Rundll32.exe 来启动,这样就不会有进程,不开端口等特点, 也就实现了进程、端口的隐藏。 本文以 DLL 的原理 DLL的清除 DLL 的防范 为主题,并展开论述,旨在能让大家对DLL 后门 快速上手 ,不在恐惧DLL 后门。好了,

2、进入我们的主题。一、 DLL 的原理1,动态链接程序库动态链接程序库,全称:Dynamic Link Library,简称 :DLL ,作用在于为应用程序提供扩展功能。应用程序想要调用DLL 文件,需要跟其进行动态链接 ;从编程的角度,应用程序需要知道 DLL 文件导出的API 函数方可调用。由此可见,DLL 文件本身并不可以运行,需要应用程序调用。正因为DLL 文件运行时必须插入到应用程序的内存模块当中,这就说明了:DLL 文件无法删除。 这是由于 Windows 内部机制造成的:正在运行的程序不能关闭。所以,DLL 后门由此而生 ! 2,DLL 后门原理及特点把一个实现了后门功能的代码写成

3、一个DLL 文件,然后插入到一个EXE 文件当中, 使其可以执行,这样就不需要占用进程,也就没有相对应的PID 号,也就可以在任务管理器中隐藏。 DLL 文件本身和EXE 文件相差不大,但必须使用程序(EXE) 调用才能执行DLL 文件。DLL 文件的执行, 需要 EXE 文件加载, 但 EXE 想要加载 DLL 文件,需要知道一个DLL文件的入口函数(既 DLL 文件的导出函数),所以,根据 DLL 文件的编写标准:EXE 必须执行DLL 文件中的 DLLMain() 作为加载的条件(如同 EXE 的 mian() 。 做 DLL 后门基本分为两种:1)把所有功能都在DLL 文件中实现 ;2

4、)把 DLL 做成一个启动文件, 在需要的时候启动一个普通的 EXE 后门。常见的编写方法: (1),只有一个DLL 文件这类后门很简单,只把自己做成一个DLL 文件,在注册表Run 键值或其他可以被系统自动加载的地方,使用Rundll32.exe 来自动启动。 Rundll32.exe 是什么 ?顾名思意, 执行 32位的DLL文件 。它的作用是执行DLL文件中的内部函数,这样在进程当中,只会有Rundll32.exe,而不会有DLL 后门的进程,这样,就实现了进程上的隐藏。如果看到系统中有多个 Rundll32.exe,不必惊慌,这证明用Rundll32.exe 启动了多少个的DLL 文件

5、。当然,这些 Rundll32.exe 执行的 DLL 文件是什么,我们都可以从系统自动加载的地方找到。现在,我来介绍一下Rundll32.exe 这个文件,意思上边已经说过,功能就是以命令行的方式调用动态链接程序库。系统中还有一个Rundll.exe 文件,他的意思是 执行 16 位的 DLL名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 文件 ,这里要注意一下。在来看看Rundll32.exe 使用的函数原型: 其命令行下的

6、使用方法为:Rundll32.exe DLLname,Functionname Arguments Void CALLBACK FunctionName ( HWND hwnd, HINSTANCE hinst, LPTSTR lpCmdLine, Int nCmdShow ); DLLname 为需要执行的DLL 文件名 ;Functionname 为前边需要执行的DLL 文件的具体引出函数 ;Arguments 为引出函数的具体参数。(2),替换系统中的DLL 文件这类后门就比上边的先进了一些,它把实现了后门功能的代码做成一个和系统匹配的DLL 文件,并把原来的DLL 文件改名。遇到应用程

7、序请求原来的DLL 文件时,DLL 后门就启一个转发的作用,把参数 传递给原来的DLL文件;如果遇到特殊的请求时(比如客户端),DLL 后门就开始,启动并运行了。对于这类后门,把所有操作都在DLL 文件中实现最为安全, 但需要的编程知识也非常多,也非常不容易编写。所以,这类后门一般都是把DLL文件做成一个 启动文件, 在遇到特殊的情况下(比如客户端的请求), 就启动一个普通的EXE后门 ;在客户端结束连接之后,把 EXE 后门停止, 然后 DLL 文件进入 休息状态,在下次客户端连接之前,都不会启动。但随着微软的数字签名 和文件恢复 的功能出台,这种后门已经逐步衰落。提示 : 在 WINNTs

8、ystem32 目录下,有一个dllcache 文件夹,里边存放着众多DLL 文件 (也包括一些重要的EXE 文件), 在 DLL 文件被非法修改之后,系统就从这里来恢复被修改的DLL文件。如果要修改某个DLL 文件,首先应该把dllcache 目录下的同名DLL 文件删除或更名,否则系统会自动恢复。(3),动态嵌入式这才是 DLL 后门最常用的方法。 其意义是将DLL 文件嵌入到正在运行的系统进程当中。在 Windows 系统中,每个进程都有自己的私有内存空间,但还是有种种方法来进入其进程的私有内存空间, 来实现动态嵌入式。由于系统的关键进程是不能终止的,所以这类后门非常隐蔽,查杀也非常困难

9、。常见的动态嵌入式有:挂接API 全局钩子 (HOOK) 远程线程 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 等。远程线程技术指的是通过在一个进程中创建远程线程的方法来进入那个进程的内存地址空间。当 EXE 载体(或 Rundll32.exe) 在那个被插入的进程里创建了远程线程,并命令它执行某个 DLL文件时,我们的DLL后门就挂上去执行了,这里不会产生新的进程,要想让DLL 后门停止, 只有让这个链接DLL 后门的进程

10、终止。 但如果和某些系统的关键进程链接,那就不能终止了,如果你终止了系统进程,那Windows 也随即被终止 ! 3,DLL 后门的启动特性启动 DLL 后门的载体EXE 是不可缺少的, 也是非常重要的,它被称为 :Loader。如果没有 Loader,那我们的DLL后门如何启动呢?因此,一个好的DLL后门会尽力保护自己的Loader 不被查杀。 Loader 的方式有很多, 可以是为我们的DLL 后门而专门编写的一个EXE文件 ;也可以是系统自带的Rundll32.exe ,即使停止了Rundll32.exe,DLL 后门的主体还是存在的。 3721 网络实名就是一个例子,虽然它并不是真正

11、的后门。二、 DLL 的清除本节以三款比较有名的DLL 后门例,分别为SvchostDLL.dllBITS.dllQoServer.dll。详细讲解其手工清除方法。希望大家在看过这三款DLL 后门的清除方法之后,能够举一反三,灵活运用,在不惧怕DLL 后门。其实,手工清除DLL 后门还是比较简单的,无非就是在注册表中做文章。具体怎么做,请看下文。1,PortLess BackDoor 这是一款功能非常强大的DLL 后门程序,除了可以获得Local System 权限的 Shell 之外,还支持如 检测克隆帐户 安装终端服务 等一系列功能(具体可以参见程序帮助),适用Windows2000/xp

12、/2003 等系统。程序使用svchost.exe来启动,平常不开端口,可以进行反向连接 (最大的特点哦),对于有防火墙的主机来说,这个功能在好不过了。在介绍清除方法之前,我们先来简单的介绍一下svchost.exe 这个系统的关键服务: Svchost 只是做为服务的宿主,本身并不实现什么功能,如果需要使用Svchost 来启动服务,则某个服务是以DLL 形式实现的,该DLL 的载体 Loader 指向 svchost,所以,在启动服务的时候由svchost 调用该服务的DLL 来实现启动的目的。使用svchost 启动某个服务的 DLL 文件是由注册表中的参数来决定的,在需要启动服务的下边

13、都有一个Parameters 子键,其中的 ServiceDll 表明该服务由哪个DLL 文件负责,并且这个DLL 文件必须导出一个ServiceMain() 函数,为处理服务任务提供支持。呵呵 !看了上边的理论, 是不是有点蒙 (我都快睡着了 ), 别着急,我们来看看具体的内容。HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRpcSs下的 Parameters子键,其键值为 %SystemRoot%system32rpcss.dll 。这就说明:启动RpcSs 服务时。 Svchost 调用WINNTsystem32 目录下的 rpcss.

14、dll。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost ,里边存放着Svchost 启动的组和组内的各个服务,其中netsvcs 组的 服 务 最 多 。 要 使 用Svchost启 动 某 个 服 务 , 则 该 服 务 名 就 会 出 现 在HKEY_LOCAL_MACHINESOFT

15、WAREMicrosoftWindows NTCurrentVersionSvchost下。这里有四种方法来实现: 1, 添加一个新的组,在组里添加服务名2, 在现有组里添加服务名3, 直接使用现有组里的一个服务名,但是本机没有安装的服务4, 修改现有组里的现有服务,把它的ServiceDll 指向自己的DLL 后门我测试的 PortLess BackDoor 使用的第三种方法。好了,我想大家看完了上边的原理,一定可以想到我们清除PortLess BackDoor 的方法了,对,就是在注册表的Svchost 键下做文章。好,我们现在开始。注:由于本文只是介绍清除方法,使用方法在此略过。后门的

16、Loader 把 SvchostDLL.dll插入 Svchost 进程当中,所以,我们先打开Windows优化大师中的Windows 进程管理2.5,查看 Svchost 进程中的模块信息,SvchostDLL.dll已经插入到Svchost 进程中了,在根据直接使用现有组里的一个服务名,但是本机没有安装的服务 的提示,我们可以断定,在管理工具 服务 中会有一项新的服务。此服务名称为:IPRIP ,由 Svchost 启动, -k netsvcs 表示此服务包含在netsvcs 服务组中。我 们 把 该 服 务 停 掉 , 然 后 打 开 注 册 表 编 辑 器 ( 开 始 运 行 -reg

17、edit) , 来 到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPRIP下,查看其Parameters子 键 。 Program键 的 键 值SvcHostDLL.exe为 后 门 的Loader;ServiceDll的 键 值C:WINNTsystem32svchostdll.dll为调用的 DLL 文件,这正是后门的DLL 文件。现在我们删除IPRIP子键(或者用SC来删除),然后在来到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvchost下,编辑nets

18、vcs 服务组,把49 00 70 00 72 00 69 00 70 00 00 00 删除,这里对应的就是IPRIP 的服务名,具体如图6 所示。然后退出,重启。重启之后删除WINNTsystem32 目录下的后门文件即可。2,BITS.dll 这是榕哥的作品,也是DLL 后门,和SvchostDLL.dll原理基本一样,不过这里使用的是上边介绍的第四种方法,即修改现有组里的现有服务,把它的 ServiceDll 指向自己的DLL后门 。换句话说,该后门修改现有的某一个服务,把其原有服务的DLL 指向自己 (也就是BITS.dll) ,这样就达到了自动加载的目的;其次,该后门没有自己的Lo

19、ader,而是使用系统自带的 Rundll32.exe 来加载。我们还是用Windows 进程管理2.5 来查看,从图7 中,我们名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 可以看到 bits.dll 已经插入到Svchost 进程当中。好,现在我们来看看具体的清除方法,由于该后门是修改现有服务,而我们并不知道具体 是 修 改 了 哪 个 服 务 , 所 以 , 在 注 册 表 中 搜 索bits.dll, 最 后 在HKE

20、Y_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasAuto下搜索到了bits.dll ,查看 Parameters子键下的 ServiceDll ,其键值为C:WINNTsystem32bits.dll 。原来,该后门把RasAuto 服务原来的DLL 文件替换为bits.dll 了,这样来实现自动加载。知道了原因就好办了 , 现 在 我 们 把ServiceDll的 键 值 修 改 为RasAuto服 务 原 有 的DLL文 件 ,即%SystemRoot%System32rasauto.dll , 退出, 重启。 之后删除 WINNTsyst

21、em32 目录下的 bits.dll即可。3,NOIR-QUEEN NOIR-QUEEN( 守护者 )是一个 DLL 后门 & 木马程序, 服务端以 DLL 文件的形式插入到系统的 Lsass.exe进程里,由于Lsass.exe是系统的关键进程,所以不能终止。在来介绍清除方法之前,我先介绍一下Lsass.exe进程 : 这是一个本地的安全授权服务,并且它会为使用Winlogon 服务的授权用户生成一个进程,如果授权是成功的,Lsass 就会产生用户的进入令牌,令牌使用启动初始的 Shell。其他的由用户初始化的进程会继承这个令牌。从上边的介绍我们就可以看出Lsass对系统的重要性,那具体怎么

22、清除呢?请看下文。后门在安装成功后,会在服务中添加一个名为QoSserver 的服务,并把QoSserver.dll 后门文件插入到Lsass进程当中,使其可以隐藏进程并自动启动。现在我们打开注册表,来到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesQoSserver,直接删除QoSserver 键,然后重启。重启之后,我们在来到服务列表中,会看到QoSserver 服务还在,但没有启动,类别是自动,我们把他修改为已禁用 ;然后往上看,会发现一个服务名为AppCPI 的服务,其可执行程序指向QoSserver.exe(原因后边我会说到)。我们

23、再次打开注册表, 来到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAppCPI, 删除 AppCPI键,重启,再删除QoSserver,最后删除WINNTsystem32 目录下的后门文件。本人和这个后门搏斗了 3 个多小时, 重启 N 次。原因在于即使删除了QoSserver 服务,后门还是在运行,而且服务列表中的QoSserver 服务又 死灰复燃 。后来才知道原因:在我删除了QoSserver 服务并重启之后,插入到Lsass 进程当中的QoSserver.dll 文件又恢复了QoSserver 服务,并且生成了另外一个服务,即Ap

24、pCPI ,所以我们必须在到注册表中删除AppCPI 服务才算是把该后门清除。由此可以看出, 现在的后门的保护措施,真是一环扣环。注意:在删除 QoSserver 服务并重启之后,恢复的QoSserver 的启动类别要修改为已禁用 ,否则即便删除了AppCPI 服务, QoSserver 服务又运行了。三、 DLL 的防范看了上边的例子, 我想大家对清除DLL 后门的方法有了一定的了解,但在现实中,DLL后门并不会使用默认的文件名,所以你也就不能肯定是否中了DLL后门。对于DLL名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名

25、师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 后门, system32目录下是个好地方,大多数后门也是如此,所以这里要非常注意。下面我来具体介绍一下怎么发现DLL 后门,希望对大家有所帮助。1,安装好系统和所有的应用程序之后,备份 system32 目录下的 EXE 和 DLL 文件 :打开 CMD ,来到 WINNTsystem32 目录下,执行 :dir *.exeexe.txt & dir *.dlldll.txt,这样,就会把所有的EXE 和 DLL 文件备份到exe.txt 和 dll.txt 文件中 ;日后,如发现异常,可以使用

26、相同的命令再次备份EXE 和 DLL 文件 (这里我们假设是exe0.txt 和 dll0.txt) ,并使用 :fc exe.txt exe0.txtexedll.txt & fc dll.txt dll0.txtexedll.txt ,其意思为使用FC 命令比较两次的EXE 文件和 DLL 文件,并将比较结果保存到exedll.txt 文件中。通过这种方法,我们就可以发现多出来的EXE 和 DLL 文件,并通过文件大小,创建时间来判断是否是DLL 后门。2,使用内存 /模块工具来查看进程调用的DLL 文件,比如Windows 优化大师中的Windows 进程管理2.5。这样, 可以发现进程

27、到底调用了什么DLL 文件,在结合上边用FC命令比较出来的结果,又能进一步来确定是否中了DLL 后门。如果没有优化大师,可以使用 TaskList,这个小工具也可以显示进程调用的DLL 文件,而且还有源代码,方便修改。3,普通后门连接需要打开特定的端口,DLL 后门也不例外,不管它怎么隐藏,连接的时候都需要打开端口。我们可以用netstat -an 来查看所有TCP/UDP 端口的连接,以发现非法连接。 大家平时要对自己打开的端口心中有数,并对 netstat -an 中的 state属性有所了解。当然, 也可以使用Fport 来显示端口对应的进程,这样,系统有什么不明的连接和端口,都可以尽收

28、眼底。4, 定期检查系统自动加载的地方,比如 :注册表,Winstart.bat,Autoexec.bat,win.ini ,system.ini,wininit.ini ,Autorun.inf ,Config.sys 等。其次是对服务进行管理,对系统默认的服务要有所了解, 在发现有问题的服务时,可以使用 Windows 2000 Server Resource Kit 中的SC 来删除。以上这些地方都可以用来加载DLL 后门的 Loader, 如果我们把DLL 后门 Loader删除了,试问 ?DLL 后门还怎么运行?! 通过使用上边的方法,我想大多数DLL 后门都可以 现形 ,如果我们平时多做一些备份,那对查找DLL 后门会启到事半功倍的效果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁