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

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

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

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

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

Категории

Все категории
Loading categories
CovenantDecryptor — Расшифровывает коммуникации Covenant C2, извлекая закрытые ключи RSA из минидампов, восстанавливая сеансовые ключи AES и преобразуя сетевые захваты в открытый текст. | Kitploit
Инструменты/GitHubGitHub/naacbin/covenantdecryptor
Инструменты шифрования/дешифрованияКриминалистика памятиСетевая криминалистикаАнализ вредоносных программЦифровая криминалистикаКриптографияКомандование и Управление
GitHubnaacbin/covenantdecryptor

CovenantDecryptor

Расшифровывает коммуникации Covenant C2, извлекая закрытые ключи RSA из минидампов, восстанавливая сеансовые ключи AES и преобразуя сетевые захваты в открытый текст.

Репозиторий
374182 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

CovenantDecryptor

CovenantDecryptor предназначен для расшифровки коммуникационных данных трафика Covenant.

Извлечение закрытого ключа из памяти применимо и к другим C2, например Empire, поскольку в нём для создания ключа используется RSACryptoServiceProvider.

Как работает обмен данными Covenant?

Инициализация обмена данными Covenant состоит из 3 этапов:

  • Этап 0 :
    1. Заражённый агент инициирует RSA-сессию, передавая открытый ключ, зашифрованный с помощью SetupAESKey, который встроен в вредоносный исполняемый файл. Перед отправкой он форматирует текст, как описано в GruntHTTPStager, с типом, установленным в 0.
    2. C2 передаёт SessionKey, зашифрованный открытым ключом RSA, для последующей связи.
  • Этап 1 :
    1. Заражённый агент использует SetupAESKey для расшифровки сообщения, а затем применяет закрытый ключ RSA для расшифровки SessionKey. После этого он шифрует 4 случайно сгенерированных байта с помощью SessionKey и передаёт их. Перед отправкой он форматирует текст, как описано в GruntHTTPStager, с типом, установленным в 1.
    2. C2 расшифровывает 4 байта с помощью SessionKey, добавляет ещё 4 случайно сгенерированных байта и передаёт полученные 8 байт данных заражённому агенту.
  • Этап 2 :
    1. Заражённый агент расшифровывает 8 байт с помощью SessionKey. Затем он проверяет, совпадают ли первые 4 байта с данными, переданными ранее, и передаёт последние 4 байта обратно на C2. Перед отправкой он форматирует текст, как описано в GruntHTTPStager, с типом, установленным в 2.
    2. C2 расшифровывает 4 байта и проверяет, соответствуют ли они тем, что были переданы ранее.

После завершения проверки можно обмениваться данными.

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

CovenantDecryptor состоит из двух утилит. Скрипт extract_privatekey извлекает простые числа p и q из файла minidump, чтобы сформировать закрытый ключ RSA с использованием открытого модуля. Скрипт decrypt_covenant_traffic содержит 3 команды: modulus, key и decrypt. Первая команда извлекает модуль из обмена данными Covenant, вторая восстанавливает ключ AES, используемый для шифрования трафика данных. И наконец, третья команда расшифровывает трафик.

Что вам нужно?

  • Трафик данных Covenant, извлечённый из сетевого захвата и сохранённый в отдельном файле.
  • Ключ AES, встроенный в бинарный файл этапа 0 и используемый в начале обмена данными.
  • Файл minidump заражённого процесса.

Использование

Извлеките модуль из запроса этапа 0 заражённого хоста :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py modulus -i traffic.txt -k "EQCZiHdmVUQzIhEAmYh3ZlVEMyIRAJmId2ZVRDMiEQA=" -t base64
[+] Modulus: 
19574201286059123715221634877085223155972629451020572575626246458715199192950082143183900970133840359007922584516900405154928253156404028820410452946729670930374022025730036806358075325420793866358986719444785030579682635785758091517397518826225327945861556948820837789390500920096562699893770094581497500786817915616026940285194220703907757879335069896978124429681515117633335502362832425521219599726902327020044791308869970455616185847823063474157292399830070541968662959133724209945293515201291844650765335146840662879479678554559446535460674863857818111377905454946004143554616401168150446865964806314366426743287
[+] Exponent: 65537

Получите закрытый ключ RSA из файла minidump заражённого процесса Covenant :

root@kitploit:~
$ python3 extract_privatekey.py -i memory.dmp -m 19574201286059123715221634877085223155972629451020572575626246458715199192950082143183900970133840359007922584516900405154928253156404028820410452946729670930374022025730036806358075325420793866358986719444785030579682635785758091517397518826225327945861556948820837789390500920096562699893770094581497500786817915616026940285194220703907757879335069896978124429681515117633335502362832425521219599726902327020044791308869970455616185847823063474157292399830070541968662959133724209945293515201291844650765335146840662879479678554559446535460674863857818111377905454946004143554616401168150446865964806314366426743287 -o ./keys/
[+] Saved private key /home/user/privkey1.pem

Скрипт попытается получить p и q как в little, так и в big endian.

Восстановите SessionKey из ответа этапа 0 C2 Covenant, который используется для шифрования сетевого трафика :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py key -i traffic.txt --key "EQCZiHdmVUQzIhEAmYh3ZlVEMyIRAJmId2ZVRDMiEQA=" -t base64 -r mykey.pem -s 1
[+] New AES key : 0011223344556677889900112233445566778899001122334455667788990011

Расшифруйте обмен данными Covenant :

root@kitploit:~
$ python3 decrypt_covenant_traffic.py decrypt -i traffic.txt -k "0011223344556677889900112233445566778899001122334455667788990011" -t hex -s 2
[...]
[*] Response message 10 : {"status":"2","output":"Hello.\r\n"}
[...]

TODO

  • extract_privatekey - Разбор исходного файла.
  • extract_privatekey - Поиск закрытых ключей на основе заголовка (без модуля).

Как упоминалось на StackOverflow, расшифровка данных также достижима с использованием необработанного закрытого ключа RSA Microsoft.

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