系统安全攻防战:DLL注入技术详解
2017-08-15 15:15
399 查看
![](http://image.3001.net/images/20170808/1502186532900.jpg!small)
DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术。攻击者使用DLL注入的过程中如果被赋予过多的运行特权,那么攻击者就很有可能会在DLL文件中嵌入自己的恶意攻击代码以获取更高的执行权限。
具体而言,该技术遵循以下步骤:
1. 需要将DLL写入磁盘中;
2. “CreateRemoteThread”调用“LoadLibrary”;
3. 反射加载程序功能将尝试使用适当的CPU寄存器找到目标进程的进程环境块(PEB),并从中尝试查找内存中的kernel32dll和任何其他必需库的地址;
4. 发现所需的API函数(如LoadLibraryA,GetProcAddress和VirtualAlloc)的内存地址;
5. 上述功能将用于将DLL正确加载到内存中,并调用其将执行DLL的入口点DllMain。
本文将介绍使用PowerSploit,Metasploit和自定义工具以及使用这些工具执行DLL注入的过程。
手动注入
手动注入可以从头开始创建DLL,也可以通过Metasploitmsfvenom创建DLL,该文件可以生成包含特定有效内容的DLL文件。 应该注意的是,如果DLL被注入的进程是64位,那么应该使用64位有效负载。![](http://image.3001.net/images/20170808/15021865948556.png!small)
下一步是设置metasploit侦听器,以便在将恶意DLL注入进程后接受连接。
![](http://image.3001.net/images/20170808/15021866138539.png!small)
有许多可以执行DLL注入的工具,但最可靠的工具之一是出自SecurityXploded技术团队的Remote DLL Injector,该工具在实现上使用的是CreateRemoteThread技术,它可以将DLL注入到启用了ASLR的进程中,工具使用的过程中只需要提供进程ID和DLL路径两个参数:
![](http://image.3001.net/images/20170808/1502186622852.png!small)
RemoteDLLInjector在初始运行的时候会展示为了完成dll注入所涉及到的所有步骤, 如下图所示。
![](http://image.3001.net/images/20170808/15021866355635.png!small)
如果DLL被成功注入,它将返回一个具有和被注入进程相同权限的meterpreter 会话。因此,具有高权限的进程可能会是攻击者首选要注入的进程以执行提权操作。
![](http://image.3001.net/images/20170808/15021866476013.png!small)
Metasploit
Metasploit框架具有执行DLL注入的特定模块。它只需要指定进程的PID和DLL的路径并和meterpreter 成功建立会话。![](http://image.3001.net/images/20170808/1502186655840.png!small)
![](http://image.3001.net/images/20170808/15021866635056.png!small)
PowerSploit
也可以通过使用PowerSploit完成dll注入以提升程序执行权限。 msfvenom可以用于生成恶意DLL,然后通过任务管理器可以获得目标进程的PID。 如果目标进程作为SYSTEM运行,则注入的DLL将以相同的权限运行。![](http://image.3001.net/images/20170808/1502186677501.png!small)
Invoke-DLLInjection模块将执行DLL注入,如下所示:
![](http://image.3001.net/images/20170808/15021866874323.png!small)
DLL内的有效内容将被执行,并且将获得SYSTEM权限。
![](http://image.3001.net/images/20170808/15021866942326.png!small)
相关文章推荐
- 详解Windows系统安全技术概念
- 打造安全的WEB服务器 系统帐户权限设置详解
- Android安全攻防战,反编译与混淆技术完全解析(上)
- 【CCIE技术】WLAN安全技术综合分析详解概述
- Android安全攻防战,反编译与混淆技术完全解析(上)
- 服务器磁盘阵列系统(RAID)技术详解--RAID0
- Android安全攻防战,反编译与混淆技术完全解析(下)
- Android安全攻防战,反编译与混淆技术完全解析(上)
- Android安全攻防战,反编译与混淆技术完全解析(上)
- Android安全攻防战,反编译与混淆技术完全解析(上)
- Android系统移植技术详解
- Acegi安全系统详解
- 平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测
- Android安全攻防战,反编译与混淆技术完全解析(上)
- 技术资料收藏:Windows系统文件中文详解
- NAS技术详解:核心文件系统WFAL/SnapShot技术详解
- Android安全攻防战,反编译与混淆技术完全解析(上)
- 信息安全管理(4):信息安全系统的技术规范模型