86 lines
4.4 KiB
Markdown
86 lines
4.4 KiB
Markdown
# burterm
|
||
|
||
Терминальный инструмент для веб-пентеста, bug bounty и CTF. Один статический
|
||
Go-бинарник, 13 вкладок TUI (Dashboard, Request Builder, Results, Proxy,
|
||
Repeater, Spider, Target/Site Map, Decoder, Comparer, Sequencer, Scanner,
|
||
Project, Fuzzer) плюс headless CLI-режим для скриптов и CI.
|
||
|
||
- Подробное описание архитектуры: [ARCHITECTURE.ru.md](ARCHITECTURE.ru.md)
|
||
- История решений, найденные баги, оговорки по надёжности: [NOTES.md](NOTES.md)
|
||
- English version: [README.md](README.md)
|
||
|
||
Стеганография/аудио-форензика (анализ битовых плоскостей изображений,
|
||
спектрограммы, декодирование SSTV) раньше жили здесь 14-й вкладкой —
|
||
выделены в отдельный проект,
|
||
[stegterm](https://github.com/r3g1tpr0cs/stegterm), поскольку не имеют
|
||
отношения к веб-пентесту.
|
||
|
||
## Возможности
|
||
|
||
- **Proxy** — перехват HTTP/HTTPS через собственный MITM CA, скип трафика вне scope
|
||
- **Repeater** — ручная отправка/правка запроса, diff с последней отправкой (ctrl+d)
|
||
- **Intruder** — Sniper/Battering Ram/Pitchfork/Cluster Bomb, умные заготовки
|
||
payload'ов, рекурсия в найденные директории (аналог `-recursion` у ffuf),
|
||
расширения (`|ext:.php,.html`), фильтры по статусу/длине/словам/строкам/grep
|
||
- **Spider** — краулер с авто-сабмитом GET-форм и авто-подхватом сессионных
|
||
Cookie/Authorization из истории Proxy
|
||
- **Scanner** — SQLi/XSS/SSTI/LFI/RCE/SSRF/XXE/CORS/JWT, выбор конкретных проверок
|
||
- **Project** — сохранение сессии в SQLite с полнотекстовым поиском (FTS5),
|
||
фильтры по host/method/status/длине/цветовой метке
|
||
- **Fuzzer** — blackbox-мутационный фаззер произвольных бинарников (CTF pwn),
|
||
детект краша по сигналу
|
||
- **Dashboard** — живые метрики самого процесса (память, горутины, RPS),
|
||
оформлены как панели с рамками
|
||
|
||
## Сборка
|
||
|
||
```sh
|
||
go mod tidy # подтянет зависимости, включая modernc.org/sqlite
|
||
go build -o burterm ./cmd/burterm
|
||
```
|
||
|
||
Требуется Go 1.23+. Сборка без cgo.
|
||
|
||
**Код ни разу не проходил через компилятор** — писался в среде без сети и
|
||
без установленного Go. Список конкретных мест с неопределённостью и
|
||
порядок действий на первую сборку — в [NOTES.md](NOTES.md).
|
||
|
||
## Запуск
|
||
|
||
Без аргументов — интерактивный TUI:
|
||
|
||
```sh
|
||
./burterm
|
||
```
|
||
|
||
С аргументами — headless CLI (для скриптов/CI):
|
||
|
||
```sh
|
||
./burterm -request req.txt -payload wordlist:common.txt -mode sniper
|
||
```
|
||
|
||
`req.txt` — сырой HTTP-запрос с `§маркерами§` точек вставки:
|
||
|
||
```
|
||
GET /api/user?id=§1§ HTTP/1.1
|
||
Host: example.com
|
||
|
||
```
|
||
|
||
## Структура репозитория
|
||
|
||
```
|
||
cmd/burterm/ точка входа (CLI + запуск TUI)
|
||
internal/
|
||
engine/ ядро Intruder: маркеры, генераторы атак, фильтры
|
||
payload/ генераторы payload'ов (wordlist/range/brute/preset/ext)
|
||
cli/ разбор флагов и payload-спецификаций
|
||
proxy/ MITM-прокси, CA, scope-фильтр, авто-обнаружение сессий
|
||
spider/ краулер
|
||
sitemap/ scope-правила, дерево карты сайта
|
||
scanner/ активные/пассивные проверки уязвимостей
|
||
fuzzer/ blackbox-фаззер бинарников
|
||
project/ SQLite+FTS5 хранилище сессии
|
||
decoder/ comparer/ sequencer/ утилиты
|
||
tui/ весь интерфейс (bubbletea)
|
||
```
|