# Scripts Index

> Назначение: единая точка ориентации для агента. Скрипты в `scripts/` разбиты
> по категориям. Правило: для новой работы используйте **Core pipeline** и
> **TG infrastructure**. Engagement one-offs (завязанные на конкретную цель)
> в этот шаблон не входят — они пишутся ad-hoc под engagement и хранятся в
> `redteam/<target>/`, а не в общем `scripts/`.

## Core pipeline (intake → analysis)

| Script | Purpose |
|---|---|
| `intake_local.py` | MAIN: local archive → extract → aggregate → corp_search → index.csv |
| `aggregate_breach.py` | per-victim dirs → TSV (форматы A/B/C/TSV auto-detect) |
| `ulp_to_tsv.py` | ULP txt (url:login:pass) → TSV |
| `corp_search.py` | corporate access search, 127 паттернов, 17 категорий, 3 слоя |
| `probe_rce.py` | L0 reachability для RCE-grade endpoints (+ --forms) |
| `scan_secrets.py` | secret-pattern scanner (60+ regex) + optional L1 API validation |
| `secret_harvest.py` | harvest секретов из доступных сервисов (L2) |
| `antipublic.py` | Antipublic API v2 CLI (проверка по публичной базе) |

## TG infrastructure (Telegram intake + bot collection)

| Script | Purpose |
|---|---|
| `tg_session_load.py` | MTProto session из .env (auth_key) → pyrogram .session |
| `tg_download.py` | **resumable** download документа из канала (offset-resume, DC-migration) |
| `tg_list_channel.py` | листинг сообщений канала |
| `download_bot_archive.py` | .boxed.pw flow: self-deleting bot archive → Saved Messages |
| `tg_bot_harvest.py` | P0: bot tokens из ThreatFox/URLhaus/MB + getMe-валидация |
| `tg_bot_collect.py` | P0: демон getUpdates → per-victim файлы в findings/breaches/TGBOT-* |
| `tg_group_read.py` | P0: group-join reader (exportChatInviteLink → MTProto history) |
| `tg_botapi_probe.py` | эмпирический probe видимости Bot API (методология §8.2) |
| `extract_tg_hashes.py` | извлечение Telegram session hashes из дампов |
| `fast_download.py` | **LEGACY** (Telethon; заменён на tg_download.py) |
| `wingscloud_slim.py` | slim per-file pipeline для WingsCloud ULP батчей (§8) |

## L1/L2 validation (per-provider)

| Script | Purpose |
|---|---|
| `corp_validate.py` | batch L1+L2 validator для corp tier-list целей |
| `tg_l1l2_browser.py` | L1+L2 через Playwright (phpMyAdmin, Jenkins) |
| `validate_remaining_tokens.py` | ghp_, glpat-/glcbt-, dckr_pat_, Azure PAT |
| `coolify_l2.py` | Coolify L2 enumeration через web session (creds via argv) |
| `imap_checker.py` | IMAP L1 (Thunderbird flow) |
| `rdp_check.py` | RDP L1 (NLA/CredSSP handshake) |
| `cookie_replay.py` | cookie-replay L1: живы ли украденные сессии |

## Analysis / aggregation

| Script | Purpose |
|---|---|
| `aggregate_cookies.py` | агрегация cookies из дампов |
| `aggregate_dumps_creds.py` | агрегация credentials.csv из dumps (Win Cred Manager) |
| `aggregate_fatetraffic.py` | агрегация @fatetraffic MIX архивов |
| `analyze_cookies.py` | scoring cookie-сессий (expiration, hijack feasibility) |
| `analyze_credit_cards.py` | анализ credit_cards.json из vault/ |
| `password_reset_chain.py` | password reset chain inference |
| `monetary_impact.py` | Phase 4 monetary impact |
| `parse_env_batches.py` | парсинг env batches → batch_env_vars.csv |
| `vault_creds_export.py` | vault passwords.json → vault_creds.csv |
| `kdbx_inventory.py` | KeePass inventory + hash buckets |

## Status / inventory / export

| Script | Purpose |
|---|---|
| `generate_status_summary.py` | managed block в gap-analysis.md (make sync-status) |
| `validate_status_matrix.py` | валидация status-matrix.csv ↔ narrative |
| `status_report.py` | read-only сводка статусов |
| `validate_data_inventory.py` | валидация findings/data/index.csv |
| `validate_artifact_inventory.py` | валидация artifacts/index.csv |
| `sanitized_export.py` | sanitized export для sharing |

## Optional / external-dependency

| Script | Purpose |
|---|---|
| `dcsync_np.py` | DCSync driver (требует `impacket`; creds via argv) |

## legacy_dump_assessment/

Standalone KeePass/dump triage tools (stdlib-only): inventory, triage,
content_scanner, corporate_detector, keepass_analyzer, keepass_cracker,
prepare_hashcat, generate_reports.

## Engagement one-offs (НЕ входят в шаблон)

Скрипты, завязанные на конкретную цель (Proxmox/Portainer/NPM/persistence,
VNC-console drivers, host recon с зашитыми кредами), в шаблон не копируются.
Под новый engagement такие инструменты пишутся ad-hoc; их контекст и evidence
живут в `redteam/<target>/`, а не в общем `scripts/`.
