1. Создание загрузочной флешки
Для записи образа используйте программу Rufus. Выберите устройство, на которое будет распакован образ, далее выберите iso-образ системы и из выпадающего списка выберите DD-образ.
После развертывания образа структура разделов флешки примет следующий вид:
Структура разделов:
— 2.80 ГБ – образ системы Kali Linux;
— 102 Мб – загрузчик;
— 11,42 Гб – нераспределённая область, которая будет использоваться для шифрования.
2. Создание зашифрованного раздела и установка его параметров
Выполните загрузку с флешки и выберите пункт меню Live(686-pae).
Запустите терминал и выполните команду gparted для запуска редактора разделов.
В открывшемся окне из выпадающего списка выберите флешку, с которой вы загрузились.
Далее выберите нераспределённое место на диске и создайте новый раздел(ext4).
После создания раздела откройте терминал и выполните команду fdisk –l | grep /dev/ для отображения доступных устройств. Нас интересует устройство /dev/sdb3.
Для шифрования раздела введите команду cryptsetup --verbose --verify-passphrase luksFormat /dev/sdb3, далее введите YES.
После этого программа потребует ввести пароль, под которым осуществится шифрование раздела и предложит его подтвердить.
Подключите зашифрованный раздел командой cryptsetup luksOpen /dev/sdb3 usb_part_open, введите пароль. Раздел инициализируется, как устройство с именем usb_part_open.
Выполните команду fdisk –l | grep /dev/ и убедитесь, что устройство /dev/mapper/usb_part_open подключено.
Заполните устройство случайными, псевдослучайными числами либо нулями выполнив одну из команд на ваше усмотрение:
— dd if=/dev/random of=/dev/mapper/usb_part_open — данная команда заполнит устройство случайными числами. Операция будет выполняться продолжительное время(считать в днях);
— dd if=/dev/urandom of=/dev/mapper/usb_part_open — данная команда заполнит устройство псевдослучайными числами. Операция будет выполняться продолжительное время(считать в часах);
— dd if=/dev/zero of=/dev/mapper/usb_part_open — заполнение нулями.
Выполните форматирование заполненного случайными числами раздела командой mkfs.ext4 /dev/mapper/usb_part_open.
Присвойте разделу название “persistence” командой e2label /dev/mapper/usb_part_open persistence.
Монтируйте данный раздел к заранее созданной папке, к примеру, /mnt/usb_part командой mount /dev/mapper/usb_part_open /mnt/usb_part (обычно в новых версиях системы данная команда не требуется, раздел автоматически подключается после форматирования и определяется в проводнике).
Создайте конфигурационный файл в корне зашифрованного раздела командой echo “/ union” > /mnt/usb_part/persistence.conf.
Закройте зашифрованный раздел командой cryptsetup luksClose /dev/mapper/usb_part_open.
Перезагрузите систему и выполните вход под Live USB Encrypted Persistence.
При загрузке потребуется ввести пароль от зашифрованного раздела (при вводе пароля символы не отображаются).
Создание зашифрованной системы завершено.
3. Проверка работоспособности
При первой загрузке ОС в режиме Encrypted Persistence на зашифрованном разделе создаются системные файлы и папки, для их просмотра выполните следующие действия:
— Перезагрузите систему в незашифрованном режиме Live(686-pae).
— подключите зашифрованный раздел как устройство командой cryptsetup luksOpen /dev/sdb3 usb_part_open.
— Откройте проводник и выберите подключенное устройство persistence. Вы увидите созданный ранее конфигурационный файл persistence.conf и системные папки. В папке rw находится наша зашифрованная система, под которой мы загружаемся. Следовательно, в папке rw сохраняются все изменения произведённые в системе загруженной в зашифрованном режиме.
Если вы загружаетесь в обычном(незашифрованном) режиме, то после перезагрузки все изменения и файлы удаляются.
Спасибо за внимание!
Комментарии (18)
vlade11115
24.01.2017 17:07А есть инструкция как сделать так же, но ещё и оставить обычный ntfs раздел который будет виден из Windows?
zartarn
24.01.2017 18:41нешифрованый — делается точно так же почти. шифрованый — как то не нужно было. А вообще вин10 умеет монтировать линуховские фс
Zoomerman
24.01.2017 20:07+1Специально зашел в статью, чтобы прочитать мотивы автора к её написанию…
В интернете много инструкций разбросано частями по разным мануалам — в каждом случае есть уникальные факторы (оборудование, версии ПО и пр.). Так теперь надо на хабр выкладывать компиляции мануалов даже без комментариев что это и зачем нужно?
А по существу — беглым взглядом видно, что инструкция для черных пентестеров создавалась.
Хотя и в честной практике она может быть использована, но в каких случаях и кем именно — автор либо не знает, либо…justhawk
24.01.2017 20:23Черные пентестеры занимаются взломом aes шифрования? И чем написанное мной им в этом поможет? Статья описывает создание зашифрованной флешки, а как её люди будут использовать это уже их дело.
nazarpc
24.01.2017 21:15Было бы не плохо над катом разместить интро о том, что вообще происходит и зачем.
vlade11115
24.01.2017 21:23Kali — система для пентестинга, рекомендуется к установке на live-носители (USB или CD), но тогда по умолчанию недоступно сохранение изменений (настроек например). Для этого существует persistence — постоянное хранение. Но тогда становится небезопасно, поэтому persistence область дополнительно шифруется. В статье мануал по собиранию этого всего добра.
DarkTiger
26.01.2017 12:43Ее бы на SD-шную карточку к raspberry Pi засандалить, но тормозить все тогда будет просто страшно, там и без шифрования-то не сахар
zartarn
зачем копипаста мануала на хабре?
justhawk
Я считаю, что написанная мной подробная инструкция кому-то пригодится. Данная статья включает в себя информацию из разных источников.
iig
Если висит ружьё (описаны 3 способа заполнения раздела — random, urandom, zero) — ожидается, что оно выстрелит. В смысле в чем разница, кроме времени выполнения?
justhawk
если подвергать зашифрованную информацию криптоанализу, то можно вычислить расположение данных на диске. Для того чтобы такого не случилось, диск забивают случайными данными или нулями. random — забивает весь диск случайными числами, которые генерируются хаотично при работе системы в том числе из аппаратного генератора случайных чисел современных процессоров. urandom — используется тогда, когда случайность не играет большое значение, как в нашем случае, так как мы дополнительно шифруем информацию. Забивать нулями просто не рекомендуется, так как информация получается однородной
iig
Хотелось больше конкретики. Что можно получить из забитого нулями раздела, зашифрованного AES? Какая атака возможна, если для заполнения использовали нули?
justhawk
Для заполнения использовал urandom. Разные источники по разному пишут. Вообще сам по себе алгоритм aes очень хорош, поэтому многие утверждают, что диск достаточно забить нулями, но лучше подстраховаться и заполнить по urandom. О возможных атаках судить не могу, но дело это однозначно не быстрое, и результатом её успешного завершение могут служить — расположение зашифрованных фрагментов данных, которые ещё нужно расшифровать. Слишком трудоёмко.
cyber_genius
На самом деле у них на сайте не очень толковая инструкция, я когда тоже самое делал пришлось гуглить не мало.
zartarn
пол года назад скачал образ, разбил чем попало на разделы — установил на один.
надо ток файлик было потом добавить чтоб раздел монтировался и всё.