DevGang
Авторизоваться

Крипт файлов: как пентестеры шифруют документы?

Исследование The Open Web Application Security Project показало, что незащищенное хранение информации - причина номер один, влияющая на взлом мобильных приложений и десктоп-платформ. Когда пентестер испытывает систему, чтобы понять, с каким взломом ей под силу справиться, специалист делает крипт файла, добавляет в документ зловредный код и смотрит на реакцию ПК. Как это сделать, читайте в гайде.

Зачем нужен крипт файлов?

Вы храните сенситивную информацию на компьютере? Знаете, у кого есть доступ к вашим аккаунтам в онлайн-банкинге и других финансовых приложениях? Если вы успешны, полны идей и энтузиазма, третьи лица давно заметили вас и планируют атаку. А, возможно, уже давно используют ваши аккаунты, а вы об этом даже не слышали. Чтобы избежать кражи данных, применяется крипт файлов. 

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

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

Операционная система не шифрует файлы автоматически, если вы не включите опцию крипта наподобие Bitlocker в Windows или FileVault на Mac. Такой крипт будет безопасным для операционной системы. А вот если вы хотите самостоятельно создать файл с симуляцией вирусной атаки и нанести удар по собственной системе (чтобы затем укрепить ее), вам понадобятся специальные инструменты. 

Как скомпилировать файл с исходника?

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

Откройте несколько файлов и кликните на опцию Compile. Если же вы планируете немного адаптировать определенный файл, нажмите на его название в списке слева и выберите Compile Current Document. 

Результаты компиляции отобразятся в строке Compiler Output внизу экрана. Если компиляция прошла успешно, вы увидите надпись: Last compilation completed successfully. Если есть ошибки, они отразятся, после выделения каждой из них выделятся в исходном коде. 

Как вариант, в процессе компиляции можно сделать сборку, добавив следующую информацию в код:

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

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

Для этого воспользуемся Hex Editor. Это особый тип редактора, который открывает любой файл и отражает байт за байтом. Здесь вы можете поменять цифры, заданные по умолчанию, чтобы видоизменить программу. 

Зачем нужен дебаггер и как с ним работать?

Далее вам понадобится дебаггер, или отладчик - программа для поиска ошибок в другом ПО, ядре операционной системы.  Пентестеры обычно хвалят Immunity Debugger, инструмент, помогающий писать эксплойты, анализировать вирусы и бинарии обратной инженерии. В пентесте дебаггер позволяет добавить в скомпилированную сборку вирусный код. Рассмотрим, как это сделать, на примере Immunity Debugger.

  1. Скачайте Immunity Debugger с сайта, установите по умолчанию.
  2. Вместо троянского кода загрузите известный SSH-клиент Windows - putty.exe. 
  3. Откройте дебаггер, в меню откройте файл, найдите Putty и также нажмите "Открыть". Наряду с прочей информацией, вы увидите код сборки и уведомления, поставленные на паузу. Загружая программу в Immunity, вы берете за основу именно тот момент, когда ПО находится на паузе, а код сборки демонстрирует первоначальные инструкции. 
  4. В Immunity кликните Debug - Run. Откроется окошко Putty. Здесь вам понадобится код "login as". Выбрав, как вы хотите залогиниться, закройте окно. А в дебаггере выберите Debug - Restart. 
  5. На панели кода сборки выбираете Search For - дальше будем работать с All referenced text strings. Выпавшее окно покажет все строки для работы с переменными (эти строки в программировании называются strings). Выберите первую строчку и кликните Search for text. В следующем окне Enter text to search for запишите login as и подтвердите действие. Дебаггер найдет строчку, отвечающую за команду "Залогиниться", и вы сможете перейти к другой линии. Повторяйте это действие до тех пор, пока не увидите уведомление: Item not found. Это значит, что вы видоизменили все строчки, которые было можно. 
  6. Добавим точки останова для тех инструкций, которые используются, когда пользователь залогинивается в SSH-сервер. В окне Text strings referenced in putty:.text отметьте верхнюю строчку, нажмите поиск. Кликните правой кнопкой мышки на инструкцию, которая выпадает следом, и укажите Toggle breakpoint. Адрес станет красного цвета, и так вы узнаете, что именно здесь находится точка останова. Теперь в дебаггере выберите Debug - Restart и подтвердите активность процесса putty. Ваш следующий выбор будет таким: Debug - Run. В Putty откроется чёрное окно - но перед возникновением команды login as программа остановится. Таким образом вы можете влиять на процесс выполнения любой программы. 
  7. Идём дальше. Теперь точки останова больше не понадобятся, и из можно удалить при помощи команды Remove. 
  8. Поработаем с компиляцией. В дебаггере, окне оперативной памяти нажмите на инструкцию и выберите опцию "Сборка" (Assemble).
  9. В параметре Assemble at 0041CB6E поменяйте последнюю букву на D. Кликните на Assemble, затем нажмите Cancel. 
  10. Наша следующая задача - запустить модифицированную программу. В Immunity следует в меню выбрать Debug - Run. Например, текст login as вы хотите изменить на что-то, допустим, your name. Переместите мышку в нижнюю левую панель окошка оперативной памяти, укажите на Go to, выберите Expressions. 
  11. Введите в строке 467C7D. Опция Hex Dump покажет текст login as, затем вы наводить курсор на 6F и выбираете целый восьмибитный ряд. Указываете на Binary, кликаете на Edit. 
  12. Откроется параметр Edit data at 00467C7D, нажмите на Backspace, чтобы вернуться в начало. Здесь появляется возможность переписать сообщение, использовав некую версию вашего имени. Убедитесь, что видоизмененный текст состоит точно из восьми букв. Подтвердите действие и сохраните видоизмененное приложение .exe.

Заключение

Итак, вы создали крипт файла. Теперь его нужно запаковать, выбрать форматы doc, docx или rtf. Осталось протестировать свой компьютер - или десктоп клиента на выносливость. Но это уже - совсем другая история. 

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

В подарок 100$ на счет при регистрации

Получить