• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Находим и используем утекшие на VirusTotal сертификаты для подписи кода

bratva

TPU unit
Пользователь
Регистрация
26.01.2022
Сообщения
2 127
Реакции
4 582
[TL;DR] Мы всегда можем найти сертификаты для подписи кода, используя такие инструменты как VirusTotal. Если сертификаты имеют пароль, его можно легко взломать и использовать после для подписи вредоносного кода. В рамках ответственного раскрытия информации, я объясняю весь процесс по шагам.

Статья состоит из 4 глав: поиск утекших сертификатов, взлом их паролей, использование их для подписи вредоносного ПО и слив утекших сертификатов в ответственные центры сертификации.

1. Поиск сертификатов.​

Существует множество различных способов найти сертификаты для подписи кода в Интернете. Если вам повезет, то вы можете найти тот, который все еще актуален. В своей статье я главным образом использовал 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:

search-results-virustotal.png


Итого, я скачал около 50 сертификатов, которые недавно были загружены на VirusTotal.

2. Взлом паролей PKCS#12​

Моя любимая программа для взлома хэшей — Hashcat. К сожалению, он не поддерживает взлом файлов PKCS#12. В то время как John the Ripper поддерживает PKCS#12. Сначала нам нужно извлечь хэш из нашего файла PKCS#12. Это можно сделать с помощью Python-скрипта John The Ripper pfx2john.py. Я внес несколько изменений в скрипт, чтобы сделать его совместимым с Python 3.

pfx2john.py certificate.pfx > certificate.hash

Если вы сгенерировали хэши на основе найденных вами сертификатов, вы можете взломать их с помощью John The Ripper с приведенными ниже аргументами. В данном примере мы используем rockyou.txt в качестве вордлиста.

Код:
$ 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.

⚠️ Если John The Ripper не может загрузить ваш хэш, обязательно установите последнюю версию John The Ripper из исходного кода (чтобы обеспечить поддержку PKCS#12).

Как можно заметить, некоторые хэши были успешно взломаны. Пароль для последнего — test. Проверьте, являются ли взломанные сертификаты доверенными и действительными (например, не были ли они отозваны CA). Для доверенных и действительных убедитесь, что у них есть идентификатор объекта подписи кода (OID): 1.3.6.1.5.5.7.3.3. Будем надеяться, что в результате у вас остался как минимум один сертификат. Теперь вы можете использовать его для подписи своего вредоносного кода!

extended-key-usage-code-signing2.png

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.

Код:
osslsigncode verify signed-autoruns.exe

-- 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 не проверяет, был ли отозван сертификат.

signed-malware3.png


И наконец: наслаждайтесь своим свежеподписанным вредоносным ПО!

MacOS

Если вы подписываете существующее (модифицированное) приложение для MacOS, сначала удалите существующую подпись.

Код:
codesign --remove-signature malicious.app

После этого импортируйте сертификат подписи в свою связку ключей. Щелкните по ней правой кнопкой мыши и создайте новое удостоверение подписи. Используйте имя по вашему выбору.

sign-create-identity4.png


Теперь вы можете использовать это удостоверение для подписи вашего вредоносного приложения.

Код:
codesign -s "your_identity" malicious.app

Чтобы проверить, все ли заработало, проверяем подпись. Если все в порядке, команда ничего не выведет.

Код:
codesign --verify malicious.app

Если что-то пошло не так, будет показана ошибка. Вот как выглядит вывод, когда ваш сертификат был отозван:

Код:
codesign --verify malicious.app

malicious.app: CSSMERR_TP_CERT_REVOKED
In architecture: x86_64

4. Слив утекших сертификатов​

В приведенном примере выше утечкший сертификат была выпущен компанией Sectigo. Sectigo (как и любой другой центр сертификации) предоставляет способы сообщить о нарушениях, включая мошенническое или злонамеренное использование сертификатов. Я отправил Sectigo отчет по почте со следующей информацией о найденном сертификате:
  • Ссылка на VirusTotal (включая ссылку на вредоносное ПО, подписанное сертификатом).
  • Пароль.
  • Серийный номер.
  • Хэш SHA-256.
  • Хэш SHA-1.

8 дней спустя Sectigo ответили, что в ходе дальнейшего расследования они обнаружили, что сертификат подписи действительно был причастен к злонамеренной деятельности и теперь отозван.

Источник

P. S.: По мотиву вопросов гаврошей в личку - где найти самый дешевый крипт или "у меня нет денег на EV серт".
 
Последнее редактирование:
Осталась самая мелочь - нарешать где-то VT Enterprise апишку или аккаунт ))

UPD
P.S.у кого есть в продаже или в аренду или еще какие-то варинты - стукните в личку
 
Последнее редактирование:
Осталась самая мелочь - нарешать где-то VT Enterprise апишку или аккаунт ))
грепнуть паблик логи? :)
 
грепнуть паблик логи?
чет мне кажется придется перечекать не один ТБ "логов". Не считая того, что нужно написать чекер вт, это хотябы реализуемо :)
 
Осталась самая мелочь - нарешать где-то VT Enterprise апишку или аккаунт ))

UPD
P.S.у кого есть в продаже или в аренду или еще какие-то варинты - стукните в личку
Есть боты VT (платные) ,где ты можешь найти и скачать интересующий тебя файл
https://t.me/VT_robot
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Прочитал статю и решил поверить и как не странно но работает теперь не нужно покупать за 4700 баксов сертификаты
 
На VT нужно как я понимаю иметь premium или enterprise аккаунт. Получить его не просто, так еще и денег он приличных стоит - больше 5к как я понял.
ТГ бот что выше скидывали - не работает, да и ребята в ручном режиме отказываются искать серты.
Подскажите еще варианты плиз.
 
не работает, да и ребята в ручном режиме отказываются искать серты
ТГ бот ушел в приват, потому что ключи вычисляли и банили
 
Статья бомба.
VT enterprise можно триал попробовать сделать.
Можно ещё раскинуть мозгами и подобрать варианты гитхаб-подобных сервисов, мейби не-инглиш и по ним пройтись.
 
Понял. Но сап сказал, что серты они не ищут.
Я лично думаю из за того что там при подписи еще требуется пароль, хз как там сливалось на самом деле, может быть архивом, надо искать смотреть. Я серт еще не нашел
 
што то еще интересное можно с вт пиздить? там недавно была утечка каких-то важных доков на вт
У людей VT парсится постоянно. Зависит от твоего уровня. Иногда свежий сэмпл = доступ к ботнету :) Я бы особенно обращал внимание на андройд-боты. Но помимо сэмплов, SSL - там огромное количество баз (пример - https://borncity.com/win/2023/07/17/data-leak-exposes-data-of-registered-virustotal-customers/, о чем вероятно ты и писал).
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх