DLL Hijacking Exploit

简介:

 前几天 exploit-db 数据库中公布了 长达 3 页的本地漏洞,全是:DLL Hijacking Exploit。详情可以参考:http://www.exploit-db.com/local/,那么什么是 DLL Hijacking Exploit? 是什么原因造成的 DLL Hijacking Exploit 呢? 下面我给简单说一下原因:

一、环境变量执行优先级

说起该漏洞,先谈一下变量的优先级别:

最高

%userprofile%

%systemroot%/system32

%systemroot%

用户定义path

最低

二、软件兼容性原因导致漏洞产生

Windows 操作有不同的操作系统,而不同的操作系统里面有不同的 共享链接库(dll),这就造成了不一致,有的库XP才有,有的库win7才有,有的或者直接废弃掉了,而软件必须兼容这些,这就给 DLL Hijacking Exploit 攻击带来了可称之机。首先看一张图:

image

当我打开 2222.docx 文档的时候,默认会调用  winword.exe 进程打开文件,然后寻找共享链接库(dll),这里我们抓到的是:imeshare.dll、IMM32.DLL。可以看到,winword 会通过上面提到的环境变量优先级来查找dll 的位置,如果存在就加载该dll 文件。根据上面的图可以看到如下顺序:

程序安装目录—》system32 目录—》注册表的images file execution options 映象路径à 加载。

在每一步寻找dll 的时候,如果存在就马上加载。根据“有的库XP才有,有的库win7才有,有的或者直接废弃掉了”这个原因,我们就理由说:我们可以劫持攻击。攻击思路如下:“如果某一系统中废弃掉了某一个 dll 文件,而软件又要为了兼容系统,还会寻找 dll,这时候,我们就可以在他寻找的某一路径中(可以为最终路径,也就是当前目录),写入我们的恶意dll 文件,让其加载执行code

三、实施攻击

前提条件:

1、  软件启动时需要加载一个 dll 。

2、  软件需要的 dll 在系统中不存在(因为不同系统环境不同,很多dll已经废弃)。

3、  一个编译好的恶意dll,示例代码如下:

#include <windows .h>
 
int hax()
 
{
 
WinExec(&quot;calc&quot;, 0);
 
exit(0);
 
return 0;
 
}
 
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)
 
{
 
hax();
 
return 0;
 
}
</windows>

 

攻击:

在 winword.exe 启动时会调用 imeshare.dll,如果系统中不存在,就会在某一系统环境变量指定的路径中寻找,现在我们把制作好的 imeshare.dll 放在 doc 文档的当前目录,然后当 word 启动时,就会加载我们的恶意dll,执行恶意code。

所需要的文件。

漏洞执行成功!

四、其他软件利用

五、劫持总结

a)         Javascript Hijacking

b)         Linux shell Hijacking

c)         images file execution options hijack

d)         DLL Hijacking

e)         …..

f)          Windows shell Hijacking

所有造成劫持的原因都来源于:某个东西可被覆盖!!

 

思考:在其他地方是否可被劫持呢? 思想? 大脑?









本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/575499,如需转载请自行联系原作者

相关文章
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
|
机器学习/深度学习 人工智能 负载均衡
基于 NVIDIA Megatron-Core 的 MoE LLM 实现和训练优化
本文将分享阿里云人工智能平台 PAI 团队与 NVIDIA Megatron-Core 团队在 MoE (Mixture of Experts) 大型语言模型(LLM)实现与训练优化上的创新工作。
|
10月前
|
自然语言处理 Go 持续交付
阿里云云效产品使用合集之如何安装agent
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
10月前
|
缓存 中间件
Nest.js 实战 (九):使用拦截器记录用户 CURD 操作日志
这篇文章介绍了在Nest.js中如何实现记录用户CURD操作的需求。首先解释了什么是拦截器以及拦截器的作用,然后通过创建Prisma模型,添加Log模型,并通过编写LoggerInterceptor拦截器,实现了记录用户操作的功能。最后通过效果演示和总结,强调了使用拦截器实现此功能的有效性。
174 0
|
8月前
|
人工智能 IDE Java
AI 代码工具大揭秘:提高编程效率的必备神器!
【10月更文挑战第1天】近年来,人工智能得到了迅猛的发展,并在各行各业都得到了广泛应用。尤其是近两年来,AI开发工具逐渐成为开发者们的新宠,其中 GitHub Copilot 更是引发了无限可能性的探索。
376 9
AI 代码工具大揭秘:提高编程效率的必备神器!
|
SQL 分布式计算 Java
浅析 hive udaf 的正确编写方式- 论姿势的重要性-系列四-如何直接访问metastore service(附源码)
浅析 hive udaf 的正确编写方式- 论姿势的重要性-系列四-如何直接访问metastore service(附源码)
|
10月前
|
存储 安全 JavaScript
解释 XSS 攻击及其预防措施
【8月更文挑战第31天】
836 0
|
安全
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
2301 0
致远OA A8 htmlofficeservlet 任意文件上传漏洞 漏洞复现
|
存储 关系型数据库 MySQL
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
MySQL周内训参照1、ER实体关系图与数据库模型图绘制
264 1
|
网络协议 Ubuntu Linux
nmap流量特征修改
nmap流量特征修改
nmap流量特征修改

热门文章

最新文章