# Источники стилер-логов: таксономия, оценка пригодности, методология поиска

> Статус: active research document (2026-07-27).
> Связанные документы: [methodology.md](methodology.md) (Fresh Breach Intake, Victim Pivot),
> [pipeline.md](pipeline.md), [quality-criteria.md](quality-criteria.md).

## 1. Контекст и проблема

Текущий основной источник — mass-логи типа `.boxed.pw` / ALIENBASE-VIP /
WINGSCLOUD-ULP и аналогичные «clouds of logs» с агрегированными ULP-дампами
(url:login:password). Для оценки защищённости организаций они малопригодны:

1. **ULP — производный продукт.** Mass-каналы торгуют не первичными логами, а
   результатом обработки bulk-архивов парсерами (Crystal, BLTools, Paranoid
   Checker, Profit Maker — см. Sekoia): per-victim структура уничтожена,
   креды отдедаплицированы и прогнаны через checker. Это **конец цепочки
   перепродажи** — данные перепроданы N раз до публикации.
2. **Нет per-victim контекста** → невозможен Victim Pivot (Слой 3 нашей
   методики): нет cookies, system info, autofill, полного набора credentials
   жертвы — только плоская строка ULP.
3. **Rotation rate.** Креды 7–14-дневной давности в корпоративных системах
   имеют ~60–80% rotation rate; mass-агрегаторы добавляют ещё недели задержки.
   Эмпирика проекта: Слой 1 (corp_search по URL) дал 647K hits → **0 active**.
4. **Consumer-шум.** Публичные каналы — преимущественно consumer-level
   (gaming, social, streaming); корпоративные DevOps/admin креды уходят в
   приватные клауды.

Вывод: ценность для org-assessment определяется положением источника в цепочке
жизненного цикла лога — надо двигаться **вверх по цепочке**, к первичным
per-victim архивам.

## 2. Таксономия: цепочка жизненного цикла лога

По Sekoia («The logs», «Traffers»), KELA, Rapid7:

```
[0] Stealer panel (MaaS)      — оператор скачивает ZIP жертвы из админки
        ↓ продаёт/сливает
[1] Traffers private cloud    — команда трафферов, first-hand, до публикации
        ↓ подписка
[2] Paid Telegram cloud       — $90–$900/мес, bulk per-victim архивы,
                                1k–15k логов/день, "one-hand" vs "mix"
        ↓ per-bot продажа
[3] Marketplace (Russian M.)  — per-bot продажа с поиском по домену, ~$10/bot
        ↓ promo
[4] Free sample channels      — промо-семплы платных клаудов
        ↓ парсинг + checker
[5] Mass ULP aggregators      — .boxed.pw, ALIEN TXTBASE и т.п.  ← мы здесь
```

Цена бота по уровням: <$1 на масс-уровне, ~$10 на маркетплейсе. Свежесть и
ценность монотонно падают сверху вниз; rotation rate растёт.

## 3. Кандидатные источники

### 3.1 DIY-сбор через Telegram bot tokens (Bitsight methodology)

Извлечение bot token + chat_id из конфигов стилеров (семейства, эксфильтрующие
в Telegram Bot API: Snake Keylogger, AgentTesla/OriginLogger, PXA, Prynt,
Phemedrone, Worldwind, VipKeylogger), затем пассивный приём через Bot API
`getUpdates`/`getDocument` напрямую от ботов операторов.

- **Формат:** per-victim ZIP (первичный, немодифицированный).
- **Свежесть:** реальное время, 0-hand.
- **Стоимость:** $0 (инфраструктура своя).
- **Эмпирика:** Bitsight — ~1800 ботов → 5M логов, 27 семейств (с окт 2024).
- **Риски:** legal/OPSEC минимальны (пассивный приём, без взаимодействия с
  операторами); требует пайплайна sample→config extraction (MalwareBazaar,
  ANY.RUN). Часть семейств (Lumma/Vidar/StealC) эксфильтрует в HTTP C2, не в
  Telegram — покрытие смещено в low-tier семейства.
- **Источники:** Bitsight «Skidding Infostealer Logs» (2024-10-16);
  SentinelOne «PXA Stealer» (2025-08-04); NVISO «Exploring Telegram abuse»
  (2025-12-16).

### 3.2 Paid Telegram clouds of logs

Подписочные каналы с bulk per-victim архивами. Документированные примеры:
BSC cloud (~10k свежих логов/день, $2299/мес, Sekoia 2023), Daisy Cloud
(с 2021, RedLine, тиры), Moon Cloud (агрегатор + боты), Observer Cloud,
LOG SYNC (SOCRadar 2025-06). Типовой диапазон $90–$900/мес.

- **Формат:** per-victim архивы (cookies, system info — если клауд честно
  продаёт «logs with cookies and documents», а не ULP-экстракт).
- **Свежесть:** 1–7 дней, «one-hand» тиры свежее.
- **Стоимость:** $90–$2300/мес.
- **Риски:** оплата криминальному сервису (legal/ethics — **operator gate**);
  риск перепродажи «mix» под видом «one-hand»; OPSEC при подписке.
- **Пригодность:** высокая при верифицированном качестве клауда.

### 3.3 Marketplaces с per-bot domain search

Russian Market (доминирует после падения Genesis 2023 и 2easy): ~30k ботов/мес
листинга, ~180k продаж за H1 2025, $1–$100/bot (медиана ~$10), фильтры по
geo/OS/семейству/вендору, **поиск по домену/email в поле links** — хирургический
доступ: купить конкретного бота, содержащего домен целевой организации.

- **Формат:** per-victim полный лог (в среднем 0.14 MB на бота).
- **Свежесть:** дни–недели.
- **Стоимость:** ~$10/bot, точечно.
- **Риски:** прямая сделка на криминальном маркете (оплата криптой, аккаунт,
  OPSEC) — **operator gate, по умолчанию вне скоупа**; рассматривать только как
  исключение для конкретной disclosure-критичной цели.
- **Источники:** Rapid7 «Inside Russian Market» (2025-10-07); ReliaQuest
  (2025-06-02).

### 3.4 Request-боты (per-query)

Telegram-боты, продающие логи по ключевому слову (пример: Omega bot — Sekoia):
запрос «target.com» → выдача N логов. Промежуточный вариант между облаком и
маркетплейсом. Те же legal-риски, что 3.2–3.3.

### 3.5 Free / notification-grade (вспомогательные)

Не дают per-victim архивов, но полезны для notification lists и приоритизации:

- **HIBP** — «Stealer Logs Posted to Telegram» (26M email, 2024-07) и «ALIEN
  TXTBASE» (284M email, 2025-02); поиск по домену через API (платный domain
  search). ULP-grade.
- **Hudson Rock / infostealers.com** — free lookup по email/domain с
  per-infection метаданными (computer name, infection date, семейство, IP);
  Cavalier — коммерческий bulk. Метаданные позволяют оценить свежесть и
  наличие жертв в целевой орг до покупки/сбора.
- **IntelX** — индексирует stealer logs и combolists, частичный free tier.
- **Vendor indexes как seed-листы:** Breachsense channel index (обновляется,
  2026-07), KELA channel lists, Flare data explorer.

### 3.6 Sandbox-driven (для parser work и discovery)

MalwareBazaar (bazaar.abuse.ch) + ANY.RUN public tasks/trends + UnpacMe:
бесплатные сэмплы и отчёты детонации. Используются для (а) извлечения
Telegram bot tokens (→ 3.1), (б) построения парсеров форматов актуальных
семейств, (в) discovery C2/панелей (→ 4.3).

## 4. Матрица пригодности (scoring)

Критерии (0–2 каждый): **PVC** per-victim context · **FR** freshness (0–7 дней
= 2) · **CORP** корпоративная плотность · **ROT** инвертированный rotation
rate · **COST** инвертированная стоимость · **LEG** legal/OPSEC чистота ·
**INT** интеграционная стоимость (инвертированная).

| Источник | PVC | FR | CORP | ROT | COST | LEG | INT | Σ |
|---|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 3.1 DIY bot collection | 2 | 2 | 1 | 2 | 2 | 2 | 0 | **11** |
| 3.2 Paid cloud (verified) | 2 | 1 | 2 | 1 | 1 | 0 | 1 | **8** |
| 3.3 Marketplace per-bot | 2 | 1 | 2 | 1 | 1 | 0 | 1 | **8** |
| 3.4 Request-бот | 1 | 1 | 1 | 1 | 1 | 0 | 1 | **6** |
| 3.5 HIBP / Hudson Rock | 0 | 0 | 1 | 0 | 2 | 2 | 2 | **7** |
| 3.6 Sandbox feeds | 1 | 2 | 0 | 1 | 2 | 2 | 0 | **8** |
| [текущий] mass ULP (.boxed.pw) | 0 | 0 | 1 | 0 | 2 | 1 | 2 | **6** |

CORP у DIY оценён в 1: low-tier семейства (Telegram-exfil) чаще consumer;
корпоративная плотность растёт только при большом объёме сбора. 3.5 имеет
высокий Σ за счёт нулевой стоимости, но не решает задачу (нет PVC) — роль
вспомогательная.

**Вывод:** приоритет — 3.1 (DIY collection) как основной новый источник;
3.2 (paid cloud) как ускоритель корпоративной плотности при бюджете и
operator approval; 3.5 — бесплатный вспомогательный контур для
notification/prioritization.

## 5. Методология поиска новых источников

Пять направлений discovery (в порядке yield/effort):

### 5.1 Channel-graph expansion (Telegram)

- Seed-лист: известные клауды (текущие intake-источники) + Breachsense/KELA
  channel indexes + SOCRadar-списки.
- Расширение графа: reposts/forwards, @-mentions, взаимная реклама клаудов,
  ссылки в закрепах, реклама на XSS/Exploit.
- **Ban-migration tracking:** после модерации Telegram каналы пересоздаются;
  отслеживать клоны по названию/аватару/паттерну постов (rotation detection).
- Инструменты: `scripts/tg_list_channel.py`, `scripts/tg_session_load.py`
  (pyrogram-сессии уже есть в проекте) + новый crawler-скрипт.

### 5.2 Config → Telegram bot token extraction

- Вход A (**ThreatFox, основной**): abuse.ch IOC feed — URL-IOC вида
  `api.telegram.org/bot<token>/...` уже извлечены из конфигов сэндбоксами
  сообщества, с атрибуцией семейства и first_seen. Реализовано:
  `scripts/tg_bot_harvest.py --source threatfox`.
- Вход B (MalwareBazaar, низкий yield): свежие сэмплы → strings/деобфускация →
  `TOKEN_BOT` + `CHAT_ID` (формат `[0-9]{8,10}:[A-Za-z0-9_-]{35}`).
  Эмпирика пилота: 0/80 — современные сэмплы packed/encrypted (§8.1).
- Проверка: Bot API `getMe` → `getUpdates`/`getDocument` → пассивный сбор.
- Автоматизация: `scripts/tg_bot_harvest.py` (extraction + validation) +
  `scripts/tg_bot_collect.py` (listener); выход — per-victim архивы в
  `findings/breaches/TGBOT-<bot_id>/` → стандартный `intake_local.py --extracted`.

### 5.3 Panel/C2 hunting (internet-wide)

- Favicon hash, page title, JARM, cert fields/CT-logs через Shodan/Censys/
  Netlas/FOFA; готовые query-репозитории (Awesome-Malicious-Infra-Hunting-
  Queries, InfraRecon).
- Панели часто содержат ссылки на sales-канал оператора → пополнение 5.1.
- Актуальные семейства для охоты (mid-2026): **Vidar 2.0** (доминирует, >73%
  инфекций в янв–фев 2026), **StealC V2**, **Acreed** (рост после takedown
  Lumma, JSON-summary в логах), остатки Lumma, legacy RedLine/Raccoon.

### 5.4 Traffers / recruitment monitoring

- Мониторинг рекрутинг-объявлений траффер-команд (XSS/Exploit, TG-каналы
  рекрутинга): команды появляются в мониторинге до того, как их клауды
  рекламируются широко → ранний доступ к first-hand источнику.
- Референс: Sekoia «Traffers: a deep dive».

### 5.5 Vendor/CTI accelerators

- Flare (тысячи TG-каналов в мониторинге), KELA (500+ источников), Breachsense
  index — использовать как периодически обновляемые seed-листы для 5.1.
- Бесплатные lookup (Hudson Rock) — проверка присутствия целевой орг в свежих
  инфекциях до траты ресурсов на сбор.

## 6. Ритуал оценки нового источника (qualification checklist)

Для каждого кандидата, прежде чем включать в регулярный intake:

1. **Формат:** per-victim архив или ULP? (ULP → только notification-tier)
2. **Пробный intake:** 1 архив через `intake_local.py` / `--extracted`;
   проверить auto-detect формата в `aggregate_breach.py` (A/B/C/TSV); при
   новом формате — расширить парсер.
3. **Свежесть:** распределение дат в system info / именах дампов.
4. **Дедупликация:** пересечение с уже обработанными источниками
   (`findings/data/index.csv`); >70% overlap → источник вторичен.
5. **Корпоративная плотность:** `corp_search.py --source` → hits/1k creds;
   Слой 2 (email-домены сотрудников) — наличие корп. доменов.
6. **Tier-ability:** доля RCE-grade хостов (`probe_rce.py`) после фильтрации
   (SaaS/CDN/gov/edu/hosting-tenants — см. methodology.md §Filtering).
7. **Пароль архива:** пополнить `KNOWN_PASSWORDS` в `intake_local.py`.
8. **Registry:** запись в `findings/data/index.csv` + заметка в этом
   документе (§7).

## 7. Реестр источников

| Источник | Тип | Уровень цепочки | Статус | Примечание |
|---|---|---|---|---|
| .boxed.pw / BOXEDROBOT | TG channel | 5 (mass) | active intake | низкая ценность для org-assessment |
| ALIENBASE-VIP | TG channel | 5 (mass) | processed | 2.48M creds, Слой 1 → 0 active |
| WINGSCLOUD-ULP | TG channel | 5 (mass ULP) | processed | 3.97M creds; дал S-tier ALTEN/Workhera |
| PIXELCLOUD3, UP_DAISYCLOUD, FATETRAFFIC, BEETRAFFIC, VALENCIGA, WATERCLOUD, KIR3INFO, KATANA | TG channels | 4–5 | processed | sample/mix тиры |
| Daisy Cloud | TG cloud | 2–4 | кандидат | paid тиры (SOCRadar 2025-06) |
| BSC cloud | TG cloud | 2 | кандидат | $2299/мес, ~10k логов/день (Sekoia 2023) |
| Russian Market | marketplace | 3 | gated | per-bot domain search; operator gate |
| DIY bot collection | собственный сбор | 0–1 | **пилот запущен** | §5.2, §8.1: ThreatFox→harvest→collect, 3 valid бота на старте |
| HIBP / Hudson Rock / IntelX | lookup | 5 (derivative) | вспомогательный | notification lists, freshness check |

## 8. План-пилот

1. **P0 — DIY bot collection (§5.2):** `tg_bot_harvest.py` (token sources →
   validation) + `tg_bot_collect.py` (long-poll listener → per-victim ZIP →
   `findings/breaches/`). Метрики пилота (2 недели): ботов валидировано,
   логов/день, corp_search hits/1k, доля per-victim с cookies.
2. **P1 — Channel-graph crawler (§5.1):** расширение seed-листа, ban-migration
   tracking, еженедельный diff новых каналов → qualification checklist (§6).
3. **P2 — Hudson Rock / HIBP domain lookups** для целей из threat_actor
   priority matrix: оценка наличия свежих инфекций по доменам 17 S-tier
   компаний → приоритизация disclosure.
4. **P3 (operator gate) — trial-подписка на 1 paid cloud** (Daisy/BSC-тип):
   верификация «one-hand» заявлений против нашего корпуса (dedup check §6.4).

### 8.1 P0 pilot — первые результаты (2026-07-27)

Реализовано: `scripts/tg_bot_harvest.py` (два режима) + `scripts/tg_bot_collect.py`
(демон-поллер, interval 60s, state в `findings/data/tg_bots_state.json`).

**Эксперимент 1 — статическое извлечение из MalwareBazaar: 0/80 сэмплов.**
9 семейств × ~10 сэмплов (AgentTesla, OriginLogger, VipKeylogger, PXA, Umbral,
LunaGrabber, PythonStealer, Phemedrone, Snake Keylogger): конфиги либо
зашифрованы (Phemedrone — AES, .NET), либо сэмпл — packetный Go-дроппер без
payload внутри (BlankGrabber), либо PyInstaller с обфусцированным PYZ.
Вывод: статика по современным сэмплам требует per-family config extractors
(рентабельно только при большом объёме) — **режим сохранён как `--source mb`,
но не является основным**.

**Эксперимент 2 — ThreatFox (abuse.ch IOC feed): рабочий источник.**
Тот же Auth-Key. `search_ioc api.telegram.org` + per-family `taginfo` →
19 токенов из URL-IOC с атрибуцией семейства и first_seen → `getMe`
валидация: **3/19 valid** (@Goodresults65bot AgentTesla, @ebarbspambot
AsyncRAT, @originlogg_bot OriginLogger), у всех webhook не установлен →
`getUpdates` доступен. Первый прогон коллектора: 1 update захвачен
end-to-end. Эмпирическое правило: свежесть first_seen коррелирует с
выживаемостью токена (dead-токены преимущественно со старых IOC).

Режим по умолчанию: `tg_bot_harvest.py --source threatfox`.

**Открытые вопросы пилота:**
- yield логов/день с 3 токенов (ожидается низкий; нужен регулярный re-harvest —
  ThreatFox пополняется ежедневно, см. cron ниже)
- конкуренция за updates с операторами (offset sharing) — оценить по
  фактическому покрытию
- доля ботов с webhook у оператора (409) — пока 0/3, при масштабировании
  пересмотреть политику deleteWebhook (operator-gated)

### 8.2 Bot API visibility probe (2026-07-27, `scripts/tg_botapi_probe.py`)

Вопрос: как Bitsight собрал 5M логов через bot tokens, если `getUpdates`
возвращает только ВХОДЯЩИЕ сообщения, а стилеры эксфильтруют, ОТПРАВЛЯЯ от
имени бота? Эмпирическая проверка (throwaway bot через BotFather + мегагруппа,
MTProto-сессия проекта), VERIFIED = выполнено + наблюдено:

| # | Сценарий | Результат | Источник |
|---|----------|-----------|----------|
| A | bot→user private (sendMessage) в getUpdates | не видно | probe (ожидаемо: own messages не доставляются) |
| B | user→bot private в getUpdates | **видно** | collector: 2× `/start` @ebarbspambot захвачены в проде |
| C | bot→group post в getUpdates | не видно | probe |
| D | user→group post (privacy ON) в getUpdates | не видно (только команды/реплаи) | probe |
| E | bot's own posts в MTProto history (user client в группе) | **видно** | probe VERIFIED |
| F | `exportChatInviteLink` токеном бота (бот=admin) → invite link | **работает** | probe VERIFIED |
| G | `getChat(user_id)` → профиль отправителя | работает | probe VERIFIED |

**Реконсиляция с Bitsight.** Их статья не раскрывает механику, но наши
результаты + их артефакты («timestamps starting from 2020» — невозможно через
24-часовое окно getUpdates) сходятся на полном пути:

```
token + chat_id (из конфига/IOC)  →  getChat: тип чата
  ├─ private chat оператора       →  история НЕ доступна (в чужом аккаунте)
  └─ group/channel (бот=admin)    →  exportChatInviteLink (F) → join через
                                      MTProto user session → get_chat_history (E)
                                      → ПОЛНАЯ история логов, не 24ч окно
```

Плюс второй канал: семейства, где жертвы/оператор ПИШУТ боту (RAT-команды,
регистрация жертв) — входящие в getUpdates (B, уже захватываем).

**Изменения в пайплайне по результатам probe:**
1. `tg_bot_harvest.py` — извлечение `chat_id` из query-параметров IOC-URL
   (`sendMessage?chat_id=...`) для ThreatFox и URLhaus.
2. `tg_bot_collect.py` — подписка на `my_chat_member` updates: если бота
   добавляют в группу/канал, мы узнаём chat_id exfil-группы → state
   `discovered_chats`.
3. Group-join reader реализован: `scripts/tg_group_read.py` (token + admin
   chat_id → exportChatInviteLink → pyrogram join → get_chat_history →
   dump messages+documents в `findings/breaches/TGBOT-<id>/history_<chat>/`).
   Join требует `--yes` (operator confirmation, виден админам группы) и
   логируется в `findings/data/tg_group_joins.log`. Кандидаты собираются из
   TSV (chat_id из IOC-URL) и state (discovered_chats). Полный E2E против
   реальной exfil-группы отложен до появления group-топология токена.

**Операционный ритм:** harvest (ежедневно, добавляет новые токены в
`tg_bots_validated.tsv`) → collect (демон 24/7; окно жизни updates — 24ч) →
`intake_local.py --extracted findings/breaches/TGBOT-<id>` по накоплению.

## 9. Источники информации

- Sekoia — «Overview of the Russian-speaking infostealer ecosystem: the logs /
  the distribution», «Traffers: a deep dive» (blog.sekoia.io)
- KELA — «Telegram Clouds of Logs» (2023-08); «Top Telegram Channels: Logs
  and Carding» (обновл. 2026-07-13)
- SOCRadar — «Top Stealer Log Telegram Channels» (2025-06-04)
- Rapid7 — «Inside Russian Market» (2025-10-07)
- ReliaQuest — «The Infostealer Pipeline» (2025-06-02)
- Bitsight — «Skidding Infostealer Logs» (2024-10-16); «The Rise of Acreed»
  (2025-07-22)
- SentinelOne — «PXA Stealer and its Telegram-powered ecosystem» (2025-08-04)
- NVISO — «Exploring Telegram abuse» (2025-12-16)
- Flashpoint — «2026 Guide to Infostealers» (via SecurityWeek, 2026-06-10)
- Trend Micro — «Vidar Stealer 2.0» (2025-10-21)
- Zscaler — «I StealC You» (2025-05-01)
- Microsoft DCU — Lumma takedown (2025-05-21); Europol — Operation Endgame
  3.0 (2025-11); Dutch Police/FBI — Operation Magnus (2024-10)
- Troy Hunt — «Processing 23 billion rows of ALIEN TXTBASE» (2025-02)
- Breachsense — infostealer channel index (обновляемый, 2026-07-24)
- SLCyber — «Stealer Logs and Telegram» (2026-03-17)

*Ограничения: живые каналы/маркеты не проверялись на доступность (доступ не
предпринимался); часть цифр — single-vendor оценки, согласованные между
Rapid7/ReliaQuest/Bitsight независимыми выборками.*
