今天给大家介绍的是一款名叫sRDI的注入工具,它可以基于Shellcode实现反射型DLL注入,并能够将DLL转换成独立的Shellcode。
工具介绍
sRDI的所有功能基于以下两个组件:
1.一个C语言项目,可将PE Loader编译为Shellcode;
2.转换代码负责将DLL、RDI和用户数据进行绑定。
该项目由以下元素组成:
使用样例
在使用该工具之前,我建议大家先对反射型DLL注入有一个基本了解,可以先阅读一下【这篇文章】:
https://disman.tl/2015/01/30/an-improved-reflective-dll-injection-technique.html
使用Python将DLL转换为Shellcode:
使用C#加载器将DLL加载进内存:
使用Python脚本转换DLL,并用NativeLoader完成加载:
使用PowerShell转换DLL,并用Invoke-Shellcode完成加载:
工具隐蔽性
目前社区有多种方法可检测内存注入,加载功能实现了两种增强隐蔽性的方法:
1.适当的权限:在对内存空间进行定位时,工具会根据内存区域的特征来设置内存权限;
2.PEHeader清理(可选):目标DLL的DOS Header和DOS Stub会在加载完成之后被清空为NULL字节,这一步可通过C/C#代码,或命令行参数(Python或PowerShell)来实现。
工具构建
本项目采用Visual Studio 2015(V140)和Windows SDK 8.1构建,Python脚本基于Python 3开发,Python和Powershell脚本位于:
项目构建完成之后,可在下列位置找到其他组件代码:
使用到的其他项目
本项目用于将C代码编译为Shellcode时所采用的项目框架为Mathew Graeber的PIC_BindShell:
http://www.exploit-monday.com/2013/08/writing-optimized-windows-shellcode-in-c.html
Python脚本中的代码解析模块采用的是PEFile项目:
https://github.com/erocarrera/pefile
*参考来源:sRDI,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM
领取专属 10元无门槛券
私享最新 技术干货