通过rundll32运行C#DLL转储内存

释放双眼,带上耳机,听听看~!

在网上看到一个用rundll32调用c#的dll的案例,感觉还不错,就拿来复现一下

原文:https://blog.xpnsec.com/rundll32-your-dotnet/

借助mimikatz的项目https://github.com/GhostPack/SafetyKatz

 

一、VS加载项目

由于SafetyKatz是.NET PE程序实现,所以在VS中的属性 -> 应用程序 -> 输出类型中更改为 “类库”

1124287-20200131110018911-1753144211

 

二、修改代码

首先需要将Main函数改成如下

[DllExport]
static void RunSafetyCatz()

 

这时候已经定义好入口点之后,设置输出在父程序终端

[DllImport(“Kernel32.dll”)]
private static extern bool AttachConsole(int processId);

AttachConsole(-1);

如果不设置,在之后调用rundll32的时候是没有回显的

最后的代码大致如下

 [DllExport]
        static void RunSafetyCatz()
        {
            AttachConsole(-1);
            string[] args;

            if (!IsHighIntegrity())
            {
                Console.WriteLine("n[X] Not in high integrity, unable to grab a handle to lsass!n");
            }

三、Nuget下载DllExport依赖

在工具->Nuget包管理中下载DllExport

1124287-20200131110623861-1567417728

 

 

下载完后卸载掉,这时候在项目路径中会出现一个DllExport.bat,点击运行

1124287-20200131110740204-998512180

 

 

按照上述参数进行配置,然后点击Apply再重新加载项目到VS中

照常编译后

1124287-20200131111447072-181680168

 

 

在项目的生成目录下会出现两个版本的dll

1124287-20200131111531880-1392010750

 

 

选择自己系统相匹配的版本然后运行

1124287-20200131111612966-253106955

 

系统安全网络安全质量好文

关于Excel的攻击探讨

2020-5-12 14:24:23

系统安全终端安全网络安全质量好文

通过调用Windows本地RPC服务器bypass UAC

2020-5-12 14:39:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
有新消息 消息中心
搜索