#4 Kali Linux для начинающих. Урок 3 — Терминал Kali Linux. Часть 1
Давным-давно для настройки и администрирования системы нужно было подойти к машине, авторизироваться в системе и внести необходимые изменения.
Раньше эта система представляла собой экран телевизора и не было никакого графического интерфейса, а был так называемый терминал. По своей сути терминал был дисплей этого телевизора, который выводил результат любой выполненной команды. Дисплей нужен был лишь для того, чтобы принять и выполнить ваши команды.
В то время нам нужно было два компонента, а именно сам физический экран или терминал и программа, которая работала в фоне:
В Linux эта программа находится в директории / bin / bash
Если я наведу на иконку в левой панели, она называется терминал. Эта иконка символизирует экран компьютера тех времен:
И если открыть терминал, то в нем уже будет работать программа bash. Думаю суть вы уловили. Это называется shell, и в нем уже работает bash:
Bash работает в терминале по-умолчанию. В противном случае он не сможет принимать информацию на ввод и отображать результат.
Работа в терминале намного эффективнее, чем графический интерфейс пользователя, и в отличии от него, он всегда есть на серверах.
Когда вы будете совершать тестирование на проникновение, вы часто будете сталкиваться с серверами, которые не имеют графического интерфейса, так как он требует много ресурсов компьютера. Ему нужно много места и памяти, что в большинстве случаев является непозволительной роскошью. Графический интерфейс не является необходимым на самом деле, поскольку все можно сделать в текстовом интерфейсе, поэтому как правило мы не устанавливаем графический интерфейс на серверы.
Очень важно, чтобы вы умели ориентироваться в любой Linux системе с помощью терминала или shella. В будущем, когда я буду говорить слова терминал или shell, я буду иметь ввиду вот это темное окно:
Как правило, когда вы упражняетесь в тестировании на проникновение, ваша задача — это получить доступ к shell-у. Это означает, что у вас должен быть доступ к shell-у, как у меня сейчас, но на удаленной машине, на машине вашей жертвы.
Как правило, есть два вида доступа к шеллу. Это либо рут-шелл. Как видите, сейчас я авторизирован как рут и это состояние обозначается символом # решетки, т.е я авторизирован как суперпользователь:
Также вместо рута мы можем получить состояние обычного пользователя, тогда вместо решетки # будет символ доллара $. Это означает, что вы авторизированы как обычный пользователь с низкими привилегиями.
Как попасть в терминал Кали Линукс?
Что такое, и как попасть в терминал Кали Линукс?
Терминал Линукс, она же командная консоль – система ввода текстовых команд (окно текстового интерфейса). Терминал позволяет вводить команды (минуя ярлыки и запуск исполнительных файлов), наблюдать за работой команды и просматривать результаты работы. Пользователю Кали Линукс (как и остальным “пингвиноидам”) доступен терминал в привычном его понимании и командный интерпретатор внутри самого терминала – shell.
По умолчанию в Кали Линукс в качестве среды Рабочего стола установлен Gnome, так что вариантов попасть в терминал Кали сразу несколько. Первый из них – воспользоваться поиском среди установленных приложений, в имени которых присутствует слово terminal. Он есть в любой сборке Линукс, так что его можно вызвать в любом случае, даже если используется другая среда. Помимо общепринятых и наидоступнейших вариантов к терминалу из левой боковой панели или через строку поиска:
вариантов ещё немало. В Кали, если использование боковой панели не устраивает или та не доступна, самый быстрый способ попасть в терминал это выбрать строку быстрого запуска
ALT + F2
и вызвать терминал командой:
Кроме всего прочего, попасть в терминал Кали можно и окольными путями. Например, открыв любую доступную проводнику директорию, и воспользоваться командами контекстного меню:
Как попасть в терминал Кали Линукс, если он уже не работает?
В случае, если графический терминал запустить невозможно, командную строку можно “поднять” в виртуальной консоли. Для входа/выхода в текстовый вариант работы с системой вы можете использовать несколько (до 6-ти) последовательных комбинаций – от CTRL+ALT+F1 до CTRL+ALT+F6 включительно. После этого система вас перенесёт в окно в текстовом режиме, где нужно будет ввести логин учётки и подтвердить к нему пароль. Выход из текстового варианта обратно в графический – обычно CTRL+ALT+F2.
КСТАТИ
Не знаю, с чего вы будете здесь начинать, но обычно новички сюда попадают, когда “уже всё плохо”. Так что сразу совет – команда pwd в терминале вам напомнит, в какой конкретной директории вы сейчас находитесь.
Директории меняются командой cd. Команда смены cd в виде:
вернёт вас в директорию, в которой вы работали до того. Родительская папка той, где вы сейчас, всегда имеет “адрес” .. (две точки), а текущая – . (одну точку). Привычный проводник для просмотра содержимого вам заменит команда
Ей тоже можно указать путь, а в пустом виде она покажет содержимое текущей папки.
Как попасть в терминал Кали: ярлыки и быстрые клавиши.
Это в Кали, мягко говоря, не продумано. Привычная для Линуксоводов команда клавишами
CTRL + ALT + T
не работает. Однако ярлык быстрого запуска можно создать, отправившись в
Приложения – Usual applications – Системные – Параметры – Параметры
Слева ищем Устройства – Клавиатура. Прокручиваем ползунок вниз до символа “+“. В окне добавления клавиши я обычно ввожу так:
С этой минуты я могу быстро попасть в терминал Кали с помощью клавиши F12.
Как открыть множество окон терминала?
Для начала способ, вам наверняка известный. С помощью мыши из контекста боковой панели окон терминала можно наоткрывать целую кучу:
Но открыв окно терминала, вы можете открывать сколько угодно вкладок, добавляя их справа от исходных командой:
ctrl + shit + t
Закрыть текущую вкладку терминала можно сочетанием:
ctrl + shift + w
Переключение между вкладками происходит сочетаниями Ctrl + PgUp и Ctrl + PgDn туда и обратно.
Основные команды терминала Кали Линукс.
Основные команды терминала: переход между папками, создание, удаление папок и файлов, а также их редактирование.
Терминал доступен пользователю Линукс практически отовсюду, а потому нам как традиционным “виндовозам” лучше сразу к нему привыкнуть. Терминал Линукс умеет всё: перезагружать и выключать систему, настраивать графический интерфейс, загружать команды и скрипты. Именно терминал и рулит в Линукс: графическая оболочка здесь, скорее, как дань уважения неопытным пользователям. Таким, как мы с вами.
Главные и основные команды терминала, которые должен знать любой знакомящийся с Кали Линукс, относятся к командам навигации и редактирования. Вы можете не знать предназначение некоторых специальных программ, но ориентироваться по системе обязаны уметь. Как и в любой системе с графическом интерфейсе, в Кали Линукс есть графический проводник. Однако работа в терминале позволит переходить в нужные папки моментально, открывая и редактируя нужные файлы и папки. Кроме того, в Кали есть полноценный “ремонтный” терминал, с которым вы могли (к своему счастью) пока не познакомиться. Последний является полноценным терминалом, в котором можно исправить всё (или почти всё), если в GUI Кали Линукс что-то пойдёт не так. А “не так” происходит нередко.
Далее. Каждая из команд имеет свои интерпретации в виде дополнительных возможностей. Эти возможности открываются дополнительными же флагами (опциями). Их чаще всего можно будет увидеть, добавив справа к основной команде символы тот же флаг -h. Это традиционная для Линукс “просьба” конкретизировать команду по типу:
команда конкретно (–) справку /help (h)
Подробнее каждая из команд будет рассмотрена отдельно и подробнее. Сейчас есть смысл просто познакомиться с основным их предназначением.
Основные команды терминала: про что здесь?
- посмотреть, что есть в папке, узнать, где вы сейчас; пройти в нужную директорию и вернуться
- копирование и перенос файлов и папок
- создание и просмотр файлов и их редактирование
- создание директорий
- … и удаление.
СРАЗУ ЗАПОМНИТЬ
Почти все мы “родом” из Windows. А значит некоторые вещи нам нужно срочно заучить. Именно:
- обратите внимание на значок “косая” (она же слэш), использующийся для обозначения или отделения директорий. Вот привычный вам путь в Windows, в котором косая разделяет букву диска и имя папки:
- в Windows для разграничения директорий применяется обратная косая \ (она же обратный слэш или бэкслэш). В Линукс директории разделяет прямой слэш / :
Помните об этой особенности, гуляя по директориям обеих систем.
- Команды часто умеют выполнять не только простейшие действия. Нередко они разбавляются некими фильтрами, которые могут исполнять дополнительные действия. Чаще всего они именуются флагами. Флаги конкретизируют, исключают что-то из запроса. Часто флагу предшествует дефис ” – “. Это вы увидите, читая статью далее.
- вы можете повторно набирать ранее набранные команды. Причём “память” терминала сохранит предыдущие команды даже после его закрытия. За последовательный перебор ранее набранных и выполненных команд отвечают стрелки навигации “вверх” и “вниз” – “ ↑ ” и “ ↓ “.
Папки: содержимое, смена директорий
Команда ls – она же listing (выдача списком) – отвечает за отображение содержимого папки. Если вы откроете любую папку Кали и в открытом окне терминала наберёте ls, терминал покажет всё, что в папке находится. Терминал выдаст список в алфавитном порядке, выделяя отдельные папки и директории. Показанные имена файлов и папок можно выделять и копировать мышью.
Команда cd – change directory (сменить директорию) – позволяет перейти в другую директорию\папку. Причём, в отличие от GUI-проводника, в терминале можно переходить из одного каталога в любой другой без всякой последовательности. Нужно только знать точный адрес требуемой папки: путь придётся вводить, начиная с корневой вот в таком формате:
Гуляя по директориям Кали Линукс, легко потеряться. Если вам нужно узнать, в какой папке вы сейчас находитесь (а она уже появилась на предыдущем рисунке), наберите
Чтобы, например, быстренько вернуться в предыдущую директорию, нам снова поможет команда cd:
Т.е. изначально будучи в папке А и перейдя в папку Б, этой командой мы из папки Б вернулись обратно в А.
Копируем и переносим
Итак, вы знаете, в какой папке находитесь и можете посмотреть содержимое директории. Копируем нужный файл командой cp (copy). Но копирование означает последующую вставку. Сразу рассмотрим такую команду на примере. Допустим, скачали некий файл ClearOS.iso. Тот автоматически оказывается в папке Загрузки. Захламлять ту не стоит – время от времени мы будем заглядывать сюда для очистки. Так что скопируем файл ClearOS.iso отсюда, скажем, в папку Документы. Вот самый простой вариант исполнения обычного копирования:
Обратите внимание: я, уже находясь в папке Загрузки (об этом пишет терминал) просматриваю его содержимое, копирую наш файл в папку Документы, просматриваю содержимое не покидая Загрузок. Перед слэшем папки я ставлю знак “тильда”, чтобы не писать адрес корневого каталога /root. Затем уже перехожу в Документы и оттуда снова смотрю состав папки Документы. Умея таким образом оперировать командами навигации и копи-паста (от copy-paste – скопировал-вставил), вы сможете работать в терминале тогда, когда GUI-интерфейса доступно не будет.
Очередная полезная команда терминала mv (от move – перемещать). С её помощью можно перемещать файлы из одной папки в другую. В известном смысле она аналогична команде “вырезать” в Windows. То есть файл после переноса с помощью mv в папке, откуда был перенесён, затирается.
КСТАТИ
Терминал заполнен запросами и выдачей к ним? Набранное и выводимое выше уже не актуально? Нет надобности закрывать и заново открывать окно терминала. Просто введите команду “очистить”:
Просмотр файлов и их редактирование
Все дистрибутивы Линукс идут с очень полезной фишкой, которая позволяет быстро создать, напечатать текст и тут же его сохранить в нужном формате. Для этого используется команда nano. Так, пишем в терминале nano, через пробел пишем название (пусть это будет file.txt – расширение укажите обязательно) и в поле вводим произвольный текст
Редактирование файла осуществляется набором клавиш. Сохраняемся через Ctrl + O. Покинуть nano-редактор можно через Ctrl + X.
Cat. Нет, к животным она отношения не имеет. Она предназначена для чтения текстовых (и только) файлов. Так, перейдя в нужную папку из терминала, вы можете прочесть (в терминале же) содержимое файла. Причём терминал отобразит его вместе с нечитаемыми/скрытыми символами (знаками табуляции, пробелами и т.п.). Чтобы сравнить ответ терминала с реально существующим текстом, я открыл его тут же из терминала простеньким текстовым редактором Leafpad:
Обратите внимание: терминал стал в режим ожидания, пока указанный файл открыт в этой (Leafpad) программе. Закроете терминал – закроется и окно редактора без сохранения изменений с момента открытия.
Команда grep позволяет проводит поиск внутри файла, причём она делает это в своеобразной манере. Она способна найти слово отдельно либо в составе сложных слов. Для этого к grep добавляется символ | (трубки). И всё это можно делать не покидая терминала. Заряжаем терминал и вводим так:
Возможные запросы можно фильтровать. Например, заставить искать только прописные буквы:
Ещё одна команда, которая может вам пригодиться, это команда echo. С её помощью можно добавить текст в файл, не открывая его:
Однако вводимый текст в терминале затрёт предыдущий. Так что echo гораздо чаще используют именно при создании новых файлов:
И сразу можно проверить изменения:
Очередная команда позволит вам создавать папку. Это mkdir. Она (make directory – создать директорию) очень проста в использовании:
Папка с именем “папка” появится в той директории, откуда сейчас запущен терминал. Однако, если вы собираетесь создать директорию с именем, скажем, Новая папка, то знайте, что командой:
вы создадите две папки: с именами “Новая” и “папка”. В противном случае поместите слова в названии папки, разделённые пробелом, в кавычки.
Но если уж вы поторопились и создали их, давайте сразу научимся удалять ненужные директории, не покидая терминал с помощью команды rm (remove – убрать). Для этого вам уже понадобятся root-права. Если вы привыкли прислушиваться к советам и работаете сейчас из гостевой записи, то для работы от имени root вам понадобится лишь ввести вначале любой команды буквы su. По вводу команды терминал вас попросит ввести пароль к root-учётке. А вот и команда (она удалит обе папки без предупреждения):

Флаг -rf здесь означает, что вы хотите удалить папку рекурсивно r (с её содержимым) и принудительно f, не обращая внимания на связанные процессы.
Нам этом пока всё. Основные команды терминала для навигации по системе и простейшие “арифметические” операции с папками и файлами вы освоили. Переходите по ссылкам (он появляются по мере написания) для более детального знакомства с каждой командой Линукс.






















