freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何将.NET程序集注入至现有进程
2022-02-08 00:57:47
所属地 广西

关于inject-assembly

inject-assembly这款工具是Cobalt Strike的传统“fork-and-run”执行方式的替代方法。在该工具的帮助下,加载器可以注入到任何进程中,包括当前Beacon在内。长时间运行的程序集将继续运行并会将输出发送回Beacon,这种特性类似于execute-assembly的执行行为。

该工具主要由以下两个组件组成:

1、BOF初始化工具:一个实用工具,负责将程序集加载器注入至远程进程中,并携带任意参数。它可以使用BeaconInjectProcess来执行注入操作,这也就意味着,这种行为可以在可延展的C2配置文件或进程注入BOF中进行自定义。

2、PIC程序加载器:它也是该工具的主要部分,它负责初始化.NET运行时环境,然后加载并执行提供的程序集。加载程序将在目标进程中创建一个新的AppDomain,以便在执行完成时完全卸载调之前加载的程序集。

远程进程和Beacon之间的通信是通过一个命名管道进行,我们可以通过脚本来生成一个管道名称,然后通过参数将其传递给BOF初始化工具。

主要功能

1、修复了Environment.Exit()以防止远程进程退出运行;

2、.NET程序集Header Stomping(MZ直接、e_Ifanew、DOS Header、富文本、PE Header);

3、给予SourcePoint随机生成管道名称;

4、不屏蔽Beacon,即使程序集已加载至当前进程中;

工具使用

广大研究人员可以访问该项目的【Releases页面】下载最新版本的inject-assembly,并将inject-assembly.cna脚本加载进Cobalt Strike中。

接下来,就可以使用下列命令来执行程序集了:

inject-assembly pid assembly [args...]

如果PID设置为0的话,则会在当前Beacon进程中执行。

我们建议广大研究人员使用类似FindObjects-BOF之类的工具来定位已加载.NET运行时的进程。

工具使用演示

项目地址

inject-assembly:GitHub传送门

参考资料

https://github.com/Tylous/SourcePoint

https://github.com/kyleavery/inject-assembly/releases

https://github.com/outflanknl/FindObjects-BOF

https://github.com/TheWover/donut

https://github.com/SolomonSklash/netntlm

https://github.com/med0x2e/ExecuteAssembly

https://github.com/anthemtotheego/InlineExecute-Assembly

https://www.mdsec.co.uk/2020/08/massaging-your-clr-preventing-environment-exit-in-in-process-net-assemblies

# 进程注入 # 进程安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录