系统安全攻防战:DLL注入技术详解

简介:
系统安全攻防战:DLL注入技术详解

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位有效负载。

手动注入

下一步是设置metasploit侦听器,以便在将恶意DLL注入进程后接受连接。

DLL注入

有许多可以执行DLL注入的工具,但最可靠的工具之一是出自SecurityXploded技术团队的Remote DLL Injector,该工具在实现上使用的是CreateRemoteThread技术,它可以将DLL注入到启用了ASLR的进程中,工具使用的过程中只需要提供进程ID和DLL路径两个参数:

DLL注入

RemoteDLLInjector在初始运行的时候会展示为了完成dll注入所涉及到的所有步骤, 如下图所示。

如果DLL被成功注入,它将返回一个具有和被注入进程相同权限的meterpreter 会话。因此,具有高权限的进程可能会是攻击者首选要注入的进程以执行提权操作。

Metasploit

Metasploit框架具有执行DLL注入的特定模块。它只需要指定进程的PID和DLL的路径并和meterpreter 成功建立会话。

Metasploit

PowerSploit

也可以通过使用PowerSploit完成dll注入以提升程序执行权限。 msfvenom可以用于生成恶意DLL,然后通过任务管理器可以获得目标进程的PID。 如果目标进程作为SYSTEM运行,则注入的DLL将以相同的权限运行。

PowerSploit

Invoke-DLLInjection模块将执行DLL注入,如下所示:

DLL内的有效内容将被执行,并且将获得SYSTEM权限。


本文作者:liulang

来源:51CTO

相关文章
|
4月前
|
供应链 安全 数据安全/隐私保护
线上观看人次3万+!「系统安全技术沙龙-龙蜥社区走进浪潮信息专场」圆满结束
增强操作系统的安全防护能力,已然成为各行各业数字化建设中不可忽视且亟待解决的课题。
|
6月前
|
存储 安全 算法
信管知识梳理(五)信息系统安全技术
信息加密是指利用加密技术伪装信息,使未授权者不能理解它的真实含义。加密前的原始数据称为明文,加密后的数据称为密文,从明文到密文的过程称为加密(Encryption)。用于对数据加密的一组数学变化称为加密算法,加密在加密密钥的控制下进行。对数据加密的技术主要分为两类
119 0
|
安全 Linux Anolis
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
带你读《2022龙蜥社区全景白皮书》——5.8.1 龙蜥操作系统漏洞管理
293 10
|
算法 安全 Linux
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
带你读《2022龙蜥社区全景白皮书》——5.8.3 商密软件栈
157 3
|
云安全 运维 安全
Apsara Stack 技术百科 | 数字化业务系统安全工程
数字化平台已经与我们生活紧密结合,其用户规模庞大,一旦系统出现故障,势必会造成一定生活的不便。比如疫情时代,健康码已经成为人们出门必备的条件,一旦提供健康码服务平台出现故障,出行将变得寸步难行。因此,系统安全问题成为威胁企业正常运行的重大风险,其安全稳定将变的越来越重要。
796 0
Apsara Stack 技术百科  |  数字化业务系统安全工程
|
安全 Linux 开发工具
公开/封闭属性android:exported引出的Android系统安全技术
公开/封闭属性android:exported引出的Android系统安全技术 android:exported是Android在AndroidManifest.xml里面配置Activity或其他组件如Service或广播等的基础属性,之所以在这里挑出来单独说,是因为该属性现在经常被一些粗糙的安全漏洞扫描系统错误的理解和使用,形成不正确的分析结论。
1170 0
|
6月前
|
监控 安全 Linux
Linux系统的防御从多个方面来保护系统安全
防火墙:使用防火墙软件如iptables或Firewalld来限制网络流量,保护系统免受恶意网络攻击。
|
6月前
|
网络协议 安全 Linux
linux系统安全及应用——端口扫描
linux系统安全及应用——端口扫描
84 0
|
安全 Linux
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
Linux 系统安全 - 近期发现的 polkit pkexec 本地提权漏洞(CVE-2021-4034)修复方案
1298 2
下一篇
无影云桌面