brunlx/BLX

GitHub: brunlx/BLX

BLX 是一个渗透测试命令生成器,通过交互式向导帮助安全人员快速构建常用安全工具的可执行命令并导出脚本。

Stars: 0 | Forks: 0

# BLX Pentest 命令生成器:专业人员**选择工具**,应用**询问如何以及使用什么参数**来运行它,最后交付**可直接复制的命令**(或下载为 `.sh` 脚本)。 ![Go](https://img.shields.io/badge/Go-1.26-00ADD8?logo=go&logoColor=white&style=flat-square) ![UI](https://img.shields.io/badge/UI-Vanilla_JS_SPA-22d3ee?style=flat-square) ![Tests](https://img.shields.io/badge/tests-go_test-2ea043?style=flat-square) ![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square) ## 功能 - **包含 24 种工具的目录**以及特定的问题流程: Nmap, Gobuster, Nikto, SQLMap, Metasploit, Hydra, Hashcat, Aircrack-ng, tcpdump, Impacket/NetExec, **Mimikatz**, **Caido**, **BloodHound**, **Fluxion**, **ffuf**, **msfvenom**, **masscan**, **beEF**, **Kismet**, **XSSer**, **Commix**, **Sherlock**, **Holehe** 和 **Reverse Genie (rDNS)**。 - **3 步向导**:选择工具 -> 回答配置 -> 接收命令。 - **真实可用的命令**,包含提示、注意事项、风险警告和 语法格式化。 - **复制**单个命令,**复制所有**命令或**下载可执行的 `.sh`** 脚本(Metasploit 脚本通过 heredoc 嵌入在 `.rc` 中)。 - **双重验证**:在前端和后端进行(必填字段、 选项值,使用 *shell-quoting* 对特殊值进行安全解析,并拒绝在 LHOST/interface 等敏感字段中使用 元字符)。 - **带有文档的 REST API**,自动化测试以及嵌入在二进制文件中的前端(单个二进制文件,无需 Node 或构建工具)。 - **默认安全加固的服务器**:绑定在 `127.0.0.1`,禁用 CORS (通过环境变量选择性开启)以及安全标头(CSP、X-Frame-Options 等)。 ## 要求 | 用途 | 要求 | | --------------- | --------- | | 编译和运行 | [Go](https://go.dev/dl/) 1.26+ 和 `make` | | 构建 Windows 安装程序 | Wine + [Inno Setup](https://jrsoftware.org/isinfo.php) (ISCC) — 见 [Windows 安装](#instalação-no-windows-distribuição) | | Windows 二进制文件 | 仅需 `make build-windows`(交叉编译,无需 Wine) | 没有外部 Go 依赖(`go.mod` 没有 `require`)。前端通过 `go:embed` 嵌入在二进制文件中 — **无需** Node/npm。 ## 安装和运行 ### 1. 下载二进制文件(推荐) 在 [Releases](https://github.com/Brunlx/BLX/releases) 中下载适合您平台的二进制文件 (Linux/macOS 为 `.tar.gz`,Windows 为 `.zip`),解压并执行: ``` # Linux/macOS tar xzf blx-linux-amd64.tar.gz PORT=8080 ./blx-linux-amd64 ``` ### 2. 从源码编译 ``` git clone https://github.com/Brunlx/BLX.git cd BLX make build # gera bin/blx ``` ### 3. 运行 ``` make run # build + sobe em http://localhost:8080 ``` 或者,不使用 `make`: ``` go build -o bin/blx ./cmd/server PORT=8080 bin/blx ``` 在浏览器中打开 **http://localhost:8080**。要为网络上的其他机器 (例如:团队的笔记本电脑)提供服务,请使用 `HOST=0.0.0.0` 运行。 ### 环境变量 | 变量 | 默认值 | 描述 | | ------------- | ----------- | ------------------------------------------------ | | `HOST` | `127.0.0.1` | 绑定地址。使用 `0.0.0.0` 以允许局域网访问。 | | `PORT` | `8080` | HTTP 端口。 | | `CORS_ORIGIN` | (空) | 仅为该源启用 CORS(用于开发环境)。 | ## 如何使用 1. 在主页上,**选择一个工具**(例如:Nmap)。 2. 回答向导的问题(目标、扫描类型、选项等)。 3. 接收生成的命令,包含语法、提示和风险警告。 4. **复制**单个命令,**复制所有**命令或**下载 `.sh` 脚本** 并在您的终端中执行(下载脚本时不要忘记使用 `chmod +x`)。 ## 测试与质量 ``` make test # go test ./... make vet # go vet ./... make fmt # gofmt -w . ``` 该仓库包含 GitHub Actions CI(每次 push/PR 时运行 `go vet`、`go test` 并为 Linux 和 Windows 构建版本)。 ## Windows 安装(分发) 生成 `BLX-Setup.exe` 安装程序以分发给团队的 Windows 笔记本电脑: ``` # Linux(单一构建机器): make build-icon # regenera o ícone embutido no .exe (opcional) make build-windows # gera bin/blx.exe com o ícone make build-installer # gera output/BLX-Setup.exe via Inno Setup (wine) ``` 安装程序将: - 安装在 `Program Files\BLX` 中; - 在“开始菜单”和“桌面”创建快捷方式; - 在安装前显示使用条款(`LICENSE.txt`); - 是否签名?**否** — 由于没有代码签名证书, **Windows Defender / SmartScreen 在执行时会显示警告**。用户需要点击 *“更多信息” > “仍要运行”*。为了消除警告, 组织需要使用代码证书对 `.exe` 进行签名 (例如:通过 Azure Trusted Signing)或在 IT 策略中创建例外。 应用在 **http://localhost:8080** 上运行(绑定 `127.0.0.1`)。如果要从 网络上的其他机器进行访问,请使用 `HOST=0.0.0.0` 运行并在 Windows 中创建防火墙规则(`installer.iss` 中有注释说明)。 ## 结构 ``` BLX/ ├── cmd/ │ ├── server/main.go # entrypoint + graceful shutdown │ └── genicon/main.go # gerador do ícone (assets/icon.ico) ├── internal/ │ ├── api/ # handlers HTTP, middleware, testes │ │ ├── server.go │ │ └── handlers.go │ ├── static/ # frontend embutido via go:embed │ │ └── web/ │ │ ├── index.html │ │ └── assets/{styles.css, app.js, blx-logo.png} │ └── tools/ # catálogo + motor de geração │ ├── catalog.go # modelos, validação, registro │ ├── tools.go # definições das 24 ferramentas │ ├── generators.go # geração de comandos por ferramenta │ └── helpers.go # shell-quoting e utilitários ├── assets/ # logo oficial + imagens do wizard │ ├── blx-logo.png # logo oficial (fonte do icon.ico) │ ├── icon.ico # ícone do instalador/executável │ ├── wizard-large.png # painel lateral do instalador (164x314) │ └── wizard-small.png # ícone pequeno do instalador (55x58) ├── .github/workflows/ci.yml # CI (vet, test, build Linux/Windows) ├── installer.iss # script do instalador Windows (Inno Setup) ├── LICENSE.txt # termos exibidos na instalação ├── Makefile # build, run, test, vet, fmt └── go.mod ``` ## REST API | 方法 | 路由 | 描述 | | ------ | -------------------- | ----------------------------------------------- | | GET | `/api/health` | 健康检查 | | GET | `/api/tools` | 分类 + 完整目录(包含问题) | | GET | `/api/tools/{id}` | 工具详情 | | POST | `/api/generate` | 根据回答生成命令 | | GET | `/` | 前端 SPA | 生成示例: ``` curl -s -X POST http://localhost:8080/api/generate \ -H 'Content-Type: application/json' \ -d '{ "toolId": "nmap", "answers": { "targets": "10.10.10.0/24", "scanType": "aggr", "verbose": "true" } }' ``` 响应: ``` { "toolId": "nmap", "toolName": "Nmap", "risk": "medium", "commands": [ { "title": "Varredura principal", "language": "shell", "code": "nmap -A -vv 10.10.10.0/24", "hint": "…" } ], "notes": ["…"], "warnings": ["Varredura de redes sem autorização é ilegal…"] } ``` ## 添加新工具 1. 在 `internal/tools/tools.go` 中定义 `Tool`(问题)。 2. 在 `internal/tools/generators.go` 中编写生成函数。 3. 在 `internal/tools/tools.go` 的 `registerAll()` 中注册。 4. 在 `internal/tools/tools_test.go` 中添加测试。 支持的问题类型:`text`、`number`、`select`、`multi`、`boolean`。 ## 许可证 在 **MIT 许可证**下分发。请在 [LICENSE.txt](LICENSE.txt) 中查看完整条款(在 Windows 安装期间也会显示)。 ## 安全 在 BLX 中发现了漏洞?请在报告前查看我们的[负责任的 披露政策](SECURITY.md)。 ## 法律免责声明 渗透测试工具**必须**仅用于您拥有**正式书面授权**的系统和 网络。未经授权的使用构成犯罪(在巴西,违反刑法典第 154-A 条及 12.737/2012 号法律)。使用责任始终由执行者承担。
标签:EVTX分析, Go, REST API, Ruby工具, XXE攻击, 命令生成器, 插件系统, 日志审计, 网络测绘