sRDI:一款通过Shellcode实现反射型DLL注入的强大工具

今天给大家介绍的是一款名叫sRDI的注入工具,它可以基于Shellcode实现反射型DLL注入,并能够将DLL转换成独立的Shellcode。

工具介绍

sRDI的所有功能基于以下两个组件:

1.一个C语言项目,可将PE Loader编译为Shellcode;

2.转换代码负责将DLL、RDI和用户数据进行绑定。

该项目由以下元素组成:

- ShellcodeRDI:编译Shellcode;-NativeLoader:在必要情况下将DLL转换为Shellcode,并将其注入至内存;-DotNetLoader:NativeLoader 的C#实现;-Python\ConvertToShellcode.py:将DLL转换为Shellcode;-Python\EncodeBlobs.py:对已编译的sRDI进行编码,并实现动态嵌入;-PowerShell\ConvertTo-Shellcode.ps1:将DLL转换为Shellcode;-FunctionTest:导入sRDI的C函数,用于调试测试;-TestDLL:样本Dll,包含两个导出函数,可用于后续的加载和调用;

使用样例

在使用该工具之前,我建议大家先对反射型DLL注入有一个基本了解,可以先阅读一下【这篇文章】:

https://disman.tl/2015/01/30/an-improved-reflective-dll-injection-technique.html

使用Python将DLL转换为Shellcode:

from ShellcodeRDI import *dll =open("TestDLL_x86.dll", 'rb').read()shellcode= ConvertToShellcode(dll)

使用C#加载器将DLL加载进内存:

DotNetLoader.exe TestDLL_x64.dll

使用Python脚本转换DLL,并用NativeLoader完成加载:

python ConvertToShellcode.py TestDLL_x64.dllNativeLoader.exe TestDLL_x64.bin

使用PowerShell转换DLL,并用Invoke-Shellcode完成加载:

Import-Module.\Invoke-Shellcode.ps1Import-Module.\ConvertTo-Shellcode.ps1Invoke-Shellcode-Shellcode (ConvertTo-Shellcode -File TestDLL_x64.dll)

工具隐蔽性

目前社区有多种方法可检测内存注入,加载功能实现了两种增强隐蔽性的方法:

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脚本位于:

Python\ConvertToShellcode.pyPowerShell\ConvertTo-Shellcode.ps1

项目构建完成之后,可在下列位置找到其他组件代码:

bin\NativeLoader.exebin\DotNetLoader.exebin\TestDLL_.dllbin\ShellcodeRDI_.bin

使用到的其他项目

本项目用于将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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-08-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏容器云生态

监控利器之nagios原理详解

第一节 Nagios简介 nagios是系统管理人员和运维监控人员必须的工具之一,利用nagios可以监控本地或者远程主机资源, 如磁盘空间,系统负载等情况,...

44280
来自专栏大内老A

深入剖析ASP.NET的编译原理之二:预编译(Precompilation)

在本篇文章的第一部分:深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation),详细讨论了ASP.NET如何进行动态编译的,...

20270
来自专栏跟着阿笨一起玩NET

asp.net中为什么修改了配置文件后我们不需要重启IIS

本文转载:http://blog.itpub.net/12639172/viewspace-659819/

36810
来自专栏生信技能树

perl模块安装大全

今天又有小伙伴微信问我perl模块安装的问题,因为ENSEMBL发布的大多数数据库以及软件都是基于perl的,尤其是分量很重的VEP,所以即使你再如何如何的讨厌...

55870
来自专栏Web 开发

Windows Live Writer Beta 15 的FTP图片功能的确好用

这样的话,图片会默认上传到你的FTP服务器上面,这个FTP服务器,当然是用回Godaddy赠送的超大流量容量空间了,这个比在Godaddy上面装图床软件,还要手...

9420
来自专栏电光石火

Eclipse安装SVN插件

SVN插件下载地址及更新地址,你根据需要选择你需要的版本。现在最新是1.8.x Links for 1.8.x Release: Eclipse updat...

20470
来自专栏進无尽的文章

扒虫篇-Bug日志 Ⅲ

解决方法:可能是由于粘贴网页上的代码的时候两行之间的回车引起的,有未识别的回车或者换行,找到,删除掉就 OK了。

15220
来自专栏腾讯Bugly的专栏

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

39620
来自专栏大内老A

深入剖析ASP.NET的编译原理之二:预编译(Precompilation)

在本篇文章的第一部分:深入剖析ASP.NET的编译原理之一:动态编译(Dynamical Compilation),详细讨论了ASP.NET如何进行动态编译的,...

25260
来自专栏向治洪

android 接入Fabric Crashlytics信息系统

客户端在迭代过程中,免不了会发生很多的问题,而收集问题成了很重要的一步。现在市面上关于客户端Crash收集的系统也很多,比如友盟,TalkingData,Cra...

51870

扫码关注云+社区

领取腾讯云代金券