当前位置:首页 > 教育 >

dll注入工具有什么用(四种常见的dll注入方式及原理)

来源:原点资讯(www.yd166.com)时间:2023-11-03 13:06:34作者:YD166手机阅读>>

dll注入工具有什么用,四种常见的dll注入方式及原理(1)

本文中我将介绍DLL注入的相关知识。不算太糟的是,DLL注入技术可以被正常软件用来添加/扩展其他程序,调试或逆向工程的功能性;该技术也常被恶意软件以多种方式利用。这意味着从安全角度来说,了解DLL注入的工作原理是十分必要的。

不久前在为攻击方测试(目的是为了模拟不同类型的攻击行为)开发定制工具的时候,我编写了这个名为“injectAllTheThings”的小工程的大部分代码。如果你想看一下利用DLL注入实施的攻击行为的若干示例,请参阅网址:https://attack.mitre.org/wiki/Technique/T1055。如果你想学习DLL注入的相关知识,你会发现该工程也是有用的。当你想要查询这类信息/代码时,你会发现网上充斥着垃圾;我的代码可能也属于垃圾。我并不是程序员,我只是在需要时对代码进行修改。无论如何,我以一种便于阅读和理解的方式,将多种能在32位和64位环境下生效的DLL注入技术(事实上一共7种不同的技术),整合到了一个单独的Visual Studio工程之中。有些朋友对这些代码感兴趣,所以它也可能会吸引你。为了区分,每种技术有其独有的源文件。

下图为工具的输出信息,其中显示了所有的选项和实现的技术。

dll注入工具有什么用,四种常见的dll注入方式及原理(2)

网友@SubTee认为,DLL注入是多余的(如下图所示);我倾向于同意TA的观点,然而DLL注入并不仅仅是加载DLL那么简单。

dll注入工具有什么用,四种常见的dll注入方式及原理(3)

你确实可以利用签名认证的微软二进制文件来加载DLL,但你无法附加到一个特定的进程来干预其内存内容。为什么大部分渗透测试师实际上不知道DLL注入是什么,或者它是如何工作的?因为Metasploit平台替他们包办的太多了;他们一直盲目地使用它。我认为,学习这种“奇特的”内存操作技术的最好地点,实际上是游戏黑客论坛。如果你正在进行攻击方测试,那么你就必须干这些“脏”活儿,同时研究这些技术;除非你乐意仅仅使用别人随意编写的工具。

大部分时间,我们使用很复杂的技术开始一次攻击方测试;如果我们未被发现,则开始降低复杂度。基本上这就是我们开始向磁盘投放二进制文件和应用DLL注入技术的时间点。

本文试图以一种简单而高阶的方式纵览DLL注入技术,同时为GitHub中的项目(网址为:https://github.com/fdiskyou/injectAllTheThings)提供“文档”支持。

简介

DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程。我们注入的代码以动态链接库(DLL)的形式存在。DLL文件在运行时将按需加载(类似于UNIX系统中的共享库)。本工程中,我将仅使用DLL文件,然而实际上,我们可以以其他的多种形式“注入“代码(正如恶意软件中所常见的,任意PE文件,shellcode代码/程序集等)。

同时要记住,你需要合适的权限级别来操控其他进程的内存空间。但我不会在此讨论保护进程(相关网址:https://www.microsoftpressstore.com/articles/article.aspx?p=2233328&seqNum=2)和权限级别(通过Vista系统介绍,相关网址:https://msdn.microsoft.com/en-gb/library/windows/desktop/bb648648(v=vs.85).aspx);这属于完全不同的另一个主题。

再次强调一下,正如我之前所说,DLL注入技术可以被用于合法正当的用途。比如,反病毒软件和端点安全解决方案使用这些技术来将其软件的代码嵌入/拦截系统中“所有”正在运行的进程,这使得它们可以在其运行过程中监控每一个进程,从而更好地保护我们。同样存在恶意的用途。一种经常被用到的通用技术是注入“lsass”进程来获取口令哈希值。我们之前都这么干过。很明显,恶意代码同样广泛应用了代码注入技术:不管是运行shellcode代码,运行PE文件,还是在另一个进程的内存空间中加载DLL文件以隐藏自身,等等。

基础知识

对于每一种技术,我们都将用到微软Windows API,因为它为我们提供了大量的函数来附加和操纵其他进程。从微软Windows操作系统的第一个版本开始,DLL文件就是其基石。事实上,微软Windows

API中的所有函数都包含于DLL文件之中。其中,最重要的是“Kernel32.dll”(包含管理内存,进程和线程相关的函数),“User32.dll”(大部分是用户接口函数),和“GDI32.dll”(绘制图形和显示文本相关的函数)。

你可能会有疑问,为什么会有这些API接口,为什么微软为我们提供如此丰富的函数集来操纵和修改其他进程的内存空间?主要原因是为了扩展应用程序的功能。比如,一个公司创建了一款应用程序,并且允许其他公司来扩展或增强这个应用程序;如此,这就有了一个合法正当的用途。除此之外,DLL文件还用于项目管理,内存保护,资源共享,等等。

下图尝试说明了几乎每一种DLL注入技术的流程。

dll注入工具有什么用,四种常见的dll注入方式及原理(4)

首页 123下一页

栏目热文

dll注入工具源码官方完整版(dll文件怎么注入)

dll注入工具源码官方完整版(dll文件怎么注入)

不关注《一碳科技》?好吧,你错过了很多东西!DLL注入是什么?它有多厉害?它能让360安全卫士执行你的“破坏”代码!首先...

2023-11-03 13:21:13查看全文 >>

dll注入辅助工具(dll注入式外挂教程)

dll注入辅助工具(dll注入式外挂教程)

原理:DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程。我们注入的代码以动态链接库(DLL)的形式存在...

2023-11-03 13:06:52查看全文 >>

mc指令辅助器(最好用的mc指令辅助器)

mc指令辅助器(最好用的mc指令辅助器)

使用方便功能强大的我的世界指令生成工具升级啦,本次升级新增了MOD模块,你再也不用为不懂MOD指令而烦恼!智能搜索功能,...

2023-11-03 13:37:45查看全文 >>

接龙管家怎么更改上传的图片(接龙管家怎么导入图片)

接龙管家怎么更改上传的图片(接龙管家怎么导入图片)

拍照打卡的得力助手。好消息,接龙管家新增了水印拍照功能。传统的工作拍照打卡往往缺乏相关信息,难以确认照片的真实性。而水印...

2023-11-03 13:20:54查看全文 >>

怎样在接龙小程序中添加照片(接龙小程序完成后怎么补加照片)

怎样在接龙小程序中添加照片(接龙小程序完成后怎么补加照片)

日常管理班级群,班主任把要做的工作提前安排好先,比如班级里签到打卡、接龙、报名、发通知收集二维码的龙艺秀,我们一起来摸索...

2023-11-03 13:09:15查看全文 >>

dll文件怎么注入(简单的dll注入教程)

dll文件怎么注入(简单的dll注入教程)

何为dll注入DLL注入技术,一般来讲是向一个正在运行的进程插入/注入代码的过程。我们注入的代码以动态链接库(DLL)的...

2023-11-03 12:58:47查看全文 >>

dll自动注入怎么写(四种常见的dll注入方式及原理)

dll自动注入怎么写(四种常见的dll注入方式及原理)

最近一直在研究注入,写一篇全的,也给自己做个总结dll注入其实就是让别的进程的address space去读相关的动态库...

2023-11-03 13:15:03查看全文 >>

注入dll有什么用(dll注入后怎么使用)

注入dll有什么用(dll注入后怎么使用)

Hook概述Hook也就是钩子,在Windows中大部分的应用程序都是基于消息机制,会根据不同的消息使用消息过程函数完成...

2023-11-03 12:57:21查看全文 >>

cdr自动排版怎么弄(cdr一键自动排版)

cdr自动排版怎么弄(cdr一键自动排版)

CorelDRAW/cdr插件077例:根据页面大小自动排版。大家好,这一集接着讲cdr插件第77例:根据页面大小自动排...

2023-11-03 13:38:58查看全文 >>

cdr怎么一键排版(cdr一键排版怎么安排)

cdr怎么一键排版(cdr一键排版怎么安排)

我们今天来学习CDR的智能排版技巧。我们可以将企业或学校的工作证进行智能排版,因为每个人的姓名、职位和编号都不一样,手动...

2023-11-03 13:24:48查看全文 >>

文档排行