Как зашифровать файл для пентестов: простая инструкция

Анастасия Шкуро

Для пентестеров крайне важно уметь делать крипт или шифрование файлов. Представьте, что вам нужно в рамках Red Teaming провести симуляцию атаки на компанию, чтобы посмотреть уязвимости в системе. Антивирус видит ваш файл как зловредный и не пропускает его. Но «обернув» тестовое приложение криптом, вы узнаете, насколько готова система отразить атаку. Итак, как делать крипт файлов?

Что такое крипт файлов?

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

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

Еще одно понятие, которое нужно рассмотреть в рамках крипта файлов, — обфускация. Это практика шифрования шелл-кода — двоичного исполняемого кода, который передает команды процессору в MS-DOS и Windows. При помощи обфускаторов можно «обернуть» шелл-код шифрованием XOR или AES. Как правило, обфускаторы работают с шелл-кодами в форматах C, HEX, BASE64 и RAW. 

Чтобы криптовать файлы, часто используется FUD (Fully UnDetectable — «полностью нераспознаваемый»). Так называют программное обеспечение для шифрования приложений .exe. Кроме того, FUD криптует вирусы, шпионское ПО, троянские вирусы удаленного действия RAT, а также кейлогеры (аппаратное или программное устройство для распознавания действий пользователя). 

FUD берет за основу оригинальный бинарный файл .exe и применяет многослойный крипт, создавая новый зашифрованный документ.

Когда новый .exe файл приводится в действие, происходит дешифровка бинарного файла на небольшие фрагменты данных. Эта информация инфицируется, либо в нее встраиваются коды с информацией, необходимой для «этичного хакера». Часто такие файлы впоследствии перезапускаются как .txt или .mp3. 

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

Убедились в действенности программы? Можно начинать пентест. 

Компиляция с источника

Следующий этап — собственно, создать файл, который вы планируете зашифровать и дальше тестировать. 

Чтобы сделать сборку на основании исходников, можно воспользоваться программой Quasar. До этого потребуется добавить несколько элементов в исходный код. Проверьте свои действия по чек-листу:

  • переменные или элементы, не способные повлиять на процесс команды;
  • дополнительные функции;
  • задержки, тормозящие выполнение прямых функций;
  • новые названия для переменных проекта.

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

 > 1.exe head 1000 1.exe > /host/machine/ 

Для дальнейших занятий пентестом, вам понадобятся дебаггеры (отладчики) — программы, которые ищут ошибки в ПО, операционных системах, SQL и других кодах. Рассмотрим работу с отладчиками на примере Immunity Debugger.

Интерфейс Immunity Debugger

  1. Для начала пройдите по ссылке http://debugger.immunityinc.com/ID_register.py, заполните форму и скачайте программу, после чего инсталлируйте по умолчанию.
  2. Загрузите PuTTY — безвредный SSH-клиент Windows. Так как после этого мы планируем протестировать, как система противостоит троянскому вирусу, нам понадобится добавить в PuTTY этот зловредный код.
  3. Затем запустите Debugger, в меню кликните на опцию «Файл». После этого откройте PuTTY.
  4. Debugger покажет много информации, но вам требуется код сборки в левом верхнем углу, а также сообщения, поставленные на паузу, внизу справа.
  5. В меню Immunity Debugger нажмите Debug — Run. Так включится PuTTY, находясь под контролем дебаггера, что означает, что мы можем модифицировать код. После этого закройте PuTTY.
  6. И снова в меню Immunity нажмите Debug — Restart. В панели кода сборки кликните правой кнопкой мыши, укажите на поиск, выделите All referenced text strings.
  7. Выделите первую линию, кликните на «Поиск текста». Так дебаггер найдет все фрагменты кода, в которых используется данная линия.
  8. Теперь установим точки останова — целенаправленного прерывания программы в определенное время. Наша точка невозврата сработает, когда пользователь залогинится на SSH-сервер. В опции Text strings referenced in putty:.text нажмем на поиск. Откроем инструкцию и кликнем на опцию Toggle breakpoint. На этом этапе вновь нажмите на Immunity в меню, кликнув на Debug — Restart. Всплывет уведомление о том, что процесс PuTTY активен. Не забудьте после этого в Immunity нажать Debug — Run. Откроется черное окно, и программа остановится. Одним словом, таким образом мы протестируем систему на предмет того, каких вирусов не нужно бояться ее владельцу, а от каких нужно защититься.

Проделав последовательность действий, нам необходимо подписать файл сертификатом Windows и упаковать его. Можно воспользоваться для этого специальными программами-пакерами. Среди проверенных вариантов — UPX, ASPack, FSG, VMProtect.

Что делать дальше?

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

Как пример, лоадеры могут выглядеть как файлы vbs, is, hta, bat, ps1. Пентестерам лоадер понадобится для того, чтобы скачать вредоносный код и поработать с ним. При помощи скриптов ps или certutil пентестер сможет скачать вредоносные файлы.

Работа над криптом файла практически завершена. Осталось проверить, что находится в вашем файле для пентеста. Чтобы обезопасить от распознавания антивирусом, необходимо нашпиговать файл программами Anti Ring3 Hooks, Anti Emulator, Anti Debugger, Anti Dumper, Anti VM/SandBox.

Готово — можно тестировать систему на проникновение!

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Останні статті

Токсичные коллеги. Как не стать одним из них и прекратить ныть

В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…

07.12.2023

Делать что-то впервые всегда очень трудно. Две истории о начале карьеры PM

Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…

04.12.2023

«Тыжпрограммист». Как люди не из ІТ-отрасли обесценивают профессию

«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…

15.11.2023

Почему чат GitHub Copilot лучше для разработчиков, чем ChatGPT

Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…

13.11.2023

Как мы используем ИИ и Low-Code технологии для разработки IT-продукта

Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…

07.11.2023

Университет или курсы. Что лучше для получения IT-образования

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

19.10.2023