HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Меню Kali Linux: восстановление, добавление и изменение программ
Особенностью Kali Linux как дистрибутива для тестирования на проникновение является коллекция специализированных инструментов. Все эти инструменты собраны в меню.
Меню Kali Linux хорошо структурировано, программы разбиты на группы, некоторые из которых имеют свои подгруппы, популярные программы собраны в список избранных и т.д. – всё очень красиво. Очень красиво и, на самом деле, совершенно бесполезно, поскольку большинство инструментов – это утилиты командной строки, которые нужно запускать с набором опций. Кликая на название инструмента в меню, вы просто открываете справку для этого инструмента. Даже программы с графическим инструментом намного (!) быстрее запускать из консоли: достаточно начать набирать имя программы и использовать клавишу TAB для автозавершения. Таким образом программу можно запустить буквально за 2-3 секунды, в отличии от меню, в котором нужно вспомнить раздел, возможно, перейти в подраздел и там уже найти нужную программу.
Тем не менее, меню есть и, наверное, им кто-то пользуется. Эта заметка для них. В этой статье мы научимся создавать новые пункты меню, добавлять и удалять программы из меню.
Но прежде чем начать, мы научимся восстанавливать меню Kali Linux – на тот случай, если что-то пойдёт не так.
Как восстановить меню Kali Linux
Если вы поломали меню своей операционной системы, либо просто хотите всё вернуть к исходному состоянию, то воспользуемся инструкцией, которую написал ещё сам Blackmore:
Полностью удаляем вместе с настройками пакет kali-menu:
Удаляем папки, где могли остаться пользовательские ярлыки и конфигурационные файлы:
Вновь устанавливаем kali-menu:
К следующему шагу переходим только есть прооблема ещё не решилась.
Повторно устанавливаем kali-linux-full:
Программы для редактирования меню Kali Linux
Имеется две программы, которыми можно отредактировать меню: menulibre и alacarte. Можете установить их обе или только одну из них:
В этой инструкции я будут изменять меню при помощи alacarte. Если вы захотите выбрать menulibre, то чтобы она заработала от пользователя root откройте файл /usr/lib/python3/dist-packages/menulibre/MenulibreApplication.py:
Найдите там строку:
Как в меню Kali Linux добавить или удалить ярлык или раздел
У программы графический интерфейс, поэтому, надеюсь, разберётесь без меня.
Помните, что если вы создали раздел или подраздел, он не появится в меню, пока в нём нет хотя бы одной программы.
После добавления программы или раздела с программой в меню, они сразу начинают отображаться в меню – не требуется дополнительных команд или действий.
Программы для анонимности в Kali Linux
Чтобы сделать меню более функциональным, я добавлю новый раздел «Анонимность». В этот раздел мы добавим такие программы как:
Все эти программы не только отсутствуют в меню, но и ещё отсутствуют в системе, поэтому для их установки выполняем:
Откройте файл .bashrc в директории пользователя любым текстовым редактором:
И для создания новых переменных окружения добавьте следующие строки в этот файл:
Теперь создаём меню 00 – Анонимность:
Если хотите, выберите какую-нибудь иконку, например, много иконок в папке /usr/share/icons/hicolor/256×256/apps/ или просто побродите по папкам /usr/share/icons/ или (самое простое) нагуглите.
Теперь выбираем созданный пункт меню и нажимаем «Создать элемент». Там в качестве имени вводим «Браузер Tor» в качестве команды:
В качестве иконки выберите /opt/Browser/browser/chrome/icons/default/default48.png
Наш первый раздел и первый ярлык появились в меню:
Если на него кликнуть, то мы увидим… браузер Tor:
Мы, конечно, уже молодцы, но мы ещё не закончили.
С помощью TorIptables2 мы можем выполнять такие действия как:
Поэтому мы не просто создаём ярлык на программу, а делаем ещё одно меню в разделе Анонимность. Это меню назовём TorIptables2.
Переходим в TorIptables2 и выбираем там «Создать элемент». В качестве имени вводим «Запуск TorIptables2», в качестве команды:
Поставьте галочку «Launch in Terminal».
Теперь «Создать элемент», имя – «Проверить IP адрес», команда
Поставьте галочку «Launch in Terminal».
Важно, чтобы IP менялся и для консольных приложений, поскольку большинство инструментов Kali Linux это именно консольные утилиты. Предыдущая команда проверяет, будет ли скрыт истинный IP при работе программ с интерфейсом командной строки.
Теперь «Создать элемент», имя – «Сменить IP адрес», команда
Поставьте галочку «Launch in Terminal».
Теперь «Создать элемент», имя – «Отключить TorIptables2», команда
Поставьте галочку «Launch in Terminal».
Теперь в раздел Анонимность добавим autovpn. Если указать двухбуквенный код страны, то autovpn будет искать бесплатный VPN из этой страны. Поэтому создадим меню autovpn, а в нём несколько элементов, где мы будем запускать программу с разными опциями. Пример команд:
Если не указать страну, то будет искаться VPN из США:
Для поиска VPN из Японии:
Для поиска VPN из Таиланда:
Для поиска VPN из РФ:
Везде поставьте галочку «Launch in Terminal». Конечно, вы можете добавить любое количество ярлыков с любыми странами
После того, как TorIptables2 завершит работу, это окно можно закрыть, программа всё равно будет работать. Для отключения TorIptables2 мы создали отдельный ярлык. autovpn работает иначе: не нужно закрывать окно, чтобы программа не прекратила свою работу. Если вы хотите прекратить использование VPN, то нажмите CTRL+c и закройте окно.
Небольшое видео, где я демонстрирую только что созданные в меню анонимские причиндалы:
Кстати, у меня ведь есть YouTube-канал с собственным URL: youtube.com/АлексейМилосердов
Там нет контента и всего один подписчик. Поэтому подписывайтесь – чтобы у меня был стимул развивать канал.
Добавление airgeddon и WiFi-autopwner в меню Kali Linux
Ещё парочка примеров добавления программ в меню. Установим airgeddon и WiFi-autopwner в Kali Linux:
В раздел Wireless Attack добавляем элемент с именем airgeddon и командой:
Аналогично для wifi-autopwner, команда:
Теперь эти программы можно запускать из меню:
Обновление Kali Linux из меню
В разделе System Services создайте меню • Обслуживание системы, и добавьте пункты:
«Обновление системы» с командой:
«Очистка системы» с командой:
«Очистка кэша» с командой:
Везде ставьте галочку «Launch in Terminal».
Теперь эти ежедневные операции можно запускать прямо из меню:
Как составлять команды для ярлыков
Как вы могли заметить, используется конструкция:
Можно указывать несколько команд через точку с запятой (;), либо объединив их символами &&. В первом случае, каждая команда будет выполнена в любом случае. Если же вы сгруппировали команды при помощи &&, то каждая последующая будет выполнена только если каждая предыдущая завершилась без ошибки.
Если нам нужно, чтобы была показана консоль, то мы ставим галочку «Launch in Terminal».
Если вам нужно, чтобы терминал не закрывался после выполнения команды, то через точку с запятой добавьте $
Разберём, как мы установили airgeddon. Мы клонировали файлы с ГитХаба:
Затем переместили всю папку airgeddon в директорию /usr/local/bin/, чтобы она была доступна для всех пользователей системы:
В принципе, на этом можно было остановиться. Для запуска airgeddon, нам нужно перейти в его папку:
Т.е. в ярлык мы могли добавить последовательность команд:
Этого достаточно для запуска airgeddon через меню.
Но мы выполнили две дополнительные команды:
Эта команда попросту создаётся файл /usr/bin/airgeddon со следующим содержимым:
делает файл /usr/bin/airgeddon исполнимым.
Фактически, это небольшой Bash-скрипт, который включает в себя последовательность из двух команд. Команда cd /usr/local/bin/airgeddon переносит нас в папку /usr/local/bin/airgeddon, а команда exec bash airgeddon.sh «$@» запускает нужный файл.
Благодаря своему расположению в папке /usr/bin/, мы можем его запустить из любой директории просто введя
Это более «красивый» способ установки – команда в меню получилась проще, и если мы захотим запустить airgeddon из консоли без использования меню, то мы просто набираем слово airgeddon (кстати, можно использовать автозавершение по TAB).
Заключение
В меню можно добавить разные часто повторяющиеся операции, добавить команды управления сервисом Tor, запуск и остановку веб-сервера и MySQL, команду для перевода Wi-Fi карты в беспроводной интерфейс, ярлыки на самостоятельно установленные программы и т.д.
Если у вас возникает проблема с написание команды запуска для ярлыка, то пишите ваши вопросы в комментариях – постараюсь помочь.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Управление пакетами в Kali Linux и других дистрибутивах на основе Debian (поиск, установка и удаление программ, решение проблем)
Сопроводители дистрибутивов Linux поддерживают репозитории пакетов из которых программы можно установить в дистрибутив с помощью того или иного менеджера пакетов. Такие репозитории (их состав, частота обновления, предварительная настройка пакетов) являются главными отличиями дистрибутивов друг от друга (а не обои или графическое окружение рабочего стола, которые всегда можно поменять).
Такой централизованный подход позволяет не тратить время на обновление отдельных программ (как например это нужно делать в Windows, где вам самостоятельно нужно отслеживать появление новых версий и обновлять их).
Умение управлять пакетами в Linux нужно как для установки и обновления программ, так и решения других проблем, например, отсутствующие файлы, необходимые для компиляции программы, которую вы хотите установить из исходного кода. В этой статье рассмотрены как азы, так и даны более продвинутые подсказки (например, как найти пакет, содержащий необходимый для компиляции файл).
Данная статья сфокусирована на менеджере пакете apt и дистрибутиве Kali Linux, но всё сказанное в ней применимо и к другим основанным на Debian дистрибутивам (Linux Mint, Ubuntu).
Как работают репозитории приложений Linux
Сопроводители дистрибутивов Linux отбирают программы для помещения в репозитории. Эти программы упаковываются в пакеты, для Debian и производных это файлы с расширением .deb. В эти пакеты помещаются скомпилированные файлы программ, файлы настроек и все другие, необходимые для работы прогрммы файлы, а также метаинформация, в которой указано, какие ещё пакеты нужно установить для разрешения зависимостей, а также какие действия нужно выполнить перед и после установки пакета, а также перед и после его удаления.
В случае выхода новых версий пакетов, их все можно обновить одной командой — очень удобно.
Для чего нужны зависимости
Если вы уже устанавливали пакеты в Linux, то вы могли обратить внимание, что вы вводите имя одной программы для установки, но зачастую одновременно с ней устанавливаются ещё и другие пакеты — это зависимости.
Зависимости — это библиотеки, программы, драйверы и прочее, что необходимо для работы другой программы. Такой подход позволяет один и тот же код (библиотеку) использовать в различных программах. К примеру, мы пишем приложение, в которое ходим добавить сетевые функции с поддержкой различных протоколов — нам не нужно всё писать с нуля, мы можем воспользоваться библиотекой libcurl (от авторов программы cURL), которая уже поддерживает десятки сетевых протоколов. И так могут поступить многие другие программы — они все могут использовать одну библиотеку без необходимости дублировать код — достаточно установить библиотеку в ОС один раз.
Для работы некоторых программ необходимы другие программы, либо они являются обёртками, графическими интерфейсами для облегчения использования утилиты. Такие программы также являются зависимостями.
Использовать apt или apt-get
Для управления пакетами может применяться команда apt или apt-get. На самом деле, выбор ещё больше: dpkg, aptitude, synaptic, wajig, а также графические интерфейсы от авторов дистрибутивов. Но все эти менеджеры пакетов имеют свои чёткие особенности, а apt и apt-get очень похожи, у них практически одинаковые команды и опции, они выполняют одинаковые функции. Разберёмся, чем отличаются apt и apt-get.
Программа apt предназначена для интерактивного использования и её поведение может меняться с выходом новых версий. А программа apt-get предназначена для использования в скриптах и её поведение и вывод очень консервативны.
На самом деле, для большинства типичных задач (установка и удаление пакетов), программы очень похожи.
Я предпочитаю apt как более «свежую», но на самом деле практически во всех последующих примерах команд вы можете заменить «apt» на «apt-get» и не почувствуете никакой разницы.
Обновления кэша с информацией о приложениях
Когда в репозиторий вносятся изменения, например, при обновлении пакета, необходимо синхронизировать эту информацию с локальным кэшем вашей операционной системы Linux. Это делается командой:
Этого же результата (обновления кэша) можно достичь разными способами, в том числе имеется ещё несколько команд. Например, следующая команда также обновит кэш (нет принципиальной разницы, какую команду вы используете):
Даже если вы не собираетесь выполнять полное обновление системы, обновление кэша необходимо выполнить перед установкой любых пакетов. В противном случае вы можете столкнуться с ошибкой, что требуемый пакет не найден. Эта ошибка возникает из-за того, что в вашей системе есть информация о предыдущей версии пакета и ссылка для его скачивания, и именно по этому адресу менеджер пакетов пытается получить файл пакета. Но в репозитории устаревшая версия уже могла быть удалена. В результате получается, что пакет есть в репозитории, но ваша система не узнает его новый адрес, пока не обновит свой кэш.
Как установить программу
Используйте команду вида:
Вы можете установить сразу несколько пакетов за раз:
Поиск пакетов
Для поиска пакетов предназначена команда вида:
Данная команда ищет по описанию пакетов и может выводить слишком большой список. Эта команда может пригодиться, если имя нужной утилиты не совпадает с названием пакета (например, один пакет содержит несколько утилит).
Обратите внимание, что для данной команды, в отличие от большинства других с apt, не требуются права root (можно использовать без sudo).
Поиск пакетов только по названию
Предыдущая команда бывает бесполезной из-за слишком большого вывода информации. Вы можете использовать следующую команду для поиска по имени пакета:
Вы также можете указать подстановочные символы, например для поиска по названию, начинающемуся на слово ПАКЕТ:
Для поиска по названию, оканчивающемуся на слово ПАКЕТ:
Для поиска по названию, в котором присутствует слово ПАКЕТ:
Ещё более удобной, на мой взгляд, командой для поиска пакетов является:
Последняя команда ищет в именах по слову ПАКЕТ и выводит список всех пакетов, где оно встречается. Использовать подстановочные символы не нужно.
Как проверить, установлен ли пакет
Вы можете использовать команды apt list или apt search не только для поиска пакетов, но и просмотра информации о том, установлены ли они.
Рядом с описанием пакетов вы можете увидеть один из трёх вариантов:
Как посмотреть информацию о пакете
Вы можете узнать следующую информацию о любом пакете, независимо от того, установлен он в вашей системе или нет:
Чтобы узнать информацию о пакете используйте команду вида:
Как удалить пакет
Для удаления используйте команду вида
Можно удалять сразу много пакетов за раз:
Как полностью удалить пакет, вместе с конфигурационными файлами
При удалении пакета удаляются все его файлы, но обычно остаются небольшие (изменённые) файлы конфигурации пользователя на случай, если удаление было случайным. В этом случае простая отправка запроса на установку для случайно удалённого пакета восстановит его работу, как и раньше. С другой стороны, вы можете избавиться от этих остатков, вызвав purge даже для уже удалённых пакетов. Обратите внимание, что это не влияет на данные или конфигурацию, хранящиеся в вашем домашнем каталоге.
Итак, для полного удаления пакета используйте команду вида:
Обновление всех пакетов системе в Kali Linux
Чтобы обновить все пакеты, для которых вышли новые версии, а также установить необходимые зависимости и удалить мешающие пакеты, используется команда:
Среди удаляемых пакетов могут быть конфликтующие (мешающие установке требуемых зависимостей).
Аналогичный результат можно получить командами (это одна из немногих команд, которая различается для apt и apt-get):
Для удобства можно объединить команду обновления кэша и команду запуска полного обновления системы в одну, опция -y используется для того, чтобы у нас не спрашивалось подтверждение, а сразу начался процесс установки новых пакетов:
Как узнать, в каком пакете содержится файл
Если вы компилируете программы из исходных кодов, то вы, наверняка, сталкивались с ошибками компиляции, когда программа не находит какой-либо файл и компиляция обрывается. Что делать в данной ситуации? Понятно, что нужно установить пакет, который содержит требуемый файл. Но как узнать имя этого пакета?
С помощью программы apt-file можно искать по именам файлов в пакетах (как установленных, так и нет). Также она может показать все файлы в пакете.
Сразу после установки кэш данных о программах пуст. Чтобы его обновить нужно выполнить команду:
Когда всё готово, то поиск осуществляется так:
К примеру поиск файла ffi.h:
У программы apt-file есть альтернативы, подробности смотрите в статье «Как в Linux узнать, в каком пакете содержится файл».
Как посмотреть зависимости пакета
Вы можете посмотреть, какие пакеты будут установлены в качестве зависимостей командой вида:
Как узнать, для каких программ данный пакет является зависимостью
Если вы хотите удалить программу, но не уверены, нужна ли она для других программ, то вы можете проверить, для каких пакетов она является зависимостью командой вида:
Как просмотреть список изменений пакета
Для пакетов вы можете вывести список изменений, сделанных в различных версиях программы. Для этого выполните команду вида:
Как скачать пакет без установки
Если вы хотите скачать пакет без установки, например, чтобы изучить его или внести изменения, то выполните команду вида:
Как проверить, всё ли впорядке с кэшем приложений
Если вы хотите узнать, имеются ли сломанные зависимости, то выполните диагностическую команду:
Следующая команда dpkg установит пакет без проверки зависимостей:
При выполнении операции менеджером пакетов, например, обновление кэша:
может возникнуть сообщение об отсутствующих зависимостях, исправить это можно командой:
Программа apt также умеет устанавливать пакеты из указанных файлов, при этом одновременно будут установлены необходимые зависимости для этого пакета:
Удаление ненужных программ
Время от времени рекомендуется выполнять команды по удалению пакетов, которые были установлены автоматически (так как были зависимостями других программ), но теперь больше не нужны.
Для этого применяется команда:
Её использование безопасно и не должно приводить к проблемам.
Очистка кэша установочных файлов
При каждом обновлении программ файлы пакетов скачиваются в кэш. После обновления скаченные файлы (можно назвать их установочными) не удаляются, и постепенно кэш разрастается до больших размеров. Это сделано намерено с той идеей, что если после очередного обновления вы обнаружите, что новый пакет имеет проблемы, а старая версия уже недоступна в онлайн репозитории, то вы сможете окатиться до старой версии установив её из файла, сохранённого в кэше.
Для роллинг дистрибутивов кэш разрастается очень быстро. Поэтому время от времени можно выполнять команду:
clean вычищает локальный репозиторий от полученных файлов пакетов. Она удаляет все, кроме lock файла из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/.
Исправление ошибок установки пакетов и зависимостей
Опция -f исправляет, пытается привести в норму систему с нарушенными зависимостями. Эта опция, когда используется с install/remove, может пропустить какие-либо пакеты, чтобы позволить APT найти вероятное решение. Если пакеты указаны, эта команда должна полностью исправить проблему.
Альтернативы для apt
Для apt, кроме программы apt-get, которая является очень похожей, существует ещё несколько альтернатив.
В Debian вы можете выбрать среди следующих менеджеров пакетов:
dpkg — этот пакет предоставляет низкоуровневую инфраструктуру для обработки установки и удаления пакетов программного обеспечения Debian. При установке программ не устанавливает зависимости.
aptitude
aptitude — это менеджер пакетов с рядом полезных функций, в том числе: похожий на mutt синтаксис для гибкого сопоставления пакетов, возможность извлекать и отображать журнал изменений Debian для большинства пакетов и режим командной строки, аналогичный режиму apt-get. Программа не позволяет разрастаться кэшу слишком сильно и выполняет автоматическую очистку.
Чтобы былы понятны основные возможности программы, посмотрите на доступные команды и опции.
Действия (если не задано, aptitude запускается в диалоговом режиме):
synaptic
Synaptic — это графический инструмент для управления пакетами, основанный на GTK+ и APT.
Synaptic позволяет устанавливать, обновлять и удалять программные пакеты удобным способом.
Помимо этих основных функций, предоставляются следующие возможности:
wajig
Обёртка командной строки для apt, apt-cache, dpkg, aptitude и других. Её цель — упростить управление пакетами за счёт объединения основных функций этих инструментов в одном интерфейсе.
Кроме рассмотренных программ, в дистрибутивах Linux могут применяться и собственные инструменты. К примеру, в Linux Mint имеется собственный инструмент с графическим интерфейсом для обновления программ. Также в Linux Mint при запуске программы apt вместо неё будет использоваться собственный скрипт, который является обёрткой для aptitude (из-за этого вывод команды apt может вас смутить).
Портативные программы в Linux
При компиляции программы из исходного кода, совсем необязательно устанавливать её на уровне системы — вы можете запускать скомпилированные файлы из любого места в вашей системе. Это позволяет попробовать новую версию программу без удаления той, которая установлена из репозитория.
Как решить проблему «команда не найдена» («command not found»)
Если при попытке запуска программы вы столкнулись с ошибкой «команда не найдена» («command not found»), то она означает, что не установлен пакет, содержащей данную программу. Конечно, при условии, что вы правильно ввели имя команды — поэтому начните с проверки имени, а также используйте клавишу TAB для вывода подсказок и автоматического дополнения.
Начните с попытки установить пакет с одноимённым именем — довольно часто название команды совпадает с именем пакета, например nmap, sqlmap — это команды запуска и имена пакетов, которые их содержат:
Если вы получите сообщение, что пакет с таким именем не найден, то попробуйте выполнить поиск по описанию пакетов — довольно часто в описании перечислены программы, которые включены в данный пакет:
Если удалось определить имя пакета, установите его.
Если и это не помогло, то установите (если ещё не сделали) команду apt-file, обновите кэш и выполните поиск:
Данный способ наверняка поможет найти нужный пакет. Если даже это не сработало, то возможны следующие варианты:
Warning: apt-key is deprecated
Команда apt-key управляет ключами, которые отвечают за проверку подписи репозиториев пакетов приложений.
Теперь при любом использовании команды apt-key вы будете получать сообщение: