Arm для kali linux

Kali Linux на ARM-компьютерах

ARM — это архитектура микропроцессоров. В подавляющем количестве настольных компьютеров используются процессоры с архитектурой x86. Главным достоинством ARM называют энергоэффективность. Главным достоинством x86 называют универсальность и большую приспособленность для ресурсоёмких задач вроде редактирования фотографий, музыки и видео, а также шифрования и сжатия данных. Как бы там ни было, в большинстве телефонов, которые у нас с вами в руках, находятся ядра с архитектурой ARM.

Архитектура ARM также стала довольно популярной в крошечных компьютерах, сделанных на одной плате, либо в формфакторе «флешки» («свистка»), либо в виде маленькой коробочки. Настоящей звездой стала серия Raspberry Pi — одноплатный компьютер размером с банковскую карту. Главное достоинство этих компьютеров — цена: первые модели стоили 20-25 долларов, самая современная и производительная модель стоит 35 долларов. Учитывая универсальность Raspberry Pi — возможность запускать полноценный настольные операционный системы, а также возможность использовать в разнообразной робототехнике и очень мное прочее — остаётся признать, что интерес к Raspberry Pi вполне заслужан.

На ARM компьютерах можно запустить операционные системы которые скомпилированы под архитектуру ARM. К таким относятся Android, для многих популярных дистрибутивов Linux есть ARM версии. Намного хуже на этой платформе дела обстоят с Windows.

Нужно обратить внимание, что крошечный компьютеры также бывают и с архитектурой x86, на которых можно запускать и Kali Linux и Windows.

Kali Linux на крошечных компьютерах ARM

Под самые популярные ARM компьютеры уже сделаны готовые образы Kali Linux — т. е. установка не вызывает каких-либо сложностей и вопросов. Вопросы вызывает другое — цель этого. Для чего вообще нужны дома эти маленькие компьютеры?

Не смотря на свои крошечный размеры, эти компьютеры я бы назвал нетранспортабельными — у них нет экрана, у них нет аккумулятора. Их можно взять с собой, но на них нельзя работать не подключив их к розетке. Другой их минус — они очень маломощны (у них маленькая производительность). Т.е. если вы хотите что-то дешёвое, пусть не очень производительное, но транспортабельное (можно взять с собой в ВУЗ, в самолёт и там работать на этом компьютере) — то рекомендую обратить внимание на нетбуки или на ноутбуки начального уровня.

Дома ARM с Kali Linux на борту можно использовать для задач, которые не требуют больших вычислительных ресурсов, но которые требуют большого количества времени. К этим задачам можно отнести перебор учётных данных (брутфорсинг), сканирование сетей, использование сканеров уязвимостей — любая из этих задач, особенно брутфорс, могут растянуться на дни. Покупать для этих целей полноценный компьютер — не всегда целесообразно, да и электричество он «сожжёт» много. А вот крошечная Raspberry Pi, которая не занимает места и трудится дни напролёт, почти не потребляя электричества, — это отличный выбор.

Также Raspberry Pi очень даже подойдёт для образовательных целей, например:

  • для тренировки атак на инфраструктуру сети — покупать полноценный компьютер только для этого — жалко, а Raspberry Pi, на которой можно установить полноценную ОС с веб-сервером и прочими сетевыми службами, хорошо для этого подходит.
  • для тренировки обслуживания «безголового» сервера — хороший вариант для начинающего системного администратора — можно отточить навыки работы при отсутствии графического интерфейса (через SSH), в настройке веб-сервера для локальной сети, разместить там тестовые веб-сайты, посмотреть насколько стабильной работы и какого аптайма удастся достигнуть при разных условиях и т. д.

Для всех рассматриваемых компьютеров существуют готовые образы Kali Linux, вы можете их скачать с сайта Offensive Security (это авторы Kali Linux). Одним из самых популярных вариантов является Raspberry Pi. Кстати, даже есть книга «Penetration Testing with Raspberry Pi». Но на Raspberry Pi свет клином не сошёлся — давайте посмотрим, какие ещё есть маленькие ARM-компьютеры для Kali Linux.

Читайте также:  Как удалить касперский фри с компьютера полностью windows 10

Raspberry Pi

Я бы рекомендовал выбрать модель Raspberry Pi 2 Model B — по сравнению с предыдущими версиями в ней очень большой прирост производительности.

Обратите внимание на комплект поставки – многие продавцы продают не просто плату, а комплектуют её корпусом, дополнительным охлаждением и вентилятором, разными кабелями (HDMI), адаптерами питания, некоторые комплектуют картами памяти с программным обеспечением, которое имеет графический интерфейс и позволяет установить тот или иной дистрибутив Linux.

Также можно докупить Wi-Fi адаптеры, камеры и даже экраны с тачскрином — главное не увлекайтесь слишком сильно, а то количество потраченных денег на конструктор превысит стоимость нетбука — более универсального и транспортабельного решения.

Посмотреть предложения в магазинах для Raspberry Pi 2 Model B.

Chromebooks — Хромбуки

Хромбуки делают разные производители, образы Kali Linux есть для следующих: HP Chromebook, Samsung Chromebook, Samsung Chromebook2, Acer Chromebook, ASUS Chromebook Flip. Хотя и стоят копейки, хромбуки не нашли широкой популярности — и это вполне заслуженно. Хром ОСь (или как там она называется) — это просто браузер, которые не может ничего такого, чего бы не мог браузер Google Chrome. Там ещё разные ограничения — в общем с родной ОС этот компьютер никому не интересен.

А вот с возможностью использовать Kali Linux – это совсем другое дело! Эти компьютеры:

  • стильно выглядят
  • являются законченными решениями (есть клавиатура, экран и всё остальное — не то что в Raspberry Pi)
  • дёшевы
  • являются транспортабельными (в них есть аккумулятор и все другие необходимые для работы элементы).

Как я уже сказал, их делают разные производители — поэтому внимательно читайте характеристики.

Посмотреть предложения в магазинах для Chromebook.

CompuLab — Utilite и TrimSlice

CompuLab делает компьютеры представляющие из себя коробочку, в которой всё уже есть (похоже на Raspberry Pi в чехле). Модели имеются самые разные, в том числе не только на ARM.

На мой взгляд, цены за такие устройства у них завышены. Область применения довольно специфичная. На мой взгляд, они не сумели найти золотую середину в таких параметрах как «производительность»-«цена»-«применимость». Для настольных компьютеров эти устройства слабоваты. В качестве игрушки, которую не жалко купить, — дороговато, некоторые модели стоят почти в десять раз дороже чем Raspberry Pi.

Посмотреть предложения в магазинах для CompuLab.

SolidRun — CuBox

Продолжаем рассматривать «чёрные коробочки». У SolidRun — CuBox есть несколько вариантов комплектации, одна из них: 1GHz QuadCore, Wifi / Bluetooth, 2GB RAM, Gigabit LAN. Недостаток такой же как и предыдущей модели — для игрушки дороговато, а для чего ещё его использовать — непонятно.

Посмотреть предложения в магазинах для SolidRun — CuBox.

Allwinner — Cubieboard и Mini-X

На мой взгляд, это хороший конкурент Raspberry Pi. У Raspberry Pi есть козырь, который трудно побить — цена. Все остальные компьютеры, о которых я здесь рассказываю, дороже. Но честно — Raspberry Pi тормозная, хотя ну как можно придираться к компьютеру, который стоит 35 баксов? Если вам важна производительность, то обратите внимание на линейку Cubieboard. Есть одно НО: на сайте Kali имеются готовые образы для Cubieboard2 и Cubietruck (это Cubieboard3). Под Cubietruck4 готового образа нет. Не знаю, насколько это серьёзная трудность — но имейте это ввиду. Перед покупкой будет не лишним проверить, не появились ли собранные версии Kali под Cubietruck4, либо быть готовым гуглить и возиться.

Посмотреть предложения в магазинах для Cubietruck.

Посмотреть предложения в магазинах для Cubieboard.

HardKernel — ODROID

Моделька ODROID XU4 в разы производительнее Raspberry Pi 2 и недорогая. А ODROID-C1+ стоит столько же сколько новая Raspberry Pi 2 Model B.

Читайте также:  Восстановить пароль аккаунт windows

Посмотреть предложения в магазинах для ODROID XU4.

Посмотреть предложения в магазинах для ODROID-C1+.

Beaglebone Black

Недорогой компьютер на плате. Перед покупкой внимательно читайте описание. Выбирайте последнюю доступную на день покупки ревизию.

Посмотреть предложения в магазинах для Beaglebone Black.

RioTboard

Устройство из разряда «подороже», но характеристики меня не впечатлили.

Посмотреть предложения в магазинах для RioTboard.

USB Armory от Inverse Path

Компьютер сделанный в виде флешки. Подразумевается, что вы вставляете его в гнездо настоящего рабочего компьютера. Доступ к нему осуществляется через SSH. Авторы предполагают использование устройства как веб-сервера, прокси Tor, кошелька Bticoin, зашифрованного хранилища, токена аутентификации или чего угодно другого. Все эти функции могут выполняться стандартным ПО на любом компьютере, поэтому трудно придумать, зачем покупать это устройство.

Мне этот вариант показался совсем неинтересным (или слишком нишевым, что ли).

Посмотреть предложения в магазинах для USB Armory.

Вывод

Маленькие ARM компьютеры не являются предметом первой необходимости. Ту же самую Kali Linux можно установить в виртуальную машину и прекрасно ей пользоваться. Тем не менее, если от Kali Linux требуется длительное выполнение некоторых операций (брутфорс), либо вам интересно попрактиковаться в навыках системного администрирования, например, веб-сервера, то стоит подумать о покупке крошечного ARM компьютера, благо цена у них пониже чем у некоторых игрушек )) А интеллектуальность «игр» с этими устройствами на порядок выше.

Для себя я составил шот-лист устройств из которых буду делать окончательный выбор. На мой взгляд, самыми интересными являются:

  • Raspberry Pi 2 Model B
  • ODROID XU4
  • Cubietruck (или Cubieboard4 — но для него нужно убедиться в возможности установки Kali Linux).

Источник

Заводим GNU/Linux на ARM-плате с нуля (на примере Kali и iMX.6)

tl;dr: собираю образ Kali Linux для ARM-компьютера, в программе debootstrap , linux и u-boot .

Если вы покупали какой-нибудь не очень популярный одноплатник, то могли столкнуться с отсутствием для него образа любимого дистрибутива. Приблизительно то же самое случилось с планируемым Flipper One. Kali Linux под IMX6 просто нету (я готовлю), поэтому собирать приходится самостоятельно.

Процесс загрузки достаточно простой:

  1. Инициализируется железо.
  2. Из некоторой области на запоминающем устройства (SD-карта/eMMC/etc) считывается и выполняется загрузчик.
  3. Загрузчик ищет ядро операционной системы и загружает его в некоторую область памяти и выполняет.
  4. Ядро загружает всю остальную ОС.

Для моей задачи хватает такого уровня детализации, подробности можете прочесть в другой статье. Упомянутые выше «некоторые» области отличаются от платы к плате, что и создаёт некоторые сложности с установкой. Загрузку серверных ARM-платформ пытаются стандартизовать с помощью UEFI, но покуда это доступно не для всех, придётся собирать всё по отдельности.

Сборка корневой файловой системы

Для начала нужно подготовить разделы. Das U-Boot поддерживает разные ФС, я выбрал FAT32 для /boot и ext3 для корня, это стандартная разметка образов для Kali под ARM. Я воспользуюсь GNU Parted, но вы можете сделать то же самое более привычным fdisk . Также понадобятся dosfstools и e2fsprogs для создания ФС: apt install parted dosfstools e2fsprogs .

  1. Отмечаем SD-карту как использующую MBR-разметку: parted -s /dev/mmcblk0 mklabel msdos
  2. Создаём раздел под /boot на 128 мегабайт: parted -s /dev/mmcblk0 mkpart primary fat32 1MiB 128MiB . Первый пропущенный мегабайт необходимо оставить под саму разметку и под загрузчик.
  3. Создаём корневую ФС на всю оставшуюся ёмкость: parted -s /dev/mmcblk0 mkpart primary ext4 128MiB 100%
  4. Если вдруг у вас не создались или не изменились файлы разделов, надо выполнить `partprobe`, тогда таблица разделов будет перечитана.
  5. Создаём файловую систему загрузочного раздела с меткой BOOT : mkfs.vfat -n BOOT -F 32 -v /dev/mmcblk0p1
  6. Создаём корневую ФС с меткой ROOTFS : mkfs.ext3 -L ROOTFS /dev/mmcblk0p2

Отлично, теперь можно её заполнять. Для этого дополнительно потребуется debootstrap , утилита для создания корневых ФС Debian-подобных операционных систем: apt install debootstrap .

  1. Монтируем раздел в /mnt/ (используйте более удобную для себя точку монтирования): mount /dev/mmcblk0p2 /mnt
  2. Собственно заполняем файловую систему: debootstrap —foreign —include=qemu-user-static —arch armhf kali-rolling /mnt/ http://http.kali.org/kali . Параметр —include указывает дополнительно установить некоторые пакеты, я указал статически собранный эмулятор QEMU. Он позволяет выполнять chroot в ARM-окружение. Смысл остальных опций можно посмотреть в man debootstrap . Не забудьте, что не любая ARM-плата поддерживает архитектуру armhf .
  3. Из-за разницы архитектур debootstrap выполняется в два этапа, второй выполняется так: chroot /mnt/ /debootstrap/debootstrap —second-stage
  4. Теперь нужно зачрутиться: chroot /mnt /bin/bash
  5. Заполняем /etc/hosts и /etc/hostname целевой ФС. Заполните по аналогии с содержимым на вашем локальном компьютере, не забудьте только заменить имя хоста.
  6. Можно донастроить всё остальное. В частности я доустанавливаю locales (ключи репозитория), перенастраиваю локали и часовой пояс ( dpkg-reconfigure locales tzdata ). Не забудьте задать пароль командой passwd .
  7. Задаём пароль для root командой passwd .
  8. Приготовления образа для меня завершаются заполнением /etc/fstab внутри /mnt/ .
Читайте также:  Nvidia windows 10 bsod

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

LABEL=ROOTFS / auto errors=remount-ro 0 1
LABEL=BOOT /boot auto defaults 0 0

Наконец, можно примонтировать загрузочный раздел, он нам понадобится для ядра: `mount /dev/mmcblk0p1 /mnt/boot/`

Сборка Linux

Для сборки ядра (и загрузчика потом) на Debian Testing надо установить стандартный набор из GCC, GNU Make и заголовочных файлов GNU C Library для целевой архитектуры (у меня armhf ), а также заголовки OpenSSL, консольный калькулятор bc , bison и flex : apt install crossbuild-essential-armhf bison flex libssl-dev bc . Так как загрузчик по умолчанию ищет файл zImage на файловой системе загрузочного раздела, пора разбивать флешку.

  1. Клонировать ядро слишком долго, поэтому просто скачаю: wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz . Распакуем и перейдём в директорию с исходниками: tar -xf linux-5.9.1.tar.xz && cd linux-5.9.1
  2. Конфигурируем перед компиляцией: make ARCH=arm KBUILD_DEFCONFIG=imx_v6_v7_defconfig defconfig . Конфиг находится в директории arch/arm/configs/ . Если такового нет, вы можете попробовать найти и скачать готовый и передать название файла в этой директории в параметр KBUILD_DEFCONFIG . В крайнем случае сразу переходите к следующему пункту.
  3. Опционально можно докрутить настройки: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
  4. И кроскомпилируем образ: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  5. Теперь можно скопировать файлик с ядром: cp arch/arm/boot/zImage /mnt/boot/
  6. И файлы с DeviceTree (описание имеющегося на плате железа): cp arch/arm/boot/dts/*.dtb /mnt/boot/
  7. И доустановить собранные в виде отдельных файлов модули: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/mnt/ modules_install

Ядро готово. Можно всё отмонтировать: umount /mnt/boot/ /mnt/

Das U-Boot

Так как загрузчик интерактивный, для проверки его работы достаточно самой платы, запоминающего устройства и опционально устройства USB-to-UART. То есть, можно ядро и ОС отложить на потом.

Абсолютное большинство производителей предлагают использовать Das U-Boot для первичной загрузки. Полноценная поддержка обычно обеспечивается в собственном форке, но и в апстрим контрибьютить не забывают. В моём случае плата поддерживается в мейнлайне, поэтому форк я проигнорировал.

Cобираем сам загрузчик:

  1. Клонируем стабильную ветку репозитория: git clone https://gitlab.denx.de/u-boot/u-boot.git -b v2020.10
  2. Переходим в саму директорию: cd u-boot
  3. Готовим конфигурацию сборки: make mx6ull_14x14_evk_defconfig . Это работает только если конфигурация есть в самом Das U-Boot, в ином случае вам потребуется найти конфиг производителя и положить его в корень репозитория в файл .config , или собрать иным рекомендованным производителем образом.
  4. Собираем сам образ загрузчика кросс-компилятором armhf : make CROSS_COMPILE=arm-linux-gnueabihf- u-boot.imx

В результате мы получаем файл u-boot.imx , это готовый образ, который можно записывать на флешку. Записываем на SD-карту, пропустив первые 1024 байта. Почему я выбрал таргет u-boot.imx ? Почему пропустил именно 1024 байта? Так предлагают сделать в документации. Для других плат процесс сборки образа и записи может немного отличаться.

Готово, можно загрузиться. Загрузчик должен сообщить собственную версию, некоторую информацию о плате и попытаться найти образ ядра на разделе. В случае неудачи будет пытаться загрузиться по сети. В целом вывод довольно подробный, можно найти ошибку в случае проблемы.

Вместо заключения

А вы знали, что лоб у дельфина не костистый? Это буквально третий глаз, жировая линза для эхолокации!

Источник

Оцените статью