Наш канал в telegram канал codeby

Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде !  Подробнее ...

С появлением более маленьких и более быстрых ARM устройств, таких как новый Raspberry Pi 2 (для которого сейчас собран образ Kali), мы наблюдаем всё более и более частое использование маленьких устройств в качестве «чемоданчика хакера на подхвате». Будучи новой и новаторской технологией, есть один большой недостаток этой концепции — а именно конфиденциальность данных, сохранённых на самом устройстве. В большинстве установок, которые мы видели, сделано мало для защиты чувствительной информации, сохранённой на SD картах этих маленьких компьютеров. Этот факт в купе с дружескими подталкиванием обусловили запрос на создание зашифрованного LUKS, поддерживающего возможность NUKE (самоуничтожения) образа Kali Linux для наших устройств Raspberry Pi. Ниже описано как это сделать. Т.е. вы можете повторить этот процесс и заиметь самому эту клёвость.

Взгляд с высоты птичьего полёта на процесс шифрования диска

Описанный здесь процесс был опробован и успешно прошёл тесты на Raspberry Pi B+ и Raspberry Pi 2 (далее будем называть просто “RPi”). Но вообще должно быть тривиальной задачей применить эту инструкцию к любому устройству ARM, на котором запущена Kali. До того как мы начнём, давайте уделим минутку быстрому описанию того, что мы будем делать — сам процесс несложный, но требует некоторых действий. Коротко говоря, основы заключаются в том, что:

  1. Мы скачиваем необходимый образ Kali Raspberry Pi RPi и записываем его с помощью dd на SD карту.
  2. Мы делаем chroot для образа RPi и устанавливаем/обновляем несколько файлов для нашего зашифрованного загрузчика.
  3. Мы создаём файл initramfs, который включает Dropbear и свеже сгенерированнные ключи SSH.
  4. Мы делам rsync модифицированой rootfs во временно расположение резервной копии, а затем удаляем раздел rootfs с SD.
  5. Затем мы заново создаём зашифрованный раздел, на который мы восстановим данные раздела рута. Вот и всё!

Если всё пройдёт успешно, RPi будет загружаться, а затем LUKS будет выкидывать нас на ввод пароля для расшифровывания диска рута, одновременно открывая сессию Dropbear SSH, через которую вы можете подключиться по SSH и ввести пароль расшифровки загрузчика. Ах да, мы уже сказали, что этот образ будет иметь функцию LUKS NUKE (самоуничтожения при вводе заранее заданного пароля)?

Начинаем работать руками

Как всегда, все наши ARM dev сделаны на машине Kali amd64 и мы мы убедились, что имеются все необходимые зависимости, которые нам нужны. Мы загружаем последний образ Kali RPi (1.1.0), извлекаем его и записываем с помощью dd на нашу SD карту, которая в нашем случае показывается как sdb2 — у вас она может быть названа по-другому, учитывайте это!

После использования dd мы монтируем различные разделы и делаем chroot в образе Kali RPi:

Затем мы обновляем наш образ и устанавливаем некоторые базовые пакеты, которые нам нужны для этого процесса:

Мы создаём первоначальный файл initramfs, который будет триггером для генерации ключей dropbear SSH. Сначала мы узнаём версию модулей директории как показано ниже (она может различаться в зависимости от различных версий образов):


Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.  Подробнее ...

Затем мы используем информацию о версии для генерирования базового файла initramfs.

Мы настраиваем службу OpenSSH так, чтобы она запускалась при загрузке, не забывая изменить пароль по умолчанию.

Далее мы проверяем, что директория /boot смонтирована и если так, мы изменяем параметры загрузки в cmdline.txt и config.txt.

…и добавляем / изменяем следующие параметры:

Далее идёт config.txt:

Теперь мы занимаемся доступом Dropbear SSH. Мы копируем закрытый ключ SSH на наш лэптоп:

И ограничиваем SSH соединение, позволяя ему взаимодействовать только с приложением cryptroot.

Мы копируем следующее в самом начале публичного ключа ssh.

Затем мы создаём fstab и crypttab с нашим сконфигурированным загрузчиком устройства и выходим из chroot:

Во время наших тестов мы заметили, что в некоторых случаях требуется время для пробуждения USB порта, что может похерить инициализацию сетевого initrd Dropbear. Для исправления этого мы можем предоставить 5 секундную задержку до размещения функции configure_networking в самой initrd:

измените:

на:

Сохраните и выйдете из файла, затем заново сгенерируйте initramfs и выйдите из chroot. Вы можете не обращать внимание на предупреждения cryptsetup и device-mapper.

Теперь мы сносим chroot и делаем резервную копию нашего раздела rootfs:

Оказавшись вне chroot мы размонтируем всё:

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

Вынимаем нашу SD карту и подключаем её обратно, чтобы зарегистрировались новые разделы, затем начинаем установку зашифрованного раздела.

Когда готово, мы восстанавливаем резервную копию rootfs на только что зашифрованный раздел.

Затем мы размонтируем и закрываем том.

Вот оно! Теперь всё, что нам осталось сделать, это загрузиться в RPi с использованием модифицированной SD карты. initramfs загрузит Dropbear и получит DHCP адрес в вашей LAN (вы также можете назначить IP принудительно), это позволит вам подключиться по SSH к загружаемой RPi и ввести пароль расшифрования. Когда пароль принят, Dropbear закроется, а RPi продолжит загрузку. Вы должны увидеть что-то вроде следующего:

Могу я иметь LUKS NUKE (функцию самоуничтожения по паролю) с этой Pi?

Если вы не знакомы с функцией Kali Linux LUKS NUKE, значит вы пропустили что-то важное о Kali. Хотя эта стадия является опциональной, она позволяет настроить и применить пароль для экстренного самоуничтожения вашего зашифрованного диска LUKS. Чтобы сделать это, просто задайте пароль Nuke (самоуничтожения) на вашем зашифрованном разделе:

С заданным Nuke паролем вы теперь можете удалённо очистить зашифрованный мастер-ключи LUKS, что сделает данные на SD карте недоступными.


Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение. Подробнее ...

Похожие темы

Аудит системы перед тестированием на проникновение... В этой небольшой статье, я хочу обратить Ваше внимание на аудит системы перед тестированием ее на проникновение. Таких методов масса, но попавши...
Infoga — сбор информации о почте и доменах... Инструмент, который может помочь в проведении тестирования на проникновения какой либо компании. Целью инструменты будет собрать информацию о почт...
Pythem – новый инструмент для Всем привет! В этой статье я хочу показать довольно новый инструмент для проведения тестирования на проникновение. Называется он Pythem – Penetratio...
Как запустить Metasploit Framework в Kali Linux... Для запуска Metasploit Framework в Kali 2.0 смотрите здесь. Чтобы соответствовать Политике Сетевых Служб (Network Services Policy) Kali Linux, при за...
Меры безопасности и защита сетевых служб Kali Linu... Перейти к содержанию книги Kali Linux Revealed 7.2 Возможные меры безопасности Kali Linux Как уже пояснялось в предыдущем разделе, нет единого отве...