Недавно я показал, как написать вирус-загрузчик Trojan.DownLoader. Сегодня продолжу тему малвари и покажу, как обойти антивирусы с помощью изменения и добавления цифровой подписи. Для этого я буду использовать отличный инструмент, который называется SigThief.
Еще по теме: Как убить процесс системы обнаружения атак (EDR)
Что такое бинарная подпись?
Цифровая подпись (Signature — сигнатура) используются для проверки подлинности программы или приложения. Антивирусы, кроме всего прочего, используют цифровую подпись для обнаружения и предотвращения запуска вредоносных программ. Однако злоумышленники могут использовать ее для обхода антивируса.
Хакеры могут получить действительный сертификат подписи, купив его в центре сертификации или украв сертификат с компьютеров организации. Получив сертификат, они могут подписать им свое вредоносное ПО, что сделает его легитимным для антивирусного ПО.
Чтобы обойти антивирус, злоумышленники также используют такие методы, как обфускация, шифрование и полиморфизм. Все это затрудняет обнаружение малвари.
Статья в образовательных целях и предназначена для обучения этичных хакеров. Заражение чужих устройств является незаконным! При написании статьи использовались личные устройства автора. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
Использование криптора SigThief для обхода антивируса
Во время многолетнего опыта работы с антивирусами, я заметил, что каждый из них по-разному расставляет приоритеты для PE-сигнатур, независимо от того, действительна ли сигнатура или нет. Некоторые антивирусы отдают приоритет определенным центрам сертификации, не проверяя действительность подписи, а другие просто проверяют, заполнен ли certTable каким-то значением.
SigThief позволяет вытащить сигнатуру из подписанного PE-файла и добавить ее к другому, исправив таблицу сертификатов подписи файла.
Официальный репозиторий SigThief:
1 |
https://github.com/secretsquirrel/SigThief |
Синтаксис использования SigThief:
1 |
sigthief.py [параметры] |
Параметры использования SigThief:
- -h— показать справку.
- -i ФАЙЛ— входной файл.
- -r— удалить подпись из входного файла.
- -a— добавить подпись в целевой файл.
- -o— выходной файл.
- -s SIG-ФАЙЛ— подпись с диска.
- -t ЦЕЛЕВОЙ ФАЙЛ— файл для добавления подписи.
- -c файл — чтобы проверить, подписан ли файл.
- -T— обрезать подпись (т.е. удалить sig).
Команда для получения подписи и добавления в другой бинарник, выглядит так:
1 2 3 4 |
$ ./sigthief.py -i tcpview.exe -t x86_meterpreter_stager.exe -o /tmp/msftesting_tcpview.exe Output file: /tmp/msftesting_tcpview.exe Signature appended. FIN. |
Давайте затестим тулзу.
Я использую Visual Studio Code, для этого нам нужен бинарник Code.exe, который можно найти здесь:
1 |
C:\Users\s12de\AppData\Local\Programs\Microsoft VS Code |
И с помощью python и Sigthief, выполняю эту команду:
1 |
python3 sigthief.py -i Code.exe -t unsigned.exe -o signed.exe |
Пока попробуем залить на вирустотал неподписанный, а затем подписанный бинарник.
Проверка файла без цифровой подписи:
Проверка файла с цифровой подписью:
Результат на лицо. Почти в двое меньше детектов.
Заключение
В целом SigThief — хороший инструмент, позволяющий уменьшить детекты и обойти часть антивирусов.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Обход антивируса в Meterpreter
- Как скрыть процессы от антивирусов
- Как обойти антивирус с помощью Chimera