远程操作 BOF
本仓库是我们先前发布的 SA 仓库的补充。我们最初的立场是不发布用于修改其他系统的工具,而只以开箱即用的格式提供信息收集工具。
随着时间的推移,我们看到许多其他公开安全公司发布了面向攻击性的工具,我们现在认为发布一部分我们的攻击性工具是合适的。
这个仓库中没有什么特别之处,都是以 BOF 形式实现的基础 Microsoft Windows 操作。这些原语可用于各种操作。
注入 BOF
我们决定包含在进行 EDR 检测测试时使用的注入 BOF。这些 BOF 按原样提供,且不会得到支持(src/Injection 和 Injection/* 下的所有内容)。
欢迎你使用这些 BOF,但与之相关的 issue 将被关闭而不进行审查。
可用的远程操作命令
| Command | Usage | Notes |
|---|
| adcs_request | adcs_request [CA] [OPT:TEMPLATE] [OPT:SUBJECT] [OPT:ALTNAME] [OPT:INSTALL] [OPT:MACHINE] [OPT:ADD_APP_POLICY] [OPT:DNS] | 用于请求注册证书 |
| adcs_request_on_behalf | adcs_request_on_behalf [TEMPLATE] [REQUESTER] [ENROLLMENT_AGENT.pfx] [Download_Name] | 代表另一个用户请求注册证书 |
| adduser | adduser [USERNAME] [PASSWORD] [SERVER] | 将指定用户添加到计算机 |
| addusertogroup | addusertogroup [USERNAME] [GROUPNAME] [SERVER] [DOMAIN] | 将指定用户添加到组 |
| ask_mfa | ask_mfa [NUMBER] | 显示带有指定号码的虚假 Microsoft Authenticator 审批对话框。 |
| chromeKey | chromeKey | 解密提供的 base64 编码的 Chrome 密钥 |
| disableuser | disableuser [USERNAME] [DOMAIN] | 禁用指定的用户帐户 |
| enableuser | enableuser [USERNAME] [DOMAIN] | 启用并解锁指定的用户帐户 |
| get_azure_token | get_azure_token [CLIENT ID] [SCOPE] [BROWSER] [OPT:HINT] [OPT:BROWSER PATH] | 尝试使用已保存的登录信息完成针对 azure 的 OAuth codeflow 授权 |
| get_priv | get_priv [Privledge Name] | 激活指定的令牌权限,更适合非 Cobalt Strike 用户 |
| ghost_task | ghost_task [HOSTNAME/LOCALHOST] [OPERATION] [TASKANME] [PROGRAM] [ARGUMENT] [USERNAME] [SCHEDULETYPE] [TIME/SECOND] [DAY] | 添加/删除幻影任务(ghost task)。 |
| global_unprotect | global_unprotect | 定位并解密从 GlobalUnProtect 转换而来的 GlobalProtect 配置文件 |
| lastpass | lastpass [NUMBER OF PIDs] [PID],[PID],[PID],[PID] ... | 搜索 Chrome、Brave 内存中的 LastPass 密码和数据 |
| make_token_cert | make_token_cert [.PFX LOCAL PATH] [OPT:PFX PASSWORD] | 使用 .pfx 文件的 altname 模拟用户 |
| office_tokens | office_tokens [PID] | 从任何 Office 进程中收集 Office JWT 令牌 |
| procdump | procdump [PID] [FILEOUT] | 将指定进程转储到指定的输出文件 |
| ProcessDestroy | ProcessDestroy [PID] [OPT:HANDLEID] | 关闭进程中的句柄 |
| ProcessListHandles | ProcessListHandles [PID] | 列出指定进程中所有打开的句柄 |
| reg_delete | reg_delete [OPT:HOSTNAME] [HIVE] [REGPATH] [OPT:REGVALUE] | 删除注册表项 |
| reg_save | reg_save [HIVE] [REGPATH] [FILEOUT] |
贡献
这个仓库面向单一任务的 Windows 原语。也就是说,即使需要多次调用,创建计划任务这种操作也是合适的。
如果能有一个命令尝试预生成 implant,并使用本仓库中的 BOF 执行自动化横向移动,那将非常棒。但这样的命令不适合直接提交到本仓库。
代码规范
- 使用默认 makefile 时,你的代码应能无错误编译。
- 任何用于函数解析的新 BOF 定义都应放在 src/common/bofdefs.h 中。
- 代码将使用默认 Makefile(单个 entry.c 文件)一同编译。
- 代码同样应与现有工具链(mingw)兼容。
- 代码将用 C 编写。这是为了统一标准,也出于我个人对代码验证的信心。
贡献者可以期待什么
收到拉取请求后,它将接受深入的代码审查和测试。
测试完成后,我们将根据发现提出零轮或多轮更改请求,直到代码中没有任何问题。届时,它将被接受进入仓库,你的 GitHub 用户名将被添加到我们的致谢名单中。如果你不希望被添加,或者希望使用其他用户名,请告诉我。
想了解更多?
如果你觉得这些 beacon 对象文件很有用,并且想按照类似的风格编写一些自己的 BOF,我们邀请你查看我们的 Beacon Object File (BOF) 开发 课程。
该课程简要概述了 beacon 对象文件的历史,然后深入探讨了各种挑战性问题,旨在教你如何在开发自己的 beacon 对象文件时利用各种 Windows 技术。