Kali Linux для новичков. Основные команды. Часть 2
Продолжаем цикл статей, в котором знакомим вас с самым популярным дистрибутивом для хакеров - Kali Linux 🔥
Всем салют, дорогие друзья!
Нам было очень приятно увидеть ваш фидбек по вчерашней статье. Спасибо 🖤
Сегодня мы продолжаем цикл статей, в котором знакомим вас с самым популярным дистрибутивом для хакеров - Kali Linux 🔥
⚠️ Если вы не успели прочесть 1 часть нашей статьи, то рекомендуем это сделать прямо сейчас: Kali Linux для новичков. Основные команды. Часть 1
Просмотр содержимого папок
Начнем, пожалуй с команды ls
, которую вы уже видели и использовали.
✅ Давайте разберем опции, которые можно использовать с этой командой.
Для тех, кто забыл, напомним, что команда ls отображает содержимое директории.
Теперь более подробнее об опциях:
-l
— отображает подробный список;
-a
— отображает скрытые файлы;
-r
— отображение по имени в обратном порядке;
-t
— отображает новые файлы первыми в списке;
-rt
— отображает в начале списка файлы, которые не менялись дольше всего, т.е в начале списка будут более старые файлы и папки.
Давайте посмотрим как все это работает. Сейчас мы находимся в директории home. Вводим команду ls и видим содержимое этой директории:
Если нам, по какой-либо причине, захочется отобразить содержимое директории tmp
, то нам не нужно переходить в эту директорию, достаточно прописать в текущей команду ls / tmp /
, и мы увидим папки и файлы, которые недавно были созданы (предыдущая статья):
Теперь посмотрим, как работают опции. Начнем с ls -l
. Вводим команду ls -l / tmp /
, и видим подробное отображение содержимого данной директории и ее параметры:
Вот так выглядит результат и это является подробным списком команды ls
.
❓Возникает сразу вопрос, а что это за обозначения в самом начале перед каждым файлом?
Обратите на них внимание. Буква d
означает — директория. Как вы успели заметить, на изображении выше практически у всех файлов есть эта буква. На самом деле это закономерно, так как все эти файлы являются директориями, и по-умолчанию в Kali они выделены синим цветом.
Символ «-
», означает, что это файл. Обратите внимание на символы перед самым первым файлом «Double Encoding Injection» (смотрите изображение выше). В начале строки этого файла мы можем наблюдать символ «-».
Хотим обратить ваше внимание на то, что можно переходить и смотреть содержимое в директории, которые вложены друг в друга. Это делается с помощью все той же команды ls
, без каких-либо опций, с указанием директории. В нашем случае мы смотрим содержимое директории /ssh-5G7qwZ8WuOz2
, которая находится в директории /tmp
:
Посмотрим, как работает опция -al
. Возьмем ту же директорию /tmp. Как мы помним, опция a
отображает скрытые файлы. Запишем в терминале команду: ls -al /tmp /
:
Визуально можно сказать, что мы получили намного больше информации. Обратите внимание на записи, которые выделены зеленым цветом, и перед названиями которых, стоит точка. Это скрытые файлы, поэтому до этого момента мы их не видели. Еще просим обратить ваше внимание на две верхних записи, которые оканчиваются на символы «.», и «..». Вы, на наш взгляд, могли догадаться, что мы использовали эти символы в команде cd.
Давайте разберемся, как они работают. Введем команду ls -al /tmp/ssh-5G7qwZ8WuOz2/
и получим следующий результат:
Обратите внимание, что в директории /ssh-5G7qwZ8WuOz2
практически ничего нет, кроме одного файла, но дополнительно мы видим те же символы с точкой и двойной точкой.
Давайте выполним команду cd
и перейдем в эту директорию:
Вспомните нашу работу с командой cd
, где символ точка означал текущую рабочую директорию, а двойная точка — это переход на одну директорию вверх.
Иными словами, если в текущей директории мы выполним команду cd .
, то ничего не произойдет. Давайте проверим:
В итоге наша рабочая директория не изменилась.
А если мы попробуем выполнить команду cd .. , то мы перейдем на одну директорию выше:
Таким образом, мы можем переходить все выше и выше по директориям, в конечном итоге добравшись до root:
Надеемся, что теперь вы понимаете разницу между символом точка, и двойная точка. Мы можем использовать их для разных целей.
Переходим к следующей опции, которую мы хотели бы рассмотреть, но для наглядности мы выполним команду ls -l /tmp /
.
Сделаем мы это для того, чтобы вы понимали разницу между данными опциями.
Получилось большое изображение, но при более внимательном рассмотрении можно уловить разницу в отображении файлов. Опция -r
— это отображение по имени в обратном порядке. Надеемся, вам это понятно и вы увидели, что в первом случае список файлов один, а во втором все расположено в обратном порядке.
Теперь давайте попробуем отобразить новые файлы и это делается с помощью команды ls -tl / tmp/
:
Обратите внимание на время создания файлов. Можно заметить закономерность того, что первыми отображаются самые новые файлы.
Просмотр содержимого файлов
Мы уже умеем просматривать содержимое папок, а также создавать файлы, но мы не видели то, как просмотреть содержимое файлов.
Допустим, взломали вашу Linux-систему. В каждой такой системе существует скрытый файл, который называется .bash_history
. Суть этого файла заключается в хранении последних 500 команд, которые были введены пользователями. Как правило данный файл находится в директории home этого пользователя.
После взлома вашей машины, вы можете посмотреть данный файл, для того, чтобы понять, что делал взломщик. Иными словами, вы можете восстановить поведение злоумышленника, а именно, узнать, что он создавал, с чем взаимодействовал и т. д.
Мы будем использовать этот файл в качестве примера и рассмотрим команду cat
(concatenate), конкатенация. Эта команда отображает сразу все содержимое файла. Так жемы рассмотрим команду less
.
Для начала выполним команду в терминале: ls -al
.
-a
означает: отобразить содержимое файлов, в том числе и скрытых, а -l
: это подробный список.
Мы видим вывод файла .bash_history
:
Точка перед этим файлом означает, что он скрытый, и для его отображения нам понадобилась команда -a
.
Теперь давайте посмотрим содержимое этого файла, с помощью команды cat
. Вводим команду: cat .bash_history
:
Итак мы получили вывод последних 500 команд, и вы можете наблюдать, как знакомые, так и незнакомые команды. Также мы можем проскроллить вниз данный список и посмотреть другие введенные команды.
Когда вы авторизируетесь в системе удаленно, у вас нет возможности пролистать мышкой ползунок для просмотра. Для этого случая нужно использовать горячие клавиши: Shift+PgUp
(для пролистывания вверх) и Shift+PgDn
(для пролистывания вниз).
В случае, когда вам попадется большой файл, команда cat окажется неэффективной, а пролистывая страницу, можно запутаться в коде или в содержимом.
Для этих целей нужна команда less
. Давайте выполним в терминале: less .bash_history:
Эта команда отображает только верхнюю часть и переход осуществляется либо на одну строку вниз, либо вверх. Для перехода вниз нужна стрелка вниз, а вверх — стрелка вверх соответственно. Можно также перейти на страницу вниз, нажав клавишу пробел (Space).
Дополнительно, для перехода на страницу вниз или вверх могут помочь клавиши PgUp (переход вверх) и PgDn (переход вниз). Для выхода из режима команды less, нужно нажать клавишу Q.
А вот и еще одна команда, которую можно использовать, чтобы быстро посмотреть файл, а также не открывать его целиком, что в некоторых ситуациях довольно удобно. В этом случае можно воспользоваться командой head
, которая отображает первые 10 строк файла. Давайте попробуем.
Вводим команду: head .bash_history
Копируем файлы и директории
Давайте рассмотрим, как копировать файлы и директории в Kali Linux.
Это достаточно важная тема, поэтому не пропускайте ее.
Мы откроем графический интерфейс, чтобы вам было хорошо и наглядно видно, что происходит и что мы вообще делаем:
Теперь давайте скопируем файл, который мы уже создавали в предыдущем уроке из директории /tmp
в директорию /Documents
.
Файл, который мы хотим скопировать, будет называться «test», но мы будем использовать Tab для автозаполнения. Так как у нам несколько файлов, то мы нажимаем дважды клавишу «Tab», после ввода команды в терминале: cp / tmp /test
:
Примечательно то, что при нажатии клавиши «Tab» один раз, система просто не поймет, какой файл нам нужен. В нашем случае система сообщает, что есть аж три файла, которые похожи по названию. Мы, для примера, возьмем файл «test3».
Структура команды «cp
» выглядит так: сначала указывается сама команда, затем файл, который мы хотим скопировать, и после этого путь, куда мы хотим скопировать этот файл.
Давайте скопируем файл test3
из директории /tmp
в директорию /Documents
. Сделаем мы это не просто так, а заведомо укажем неправильный регистр в записи к пути в директорию /Documents
. Это выглядит вот так:
Обратите внимание на изображение выше, в частности на графический интерфейс. Для наглядности мы выделили этот файл. Иными словами, мы не добились того, чего изначально хотели. Можно проверить это в терминале и еще раз убедиться:
Получилось, что мы неправильно написали путь, куда нужно было скопировать файл «test3», так как в директории нужно было указать первую заглавную букву «D» — / Documents. Мы же написали прописную букву, и команда «cp» поняла, что нужно скопировать содержимое файла «test3», в новый файл «documents».
Теперь файл «test3», и «documents» содержит одну и ту же информацию. Кстати, в Windows можно делать такие же манипуляции с файлами.
Давайте теперь все сделаем правильно. Пропишем в терминале: cp / tmp / test3 Documents/
:
✅ Как видите, в итоге мы добились того, чего хотели и команда выполнена правильно.
Теперь предположим, что мы хотим скопировать файл из одной директории в другую, но назвать конечный файл мы хотим по-другому.
Это достаточно просто реализовать, к примеру, написав такую команду: cp /tmp/test3 Documents/test4
:
Просмотрим содержимое директории /tmp
. Как вы помните, в ней находится директория «test1
», в которой находится директория «test2
»:
Задача у нас будет следующая: необходимо скопировать данные директории «test1
» и «test2
» в директорию «Documents
».
Это делается с помощью одной команды «cp
» и опции «-r
», которая означает рекурсивное копирование.
Вводим в терминале команду: cp -r /tmp/test1 Documents/
:
Предположим, что мы хотим скопировать директорию «test1
» под другим названием. Это довольно легко сделать, указав любое название.
Напишем в терминале команду: cp -r /tmp/test1 Documents/ test5
:
Например, в Windows, когда мы копируем одинаковые файлы, мы имеем ввиду одинаковое название, то система либо переименовывает данные файлы, либо спрашивает, хотим ли мы перезаписать их.
В Linux же, по-умолчанию, файл перезаписывается. Для примера, давайте скопируем файл, который уже находится в директории /Documents
.
Например, файл «test3
». Система даже не уведомит меня о том, что будет осуществляться перезапись. Введем команду в терминале: cp / tmp/test3 Documents/
:
Чтобы действие перезаписи изменить, нужно использовать опцию «-i
» — interactive.
Если мы выполним ту же команду, что и в прошлом примере, но с опцией «-i
», то система спросит нас, хотим ли мы перезаписать данный файл. Давайте посмотрим наглядно — вводим ту же команду в терминале, но с опцией «-i
», после команды «cp
»: