ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

从入门到精通:MoveKit横向移动完整操作指南(含实战案例)

从入门到精通:MoveKit横向移动完整操作指南(含实战案例)

从入门到精通:MoveKit横向移动完整操作指南(含实战案例)

【免费下载链接】MoveKitCobalt Strike kit for Lateral Movement项目地址: https://gitcode.com/gh_mirrors/mo/MoveKit

MoveKit是一款强大的Cobalt Strike横向移动工具包,它通过利用execute_assembly函数与SharpMove和SharpRDP .NET程序集,扩展了Cobalt Strike内置的横向移动功能。本文将为你提供一份全面的MoveKit操作指南,帮助你从入门到精通横向移动技术。

🚀 快速上手:MoveKit安装与配置

一键安装步骤

要开始使用MoveKit,你只需执行以下简单步骤:

  1. 克隆仓库:
git clone https://gitcode.com/gh_mirrors/mo/MoveKit
  1. 加载主脚本:在Cobalt Strike中加载MoveKit.cna,它会自动加载所有必要的脚本。

  2. 准备依赖:根据需要编译SharpMove和SharpRDP程序集,并将它们放置在Assemblies目录中。

  3. 安装Mono:动态编译功能需要Mono环境支持。

最快配置方法

加载脚本后,你会在菜单栏看到一个名为Move的选择器。通过Default设置可以加快GUI操作速度,这些默认设置适用于任何可以接受默认值的操作。

📚 核心功能解析:MoveKit横向移动技术

MoveKit提供了多种横向移动技术,主要分为文件移动和命令触发两大类。

文件移动技术

文件移动是将文件传输到远程主机的方法,MoveKit支持以下几种:

  • SMB到平面文件:通过SMB协议直接将文件传输到远程主机
  • WMI到平面文件:使用WMI将文件写入远程主机
  • WMI到注册表键值:将文件内容存储在远程主机的注册表中
  • WMI到自定义WMI类属性:利用自定义WMI类存储文件数据

这些技术在Assemblies/FileWrite.cs中有详细实现,特别是WriteToWMIClassRemoveWMIClass方法。

命令触发技术

命令触发是在远程主机上执行特定命令的方法,包括:

  • WMI:通过WMI在远程主机上执行命令
  • SCM:利用服务控制管理器执行命令
  • RDP:通过远程桌面协议执行操作
  • DCOM:多种分布式组件对象模型技术
  • 计划任务:创建和修改计划任务
  • 修改现有计划任务:更新现有任务的操作,执行后重置
  • 修改服务binpath:更新现有服务的binpath,启动后重置

💻 实战案例:常用横向移动技术详解

MSBuild横向移动

MSBuild是Windows系统自带的构建工具,可以被滥用来执行恶意代码。使用MoveKit的MSBuild横向移动功能:

  1. 在Move菜单中选择MSBuild选项
  2. 配置目标主机、监听器和文件路径
  3. 执行命令,MoveKit会自动生成并传输Templates/msbuild.csproj模板文件

命令示例:move-msbuild 192.168.1.1 http move.csproj

InstallUtil横向移动

InstallUtil是.NET框架提供的安装工具,同样可以被用于横向移动:

  1. 选择InstallUtil选项
  2. 配置相关参数
  3. MoveKit会使用Templates/installutil.cs模板生成 payload

MoveKit会根据目标系统架构自动选择合适的InstallUtil路径:

  • 64位:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe
  • 32位:C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe

RegSvr32横向移动

RegSvr32用于注册COM组件,是一种常见的横向移动技术:

  1. 在Move菜单中选择RegSvr32选项
  2. 配置参数,包括目标主机和监听器
  3. MoveKit会生成基于Templates/regsvr32.sct的 payload

WMIC横向移动

WMIC(Windows Management Instrumentation Command-line)是另一种强大的横向移动工具:

  1. 选择WMIC选项
  2. 配置相关参数
  3. MoveKit将使用Templates/wmic.xsl模板

⚙️ 高级技巧:自定义与优化

自定义模板

MoveKit允许你使用自定义模板来避免检测。创建自定义模板需满足两个要求:

  1. 模板文件名必须与技术名称一致(例如msbuild.csproj
  2. 源代码中必须包含$$PAYLOAD$$字符串,用于替换为base64编码的shellcode

示例C#代码:

string strSC = "$$PAYLOAD$$"; byte[] sc = Convert.FromBase64String(strSC);

位置字段配置

位置字段是MoveKit中最关键的部分之一,它有三种取值:

  1. URL:Cobalt Strike的Web服务器将托管payload,目标主机通过HTTP请求获取
  2. Windows目录:将创建的文件上传到beacon主机,然后通过文件系统读取
  3. Linux路径或"local":动态编译payload到正在执行的程序集中(文件大小限制1MB)

🚨 注意事项与最佳实践

  1. 清理文件:MoveKit不会自动清理文件,需要操作员手动处理
  2. 依赖要求:动态payload创建需要Mono环境
  3. 执行顺序:有时execute_assembly会在文件移动前被调用,此时可以取消勾选"Auto"复选框手动执行
  4. AMSI绕过:仅对WSH有效,对PowerShell无效,会修改注册表
  5. 模板安全:不建议使用默认模板,它们都是公开的,容易被检测

🙏 致谢

MoveKit的开发借鉴了许多优秀的项目和技术,包括:

  • WMI技术:SharpWMI
  • DCOM技术:SharpCOM和SharpSploit DCOM
  • SCM技术:CSExec
  • 服务DLL劫持:SharpSC
  • 服务binpath修改:SCShell
  • Shellcode运行器模板:Arno0x的C#脚本
  • CACTUSTORCH payloads:vysecurity

通过本指南,你应该已经掌握了MoveKit的基本使用方法和高级技巧。横向移动是渗透测试中的关键环节,合理使用MoveKit可以大大提高你的工作效率。记住,技术本身没有好坏之分,关键在于使用者的意图。始终确保你的行为符合法律法规和道德准则。

【免费下载链接】MoveKitCobalt Strike kit for Lateral Movement项目地址: https://gitcode.com/gh_mirrors/mo/MoveKit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表