15.1 DLL注入 目前公开的DLL注入技巧共有以下几种: 1.注入表注入 2.ComRes注入 3.APC注入 4.消息钩子注入 5.远线程注入 6.依赖可信进程注入 7.劫持进程创建注入 8.输入法注入 远程线程注入的方式在于使用一个Windows API函数CreateRemoteThread,通过它可以在另外一个进程中注入一个线程并执行. 实验环境 操作系统:win10_64位 被注入程序:系统自带notepad_32位 工具整理 Procexp : 查看进程模块是否被注入成功的工具…
远程线程注入DLL突破session 0 隔离 0x00 前言 补充上篇的远程线程注入,突破系统SESSION 0 隔离,向系统服务进程中注入DLL. 0x01 介绍 通过CreateRemoteThread实现的远程线程注入,流程大致就是: 通过OpenProcess获取目标进程句柄. 通过VirtualAllocEx在目标进程空间中申请内存,通过WriteProcessMemory放入需要载入的dll的路径. 通过GetModuleHandleA获取诸如kernel32.dll这类系统dll…
远程线程注入 0x00 前言 远程线程注入是一种经典的DLL注入技术.其实就是指一个新进程中另一个进程中创建线程的技术. 0x01 介绍 1.远程线程注入原理 画了一个图大致理解了下远程线程注入dll的原理. 如果是实现注入dll的话,流程大致就是: 通过OpenProcess获取目标进程句柄. 通过VirtualAllocEx在目标进程空间中申请内存,通过WriteProcessMemory放入需要载入的dll的路径. 通过GetModuleHandleA获取诸如kernel32.dll这类系…
前言 之前已经提到过,远线程注入和内存写入隐藏模块,今天介绍突破session 0的dll注入 其实今天写这个的主要原因就是看到倾旋大佬有篇文章提到:有些反病毒引擎限制从lsass中dump出缓存,可以通过注入lsass 看大佬的博客真的可以学到很多哈哈 编译环境 win10 vs2019 什么是session 0 在Windows XP,Windows Server 2003以及更早的版本中,第一个登录的用户以及Windows的所有服务都运行在Session 0上.这样做危险的地方是,用户使用…
一.远程线程注入的原理 1.其基础是在 Windows 系统中,每个 .exe 文件在双击打开时都会加载 kernel32.dll 这个系统模块,该模块中有一个 LoadLibrary() 函数,可以将DLL文件加载到自身进程中. 2.这样,就可以用 CreateRemoteThread() 函数创建一个远程线程,让目标进程调用LoadLibrary() 来加载我们自己写的DLL .CreateRemoteThread() 有这几个参数比较关键:A:想要注入的进程的句柄,这里可以通过OpenPr…
DLL全称dynamic linking library.即动态链接库.广泛应用与windows及其他系统中.因此对dll的深刻了解,对计算机软件开发专业人员来说非常重要. windows中所有API都包含在DLL中.三个最重要的DLL是Kernel32.dll,User32.dll,GDI32.dll. 使用dll的好处: 1:扩展了应用程序的特性. 2:简化了项目管理 可以让不同的开发团队管理不同的模块. 3:有助于节省内存. 一个dll可被多个程序共享.多个程序调用同一个dll内的同一个函…
前言 该技术是指通过在[目标进程]中创建一个[远程线程]来达到注入的目的. 创建的[远程线程]函数为LoadLibrary, 线程函数的参数为DLL名字, 想要做的工作在DLL中编写.  示意图如下:  相关API 1.创建远程线程 //该函数除了第一个参数为目标进程句柄外 //其他参数均和CreateThread一样 HANDLE hThread = CreateRemoteThread( __in HANDLE hProcess, //目标进程句柄 __in_opt LPSECURITY_A…
Windows加载dll的特性 1.Windows系统中,每个exe软件运行的时候,会加载系统模块kernel32.dll 2.所有加载进exe软件的系统模块kernel32.dll,内存地址都是一样 3.kernel32.dll中的LoadLibrary()函数用于加别载的dll 4.dll内的函数相对dll模块的地址不变(偏移不变) 注入dll工具的原理 1.获取目标进程的句柄 2.通过句柄,在目标进程的内存里开辟空间 3.把dll的路径写入到目标进程开辟的内存空间 4.创建一个远程线程,让…
CreateRemoteThread虽然很容易被检测到,但是在有些场合还是挺有用的.每次想用的时候总想着去找以前的代码,现在在这里记录一下. CreateRemoteThread远程注入 DWORD dwOffect,dwArgu; BOOL CreateRemoteDll(const char *DllFullPath, const DWORD dwRemoteProcessId ,DWORD dwOffect,DWORD dwArgu) { HANDLE hToken; if ( OpenP…
第1 9章 D L L基础 这章是介绍基本dll,我就记录一些简单应用,dll的坑点以及扩展后面两章会说,到时候在总结. 自从M i c r o s o f t公司推出第一个版本的Wi n d o w s操作系统以来,动态链接库(D L L)一直是这个操作系统的基础. Windows API中的所有函数都包含在 D L L中.3个最重要的 D L L是K e r n e l 3 2 . d l l,它包含用于管理内存.进程和线程的各个函数: U s e r 3 2 . d l l,它包含用于执行…