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

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

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

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

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

Категории

Все категории
Loading categories
gentlemen-decryptor — Первый в мире дешифратор для программы-вымогателя The Gentlemen — восстанавливает ключи шифрования из дампов памяти процессов с помощью извлечения эфемерного ключа X25519. 35/35 файлов расшифровано. Исследование компании Bedrock Safeguard Inc. | Kitploit
Инструменты/GitHubGitHub/bedrock-safeguard/gentlemen-decryptor
Криминалистика памятиАнализ уязвимостейЭксплуатацияОбратная инженерияФорензикаАнализ вредоносных программЦифровая криминалистикаКриптографияОбучение и Образование

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Реагирование на Инциденты
GitHubbedrock-safeguard/gentlemen-decryptor

gentlemen-decryptor

Первый в мире дешифратор для программы-вымогателя The Gentlemen — восстанавливает ключи шифрования из дампов памяти процессов с помощью извлечения эфемерного ключа X25519. 35/35 файлов расшифровано. Исследование компании Bedrock Safeguard Inc.

Репозиторий
307134 месяцев назадПроверено Kitploit

Дешифратор ransomware The Gentlemen

Первый общедоступный метод расшифровки для ransomware The Gentlemen.

The Gentlemen (также известный как hastalamuerte) в настоящее время является самой активной операцией ransomware-as-a-service (RaaS) в мире, с более чем 320 подтвержденными жертвами по состоянию на первый квартал 2026 года. До сих пор все крупные поставщики безопасности — Cybereason, Group-IB, Check Point, ASEC, Trend Micro — оценивали шифрование как криптографически невзламываемое. Никакого публичного дешифратора не существовало.

Мы взломали его.


Как это работает

The Gentlemen использует поточное шифрование XChaCha20 с обменом ключами X25519 ECDH. Каждый файл шифруется уникальным ключом, полученным из новой эфемерной пары ключей. Шифрование математически обосновано — мы не взломали математику.

Мы взломали реализацию.

Go не обнуляет криптографический ключевой материал в куче после использования (CWE-244). После того как эфемерный закрытый ключ X25519 сгенерирован для файла, он остается в памяти процесса, а не удаляется — поэтому дамп живого процесса восстанавливает ключи для уже зашифрованных файлов, часто в нескольких копиях, оставленных сборщиком мусора. ОС освобождает эту память после завершения процесса.

Дамп памяти живого процесса, сделанный во время или ближе к концу шифрования, обычно содержит эфемерные ключи для каждого обработанного до этого момента файла — в нашем анализе 35 файлов все они были найдены.

Результаты: 35/35 файлов расшифрованы с 100% точностью. Все 35 ключей восстановлены за 0,6 секунды из одного дампа памяти.


Для жертв

Если вы пострадали от ransomware The Gentlemen, вы можете восстановить файлы если образ памяти процесса ransomware был захвачен во время его работы. Восстановление работает путем извлечения эфемерных закрытых ключей для каждого файла из этого образа, поэтому это по возможности и может быть частичным — могут быть восстановлены только те файлы, ключ для которых уже был сгенерирован и все еще находился в памяти в момент захвата.

Что это означает на практике:

  • Ключ каждого файла создается в момент его шифрования. Захват, сделанный в начале атаки, содержит ключи только для файлов, обработанных до этого момента; захват, сделанный ближе к концу выполнения, обеспечивает наибольший охват.
  • Ключи находятся в памяти работающего процесса. Go не обнуляет этот ключевой материал во время работы процесса (CWE-244), поэтому дамп живого процесса обычно дает ключи для уже зашифрованных файлов — часто все.
  • Ключи теряются вскоре после завершения процесса. Как только процесс ransomware завершается, операционная система освобождает его память, и ключи быстро исчезают. Образ памяти помогает только если он отражает процесс пока он был жив — обычный образ диска или захват ОЗУ, сделанный после перезагрузки машины, почти наверняка их не содержит.
  • Не существует главного или мастер-ключа. Закрытый ключ оператора никогда не существует в системе жертвы. Восстановление полностью зависит от того, присутствуют ли физически пофайловые ключи в вашем образе памяти; без такого образа этот инструмент не может восстановить эти файлы.

Где может существовать полезный образ памяти — каждый помогает только если он захватил процесс во время его работы:

  1. Решения EDR/XDR — CrowdStrike, SentinelOne, Carbon Black, Microsoft Defender for Endpoint и другие могут захватывать память процесса при обнаружении угрозы. Проверьте консоль EDR на наличие захватов памяти или криминалистических снимков с момента инцидента.
  2. Реагирование на инциденты — если ваша команда IR использовала procdump, Диспетчер задач → "Создать файл дампа" или другой криминалистический инструмент для захвата процесса ransomware до его завершения.
  3. Отчеты об ошибках Windows — если ransomware вылетел, дамп процесса может существовать в C:\ProgramData\Microsoft\Windows\WER\.
  4. Дампы краха ядра — C:\Windows\Minidump\ и C:\Windows\MEMORY.DMP, если произошла ошибка проверки во время работы процесса (только полные дампы памяти включают память процесса; минидампы обычно нет).
  5. Полный захват ОЗУ — криминалистический образ системной ОЗУ, сделанный пока машина еще работала (WinPmem, Magnet RAM Capture, FTK Imager).
  6. Файл гибернации — C:\hiberfil.sys, если система перешла в спящий режим пока процесс ransomware был активен (он замораживает снимок ОЗУ в этот момент).

Не уверены, существуют ли они для вашего инцидента? Свяжитесь с нами по адресу [email protected], и мы поможем вам проверить.

Шаги по восстановлению

# 1. Install dependencies
pip install cryptography

# 2. Extract ephemeral public keys from your encrypted files
python extract_keys_from_files.py --input-dir /path/to/encrypted/files --output keys.json

# 3. Search the memory dump for matching private keys
python recover_keys.py --dump process_memory.dmp --pubkeys keys.json --output recovered_keys.json

# 4. Decrypt your files
python decrypt.py --keys recovered_keys.json --input-dir /path/to/encrypted/files --output-dir /path/to/recovered

⚠️ Режим частичного шифрования (--fast / --superfast / --ultrafast)

Блокировщик The Gentlemen поддерживает флаги скорости, которые выполняют частичное шифрование файлов размером более 1 МБ. При --superfast шифруется только ~3% байтов в большом файле; остальные ~97% остаются в виде открытого текста в исходном положении на диске. Это подтверждено в опубликованных RE (ASEC, Trend Micro, Cybereason).

Полноценное дешифрование XChaCha20 на файле с частичным шифрованием ДВАЖДЫ ПОВРЕДИТ незашифрованные области — применение потока ключей к сегментам открытого текста превращает их в мусор и уничтожает восстанавливаемые данные.

По этой причине decrypt.py по умолчанию отказывается обрабатывать файлы размером более 1 МБ. Если вы проверили, что блокировщик работал в режиме полного шифрования (только маленькие файлы или сборка без флагов скорости), передайте --force-large для переопределения.

Для жертв частичного шифрования используйте инструменты восстановления, учитывающие формат, на незашифрованных областях:

  • CyberArk White Phoenix — Office documents, PDFs (https://github.com/cyberark/White-Phoenix)
  • PhotoRec — общая резка медиафайлов
  • Формат-специфичные резчики — настроенные под ваши типы файлов (SQLite, QuickBooks и т.д.)

Bedrock Safeguard активно занимается обратной разработкой геометрии смещения блоков в режиме частичного шифрования. Когда эта работа будет завершена, этот дешифратор будет обновлен для безопасной обработки частично зашифрованных сегментов.


Технический анализ

Схема шифрования

Per-file encryption:
  1. Generate 32 random bytes              -> ephemeral private key (crypto/rand.Read)
  2. X25519(ephemeral_priv, operator_pub)  -> shared_secret (32 bytes)
  3. XChaCha20(plaintext, shared_secret)   -> ciphertext
  4. Append to file: --eph--<base64(ephemeral_PUBLIC_key)>--marker--GENTLEMEN

Эфемерный закрытый ключ является критическим секретом. Он существует только в памяти процесса и никогда не записывается на диск. Но распределитель стеков горутин Go не обнуляет память при выходе переменных из области видимости (CWE-244), оставляя ключевой материал доступным через криминалистику памяти.

Классификация уязвимостей

IDОписание
CWE-244Неправильная очистка памяти кучи перед освобождением
CWE-316Хранение конфиденциальной информации в открытом виде в памяти

Метод восстановления ключей

Скачать инструмент