logo

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

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

Специалист по in-bound-маркетингу в Techwarn

Для пентестеров крайне важно уметь делать крипт или шифрование файлов. Представьте, что вам нужно в рамках 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, протестируйте его по ссылке.

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

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

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

Онлайн-курс "English for Designers" від Vocabulaba.
Навчіться описувати деталі своєї роботи, формувати CV англійською та вільно обговорювати флоу проєктів із замовниками.
Детальніше про курс

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

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

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

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

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

Интерфейс Immunity Debugger

Интерфейс Immunity Debugger

  1. Для начала пройдите по ссылке http://debugger.immunityinc.com/ID_register.py, заполните форму и скачайте программу, после чего инсталлируйте по умолчанию.
  2. Загрузите PuTTY — безвредный SSH-клиент Windows. Так как после этого мы планируем протестировать, как система противостоит троянскому вирусу, нам понадобится добавить в PuTTY этот зловредный код.
  3. Основи Python для школярів від Hillel IT School.
    Відкрийте для вашої дитини захопливий світ програмування з нашим онлайн-курсом "Програмування Python для школярів". Ми вивчимо основи програмування на прикладі мови Python, надаючи зрозумілі пояснення та цікаві практичні завдання.
    Зареєструватися
  4. Затем запустите Debugger, в меню кликните на опцию «Файл». После этого откройте PuTTY. 
  5. Debugger покажет много информации, но вам требуется код сборки в левом верхнем углу, а также сообщения, поставленные на паузу, внизу справа. 
  6. В меню Immunity Debugger нажмите Debug — Run. Так включится PuTTY, находясь под контролем дебаггера, что означает, что мы можем модифицировать код. После этого закройте PuTTY. 
  7. И снова в меню Immunity нажмите Debug — Restart. В панели кода сборки кликните правой кнопкой мыши, укажите на поиск, выделите All referenced text strings. 
  8. Выделите первую линию, кликните на «Поиск текста». Так дебаггер найдет все фрагменты кода, в которых используется данная линия.
  9. Теперь установим точки останова — целенаправленного прерывания программы в определенное время. Наша точка невозврата сработает, когда пользователь залогинится на 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 пентестер сможет скачать вредоносные файлы.

Онлайн курс UI/UX Design Pro від Hillel IT School.
Навчіться проєктувати інтерфейси з урахуванням поведінки користувачів, розв'язувати їх проблеми через Customer Journey Mapping, створювати дизайн-системи і проводити дослідження юзабіліті, включаючи проєктування мобільних додатків для Android та iOS і розробку UX/UI на основі даних!
Дізнатися більше

Работа над криптом файла практически завершена. Осталось проверить, что находится в вашем файле для пентеста. Чтобы обезопасить от распознавания антивирусом, необходимо нашпиговать файл программами 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.

Англійська для IT від Englishdom.
В межах курсу можна освоїти ключові ІТ-теми та почати без проблем говорити з іноземними колегами.
Дійзнайтеся більше

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: