4 个版本
0.1.3 | 2024 年 4 月 21 日 |
---|---|
0.1.2 | 2023 年 6 月 23 日 |
0.1.1 | 2023 年 6 月 23 日 |
0.1.0 | 2023 年 6 月 23 日 |
#2 in #strike
72KB
1.5K SLoC
咖啡
咖啡是 Cobalt Strike 原始 beacon_inline_execute 的自定义实现。它是用 Rust 编写的,支持 Cobalt Strike 兼容层的大部分功能。咖啡的结构使其可以作为库在其他项目中使用。
原始博客文章可以在以下位置找到: https://labs.hakaioffsec.com/coffee-a-coff-loader-made-in-rust/
用法
$ coffee.exe -h
Coffee: A COFF loader made in Rust
Usage: coffee.exe [OPTIONS] --bof-path <BOF_PATH> [-- <ARGS>...]
Arguments:
[ARGS]... Arguments to the BOF passed after the "--" delimiter, supported types are: str, wstr, int, short
Options:
-b, --bof-path <BOF_PATH> Path to the Beacon Object File (BOF)
-e, --entrypoint <ENTRYPOINT> The entrypoint name to execute in case of a custom entrypoint name [default: go]
-v, --verbosity <VERBOSITY> Verbosity level, 0 = ERROR, 1 = WARN, 2 = INFO, 3 = DEBUG, 4 = TRACE [default: 0]
-h, --help Print help
-V, --version Print version
参数
可以在 --
分隔符之后传递 BOF 的参数。每个参数必须以参数类型开头,后面跟一个冒号 (:
)。以下类型受支持
str
- 以空字符终止的字符串wstr
- 宽以空字符终止的字符串int
- 有符号 32 位整数short
- 有符号 16 位整数
示例
使用 trustedsec/CS-Situational-Awareness-BOF 仓库中的 dir.x64.o
BOF,并传递参数到 BOF
coffee.exe --bof-path .\dir.x64.o -- wstr:"C:\\Windows\\System32"
作为库使用
cargo add coffee-ldr
咖啡可以用作其他项目的库。以下示例展示了如何使用咖啡加载和执行 BOF
use coffee_ldr::loader::Coffee;
fn main() {
let whoami_bof: [u8; 6771] = [
0x64, 0x86, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x14, 0x00, 0x00, 0x33, 0x00, 0x00,
...
];
let _ = Coffee::new(&whoami_bof).unwrap().execute(None, None, None);
}
上面的示例将执行作为字节数组传递的 BOF,并在控制台中显示输出。
详细文档可以在以下位置找到: https://docs.rs/coffee-ldr/latest/coffee_ldr/loader/struct.Coffee.html
从源代码构建
- 从 https://rustup.rs/ 安装 Rust
- 克隆仓库
- 使用以下命令构建项目
cargo build --release
许可证
咖啡受 GNU GPLv3 许可证的许可。有关更多信息,请参阅 LICENSE
贡献
欢迎拉取请求。请首先打开一个问题来讨论您想要更改的内容。
参考
感谢那些关于 COFF 加载器撰写文章并帮助我理解格式的出色人士
- https://github.com/trustedsec/COFFLoader
- https://github.com/Cracked5pider/CoffeeLdr
- https://github.com/yamakadi/ldr
- https://www.trustedsec.com/blog/coffloader-building-your-own-in-memory-loader-or-how-to-run-bofs/
- https://0xpat.github.io/Malware_development_part_8/
- https://otterhacker.github.io/Malware/CoffLoader.html
- https://signal-labs.com/trainings/offensive-tool-development/
- https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#coff-file-header-object-and-image
- https://blog.cloudflare.com/how-to-execute-an-object-file-part-1/
依赖项
~155MB
~2.5M SLoC