Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
miasma-toolkit — Набор инструментов для обнаружения и устранения червя Miasma / Shai-Hulud и CVE-2026-35603 (внедрение конфигураций AI-агентов/IDE) | Kitploit
Инструменты/GitHubGitHub/jchable/miasma-toolkit
Управление индикаторами компрометации (IOC)Анализ уязвимостейФорензикаАнализ вредоносных программDevSecOpsОбнаружение СекретовРазведка угрозБезопасность Цепочки ПоставокОбучение и ОбразованиеРеагирование на Инциденты
GitHubjchable/miasma-toolkit
1 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

miasma-toolkit

Набор инструментов для обнаружения и устранения червя Miasma / Shai-Hulud и CVE-2026-35603 (внедрение конфигураций AI-агентов/IDE)

Репозиторий

Miasma / Shai-Hulud инструментарий

License: MIT PowerShell 7+ Miasma CI guard

Инструменты анализа инцидентов, обнаружения и устранения для червя Miasma (варианта Mini Shai-Hulud), который внедряет автозапускаемые полезные нагрузки в конфигурации AI-агентов/IDE и репозитории npm/GitHub.

⚠️ Отказ от ответственности — без гарантии. Это общественный оборонительный инструментарий, предоставляемый «как есть», без каких-либо гарантий (см. LICENSE). Сканер и YARA-правила работают только на чтение, но purge-history.sh переписывает историю git, а хуки .claude/ перемещают файлы в карантин — оба могут изменить репозиторий. Сначала сделайте резервную копию, изучите, что делает каждый инструмент, и используйте на свой страх и риск. Чистое сканирование не является гарантией безопасности: индикаторы эволюционируют, и появляются новые варианты. Используйте на системах и аккаунтах, к которым у вас есть разрешение на проверку. Нашли пробел или ошибку? См. SECURITY.md и CONTRIBUTING.md.

Содержание

Предварительные требования

Установка YARA (Windows): winget install VirusTotal.YARA — или choco install yara / scoop install yara. На Linux/macOS: apt install yara / brew install yara. Проверьте: yara --version.

Быстрое использование

Примечание: -Mode Local по умолчанию сканирует только $env:USERPROFILE. Укажите -CodeRoots для охвата репозиториев в других местах, например -CodeRoots E:\Sources,D:\work.

root@kitploit:~
# Сканирование локальной машины + локальных репозиториев (+ CVE-2026-35603 ProgramData)
pwsh -File Scan-Miasma.ps1 -Mode Local
pwsh -File Scan-Miasma.ps1 -Mode Local -CodeRoots E:\Sources,D:\work

# Сканирование удалённых репозиториев GitHub (сначала аутентифицируйтесь в целевом аккаунте для приватных репозиториев/секретов)
gh auth login
pwsh -File Scan-Miasma.ps1 -Mode Remote -Owners your-org,your-user -OutReport report.md

# Всё вместе + JSON + Markdown отчёт
pwsh -File Scan-Miasma.ps1 -OutJson findings.json -OutReport report.md

Код выхода 1, если есть INFECTED находка (для CI).

root@kitploit:~
# Очистка истории заражённого репозитория (предварительно просмотрите PATHS в скрипте)
./purge-history.sh /path/to/repo
# затем, после проверки:
git push origin --force --all && git push origin --force --tags
root@kitploit:~
# YARA-сканирование
yara -r setup-js.yar /path/to/scan
root@kitploit:~
# Linux/macOS: локальное сканирование (bash-порт — по умолчанию $HOME; укажите пути для расширения)
./scan-miasma.sh
./scan-miasma.sh ~/src /opt/work
root@kitploit:~
# Статическая деобфускация захваченного дроппера (только чтение — никогда не запускается)
pwsh -File Expand-MiasmaPayload.ps1 -Path .github/setup.js   # записывает слои + iocs.txt в <Path>.deob/
pwsh -File Expand-MiasmaPayload.ps1 -SelfTest                # проверка движка декодирования/дешифрования

Деобфускатор распаковывает волну упаковщика p,a,c,k,e,d, декодирует волну char-кода, автоматически определяет и обращает сдвиг Цезаря (переопределить через -Shift), затем дешифрует каждый встроенный AES-128-GCM блок (_b загрузчик, _p стилер) и сканирует восстановленный код на наличие URL, IP-адресов и аккаунтов для dead-drop.

root@kitploit:~
# После устранения: создание приоритетного чеклиста смены секретов (ничего не отзывает)
pwsh -File Invoke-MiasmaRotation.ps1                       # определяет доступные отсюда учётные данные
pwsh -File Invoke-MiasmaRotation.ps1 -OutReport rotation.md

CI-защита (отказ от сборки, если присутствует дроппер/загрузчик)

Используйте встроенное composite action как первый шаг любого рабочего процесса:

root@kitploit:~
# В другом репозитории (для безопасности цепочки поставок зафиксируйте тег/SHA):
- uses: actions/checkout@v4
- uses: jchable/miasma-toolkit/.github/actions/miasma-guard@main
  # with:
  #   full-scan: 'true'   # также запускает Scan-Miasma.ps1 -Mode Local (требуется pwsh)

Этот инструментарий запускает ту же защиту на себе через .github/workflows/miasma-ci.yml (ссылаясь на action по относительному пути). Защита не зависит от варианта червя и нацелена на файлы конфигурации его загрузчика, поэтому никогда не даёт ложных срабатываний на документах, которые просто упоминают строку IOC.

Хуки Claude Code (.claude/)

Защита в реальном времени для машин, на которых запущен Claude Code в этом репозитории. Хуки используют iocs.psd1 (без дублирования индикаторов) и подключены в .claude/settings.json:

  • Карантин обратим: заражённые файлы перемещаются в .miasma-quarantine/<timestamp>/… (игнорируется git) и логируются в .miasma-quarantine/quarantine.log — восстановите через Move-Item. Ничего не удаляется безвозвратно.
  • Самоисключение (Test-MiasmaExcluded в Miasma.Common.ps1): собственные файлы инструментария легитимно содержат строки IOC (iocs.psd1, Scan-Miasma.ps1, scan-miasma.sh, Expand-MiasmaPayload.ps1, Invoke-MiasmaRotation.ps1, purge-history.sh, setup-js.yar, content/, , , ) и никогда не блокируются/не помещаются в карантин.

Модель серьёзности (Scan-Miasma.ps1)

  • INFECTED — DROPPER, INJECT, FORGED, BADDEP, WORKFLOW, RUNNER, PAYLOAD, BUN-DROP, PROGRAMDATA
  • REVIEW — NPM-AUDIT, SECRETS (инвентаризация ротации), SIGNATURE, PERSIST, PROGRAMDATA-CFG

Известные ошибки, уже исправленные (имейте в виду при доработке)

  • gh api <404> --jq выводит тело ошибки в stdout → никогда не доверяйте правдивости вывода; проверяйте $LASTEXITCODE + проверяйте формат (числовой размер, точное имя ветки).
  • GitHub сохраняет редирект master→main после переименования → branches/master возвращает 200; принимайте ветку только если возвращённое имя == запрошенное имя.
  • npm audit должен оставаться с флагом --package-lock-only (без npm install, без выполнения скриптов).

TODO / очередь доработок

Исходный бэклог (bash-порт, значки серьёзности, деобфускация упаковщика, помощник ротации) готов. Будущие идеи:

  1. scan-miasma.sh: добавить удалённый/GitHub режим (сейчас только локальный).
  2. Деобфускатор: обрабатывать ROT-4/ROT-9 многобайтовые и не-AES-128-GCM варианты, если будут обнаружены.
  3. Помощник ротации: опциональный режим --revoke (с подтверждением) для gh/npm/aws.

Ссылки

  • The bot that never was — icflorescu (dev.to)
  • Miasma worm: AI coding agent config injection — safedep.io
  • CVE-2026-35603: AI coding tools privilege escalation — Cymulate
Скачать инструмент
ФайлОписание
content/incident-report.fr.md / content/incident-report.en.mdПолный отчёт: как работает, деобфускация полезной нагрузки, IOCs, устранение
Scan-Miasma.ps1Единый сканер (локальный + удалённый), структурированный JSON + Markdown отчёт для каждого репозитория — используйте этот
iocs.psd1Общие индикаторы (хэши, сигнатуры, вредоносные пакеты, конфиги), загружаемые сканером — редактируйте IOCs здесь
Expand-MiasmaPayload.ps1Статический деобфускатор для setup.js — снимает упаковщик/char-коды → Caesar → AES-128-GCM и извлекает C2/IOCs (никогда не выполняет полезную нагрузку)
Invoke-MiasmaRotation.ps1Чеклист смены секретов — определяет, какие учётные данные доступны здесь, и выводит команды отзыва (только чтение; ничего не отзывает)
scan-miasma.shBash-порт локального сканирования для Linux/macOS (кросс-платформенное подмножество)
purge-history.shУдаление вредоносных файлов из всей истории git (filter-repo → filter-branch) + резервная копия
setup-js.yarYARA-правила для дроппера и конфигураций загрузчика
.github/actions/miasma-guard/Переиспользуемое composite action для GitHub Actions — отказывается собирать, если присутствует дроппер/загрузчик
.claude/Хуки Claude Code — защита в реальном времени/карантин + команда /miasma-scan (см. ниже)
ИнструментДля чего нуженОбязателен?
PowerShell 7+ (pwsh)Scan-Miasma.ps1, Expand-MiasmaPayload.ps1, Invoke-MiasmaRotation.ps1обязательно (для этих инструментов)
bash + coreutils (sha256sum/shasum, awk, find)scan-miasma.sh (Linux/macOS)только для bash-порта
gitПроверка истории локальных репозиториев, purge-history.shобязательно
GitHub CLI (gh, аутентифицированный)Scan-Miasma.ps1 -Mode Remoteтолько для удалённого сканирования
npmудалённый npm audit (только lockfile)опционально (автопропускается, если отсутствует)
git-filter-repoпредпочтительное переписывание истории (есть резервный встроенный git filter-branch)опционально
YARA (yara)сканирование с setup-js.yarопционально
ХукСобытиеДействие
Guard-Write.ps1PreToolUse (Write/Edit/MultiEdit)Блокирует запись, которая внедрила бы IOC червя (отменяет вызов инструмента)
Guard-Bash.ps1PreToolUse (Bash)Блокирует выполнение червя — node .github/setup.js, bun/bunx, конвейерный установщик bun.sh
Scan-Write.ps1PostToolUse (Write/Edit/MultiEdit)Оповещает + помещает в карантин заражённый файл после его создания
Session-Sweep.ps1SessionStartБыстрая проверка репозитория; сообщает о любом существующем заражении в контекст
/miasma-scanкомандаОбёртка для Scan-Miasma.ps1 по запросу
.claude/hooks|commands
.github/actions/miasma-guard/
.github/workflows/
  • Guard-Bash нацелен на выполнение, а не на упоминание: его шаблоны (iocs.psd1 → CmdSigs) привязаны к позиции команды, поэтому команды анализа, которые просто называют IOC (grep "node .github/setup.js", yara -r setup-js.yar, cat setup.js), не блокируются — блокируется только фактический запуск node …/setup.js / bun / конвейера установки bun.sh. Примечание: вызов bun/bunx блокируется полностью (среда выполнения червя); добавьте в белый список через CmdSigs, если вам действительно нужен Bun.
  • ⚠️ В отличие от Scan-Miasma.ps1 (только чтение), эти хуки изменяют дерево (карантин). Они опциональны: Claude Code запрашивает подтверждение хуков при первой загрузке .claude/settings.json.