木马的隐藏技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用RunDLL32的方法进行进程隐藏很简单,但非 常容易被识破
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
采用替代技术的DLL木马
工作原理是替换常用的DLL文件,截获并处理 特定的消息,将正常的调用转发给原DLL
此种技术是比较古老的技术,因此微软也做 了相当的防范
在Windows的system32目录下有一个dllcache目录,一旦操 作系统发现被保护的DLL文件被篡改(利用数字签名技术),就 会自动从dllcache中恢复该文件
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
进程隐藏
想要隐藏木马的服务器端,可以伪隐藏, 也可以真隐藏
伪隐藏是指程序的进程仍然存在,只不过是让 它消失在进程列表里
真隐藏则是让程序彻底的消失,不以一个进程 或者服务的方式工作
进程隐藏
伪隐藏
把木马服务器端的程序注册为一个服务,这样, 程序就会从任务列表中消失了,当按下 Ctrl+Alt+Delete的时候,也看不到这个程序。 但是通过服务管理器,会发现在系统中注册过 的服务
进程隐藏
进程、线程、服务 进程:一个正常的Windows应用程序,在运行之
后,都会在系统之中产生一个进程,分别对应一 个不同的PID(进程标识符)。这个进程会被系统 分配一个虚拟的内存空间地址段,一切相关的程 序操作,都会在这个虚拟的空间中进行 线程:一个进程,可以存在一个或多个线程,线 程之间同步执行多种操作,一般地,线程之间是 相互独立的,当一个线程发生错误的时候,并不 一定会导致整个进程的崩溃 服务:一个进程当以服务的方式工作的时候,它 将会在后台工作,不会出现在任务列表中,但可 通过服务管理器检查任何的服务程序是否被启动 运行
API的拦截技术。通过建立一个后台的系来实现对进程和服务的遍历调用的控 制,当检测到进程ID(PID)为木马程序的服 务器端进程的时候直接跳过,这样就实现了进 程的隐藏
进程隐藏
真隐藏
当进程为真隐藏的时候,那么这个木马的服务 器部分程序运行之后,就不是一般进程,也不 是某个服务,而是完全的溶进了系统的内核
原理:不把木马做成一个应用程序,而做为一 个线程,一个其他应用程序的线程,把自身注 入其他应用程序的地址空间。而这个应用程序 对于系统来说,是一个绝对安全的程序,这样, 就达到了彻底隐藏的效果,这样的结果,导致 了查杀黑客程序难度的增加
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
代码注入技术
常用的代码注入技术有
利用Windows消息钩子注入 利用CreateRemoteThread()函数注入 利用APC注入 更改线程上下文注入DLL
利用CreateRemoteThread()函数注入
CreateRemoteThread是一个API函数, 它可以在其它进程的地址空间中开启远程 线程
运行DLL文件最简单的方法是利用RunDLL32.exe Rundll32.exe MyDll MyFunc
注:使用此命令时函数名需要完全匹配
如果在MyDll.DLL的MyFunc函数中实现了木马的功能, 在系统管理员看来,进程列表中增加的是Rundll32.exe而 并不是木马文件,这样也是木马的一种简易欺骗和自我保 护方法
采用动态嵌入技术的DLL木马
DLL木马的最高境界是动态嵌入技术
动态嵌入技术是指将自己的代码嵌入正在运 行的进程中的技术。Windows系统中的每 个进程都有自己的私有内存空间,一般不允 许别的进程对这个私有空间进行操作,但是 实际上,仍然可以利用种种方法进入并操作 进程的私有内存
动态嵌入DLL木马的常用技术
例如,Windows的Socket 1.x的函数都存放在 wsock32.dll中,可以写一个wsock32.dll文件,替换原 先的wsock32.dll(将其重命名为wsockold.dll)
DLL木马wsock32.dll只做两件事:一是如果遇到不认识 的调用,就直接转发给wsockold.dll(使用函数转发器 forward);二是遇到特殊的请求(事先约定的)就解码并 处理。这样,理论上只要木马编写者通过Socket远程输 入一定的暗号,就可以控制wsock32.dll(木马DLL)做任 何操作
木马的隐藏方式
任务栏隐藏:使程序不出现在任务栏中 进程隐藏:躲避任务管理器等进程管理工具 通讯隐藏:进行通信时,将目标端口设定为常用
的80、21等端口,以此躲过防火墙的过滤 文件隐藏:通过某种方式,使用户无法发现木马
程序 加载方式隐藏:
通过各类脚本加载木马 修改设备驱动程序或修改DLL加载木马
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
利用DLL实现简单隐藏
利用DLL实现简单隐藏
假设编写了一个木马DLL,并且通过别的进程来运行它, 那么无论是入侵检测软件还是进程列表中,都只会出现该 进程而并不会出现该木马DLL
如果该进程是可信进程,那么木马DLL作为该进程的一部 分,也将成为被信赖的一员
代码注入技术
IAT HOOK技术 Inline HOOK技术
代码注入技术
代码注入有很多重要用途,在蠕虫、木马中有广 泛引用
钩子技术:截获需要的消息实现事件机制 进程隐藏:很多木马为了躲避进程检测,会将自身作
为一个DLL注入到其他进程中运行,由于它本身不是以 进程形式存在,因此无法找到其进程 突破防火墙:主机防火墙一般会阻止未知程序的网络 连接,木马可以将自身注入到正常进程,这样防火墙 就会把蠕虫、木马发起的连接当作正常的连接,从而 将其放过 信息窃取:木马要窃取其他进程的一些信息,比如网 络游戏的登录密码,就需要利用代码注入,进入其地 址空间中运行
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
采用替代技术的DLL木马
工作原理是替换常用的DLL文件,截获并处理 特定的消息,将正常的调用转发给原DLL
此种技术是比较古老的技术,因此微软也做 了相当的防范
在Windows的system32目录下有一个dllcache目录,一旦操 作系统发现被保护的DLL文件被篡改(利用数字签名技术),就 会自动从dllcache中恢复该文件
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
进程隐藏
想要隐藏木马的服务器端,可以伪隐藏, 也可以真隐藏
伪隐藏是指程序的进程仍然存在,只不过是让 它消失在进程列表里
真隐藏则是让程序彻底的消失,不以一个进程 或者服务的方式工作
进程隐藏
伪隐藏
把木马服务器端的程序注册为一个服务,这样, 程序就会从任务列表中消失了,当按下 Ctrl+Alt+Delete的时候,也看不到这个程序。 但是通过服务管理器,会发现在系统中注册过 的服务
进程隐藏
进程、线程、服务 进程:一个正常的Windows应用程序,在运行之
后,都会在系统之中产生一个进程,分别对应一 个不同的PID(进程标识符)。这个进程会被系统 分配一个虚拟的内存空间地址段,一切相关的程 序操作,都会在这个虚拟的空间中进行 线程:一个进程,可以存在一个或多个线程,线 程之间同步执行多种操作,一般地,线程之间是 相互独立的,当一个线程发生错误的时候,并不 一定会导致整个进程的崩溃 服务:一个进程当以服务的方式工作的时候,它 将会在后台工作,不会出现在任务列表中,但可 通过服务管理器检查任何的服务程序是否被启动 运行
API的拦截技术。通过建立一个后台的系来实现对进程和服务的遍历调用的控 制,当检测到进程ID(PID)为木马程序的服 务器端进程的时候直接跳过,这样就实现了进 程的隐藏
进程隐藏
真隐藏
当进程为真隐藏的时候,那么这个木马的服务 器部分程序运行之后,就不是一般进程,也不 是某个服务,而是完全的溶进了系统的内核
原理:不把木马做成一个应用程序,而做为一 个线程,一个其他应用程序的线程,把自身注 入其他应用程序的地址空间。而这个应用程序 对于系统来说,是一个绝对安全的程序,这样, 就达到了彻底隐藏的效果,这样的结果,导致 了查杀黑客程序难度的增加
真隐藏实现方式
在Windows系统中常见的真隐藏实现方 式有:
代码注入技术
常用的代码注入技术有
利用Windows消息钩子注入 利用CreateRemoteThread()函数注入 利用APC注入 更改线程上下文注入DLL
利用CreateRemoteThread()函数注入
CreateRemoteThread是一个API函数, 它可以在其它进程的地址空间中开启远程 线程
运行DLL文件最简单的方法是利用RunDLL32.exe Rundll32.exe MyDll MyFunc
注:使用此命令时函数名需要完全匹配
如果在MyDll.DLL的MyFunc函数中实现了木马的功能, 在系统管理员看来,进程列表中增加的是Rundll32.exe而 并不是木马文件,这样也是木马的一种简易欺骗和自我保 护方法
采用动态嵌入技术的DLL木马
DLL木马的最高境界是动态嵌入技术
动态嵌入技术是指将自己的代码嵌入正在运 行的进程中的技术。Windows系统中的每 个进程都有自己的私有内存空间,一般不允 许别的进程对这个私有空间进行操作,但是 实际上,仍然可以利用种种方法进入并操作 进程的私有内存
动态嵌入DLL木马的常用技术
例如,Windows的Socket 1.x的函数都存放在 wsock32.dll中,可以写一个wsock32.dll文件,替换原 先的wsock32.dll(将其重命名为wsockold.dll)
DLL木马wsock32.dll只做两件事:一是如果遇到不认识 的调用,就直接转发给wsockold.dll(使用函数转发器 forward);二是遇到特殊的请求(事先约定的)就解码并 处理。这样,理论上只要木马编写者通过Socket远程输 入一定的暗号,就可以控制wsock32.dll(木马DLL)做任 何操作
木马的隐藏方式
任务栏隐藏:使程序不出现在任务栏中 进程隐藏:躲避任务管理器等进程管理工具 通讯隐藏:进行通信时,将目标端口设定为常用
的80、21等端口,以此躲过防火墙的过滤 文件隐藏:通过某种方式,使用户无法发现木马
程序 加载方式隐藏:
通过各类脚本加载木马 修改设备驱动程序或修改DLL加载木马
利用DLL实现简单隐藏 采用替代技术的DLL木马 采用动态嵌入技术的DLL木马
利用DLL实现简单隐藏
利用DLL实现简单隐藏
假设编写了一个木马DLL,并且通过别的进程来运行它, 那么无论是入侵检测软件还是进程列表中,都只会出现该 进程而并不会出现该木马DLL
如果该进程是可信进程,那么木马DLL作为该进程的一部 分,也将成为被信赖的一员
代码注入技术
IAT HOOK技术 Inline HOOK技术
代码注入技术
代码注入有很多重要用途,在蠕虫、木马中有广 泛引用
钩子技术:截获需要的消息实现事件机制 进程隐藏:很多木马为了躲避进程检测,会将自身作
为一个DLL注入到其他进程中运行,由于它本身不是以 进程形式存在,因此无法找到其进程 突破防火墙:主机防火墙一般会阻止未知程序的网络 连接,木马可以将自身注入到正常进程,这样防火墙 就会把蠕虫、木马发起的连接当作正常的连接,从而 将其放过 信息窃取:木马要窃取其他进程的一些信息,比如网 络游戏的登录密码,就需要利用代码注入,进入其地 址空间中运行