DLL劫持学习及复现】的更多相关文章

0x01 dll简介 在Windows系统中,为了节省内存和实现代码重用,微软在Windows操作系统中实现了一种共享函数库的方式.这就是DLL(Dynamic Link Library),即动态链接库,这种库包含了可由多个程序同时使用的代码和数据. 每个DLL都有一个入口函数(DLLMain),系统在特定环境下会调用DLLMain.在下面的事件发生时就会调用dll的入口函数: 1.进程装载DLL. 2.进程卸载DLL. 3.DLL在被装载之后创建了新线程. 4.DLL在被装载之后一个线程被终止…
(该文参考网络他人资料,仅为学习,不许用于非法用途) 一.操作环境 Windows7 :  微信  , Process Explorer(任务管理工具,本实验中用于查找微信程序调用的DLL文件) Kali Linux  :  BDF(劫持工具,可用于DLL注入) 可以互相ping通 二.操作步骤 Step1:在win7中打开微信和Process Explorer,在Process Explorer中找到微信进程,再找到微信调用的DLL文件,如:libEGL.dll Step2:将该文件拷贝到Ka…
0x01 前言 说起DLL劫持技术,相信大家都不会陌生,因为这种技术的应用比较广泛,比如木马后门的启动.破解程序的内存补丁.外挂插件的注入以及加密狗的模拟等.之所以DLL劫持技术深受黑客们的喜爱,主要是因为该技术可以有效的躲过大部分杀软,并且实现起来技术难度不大.DLL劫持技术也不是什么新技术,记得在<Windows核心编程>中也有提及相关技术.可是对我们广大初学者来说,DLL劫持技术就显得很神秘了,本系列教程将向大家详细讲解什么是DLL劫持.DLL劫持的形成原因及原理.最后还会以实例向大家讲…
本菜最近学习了什么DLL注入啊,hook啊(r3)的相关技术,觉得很好玩,于是深入发现还有DLL劫持这种东西觉得挺好玩的,加上最近看到各种木马分析报告中都还有发现有利用白加黑的现象.于是自己想找几个来玩玩,但是一个一个手动测试麻烦啊,于是想写个工具来测试目标是否存在DLL劫持漏洞的可能,于是就产生了写个工具的想法,上网一看,原来十年前都有大神写出来了,不过感觉有点麻烦,好多选项不知道干嘛的,加上本人只学了汇编和C,C++不太懂,平常都是做WINDOWS C编程,所以参考那位前辈的生成的代码改进成…
1.什么是DLL DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件. 2.DLL劫持又是什么 具体原理百度吧,说白了就是用你自己的dll屏蔽或修改了…
DLL劫持技术当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中. DLL劫持原理 由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件.首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列出的各个目录下查找.利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统…
DLL搜索路径和DLL劫持 环境:XP SP3 VS2005 作者:magictong 为什么要把DLL搜索路径(DLL ORDER)和DLL劫持(DLL Hajack)拿到一起讲呢?呵呵,其实没啥深意,仅仅是二者有因果关系而已.可以讲正是因为Windows系统下面DLL的搜索路径存在的漏洞才有了后来的一段时间的DLL劫持大肆流行. 最近(其实不是最近,哈,是以前分析过,断断续续的……)简单分析了一个DLL劫持下载者的行为,感觉有必要写点东西说明一下.其实DLL劫持是比较好预防的,从编程规范上我…
如何使用动态链接库 Linux下打开使用动态链接库需要三步(实际上和windows下基本一样):1.加载动态链接库,通过调用库函数dlopen()获得链接库的句柄,对应于windows下的 AfxLoadLibrary函数 //参数一filename是.so文件路径 //参数二flag指定解析符号的时间点等 //返回值是链接库的句柄 void *dlopen(const char *filename, int flag); 2.从句柄中获取函数符号加载的内存地址,通过调用dlsym函数返回函数地…
本文原创作者:丝绸之路 <img src="http://image.3001.net/images/20150921/14428044502635.jpg!small" title="th.jpg" style="width: 345px; height: 256px;"/></p> DLL劫持漏洞已经是一个老生常谈,毫无新鲜感的话题了.DLL劫持技术也已经是黑客们杀人越货,打家劫舍必备的武器.那么,随着Win10的诞生…
  一.dll的定义 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件. 如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows…
最近在搞内网,需要实现免杀后门,大佬推荐了dll劫持,DLL劫持后,能干很多事情,比如杀软对某些厂商的软件是实行白名单的,你干些敏感操作都是不拦截,不提示的.还有留后门,提权等等.本文主要介绍如何检测dll劫持,以及实例演示. DLL劫持 dll文件是什么? DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系…
控制台程序:DllLoader Dll加载器,用于动态加载目标Dll,并动态调用目标函数 #include <cstdio> #include <windows.h> typedef int (*pAdd) (int a, int b); int main() { HMODULE hModule = GetModuleHandleA("Dll.dll") != NULL ? GetModuleHandleA("Dll.dll") : Load…
0x00  前言 前段时间在研究着windows底层的一些东西,发现这个dll劫持一直没有做过,根据倾旋师傅的视频和文章做了一系列的研究,然后就突发来了兴致研究一些dll劫持提权. 0x01   了解dll 动态链接库英文为DLL,是Dynamic Link Library的缩写.DLL是一个包含可由多个程序,同时使用的代码和数据的库.例如,在 Windows 操作系统中,Comdlg32.dll 执行与对话框有关的常见函数.因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框.…
当我们运行程序时,一般情况下会默认加载Ntdll.dll和Kernel32.dll这两个链接库,在进程未被创建之前Ntdll.dll库就被默认加载了,三环下任何对其劫持都是无效的,除了该Dll外,其他的Dll都是在程序运行时,在输入表中查找到对应关系后才会被装载到内存中的,理论上来说对除NtDll以外的其他库都是可操作的. 工具下载:工具下载地址:http://lyshark.github.io/soft/PETools.zip 而DLL的装载是存在先后顺序的,当系统开机时smss.exe会将系…
写文章的契机还是看沙雕群友挖了十多个DLL劫持的漏洞交CNVD上去了... 就想起来搜集整理一下这部分 0x01 前言 DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型 在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的…
假设我们通过某个漏洞,获取目标服务器的shell,在进行攻防的时候,为了不引起防守方(蓝队)的发现,我们要不能上来就把动作搞得很大,往往我们要对自己获取的"肉鸡"进行权限的维持,以便进行后渗透 在这里我以ms17-010为例,进行实验 1.实验环境 攻击者(红队):kali linux 192.168.4.157 受害者(蓝队):windows 192.168.4.131 2.步骤: 设置payload,进行参数. 使用ms17-010漏洞模块 设置该漏洞所对应的参数 exploit进…
WIN DLL劫持提权 原理: Windows程序启动的时候需要DLL.如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权.通常,Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索: 1.应用程序加载的目录 2.C:\Windows\System32 3.C:\Windows\System 4.C:\Windows 5.当前工作目录Current Working Directory,CWD 6.在PATH环境变量的目录(先系统后用户) 过程…
持久化-DLL劫持 原理 通过篡改.替换和代理原dll文件来达到劫持. 原理演示 假定演练流程 假定我们要劫持的目标是 c:\temp\legit.dll 获取 c:\temp\legit.dll 所有的导出功能列表 创建恶意DLL恶意.dll一旦被目标进程加载,就会执行有效负载 在恶意文件.dll中,将legit.dll(这是我们要劫持的DLL)重定向/转发所有导出的功能到legit1.dll(这是我们要劫持的DLL,只是用一个新名称) 复制恶意文件到c:\temp\legit.dll(同级目…
(该文参考自网络其他人资料,仅为学习,不得用于非法用途) 准备的工具:kali虚拟机 W7虚拟机 微信 ProcessExplorer the-backdoor-factory-master 打开微信 打开process 找到微信的动态链接文件 随便打开一个lib文件的所在文件夹找到libEGL.dll,复制到主机上(只要后缀是dll的动态链接库文件都可以的) 然后打开kali虚拟机把下载the-backdoor-factory-master(BDF劫持工具,可用于DLL注入) 命令为:gei…
库: AheadLib 输入dll 处填你要劫持的dll 路径. 例如: C:\WINDOWS\system32\lpk.dll 来自为知笔记(Wiz)…
转载于:https://uk.v2ex.com/t/485611#reply15 Vulhub 是一个面向大众的开源漏洞靶场,无需 docker 知识,简单执行两条命令即可编译.运行一个完整的漏洞靶场镜像. Vulhub 从 2017 年 4 月 9 号第一次 commit,到 2018 年 9 月,持续更新近一年半,已经积累 100 余环境.900 多次提交.2000 多 stars,几乎包括近年来所有热门漏洞,对于漏洞学习者.安全工作者来说,都是一个非常有力的辅助工具. 现在 vulhub…
最近用的多  一个实用小tips 文章参考原创Shadow Force大牛  翻译文章参考三好大佬 利用MSDTC服务加载后门dll,实现自启动后门 后门思路可以查看趋势科技文章 https://blog.trendmicro.com/trendlabs-security-intelligence/shadow-force-uses-dll-hijacking-targets-south-korean-company/ 0x01 MSDTC简介 msdtc.exe是微软分布式传输协调程序.该进程…
原文出处:http://www.blogjava.net/wxb_nudt/archive/2007/09/11/144371.html DLL编写教程 半年不能上网,最近网络终于通了,终于可以更新博客了,写点什么呢?决定最近写一个编程技术系列,其内容是一些通用的编程技术.例如DLL,COM,Socket,多线程等等.这些技术的特点就是使用广泛,但是误解很多:网上教程很多,但是几乎没有什么优质良品.我以近几个月来的编程经验发现,很有必要好好的总结一下这些编程技术了.一来对自己是总结提高,二来可以…
首先说明一下:同一个动态库(DLL)被多个的程序加载的话,那么将会在每次加载的时候都会重新分配新的独立的内存空间,绝对不是共用一个,所以当一个DLL被多次加载的时候,其会在内存中“复制”多份,不会互相之间 产生影响. 加载DLL有两种方式:隐式和显式.下面就以刚创建的DLL为例,来介绍两种方式 一.隐式 本章创建的第一个 D L L包含一个接口单元.下面就用该接口单元来隐式链接 DLL.这个工程的主窗体上有一个TMadkEdit.一个TButton和九个TLabel. 在这个应用程序里,用户输入…
下面是在Delphi中创建一个DLL的全过程,你将看到怎样创建一个接口单元,使之可以被其他的应用程序访问.并且将学会怎么把Delphi的窗体加入DLL中. 一.数美分:一个简单的DLL 下面是包含一个例程的DLL例子.该例程是将以美分计算的货币换算成五分镍币.一角硬币的数目. 1.一个简单的DLL 该DLL中包含PenniesToCoins()函数,下面完整的显示了该DLL项目文件代码 library PenniesLib; {$DEFINE PENNIESLIB} uses SysUtils,…
使用DLL有若干理由,其中有一些前面提到过的.大体说来,使用动态链接库可以共享代码.系统资源,可以隐藏实现的代码或底层的系统例程.设计自定义控件 一.共享代码.资源和数据 前面已经提到,共享代码是创建动态链接库的主要目的所在.但与单元的代码共享不同,DLL的代码可以被任何Windows 应用程序共享,而单元代码的工现象局限于Delphi应用程序 另外,DLL提供了共享资源的途径,诸如 位图.字体.图标等等这些都可以放到一个资源文件中,并直接链接到应用程序.如果把这些资源放到DLL中,那么就可以让…
静态连接 静态链接是指Delphi 编译器把要调用的函数和过程编译成可执行代码.函数的代码可存留在应用程序的 .dpr文件或一单元中.当链接用户的应用程序时,这些函数与过程便成为最终的可执行文件的一部分.也就是说,函数和过程都在程序的.exe文件中 程序运行时,函数和过程随程序一起调入内存,它们的位置与程序的位置是相关的.当主程序需要调用程序或过程时,流程将跳转到函数或过程所在的位置,执行完函数或过程的代码,将返回主程序调用位置.而函数和过程的相对位置,在链接时就已经确定了 以上是对Delphi…
DLL(动态链接库)是程序模块,它包括代码.数据或资源,能够被其他的Windows 应用程序共享.DLL的主要特点之一是应用程序可以在运行时调入代码执行,而不是在编译时链接代码,因此,多个应用程序可以共享同一个DLL的代码. 事实上,文件 Kernel32.dll.User32.dll.GDI32.dll就是核心Win32 系统的动态链接库.Kernel.dll 负责内存.进程.线程的管理.User32.dll包含了一些程序,是创建窗口和处理Win32消息的用户接口.GDI32.dll负责处理图…
1.前言: 人总归还是要有梦想的,不然跟咸鱼有什么区别.这一周给自己定下了研究DLL的任务还是要逼自己完成的呀,上了一天的党校,游戏也不打在这里写博,心疼自己.话说为什么要给自己下这样一个任务呢,是因为在研究数据库编程的过程中看到了书上写着相关DLL的编写问题,感觉也挺有意思的,不妨先来研究一下DLL. 2.DLL概论: DLL(Dynamic Link Library):DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用…
1.DLL库与LIB库对比: 静态链接库Lib(Static Link Library),是在编译的链接阶段将库函数嵌入到应用程序的内部.如果系统中运行的多个应用程序都包含所用到的公共库函数,则必然造成很大的浪费.这样即增加了链接器的负担,也增大了可执行程序的大小,还加大了内存的消耗.Lib的好处是应用程序可以独立运行,而不需要在操作系统中另外安装对应的DLL. 而DLL采用动态链接,对公用的库函数,系统只有一个拷贝(一般是位于系统目录的*.DLL文件),而且只有在应用程序真正运行阶段调用时,才…