Как кастомизировать kali linux

Обновлено: 02.07.2024

Большинство дистрибутивов поставляется со встроенным Bash. Используя дополнения можно сделать из него все что захотите, но гораздо проще этого добиться с Zsh. Почему?

  • Продвинутая механика автодополнения команд по нажатию <Tab> или <Arrow Up>. В отличие от Bash, вам не нужно это настраивать, все работает на высшем уровне прямо «из коробки».
  • Множество готовых тем, модулей, плагинов и прочего. Настраиваемость через фреймворки (oh-my-zsh, prezto и др.), которые значительно расширяют возможности кастомизации и улучшения терминала. Опять же, всего этого можно добиться и в Bash, но для Zsh масса уже готовых материалов. Для Bash их значительно меньше, а некоторых вовсе нет.

Настройка Zsh

Для начала, установим Zsh (если он уже установлен, например, как в Manjaro, можете пропустить этот пункт):


Когда вам предложат установить Zsh как оболочка по-умолчанию, нажмите Y , чтоб подтвердить.

Oh-My-Zsh — популярный и активно развивающийся фреймворк Zsh, который позволяет гибко настроить оболочку терминала. Установим его:

Подсветка синтаксиса. Гораздо проще ориентироваться по содержимому терминала, когда разные части команд подсвечены разными цветами. Например, директории будут подчеркиваться, а команды — выделяться цветом, отличным от обычного текста. Установим плагин zsh-syntax-highlighting :

Чтоб плагин заработал, его надо подключить.

/.zshrc меняем строку с plugins= :


Если такой строки нет — добавьте её.

Готово! Получаем удобный и функциональный терминал. Теперь сделаем его визуально приятным.

Настраиваем внешний вид


Скачиваем и добавляем в систему шрифт JetBrains Mono Nerd (c иконками):
Выберитеодин из списка, в папке шрифт/complete выберите шрифт без «Windows Compatible», с окончанием «Mono».

Подключаем шрифт и тему.

Если в файле эти строки уже есть — замените их.


Цвета. Важная часть оформления терминала — цветовая схема. Я перебрал много разных схем, редактировал их, остановился на Monokai Dark. Не режет глаза, но при этом приятная и яркая. Список цветов:


В разных терминалах по-разному меняется цветовая схема (обычно, это делается через настройки терминала), но порядок цветов везде одинаковый. Вы можете импортировать этот шаблон в формате Termite и экспортировать его для вашего терминала через terminal.sexy

Запускаем конфигурацию темы: p10k configure .
Настройте тему, выбирая варианты отображения, которые вам больше нравятся.

Финальный штрих — меняем конфиг темы и заменяем встроенные цвета.

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

Сегодня публикуем перевод завершения девятой главы книги «Kali Linux Revealed». Здесь будут подведены итоги таких тем, как модификация пакетов, сборка ядра и создание собственных ISO-образов. Кроме того, тут вы найдёте упражнения к этой главе, на которых, надеемся, будет интересно попробовать свои силы как тем, кто уже знаком с Kali, так и тем, кто только начал осваивать этот дистрибутив.

image


9.5. Итоги

В этой главе вы узнали о том, как модифицировать пакеты с исходным кодом, которые являются основными строительными блоками всех присутствующих в Kali приложений. Кроме того, мы рассказали о том, как настраивать, собирать и устанавливать собственные ядра Kali. Далее, мы поговорили об окружении live-build и о том, как создавать собственные ISO-образы Kali. Так же в этой главе речь шла о подготовке загрузочных флэш-носителей с поддержкой постоянных хранилищ информации, которые могут быть как зашифрованными, так и незашифрованными. Сейчас мы систематизируем основные положения этой главы и предложим вашему вниманию набор упражнений.

9.5.1. Модификация пакетов

Модификацией пакетов Kali обычно занимаются разработчики, и те, кто отвечает за поддержку и развитие системы, однако, может случиться так, что вам будет недостаточно возможностей, предоставляемых официальными сборками пакетов.

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

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

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

Для того, чтобы приступить к пересборке пакетов Kali, сначала нужно загрузить пакет с исходным кодом, который включает в себя основной *.dsc-файл (Debian Source Control) и дополнительные файлы, на которые есть ссылки в основном файле.

После загрузки исходного кода установите пакеты, перечисленные в зависимостях сборки пакета с исходным кодом, с помощью команды apt build-dep ./ . Её необходимо запустить, из директории пакета, в которой находится исходный код.

Внесение изменений в пакет с исходным кодом заключается в выполнении необходимых действий из следующего списка:

  • Первый шаг, который нужно выполнять всегда, заключается в изменении номера версии пакета. Это требуется для того, чтобы система могла отличить новый пакет от исходного. Делается это с помощью команды вида dch --local version-identifier или путём модификации других сведений о пакете с помощью утилиты dch .
  • Применение патча с помощью команды вида patch -p1 < patch-file или модификация серии патчей quilt .
  • Настройка параметров сборки, которые обычно можно найти в файле debian/rules или в других файлах из директории debian/ .

9.5.2. Сборка ядра

У продвинутых пользователей системы иногда возникает потребность в перекомпиляции ядра Kali. Возможно, вам это понадобится для того, чтобы уменьшить размер стандартного ядра, которое, по умолчанию, содержит множество возможностей и драйверов. Сборка нового ядра может понадобиться для добавления в него нестандартных драйверов или возможностей, или для установки патчей ядра. Тут стоит знать о том, что неправильно настроенное ядро может сделать систему нестабильной, и вы должны понимать, что команда Kali не может обеспечить обновления безопасности для ядер, которые пользователи собирают самостоятельно.
В большинстве случаев для внесения изменений в ядро понадобится установить некоторые пакеты с помощью команды apt install build-essential libncurses5-dev fakeroot .

Команда apt-cache search ^linux-source должна вывести список последних версий ядра, созданных командой поддержки Kali. Команда вида apt install linux-source-version-number устанавливает сжатый архив с исходным кодом ядра в /usr/src .

Файлы с исходном кодом надо распаковать командой tar -xaf в директорию, отличающуюся от /usr/src (например, в

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

    Если вы не являетесь пользователем с огромным опытом, сначала стоит заполнить конфигурационный файл ядра. Для этого лучше всего взять стандартную конфигурацию ядра, скопировав /boot/config-version-string в

Для того, чтобы использовать новое ядро, нужно установить необходимые пакеты с помощью команды вида dpkg -i file.deb . При этом не обойтись без пакета «linux-image». Пакет «linux-headers» нужно установить лишь в том случае, если имеются внешние модули ядра для сборки, что происходит в том случае, если у вас есть установленные *-dkms-пакеты (проверить, так ли это, можно с помощью команды dpkg -l "*-dkms" | grep ^ii ). Другие пакеты, в большинстве случаев, не используются.

9.5.3. Сборка собственных ISO-образов Kali

Официальные ISO-образы Kali собраны с использованием набора скриптов live-build , который даёт возможность полной автоматизации работ и настройки всех аспектов создания ISO-образов.

Для использования live-build нужно, чтобы система была обновлена до последней версии.

Для создания обновлённого, но немодифицированного ISO-образа Kali, достаточно воспользоваться командой ./build.sh --verbose . Сборка займёт немало времени, так как в ходе выполнения этой операции будут загружены все необходимые пакеты. После завершения сборки новый ISO-образ можно будет найти в директории images . Если при выполнении этой команды воспользоваться опцией вида --variant variant , будет собран указанный вариант образа. Различные варианты определяются их конфигурационными директориями, имена которых выглядят как config/variant-* . Основной образ создаётся с помощью варианта gnome .

Есть несколько подходов в к настройке ISO-образа, которые заключаются во внесении изменений в конфигурационную директорию live-build :

Теперь представляем вашему вниманию упражнения к данной главе.

Упражнения по работе с пакетами и по сборке ядра Kali

Упражнение №1: создание форков пакетов Kali

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

▍Ответы к упражнению №1

1. Сначала настроим систему на работу с пакетами с исходным кодом:


Теперь загрузим исходный код. Обратите внимание на то, что вы, если будете следовать этим инструкциям, можете столкнуться с другими версиями пакетов:


2. Изменим управляющий файл, включим в него собственные пакеты:


Изменим номер версии пакета таким образом, чтобы пересобранные пакеты можно было отличить от исходных:


И, наконец, соберём пакет:


Вот решение на Asciinema (текст из видео копировать нельзя).

Упражнение №2: обновление пакета Kali

  1. Подготовьте самую последнюю версию набора программ SET для использования с Kali.
  2. Создайте бинарный файл для дальнейшего использования.
  3. Можно ли, используя тот же подход, обновить пакет aircrack-ng ?

▍Ответы к упражнению №2

1. Для начала загрузим Kali-версию SET:


Далее, загрузим самую свежую версию SET. Тут, как и в предыдущем упражнении, вы можете столкнуться с другими номерами версий:


Для того, чтобы не запутаться, переименуем самую свежую версию:


Скопируем всё, что имеет отношение к Debian:


Обновим номер версии:


2. Соберём пакет и проверим его работоспособность:


3. В случае с aircrack-ng всё делается похожим образом:

Упражнение№3: пересборка ядра

При сборке стандартного ядра Kali действует принцип включения в него максимального функционала. Это нужно для обеспечения поддержки как можно более широкого спектра аппаратных платформ.

  1. Установите инструмент для измерения производительности вроде likwid и запустите быстрый тест likwid-bench .
  2. Установите патч graysky2 «Kernel GCC patch» для того, чтобы оптимизировать ядро под ваш процессор.
  3. Перекомпилируйте ядро после установки патча и выбора своей модели процессора.

▍Ответы к упражнению №3

1. Установим likwid , запустим тест:


2. Патч для оптимизации ядра под конкретный процессор можно найти здесь. Установим зависимости, необходимые для выполнения перекомпиляции ядра. Тут, как обычно, вы можете столкнуться с другими версиями:


3. Извлечём исходный код ядра и скопируем туда, где он окажется, текущий конфигурационный файл:


Запустим menuconfig на непропатченной конфигурации ядра:


Перейдём по следующим пунктам меню и посмотрим тип процессора:


Выйдем из конфигурации без сохранения. Загрузим оптимизирующий патч и пропатчим ядро:


Теперь снова войдём в раздел конфигурационной программы, позволяющий настраивать тип процессора. Тут должны появиться новые пункты:



Выберем необходимый тип процессора, сохраним конфигурацию и выйдем из программы. Теперь соберём ядро:


Улучшились ли показатели тестирования? Как ощущения? Может, получилось что-то вроде этого?


Упражнения по сборке Live-образов

Упражнение №1: Особая Live-сборка Kali

В одной из серий Mr. Robot Анжеле нужно загрузиться с USB-диска Kali и, для того, чтобы взломать систему, ввести несколько команд. Можете ли вы собрать такой ISO-образ Kali, который позволит ей решить задачу быстрее? Автоматизируйте работу так, чтобы после загрузки Kali Анжеле не пришлось бы касаться клавиатуры.

▍Ответы к упражнению №1

Для решения этой задачи надо собрать для Анжелы Live-ISO и отдать его ей.

Упражнение №2: автоматический установщик минималистичной Live-сборки Kali

  1. Создайте самоустанавливающийся ISO-образ, содержащий минимально возможное количество пакетов, и включите в него только пакеты openssh-server и salt-minion .
  2. Добавьте к этому образу ваш публичный SSH-ключ для облегчения последующего доступа к нему.
  3. Проверьте работоспособность образа.

▍Ответы к упражнению №2

Набор live-build используют всю структуру директорий в качестве входных данных для своей конфигурации. Мы храним эту конфигурацию и некоторые вспомогательные скрипты в Git-репозитории live-build-config . Мы будем использовать этот репозиторий как базу для сборки специально настроенных образов. Установим необходимые пакеты и загрузим Git-репозиторий с конфигурацией Kali live-build:


Создадим список включаемых в образ пакетов, начиная с salt-minion :


Создадим директорию для включаемых файлов и поместим там наш preseed.cfg :


Добавлять файлы в ISO-образ можно, размещая их в конфигурационной директории includes.binary . Например, это install.cfg (опции загрузочного меню):


Туда же можно добавить файл isolinux.cfg с опциями загрузки:


Добавим в ISO-образ и SSH-ключ:

Упражнение №3: сборка LIve-USB с несколькими постоянными хранилищами и с паролем самоуничтожения

Создайте Live-флэшку с несколькими постоянными хранилищами информации и включите пароль самоуничтожения LUKS.

▍Ответы к упражнению №3

Здесь мы предполагаем, что работа начинается с USB-флэшки, подготовленной в соответствии с инструкциями, приведёнными в разделе 2.1.4., «Копирование образа на DVD-ROM или на USB-флэшку». Подразумевается, что диск имеет размер, достаточный для хранения ISO-образа (около 3 Гб) и данных, которые планируется поместить в постоянное хранилище. Кроме того, мы исходим из предположения, что Linux видит флэш-диск как /dev/sdb , и что он содержит лишь два раздела, которые являются частью стандартного ISO-образа ( /dev/sdb1 и /dev/sdb2 ). Считаем важным напомнить, что выполняя действия, которые будут описаны ниже, нужно проявлять осторожность, так как переразбив не тот диск можно потерять важные данные.

Теперь подключаем флэшку к компьютеру (или к виртуальной машине) и выясняем имя устройства с использованием команд dmesg или fdisk . Как уже было сказано, предполагается, что это /dev/sdb . Если какие-то разделы были смонтированы автоматически, их надо отмонтировать. Теперь запускаем процесс разбиения на разделы:


Здесь мы будем создавать два хранилища. Одно будет зашифрованным, другое — обычным.


Команда mkpart primary 2794 5000 создаёт первый новый раздел (если посчитать их все, то он будет третьим), который начинается с 2794 Мб, и заканчивается на 5000 Мб. Мы используем именно это значение для указания начала раздела, так как образ Kali занимает на устройстве 2794 Мб. Возможно, вам придётся изменить эти значения для того, чтобы привести их в соответствие с размерами вашего ISO-образа или флэш-диска.

После создания двух новых разделов, можно приступать к настройке их в роли постоянных хранилищ информации в нашем окружении загрузки Kali. Мы начинаем этот процесс, используя имя sdb3 для незашифрованного хранилища. Мы сначала форматируем раздел, потом даём ему метку persistence . Метка должна быть именно такой, это очень важно. Если этот шаг пропустить или назначить разделу другую метку, постоянное хранилище информации работать не будет!


Затем создаём файл persistence.conf , который указывает на то, какие папки нам нужно сохранить в постоянном хранилище. В данном случае мы собираемся сохранить там всю файловую систему:


Далее, настраиваем зашифрованное постоянное хранилище. Для этого зашифруем раздел с использованием cryptsetup , отформатируем его, назначим метку, проверим, всё ли сделано правильно и создадим файл persistence.conf так же, как делали это выше:


Вот и всё! Теперь с USB-диска можно загрузиться и выбрать, как именно продолжать загрузку: без хранилища, с незашифрованным хранилищем, или с зашифрованным хранилищем.

Для того, чтобы добавить пароль самоуничтожения (LUKS Nuke) к зашифрованному разделу, нужно выполнить следующую команду:

Итоги

На этом мы завершаем публикацию перевода 9-й главы книги книги «Kali Linux Revealed». Надеемся, эти материалы помогли всем желающим освоить сборку пакетов и ядер Kali, а также подготовку собственных ISO-образов системы.

image

Дистрибутив GNU/Linux Kali Linux для проведения тестов на безопасность в своем последнем релизе 2019.4 получил новый режим – undercover mode. Он изменяет внешний вид Kali Linux и делает его похожим на Windows 10.

Таким образом, создается впечатление, что пользователь работает в обычной Windows. Разработка пояснила, что режим предназначен, к примеру, к работе в публичных местах.

Чтобы запустить undercover mode, нужно выполнить поиск в меню или следующую команду в терминале: kali-undercover. Скрипт сменит тему оформления рабочего стола на тему Windows 10. После выполнения команды терминал можно закрыть. Для выхода из режима команду нужно запустить повторно.

Кроме того, в релиз 2019.4 добавили переход из рабочего окружения Gnome в Xfce. Также Kali-Docs теперь основаны на разметке Markdown и расположены в публичном репозитории Git, Public Packaging (процесс отправки своих инструментов для добавления в Kali) задокументирован. BTRFS во время установки – тестирование файловой системы BTRFS в Kali. Опцию выбора файловой системы BTRFS в будущем планируется интегрировать в установщик.

Для работы со сценариями PowerShell в Kali Linux необходимо выполнить следующую команду установки: sudo apt install powershell.

image

image

Чтобы получить Kali Linux с телефона, нужно подключить Android-устройство к выходу HDMI вместе с клавиатурой и мышью Bluetooth.

Наконец, версия 2019.4 является последней, где минимально требуется 8 ГБ для SD-карт. Со следующей версии минимальным требованием для ARM устройств станет SD-карта объемом 16 ГБ.

Kali Linux developers added Xfce as the new default desktop environment in Kali Linux for the new release. One of the main benefits of Xfce, in terms of customization, is that it is a fully modular desktop. We can use all kinds of programs to change its behavior and appearance.

After the 2020.1 update we can use Kali Linux as our main operating system and use it in our daily life.

General Tips and Tricks

Here we discuss about some general tips then we demonstrate some examples.

Changing the theme to dark/light

  • Appearance theme
  • Icon theme
  • Window Manager theme
  • Terminal color scheme
  • Text editor color scheme

General script

For the Light theme

We can use following commands to set up light theme in our Kali Linux:

For the Dark theme

Dark theme's commands are as following:

Transparent panel

Transparent panel

Changing the menu icon

The icon selector will show us all the icons comes pre-installed on our computer, but, if we want, we also can use a custom image as well.

Plank The Advanced Taskbar

Plank is a customizable dock. Plank is meant to be the simplest dock on the planet. The goal is to provide just what a dock needs and absolutely nothing more.

We can install plank via following command:

The only tricky part is that if we need to configure it to launch on login. To do so, we need to open the Session and Startup application and add Plank to the autostart list.

As with Xfce-panel, you will need to disable dock shadows. Otherwise, it will draw a shadow line in the middle of your desktop.

disable the shadow of dock

Tip: If ywe want to open Plank settings we can press Ctrl + Right-click over plank dock. We can change the theme and make it completely transparent.

Numerical workspace switcher

numerical workspaces

We can see the detailed customization in following animation:

Window animations using Compton

Xfce uses Xfwm4 as the default display compositor, which is very lightweight . It lacks all the animations of the modern desktops, which makes it look outdated. Hopefully, as we mentioned before, Xfce is a modular desktop, thus we can replace it with a different display compositor, such as Compton.

Installing Compton in Kali Linux

We can install Compton in Kali Linux by using following command:

Examples of customizations

It may be easier to follow these customizations. We can just follow following steps to customize our Kali Linux and give it an outstanding look.

kali customization 1

  • Theme: Kali-Dark
  • Wallpaper: kali-rings
  • Panel settings (following screenshot):

kali-customazion 1 settings

  • Theme: Kali-Light
  • Wallpaper: kali-small-logo
  • Font Family: Quicksand Medium Bold
  • Panel settings (following screenshot):

kali customization 2 panel settings

  • Theme: Kali-Dark
  • Wallpaper: kali-small-logo
  • Desktop Icons:Icons orientation: Bottom Right Vertical
  • Title alignment: Left
  • Move window close/maximize/minimize buttons to the left side
  • These settings allow you to save some vertical space, as the title-bar and the panel will be joined when the window is maximized.

kali customization 3 titlebar

kali customization 4

kali customization 4 menus


We can download more cool wallpaers of Kali Linux by using following commands:

Best terminal graphical tools for Kali Linux

We were only going to talk about desktop customizations, but after adding all the screenshots with the terminal windows, it's our duty to share the tools we used.

We need to uncheck the Show the menu bar box and change the transparency values. For this, wee need to find two different values: the Application transparency will change the whole window opacity, and the Terminal transparency will only change the area of the terminal.

htop is an interactive system-monitor process-viewer and process-manager. It is designed as an alternative to the Unix program top. It shows a frequently updated list of the processes running on a computer, normally ordered by the amount of CPU usage.

htop

gotop

This terminal-based graphical activity monitor not included in the above screenshots, but we can use it to give a out of this world look.

gotop

neofetch

This is the command line system information tool appeared used in above screenshots.

neofetch

lolcat

Get rainbows and unicorns on neofetch. This tool commonly appears used together with neofetch, adding a stunning rainbow effect to its output.

Читайте также: