關于cli4bofs
cli4bofs是一款功能強大的運作指令行接口工具,在該工具的幫助下,廣大研究人員可以在環境之外通過獨立的指令行接口工具運作BOF檔案。
cli4bofs是一個用于運作和維護BOF檔案的多功能工具,支援從目标檔案系統運作任何BOF檔案,而且還可以友善地向其傳遞參數。除此之外,該工具還可以為相關BOF檔案的基本資訊定義簡單的YAML模式,例如描述、源代碼URL、參數和使用示例等。而且cli4bofs還可以友善地幫助我們開發和測試BOF檔案。
功能介紹
該工具能夠使用來完成下列任務:
1、直接在Windows(x86、x64)平台從檔案系統讀取并運作BOF檔案;
2、直接在Linux/UNIX(x86、x64、ARM、AARCH64)平台從檔案系統讀取并運作BOF檔案;
工具安裝
廣大研究人員可以直接通路該項目的【】下載下傳對應作業系統平台的cli4bofs版本:
工具使用
正常指令使用
Usage: ./zig-out/bin/cli4bofs command [options]
Commands:
help <COMMAND> 顯示給定指令的幫助資訊
exec <BOF> 從檔案系統執行給定的BOF檔案
info <BOF> 顯示BOF描述和使用樣例
usage <BOF> 檢視調用詳細資訊和參數類型
examples <BOF> 檢視BOF使用樣例
General Options:
-c, --collection 提供自定義BOF YAML集合
-h, --help 檢視工具幫助資訊
exec子指令使用
exec子指令允許我們從檔案系統直接執行BOF檔案,還可以使用sizZb(後跟:)字元串作為字首來辨別參數的類型,進而友善我們将參數傳遞給BOF:
Usage: cli4bofs <BOF> [[prefix:]ARGUMENT]...
Execute given BOF from filesystem with provided ARGUMENTs.
ARGUMENTS:
ARGUMENT's data type can be specified using one of following prefix:
short OR s - 16位有符号整數
int OR i - 32位有符号整數
str OR z - 以零結尾的字元串
wstr OR Z - 以零結尾的寬字元字元串
file OR b - 特殊類型,後跟檔案路徑,辨別将指針(指向用檔案内容填充的緩沖區)将傳遞給BOF
If prefix is ommited then ARGUMENT is treated as a zero-terminated characters string (str / z).
使用樣例如下:
cli4bofs uname -a
cli4bofs udpScanner 192.168.2.2-10:427
cli4bofs udpScanner z:192.168.2.2-10:427
cli4bofs udpScanner 192.168.2.2-10:427 file:/tmp/udpProbes
YAML BOF集合
我們可以使用簡單的YAML規則來标記BOF,并對BOF檔案進行定義,下面給出的是一個YAML樣例:
name: "udpScanner"
description: "Universal UDP port sweeper."
author: "Z-Labs"
tags: ['net-recon']
OS: "cross"
header: ['thread', 'zib']
sources:
- 'https://raw.githubusercontent.com/The-Z-Labs/bof-launcher/main/bofs/src/udpScanner.zig'
usage: '
udpScanner str:IPSpec[:portSpec] [int:BUF_LEN str:BUF_MEMORY_ADDR]
Arguments:
str:IPSpec[:portSpec] ex: 192.168.0.1; 10.0.0-255.1-254; 192.168.0.1:161,427,10-15
[int:BUF_LEN] length of UDP probes buffer
[str:BUF_MEMORY_ADDR] pointer to the buffer containing one or more UDP probe(s). One probe per line is allowed.
UDP probe syntax (with example):
<portSpec> <probeName> <hexadecimal encoded probe data>\n
53,69,135,1761 dnsReq 000010000000000000000000'
examples: '
Scanning provided IP range on most common UDP ports with builtin UDP probes:
udpScanner str:192.168.0.1-32
Scanning only cherry-picked ports (if no builtin UDP probe for the chosen port is available then length and content of the packet payload will be randomly generated:
udpScanner str:192.168.0.1:123,161
udpScanner str:102.168.1.1-128:53,427,137
udpScanner str:192.168.0.1:100-200
UDP探針執行樣例:
udpScanner str:192.168.0.1-32 int:BUF_LEN str:BUF_MEMORY_ADDRESS
下列指令可以使用cli4bofs工具運作udpScanner(BOF),并運作檔案中的UDP探針:
cli4bofs exec udpScanner 102.168.1.1-4:161,427 file:/tmp/udpPayloads'
下列指令可以檢視可用的BOF并顯示使用詳情:
$ cli4bofs list
uname
udpScanner
zerologon
arp
下面給出的是給定BOF的參數定義和使用解釋:
$ cli4bofs usage udpScanner
Usage:
udpScanner str:IPSpec[:portSpec] [int:BUF_LEN str:BUF_MEMORY_ADDR]
Arguments:
str:IPSpec[:portSpec] ex: 192.168.0.1; 10.0.0-255.1-254; 192.168.0.1:161,427,10-15
[int:BUF_LEN] UDP探測緩沖區長度
[str:BUF_MEMORY_ADDR] 指向包含一個或多個UDP探針的緩沖區
UDP探測語句樣例:
<portSpec> <probeName> <hexadecimal encoded probe data>\n
53,69,135,1761 dnsReq 000010000000000000000000
許可證協定
本項目的開發與釋出遵循開源許可證協定。
項目位址
cli4bofs:https://github.com/The-Z-Labs/cli4bofs
參考資料
https://github.com/The-Z-Labs/bof-launcher