首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MSBuild后门技术分析

实际上,我认为这种方式是很粗糙也很草率的,那怎么做才会更好呢?我们接着往下看!...在检查MSBuild.exe的代码时,你首先会注意到的一件事情就是它本审就是一个.NET程序集。那么,哪种方法才是后门化任意.NET程序集的最佳方法呢? 没错,就是使用version.dll。...PoC将用PureBasic编写,因为没有一个正常的攻击者会在其中实现他的植入,因此不需要考虑复制粘贴这个源代码;-) 目标分析 注入的代码应具有以下特征: 没有其他正在运行的进程; 无远程进程操作(读取...,而只需劫持GetFileVersionInfoSizeW调用,执行我们的后门插入代码,然后调用真正的GetFileVersionInfoSizeW函数并返回其结果,就可以绕过加载程序锁的任何问题。...在下面的PoC中,后门被插入到对GetFileVersionInfoSizeW的调用中。

78110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows下dump文件生成与分析

    大家好,又见面了,我是你们的朋友全栈君。 一 生成Dump文件 生成dump文件有三种方式:任务管理器生成,windbg抓取,源码中添加dump转储代码。需要根据实际情况选择。...1.1 任务管理器 在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。 此时会在默认的目录下创建出一个dump文件。...可以看出,此种方法只适用于程序崩溃但没有立即自行退出的情况。倘若程序故障后自行退出,则此方法就难以应用。...不过,我们可以在注册表中添加如下信息已确保系统在程序崩溃后自行保存一个dump文件: 在注册表中找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\WindowsError...Full dump 如此一来,一旦程序崩溃,系统会在C:\CrashDump下生成一个dump文件。

    5.1K20

    WinHTTP教程

    大家好,又见面了,我是你们的朋友全栈君。 最近有些忙,也没更新BLOG,这几天在捣鼓一个小玩意要用到WinHTTP API,发现资料很少,而且大都是些MFC封装的例子,看得我是一个头几个大。...dwFlags ); 第一个参数指向一个应用程序自身名称及版本的字符串,使用在HTTP协议的User Agent中。...(储存在注册表中的WINHTTP代理设置,注意:与IE的代理设置不同,为独立的) WINHTTP_ACCESS_TYPE_NAMED_PROXY //使用指定的代理服务器设置 第三个参数指向一个代理服务器名称的字符串...第四个参数指向一个HTTP服务器列表,其中的服务器不能通过前一个参数指定的代理服务器进行路由(这与IE代理服务器设置中的例外情况设置类似) 第五个参数定义了一个标记,当前只定义了一个标记 WINHTTP_FLAG_ASYNC...第三个参数指定正在请求的资源名称和相对路径 第四个参数指定使用的HTTP协议版本,如果此参数为NULL,函数会默认使用HTTP/1.1 第五个参数指定引用的URL,如果没有,可以设置为WINHTTP_NO_REFERER

    92020

    使用WFH搜索Windows可执行程序中的常见漏洞或功能

    WFH WFH,全名为Windows Feature Hunter,即Windows功能搜索工具,该工具基于Python开发,使用Frida实现其功能,可以帮助广大研究人员搜索和识别Windows可执行程序中的常见安全漏洞以及功能...当前版本的WFH能够自动识别动态链接库DLL中潜在的侧加载问题以及组件对象模型COM中劫持攻击的实现可能。 DLL侧加载利用勒Windows中WinSXS程序集来从SXS列表中加载恶意DLL文件。...WFH可以输出潜在的安全漏洞,并将目标Windows可执行文件中的潜在漏洞相关信息写入至CSV文件中。...首先,我们需要将需要分析的代码拷贝至WFH工具所在的目录下,然后按照下列命令执行扫描分析: PS C:\Tools\WFH > copy C:\Windows\System32\mspaint.exe...此时将能够查看Windows API调用的详细情况: PS C:\Tools\WFH > python .

    95640

    C#类来封装C++Dll里的方法

    ; C#中定义函数 [DllImport("npd_api.dll")] public static extern int NP_Init(); 基本类型转换见下表(我用到过的): BSTR——StringBuilder...uint,没出过什么问题) 我的问题来了,长期的经验教训我知道了: 1、指针做参数时在C#中一定要使用ref 或out关键字,尤其是结构体指针,要不会报内存读取错误,即使不报错数据也是不太对的。...刚开始同事分析出了崩溃的原因,都是回收方式惹的祸,可参见http://www.hudong.com/wiki/WINAPI,尝试使用__stdcall,但是还是没有解决问题   后来实践证明,程序是很严谨的...后来我想起来之前搜索问题的时候,看到好像跟dll的Releas\Debug版本还有关系,所有又尝试提议让同事将他们的c++dll改为Release版的。     ...做程序就怕出现问题,出现问题就怕不知道原因,知道原因了就好找解决的办法啦!

    1.1K10

    psexec原理分析

    这里看到是需要账户和密码的,但是在内网环境中很多密码都是批量设置的,也就是说通过已经拿到的win10的hash去尝试登录内网其他主机 可以看到win2008直接上线,并且是system权限 ?...看一下win2008的安全日志 ? 看到有多个安全日志的产生 在事件4624中,看到了win10的ip,也就是申请管理的ip ? 采用的NTMLv2协议,即便不知道明文,有hash值就可以转递 ?...ADMIN$这个是ipc共享中的默认共享,通常指向C:\Windows ? 猜想就是通过这个exe上线 ?...我的理解是:要创建一个服务的话这个服务得是满足windows服务规定的格式,而不是随便一个pe文件都可以充当服务 编写服务程序 服务介绍 几乎所有的操作系统在启动的时候都会启动一些不需要与用户交互的进程...后记 本次研究psexec到这就基本结束了,我自己是没有能力研究出来的,参考了很多大佬的文章,尤其是倾旋大佬,再次感谢!

    1.2K40

    如何自己实现一个Psexec

    权限在cs上通过psexec64来横向win2008 这里看到是需要账户和密码的,但是在内网环境中很多密码都是批量设置的,也就是说通过已经拿到的win10的hash去尝试登录内网其他主机可以看到win2008...直接上线,并且是system权限 看一下win2008的安全日志 看到有多个安全日志的产生 在事件4624中,看到了win10的ip,也就是申请管理的ip 采用的NTMLv2协议,所以即便不知道明文...,有hash值就可以转递 再看系统日志 ADMIN$这个是ipc共享中的默认共享,通常指向C:\Windows 猜想就是通过这个exe上线 这里肯定是与直接在win10上通过Psexec管理...,随即cs掉线 打开系统日志查看 我的理解是:要创建一个服务的话这个服务得是满足windows服务规定的格式,而不是随便一个pe文件都可以充当服务 编写服务程序 服务介绍 几乎所有的操作系统在启动的时候都会启动一些不需要与用户交互的进程...其中服务程序和服务控制程序可以由我们自己来编写扩展,而服务控制管理器(windowssystem32servics.exe)则是操作系统内置的一个部件。

    56210

    atl创建avtive

    1.activex无窗口问题(控件在编码过程中要检查m_hWnd是否存在,不然vs可能会出现绘制错乱和崩溃) ?...第三个页面可以通过对象属性配置 3.c#调用过程中,”未正确注册错误“可能是由于未设置可插入选项或者重复插入后,项目未清理干净,建议新建一个项目试试。winform需要删除obj目录。...axHost错误是因为,activex未设置插入属性(见2的设置) 4.atl中指针错误不会异常崩溃,可以通过vs的反汇编查询打印输出提示的异常地址得到具体错误点 ?...字符串 atl字符串使用BSTR,C++的封装类中_b_str,通过copy方法传出字符串到BSTR。...控件端事件的实现可以通过,类窗口中的控件类右键“接口实现”,选择实现的接口和模块自动实现后连接点代码。如下: ? ? ? ? 10.c#调用过程中,项目obj需要手动删除,否则会有编译错误。

    1.3K20

    Windows下Thumbnail的开发总结

    这个工程通过读取.recipe格式的文件中的图片内容,来为其生成预览图。...通过这个接口我们只能获取到关联文件的字节流。这对于小文件而言问题不大,直接把字节流读到内存中来操作也无妨;但如果自定义文件达到数百MB或者数个GB时,这么做肯定是不现实的。...这在一定程度降低了Explorer.exe崩溃的概率。相比于IInitializeWithFile, MSDN上也更推崇IInitializeWithStream,以保障系统的安全。      ...既然如此,还得再修改下程序中操作注册表部分的代码: HRESULT SetHKCRRegistryKeyAndValue(PCWSTR pszSubKey, PCWSTR pszValueName, PCWSTR...注册表上是没什么问题了。而我们的文件路径也顺利在日志文件中出现了: ?       而我们也可以看到自定义文件也能获取到内容预览图了: ?

    1.9K60

    VS2005中关于char[]转换成LPCWSTR的问题

    最近在使用VS2005,有时VC6.0中的工程拿到VC2005下经常会出现问题,比如最令我头痛的问题之一是: 错误 : error C2664: 'LoadImageW' :...cannot convert parameter 2 from 'char [20]' to 'LPCWSTR'“char [20]”转换为“LPCWSTR”       一、问题的原因:VS2005...LPCWSTR中的W是宽字符的意思,是UNICODE,就是说不是传统的char这种单字节字符,而是一个字符占两字节....4,如果不太懂unicode的,那么就不要加UNICODE定义,用传统的方式来处理。      四、那么如何将char*或者char数组转换成VS2005中的LPCWSTR呢?...(1)先看击中错误的方法:        char buffer[80];  错误方法一:          wsprintf(buffer,L"WM_CHAR: Character = %c

    1.5K20

    【内网渗透】域渗透实战之Monteverde

    为了加快实验室中的安装过程,我们将在 Azure AD Connect 安装过程中使用“快速设置”选项,该选项默认为密码哈希同步:Azure AD Connect 安装完成后,您应该收到如下通知:接下来...可以在 Azure AD Sync 的默认安装路径中找到此程序集C:\Program Files\Microsoft Azure AD Sync\Bin。...C:\Program Files\Microsoft Azure AD Sync\Binn\mcrypt.dll通过查看连接器服务中此加密数据的处理,我们看到了对负责密钥管理和此数据解密的程序集的许多引用...使用 Cobalt Strike 等工具解决此问题的一种方法是简单地注入到 ADSync 进程下运行的进程中,然后继续执行上述 POC。...在我们的 DLL 代码中,我们添加一个对硬编码密码的简单检查:BOOL LogonUserWHook(LPCWSTR username, LPCWSTR domain, LPCWSTR password

    70110

    C++ winhttp 实现文件下载器

    、https 等协议,当然本人之后也会出相关的协议讲解的文章,但在本篇,我们只讨论如何使用 C++ WinHttp 进行网络请求。...在 Microsoft doc 中,有介绍 C++ WinHttp 的使用流程,可以根据这个 流程图 学习接下来的知识点: 2.1 WinHttp 的 http 一般使用流程 使用 C++ WinHttp...可选 pszProxyBypassW:表示绕过的代理服务器主机名 dwFlags:表示使用某些特定的组合选项 在以上的解释中,对于网络知识薄弱的同学可能会感到一头雾水,在此使用一个示例进行说明: hSession...outfile("C:\\demo.exe", std::ios::binary); 此时表示输出内容到 C:\\demo.exe 下保存,当然 demo.exe 是你的文件名。...运行程序完毕后,已下载内容到磁盘中: 下载器完整代码 此时修改过的完整下载器代码如下: #include "pch.h" #include #include <iostream

    1.7K50

    宏与WINDOWS API简单使用

    大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。...undef指令取消一个已定义的宏。 宏一般使用大写字母定义,其可以出现在程序的任意地方。宏替换仅仅是以文本串代替宏标识符的过程,该过程很容易出现一些逻辑上的错误,需要仔细处理一些关于括号的问题。...#line指令 C语言中可以使用__FILE__表示本行语句所在源文件的文件名,使用__LINE__表示本行语句在源文件中的位置信息。...pragma resource 该指令表示把指定文件中的资源加入工程,如 pragma resource “*.dfm” pragma code_seg 该指令能够设置程序中函数代码存放的代码段...一般用于DLL中,在DLL中定义一个共享的有名字的数据段,这个数据段中的全局变量可以被多个进程共享,否则多个进程之间无法共享DLL中的全局变量。

    86010
    领券