本仓库基于已有的 MiscTool 构建,在此特别感谢 rasta-mouse 发布这些工具,并给予我改进它们的动力。
通过类似 PsExec 的功能实现命令执行/横向移动。必须在拥有特权的用户上下文中运行。 该工具基于 rasta-mouse 的 CsExec,但设计上提供了对服务创建的额外控制,具体包括:
CheeseExec.exe <目标机器> <服务名称> <二进制路径> <操作>
另请参阅 TikiService。
CheesePS 是一个命令执行/横向移动框架。它依赖 System.Management.Automation.PowerShell 通过 PowerShell 加载并运行任意代码。
该工具原生支持绕过常见限制,可在本地或远程目标上创建并使用 PowerShell 运行空间。
必须在拥有特权的用户上下文中运行(如果使用 PowerShell 远程处理)。
该工具最初是对 rasta_mouse 的 CsPosh 的增强,但发展至足以成为一个独立框架,现在可用作通用 PowerShell 注入器。
该工具的设计思路已在以下文章中总结:
实现的主要功能包括:
以下截图是描述工具工作流程的示意图:

用法:
-t, --target=VALUE 目标机器
-c, --code=VALUE 要执行的代码
-e, --encoded 指示提供的代码是 base64 编码的
-a, --am-si-bypass=VALUE 使用给定的 PowerShell 脚本绕过 A-M-S-I(fs、smb 或 http[s])
--aX, --encrypted-am-si
指示提供的 A.M.S.I. 绕过脚本已加密
-i, --import=VALUE 导入额外的 PowerShell 模块(fs、smb 或 http[s])
--iX, --encrypted-imports
指示提供的 PowerShell 模块已加密
-o, --outstring 在代码后附加 Out-String
-r, --redirect 将 stderr 重定向到 stdout
-d, --domain=VALUE 备用凭据的域
-u, --username=VALUE 备用凭据的用户名
-p, --password=VALUE 备用凭据的密码
-X, --encrypt=VALUE 使用硬编码密钥加密脚本
-D, --decrypt=VALUE 使用硬编码密钥测试脚本解密
-n, --skip-bypass=VALUE 跳过绕过技术:A.M.S.I (A)、WLDP (W) 或全部 (*)
-l, --lockdown-escape 尝试使用 REGINI 启用 PowerShell FullLanguage 模式
-w, --wldp-bypass=VALUE 使用给定的 PowerShell 脚本绕过 WLDP(fs、smb 或 http[s])
--wX, --encrypted-wldp 指示提供的 WLDP 绕过脚本已加密
-x, --executable=VALUE [下载并]执行给定的可执行文件
--xX, --encrypted-executable
指示提供的 Exe/DLL 已加密
--xCS, --executable-csharp
指示提供的可执行文件是 C# (.NET)
-R, --reflective-injection 使用 Invoke-ReflectivePEInjection 从内存加载程序集(需要导入 Invoke-ReflectivePEInjection!)
-P, --powershell-decrypt 强制使用基于 PowerShell 的解密
-k, --encryption-key=VALUE 使用提供的密钥进行加密/解密
--ssl 强制使用 SSL
-h, -?, --help 显示帮助
注意:如果未指定目标,脚本将对本地机器执行
另请参阅 AmsiBypass。
通过 DCOM 实现命令执行/横向移动。必须在拥有特权的用户上下文中运行。 该工具基于 rasta-mouse 的 CsDCOM,但进行了改进,增加了额外的方法,并适应了 Philip Tsukerman 的最新研究。 还有一个实验性方法用于“修复”通过 dcomcfg 禁用受影响 DCOM 对象的尝试,但需要一些前置条件才能正常工作。
该工具的设计思路已在以下文章中总结:
当前方法:MMC20.Application、ShellWindows、ShellBrowserWindow、ExcelDDE、VisioAddonEx、
OutlookShellEx、ExcelXLL、VisioExecLine、OfficeMacro。
用法:
-t, --target=VALUE 目标机器
-b, --binary=VALUE 二进制文件:powershell.exe
-a, --args=VALUE 参数:-enc <blah>
-m, --method=VALUE 方法:MMC20Application、ShellWindows、
ShellBrowserWindow、ExcelDDE、VisioAddonEx、
OutlookShellEx、ExcelXLL、VisioExecLine、
OfficeMacro
-r, --reg, --registry 启用注册表操作
-h, -?, --help 显示帮助
注意:如果以 -t . 执行,脚本将对本地机器执行
通过 RDI(反射式 DLL 注入)窃取 RDP 凭据。必须在拥有特权的用户上下文中运行,或拥有 SeImpersonatePrivilege 权限的用户。
该工具基于 MDSec 的 RdpThief 构建,但已完全封装在单一 C# 类中,可通过 .NET 反射(Assembly.Load 等)运行。这样,
可以在 Covenant 中运行,而无需将 DLL 上传到目标系统。
用法:
CheeseRDP [操作]
操作:
wait:持续监听任何新的 mstsc.exe 进程(按 Ctrl-C 停止)
clean:如果存在凭据转储文件则删除
dump:如果存在文件则转储内容,以紧凑格式解析凭据
注意:如果未指定选项,程序将尝试注入到活动的 mstsc.exe 进程中(默认等待时间为 10 秒)
通过 MSSQL 信任实现命令执行/横向移动。 该工具旨在克服现有工具(如 esc)的一些限制,主要涉及 MSSQL 模拟。 此外,CheeseSQL 已专门修改以在 Covenant 中运行(通过反射加载),并自动化 MSSQL 信任滥用的最重要阶段。 特别有趣的是 CLR 滥用的实现,它允许用户使用 Roslyn 即时编译并上传 MSSQL 扩展,以实现命令执行。 以下是一个简短演示,执行的命令是编码后的 PowerShell Covenant 下载器:

遵循我“始终给予应得认可”的原则,该工具基于已有项目 SharpSQL 开发,由 Jb05s 创建,在此特别感谢 Jeremy 的工作。
此外,我强烈推荐查看 NetSPI 所有关于 MSSQL 审计和利用的工具,它们非常出色:
[*] 可用命令列表:
- findspn : 使用域 SPN 查找 MSSQL 实例
- listdb : 列出服务器上的可用数据库
- gethash : 将服务帐户 Net-NTLM 哈希发送到任意 IP
- getlogin : 检索可用于模拟的 SQL 登录名
- getdbuser : 检索 SQL 登录名、当前映射用户和可用用户角色的信息
- getlinked : 检索关于链接服务器的信息
- getserverinfo : 检索 'xp_cmdshell'、'ole automation procedures' 和 'clr enabled' 的当前值
- xp : 通过 'xp_cmdshell' 执行编码的 PowerShell 命令
- ole : 通过 'sp_OACreate' 和 'sp_OAMethod' 执行编码的 PowerShell 命令
- clr : 通过自定义 .NET 程序集执行编码的 PowerShell 命令
- rpc : 配置链接的 SQL 服务器以允许 RPC 连接
- linkedquery : 通过 'OPENQUERY' 在链接的 SQL 服务器上执行编码的 PowerShell 命令
- openquery : 使用 'OPENQUERY' 执行任意查询
[*] 详细用法,请键入:
- CheeseSQL <command> /help