July 5, 2023

Лекция 2

Узнаем:

1) Что такое текстовый редактор nano.
2) Как установить текстовый редактор nano.
3) Как открыть текстовый файл с помощью редактора nano.
4) Как работать с горячими клавишами в редакторе nano.
5) Как посмотреть справку редактора nano.
6) Что такое сценарии оболочки.
7) Шебанг и для чего он нужен.
8) Для чего нужна команда echo.
9) Для чего нужна команда read.
10) Что такое nmap.
11) Для чего нужна команда grep.
12) Как написать сканер портов.
13) Что такое атрибуты и права.
14) Для чего нужна команда chmod.
15) Как дать файлу права на запуск.
16) Какие существуют права.
17) Для чего нужна команда alias.
18) Как создать свой собственный alias.
19) Откуда берутся команды в Linux.
20) Что такое GitHub.
21) Как искать инструменты на GitHub.
22) Как устанавливать инструменты с GitHub.
23) Как пользоваться инструментами с GitHub.
24) Как зарабатывают сайты на бесплатных инструментах.
25) Какие инструменты есть у Kali Linux в меню приложений.

Итог:

На этой лекции мы научимся работать в текстовом редакторе nano, а также писать сценарии оболочки. После этого мы напишем скрипт для скана портов. Познакомимся с GitHub, узнаем как искать на нём нужные нам инструменты, устанавливать их и использовать. Посмотрим какие есть разделы в меню приложений Kali Linux и разберёмся для каких целей предназначены программы оттуда.

Для начала рассмотрим как редактировать текстовые файлы и добавлять в них текст. Для этого мы воспользуемся инструментом под названием nano и рассмотрим его основные команды. Установить его можно следующей командой:
sudo apt install nano

Вы спросите зачем это нужно?

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

Установите его себе в Kali.

Иногда вы можете встретить довольно старые версии систем в которых нет nano. Если там нет nano, то можно использовать pico. К тому же существует сторонние разработки которые импортируют nano, vi, vim и emacs.

Nano это самый простой редактор, но он не такой продвинутый как vi, vim, и emacs. Сейчас мы не будем рассматривать vi, vim, и emacs. Для новичков nano будет более чем достаточно. Уже позже, если вам будет интересно, то вы можете изучить остальные редакторы самостоятельно и выбрать какой из них вам наиболее удобен.

Откройте терминал. Зайдите с помощью него в каталог Загрузки и создайте текстовый файл Пароли. Эти команды я вам показывала в предыдущей лекции.

cd Загрузки
touch Пароли

Теперь откроем текстовый файл пароли с помощью редактора nano:
nano Пароли

Таким образом у меня открывается файл:

Внизу есть несколько символов ^:

Символ ^ означает клавишу CTRL.

Например, чтобы вызвать справку, мне нужно нажать CTRL + G.

Нажмём CRTL + G и откроем справку:

Справка намного длинее, чтобы пролистать ниже, то просто жмите стрелочку вниз. Она расположена чуть левее и нижу клавиши Enter.

В справке как раз написано, что означает символ ^, сказано, что он соответствует клавиши CTRL:

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

Чтобы выйти из меню справки используйте хоткей указанный слева внизу:

CTRL + X

Нажимаю CTRL + X возвращаюсь в открытый файл Пароли в nano. Если же нажать CTRL + X ещё раз, то я полностью выйду из nano:

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

Он лишь откроется, но создан полностью не будет. Его нужно будет сохранить после редактирования.

Напишем в нём какой-нибудь текст. Например:

Внизу есть команда Записать:

В nano это означает сохранить.

Для этого нажимаем CTRL + O.

И как видите внизу появилось сообщение, что текст будет сохранён в файле с названием Текстовик:

При желании в этой строке можно изменить название файла, но я не буду сейчас этого делать.

Далее нажимаем Enter и появится новое сообщение:

Записана одна строка.

Теперь нажимаем CTRL + X, чтобы выйти:

Выполним ls:

Чтобы посмотреть содержимое текстового файла выполняем команду cat, с ней мы уже познакомились на прошлой лекции:
cat Текстовик

Как видите нам вывело строек, которую я сохранила в текстовый файл.

Мы научились работать в редакторе nano.

Теперь поговорим о сценариях.

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

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

Я попытаюсь объяснить вам базовые основы написания таких сценариев на конкретном примере. На первый взгляд это может показаться очень сложным, но если понять основную концепцию и разобраться в синтаксисе, то можно создавать вполне толковые вещи.

В принципе можно всё делать ручками из терминала, но когда, например, одну и ту же задачу нужно повторить много раз, то гораздо удобнее и быстрее набросать сценарий и автоматизировать весь процесс.

И вот как раз в этом нет ничего сложного.

Давайте для примера создадим сценарий который будет сканировать подсеть в поисках какого-нибудь открытого порта и выводить нам результаты в отдельный файл.

Откроем nano и создадим текстовый файл Сценарий:
nano Сценарий

Любой сценарий начинается с ввода символов #!:

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

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

Это скажет системе что мы хотим использовать интерпретатор оболочки zsh.

Далее переходим к самому сценарию. Начнём:

Команда echo выводит на экран наше сообщение. То есть мы предложили пользователю ввести интересующую его подсеть.

Теперь нам надо каким-то способом сохранить данные которые пользователь на введёт:

Для этого мы используем команду read. Команда read поместит введённые пользователем данные в переменную. Соответственно переменную мы так и назовём "Подсеть". Говоря простыми словами переменная это область память в которой мы можем хранить какие-то данные.

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

Таким образом пользователь сможет ввести порт который хочет отыскать. И как в предыдущем случае помещаем его в переменную. Переменную назовём "Порт".

После того как данные будут получены, то нам нужно будет запустить сканирование подсети. Для этого мы будем использовать утилиту nmap. Она уже предустановлено в Kali Linux.

Здесь точно также как и в терминале утилита вызывается её названием:

Теперь нам нужно дать утилите порт который надо сканировать:

Так как нам надо будет взять порт из значения которое будет храниться в переменной, то нам нужно использовать значок $ и теперь ввести название переменной "Порт". Значок $ расположен на цифре 4. (Shift + 4) на английской раскладке.

Дальше мы указываем интересующие нас параметры nmap:

Параметры nmap мы рассмотрим с вами позже, пока что просто показываю пример.

И теперь мы должны также по аналогии указать адрес подсети:

Соответственно значок $ и переменная "Подсеть".

Неплохо было бы сохранить все наши результаты:

Для того чтобы вывести все результаты в отдельный файл мы используем команду -oG и назовём наш файл "Результаты".

То есть мы дали команду создать файл Результаты и вывести туда результат сканирования.

Но из этой команды выходит, что в файл Результаты сохраняться вообще все данные которые получит утилита nmap. И раз уж мы уже заморочились с написанием сценария, то неплохо было бы отфильтровать эти данные и оставить только те, которые нам нужны.

Давайте скажем нашей оболочке что она должна делать:

Для начала она должна вывести файл "Результаты", это делается уже на известной командой cat.

После чего данные из файла Результаты нужно отфильтровать:

Сделать это можно командой grep.

Так нас интересует открытый порт, то соответственно отфильтровать нужно те строки, в которых будет написано open и после чего сохранить полученный результат в новый файл, назовём его Новые_Результаты. Символ | является разделителем (Shift + \ на английской раскладке).

И финалом будет вывод конечного результата:

Теперь мы можем смело сохранить наш файлик:

И вот мы его видим:

Графическая оболочка:

Можете зайти в папку Загрузки в графическом интерфейсе и посмотреть.

Ещё один маленький нюанс на который вы должны обратить внимание, если вывести наш файл с помощью ls - l, то мы увидим, что наш файл Сценарий имеет атрибуты -rw и -r, это значит что мы обладаем правом записи и чтения, но не обладаем правом запуска. Право запуска это атрибут x.

Это очень легко исправить:
chmod 755 Сценарий

Давайте проверим:
ls -l

Как видите появился атрибут x, это значит что мы имеет право запускать наш сценарий.

Подробнее о том, что такое 755 и правах можете почитать тут после лекции:

https://goldbusinessnet.com/dvizhok-wordpress/chmod-prava-dostupa-k-fajlam/

Давайте запустим наш скрипт и проверим как он работает:
./Сценарий

Он нам предлагает ввести адрес подсети. Я введу вообще рандомный адрес, так как я сейчас никого сканировать и взламывать не собираюсь.

Далее предлагает ввести адрес порта:

Я ввела также рандомный порт.

Я ввела рандомные значения, просто в качестве примера.

У нас началась сканирование:

Сканирование продолжалось 97 секунд, после чего я получила результат:

Вот так выглядит наш написанный сценарий:

#!/bin/zsh

echo "Введите подсеть:"
read Подсеть

echo "Введите порт:"
read Порт

nmap -p $Порт -sT $Подсеть -oG Результаты cat Результаты | grep open > Новые_Результаты

cat Новые_результаты

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

Разберём команду alias и посмотрим на специальный файл настроек нашего шелла который называется .zshrc.

Для начала предлагаю посмотреть что у нас есть в домашней директории:

Перейдите в домашнюю директорию.

Для тех кто забыл:
cd ~

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

И в нашем случае шелл это программа zsh, а файл с настройками для этого шелла называется .zshrc и находится он в нашей домашней директории.

Соответственно если мы сейчас откроем этот файл в текстовом редакторе nano, то мы увидим все настройки которые заданы в этом файл:

nano .zshrc
а не .zsh_history

Опечаталась

Эти настройки написаны на языке понятным нашему шеллу, пугаться пока что не стоит.

Мы не будем сейчас разбирать все те команды которые там написаны. Посмотрим только на одну из них.

Пролистываем вниз и находим довольно простую команду которая называется alias:

Можете нажать CTRL + W и вписать её туда, это поиска по файлу в редакторе nano.

alias это команда, которая позволяет нам задать псевдонимы для других команд.

Тут нам показан пример в качестве псевдонима II который является короткой версией команды ls -l, то есть если мы в терминале напишем II, то он сошлётся на команду -ls -l и покажет нам её выполнение.

Как вы наверняка из этого поняли, тут мы можем задать свои собственные alias которые будут полезны именно нам, именно же этот alias был автоматически добавлен туда при установке нашей Kali Linux.

Давайте добавим наш собственный alias, как вы помните, то я писала в первой лекции, что при каждом включении Kali Linux, нам нужно его обязательно обновлять, делается это командами:
sudo apt update
sudo apt dist upgrade

Создадим из них alias:

&& означает "и"

Сохраняем:

И выходим:

Давайте теперь попробуем выполнить эту команду:
Обновить

И как мы видим наша команда успешно работает, она обновила списки пакетов и нашу систему:

У кого не работает команда, то видимо кириллицей нельзя больше создавать команды. Проделайте всё тоже самое ещё раз в nano, но вместо Обновить впишите туда Obnovit, либо другое слово на которое вы хотите создать свою команду. Я подожду 3 минуты.

У меня просто стоит предыдущая версия Kali, там ещё это можно было делать.

Вижу, что у многих почему то не получается. Вы файл перезаписали, верно?

Сделайте вот так, сохраните файл CTRL + O перезапустите терминал.

Вот таким образом работает alias в Kali Linux. Это довольно мощный инструмент, который я вам настоятельно рекомендую использовать как можно чаще. Это сэконимит вам огромное количество времени которое вы тратите чтобы набирать длинные команды на клавиатуре.

У многих из вас возник, а откуда вообще берутся команды для терминала в Kali Linux?

Дело в том, что в Kali Linux практически все команды являются такими мини маленькими программами.

Как например в Windows есть файлы с расширением .exe, то можно представить что команда ls это такой исполняемый файл ls.exe

только в Kali Linux исполняемые файлы вовсе не обязаны иметь расширение, они могут просто называется обычным образом, например ls.

Понятное дело, что эти файлы должны где-то находиться. Эти файлы находятся в каталоге /bin. Если мы наберём команду ls, то мы увидим содержимое:
ls /bin

Здесь мы пролистаем немного вниз и как раз найдём команду ls:

Это исполняемый файл. Вот так он выглядит в графическом интерфейсе:

Как только вы набираете команду в терминале, то она начинает искать её в каталоге /bin и ещё в нескольких каталогах которые находятся в переменной $PATH.

Если вы правильно пишите команду, то Kali Linux автоматически начинает искать её в папке /bin, и запускает программу если он её находит, а если например вы ошиблись в написании название команды, вместо ls случайно набрали ls1, то Kali Linux выдаст вам сообщение что данная команда не найдена:

Есть множество полезных инструментов и утилит написанных различными разработчиками на github.com

Давайте разберём как устанавливать эти инструменты, где их искать и как ими пользоваться.

Заходим на сайт. Сверху будет поиск:

Вводим туда какой инструмент нам нужен. Например вводим "Kali Linux" и жмём Enter. Нам находит 2948 репозиторией:

Или например нам нужны репозитории OSINT (по сетевой разведке). Вводим в поиск "OSINT" и нам находит:

Думаю суть вы уловили.

Давайте для примера покажу вам несколько репозиториев. Репозиторий https://github.com/snooppr/snoop, инструмент для разведки:

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

Откройте её.

https://drive.google.com/file/d/12DzAQMgTcgeG-zJrfDxpUbFjlXcBq5ih/view

Прочитаем на 3-ей странице что делает этот инструмент:

Переходим на 8 страницу и смотрим как его установить:

Устанавливаем:
git clone https://github.com/snooppr/snoop

Да, кстати, кто до сих пор сидит с телефона в телеграмме, а с компьютера на Kali и кому неудобно постоянно всё переписывать. Установить телеграмм себе на Kali.

https://desktop.telegram.org/

Ничего сложного нет. Просто качайте и открывайте как на Windows.

Устанавливаем зависимости для snoop:
python3 -m pip install -r requirements.txt

Перед этим не забудьте перейти в папку с snoop:
cd snoop

А далее уже устанавливайте зависимости

Собственно всё. Теперь можно работать с этим репозиторием. В качестве примера введу свой никнейм:
python3 snoop.py alinatwosouls

Результат:

Ну и так далее. Все скрины вставлять не буду.

Конечный результат:

Данный инструмент ещё 1 инструмент:э

Он также находится в разделе OSINT и предназначен для сетевой разведки:

https://github.com/Datalux/Osintgram

Посмотрим инструкцию к программе. Она находится в readme.md

Установим:

git clone https://github.com/Datalux/Osintgram
cd Osintgram
pip install -r requirements.txt

Перед этим не забудьте вернуться в домашнюю директорию:
cd ~

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

Прежде чем запускать утилиту нужно добавить данные своего аккаунта. Сделать это нужно в файле credentials.ini, который лежит в каталоге config, в папке с программой. Для этого у вас должен быть какой-нибудь левый аккаунт инстаграма, купить и найти его можно рублей за 10 на каком-нибудь форуме или поискать в гугле. Сейчас у вас не установлен vpn на Linux и если вы из РФ, то вас не пустит. Поэтому для вас показываю пока что в качестве примера. Попробуйте позже как установите себе VPN.

Помните как запускать текстовые файлы и редактировать? Правильно, используем nano:

cd config
ls
nano credentials.ini

Вводим там логин и пароль от аккаунта инстаграм. Я думаю, что акцентировать внимание на том, что нужно использовать левый аккаунт не стоит, вы и так это должны понимать, после "=" не забываем проблем:

Сохраняем:

CTRL + O и выходим CRTL + X

Теперь можно переходить непосредственно к использованию программы Osintgram. При первом запуске логично посмотреть справку:
python3 main.py -h

Переведу для вас:

Использование: main.py [-h] [-C] [-j] [-f] [-c COMMAND] [-o OUTPUT] id

Osintgram - это инструмент OSINT в Instagram. Он предлагает интерактивную оболочку для выполнения анализа аккаунта Instagram любого пользователя по его нику.

Обязательные аргументы:
id - имя пользователя

Необязательные аргументы:
-h, --help - показать это сообщение и выйти.
-C, --cookies - очистить предыдущие cookies.
-j, --json - сохранить результат в файл JSON.
-f, --file - сохранить результат в файл.
-c COMMAND, --command COMMAND - запустить в однокомандном режиме и выполнить предоставленную команду.
-o OUTPUT, --output OUTPUT - где хранить фотографии.

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

После чего мы сможем продолжить.

Так и делаем:
python3 main.py никнейм_цели

В качестве примера возьму рандомный инстаграм одного художника:
https://www.instagram.com/smugone/
python3 main.py smugone

Вылезет такое окошко:

После успешного логина, видим список команд для сохранения результатов и приглашение к вводу. Чтобы увидеть команды для анализа профиля вводим: list

Как видите, возможности у Osintgram немаленькие. Давайте, для начала, глянем общую информацию о нашей цели. Вводим команду: info.

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

Вводим fwingsnumber. И Osintgram спросит хотим ли мы получить все возможные телефоны? Ясное дело, что в большинстве ситуаций нужно забирать все, но я, в демонстрационных целях ограничусь десятком.

Как видите мы получили вполне конкретный результат. Давай тоже самое но с электронными почтами. Вводим: fwingsemail.

И здесь Osintgram отработал не менее успешно. Остальные команды работают ровно по такому же принципу.

Давайте рассмотрим ещё один инструмент, Instaloader:
https://github.com/instaloader/instaloader

Это такая штука которая умеет выгружать из целевого профиля Instagram фото и видео, а также подписи и сопутствующую информацию. Основная особенность его в том, что есть довольно удобная возможность обновлять информацию о уже выгруженных профилях.

В Kali Linux - Instaloader можно установить командой:
sudo apt install instaloader

Перед этим опять же не забудьте вернуться в домашнюю директорию:
cd ~

Один из основных плюсов этой утилиты в том что базовый функционал можно использовать не входя в свою учетную запись. Что порой весьма удобно. Без логина в учётку он загрузит фото и видео, описание и некоторые метаданные. А если нужны тэги, геопозиция, сториз и список подписчиков, то придется указать логин и пароль левого аккаунта для авторизации.

В базовом варианте использования достаточно просто указать имя нужного профиля и пойдёт загрузка.
instaloader smugone

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

В домашней директории будет создан каталог с названием анализируемого профиля.

Все данные будут выгружаться именно туда. Помимо перечисленного там будет создан файл id в которых будет записан InstagramID пользователя. Я с трудом представляю для чего он нам может понадобится, но он там есть. Ещё там будет json файл со всеми доступными идентификаторами и параметрами пользователя.

Если нам нужно обновить скачанные данные, то к первоначальной команде просто добавляем параметр -F и запускаем. Instaloader сравнит то что есть у нас и то, что сейчас в профиле. Если информация отличается, то она будет обновлена.

Тут ещё можно добавить, что используя параметр -help, можно посмотреть файл справки. Оно там логически очень понятная. И, используя дополнительные параметры, более точечно отрегулировать что нам нужно.

Например:
instaloader smugone --no-posts --no-pictures -V -G -I имя -p пароль

В этой команде мы задали цель - профиль smugone, --no-posts - дали команду не выкачивать сообщения, командой --no-pictures сказали не скачивать изображения, командой -V сказали не качать видео, а командой -G сказали скачать геотеги. После этого через параметр -l указали название нашего профиля, а после -p указали пароль нашего профиля, чтобы Instaloader мог залогиниться.

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

А ещё есть сайты для анализа профилей Instagram которые, при правильном подходе, могут в этом вопросе помочь. Тут наверное нужно добавить, что ожидать чудес от этих сайтов не нужно.

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

Вот пример такого сайта:
https://www.reviwu.com/

Вводим имя нужного профиля и видим его статистику, а также в удобном представлении все его посты. Изучать профиль здесь намного удобнее чем в самом Instagram. Ну ещё и авторизовываться не нужно, что лично для меня большой плюс, особенно когда нужно быстро что-то глянуть.

https://inflact.com/tools/profile-analyzer/

Этот сайт даёт чуть более расширенный функционал. Если зарегистрироваться можно выгружать результаты в формате xls или csv. Здесь есть четыре вкладки, каждая из которых выполняет отдельную функцию.

PROFILE ANALYZER - получаем статистику профиля. В том числе хештеги, ключевые слова и интересы.

USER SEARCH - позволяет искать профили по заданным параметрам. Таким как подписчики, количество сообщений, пол и категории.

STORY VIEWER - можно смотреть сториз.

WEB VIEWER - можно посмотреть посты нужного профиля. Опять же без входа в свой аккаунт.

https://instaphotomap.com/
Порой крайне удобный ресурс. Вводите нужный профиль и если у него есть геотеги, он покажет эти места на карте.

Ну а мы постепенно приближаемся к финалу этой истории.

Дополнительно отмечу, что я умышленно не упоминала про такие вещи, как попытка восстановления доступа, чтобы узнать несколько цифр телефона. А также проверка профиля по базам утечек.

Я не говорю об этом потому что это действия, которые вы по умолчанию, должны делать увидев чей-то профиль.

Это касается не только Instagram, но и любой другой социальной сети, электронной почты и вообще всего чего угодно, где подобная возможность есть.

Ну, а в качестве вывода скажу, что основная идея которую вы должны были вынести, это то, что любой поиск и деанон в Instagram это процесс творческий.

И тут больше решает ваша внимательная и усидчивость, чем инструмент которым вы будете пользоваться. Инструменты только помогают и экономят время, а всю работу делает ваш мозг.

Также на этом можно неплохо зарабатывать. В качестве примера есть сайт:
https://zengram.ru/instashpion
Месячная подписка там стоит около 890 рублей.

Ребята молодцы. Подключили несколько таких бесплатных инструментов к сайту и зарабатывают сотни тысяч рублей в месяц, причём совершенно законно. Не знающие люди платят.

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

Вообще инструментов во всём мире существуют несколько десятков тысяч. Для абсолютно разных сфер деятельности и конкретных задач. По мере пользования Kali Linux, вы постепенно соберёте свой полезный список.

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

Разберём инструментарий Kali Linux. Я расскажу о самых известных и основных базовых приложениях которые включены в состав данной ОС.

Данная система имеет в себе огромное количество инструментов предназначенных для взлома. Слева вверху у нас вот такая вот иконка:

Нажмите на неё и увидите приложения разбитые по потребностям (также можно открыть эту иконку "флажком", кнопкой между CTRL и ALT):

В данных пунктах собрано практически всё программное обеспечение которое находится в Kali Linux, но не всё. По непонятной мне причине разработчики не включили сюда весь инструментарий Kali.

Если кто работал с предыдущими версиями Kali Linux, то наверняка заметил резкое сокращение количества программного обеспечения. Если в прошлых версиях Kali все установленные утилиты были доступны в меню, то теперь из них меньше половины выведены в меню, и больше половины утилит находится также в Kali, но доступ к ним осуществляется с помощью терминала.

Давайте сейчас немного коснёмся этих разделов, посмотрим что нам предлагает Kali Linux.

Пункт 01. Information Gathering.

Данный пункт можно назвать пунктом разведки. С этого пункта необходимо начинать любое действие направленное на взлом:

В первую очередь любая сетевая атака начинается с разведки. Необходимо собрать информация о жертве.

Дело в том, что если проводить взлом без сбора информации, как многие думают, что запустили какую-нибудь программу, указали в ней что нужно взломать и всё, а она тебе потом выдаст отчёт. К сожалению, всё абсолютно не так, в большинстве случаев сбор информации (разведка) занимает намного больше времени чем сам взлом.

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

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

Но для новичков я бы рекомендовала использовать приложение Zenmap, в Kali по умолчанию его нет, поэтому его нужно установить. Давайте это сделаем.

Заходим на сайт:
https://nmap.org/download.html

Листаем вниз, находим и качаем:

https://nmap.org/dist/zenmap-7.93-1.noarch.rpm

Заходим в каталог Загрузки и смотрим что наш файл скачался:
cd Загрузки
ls

Файл в формате .rmp. Нам надо перевести его в .deb пакет. Для этого устанавливаем программу alien, с помощью неё мы изменим расширение пакета:
sudo apt install alien

Меняем расширение:
sudo alien название_пакета

Теперь можно распаковывать архив:
sudo dpkg -i название_деб_пакета

Теперь нужно установить зависимости. Можете скачать через терминал, либо напрямую по ссылкам.

sudo wget
http://archive.ubuntu/ubuntu/pool/universe/p/pygtk/python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

sudo wget http://azure.archive.ubuntu.com/ubuntu/pool/universe/p/pygobject-2/python-gobject-2_2.28.6-14ubuntu1_amd64.deb

sudo wget http://security.ubuntu.com/ubuntu/pool/universe/p/pycairo/python-cairo_1.16.2-2ubuntu2_amd64.deb

Проверяем что всё скачалось:

Распаковываем все 3 пакета через терминал по очереди.
sudo dpkg -i название_пакета

sudo dpkg -i python-cairo_1.16.2-2ubuntu2_amd64.deb
sudo dpkg -i python-gobject-2_2.28.6-14ubuntu1_amd64.deb
sudo dpkg -i python-gtk2_2.24.0-5.1ubuntu2_amd64.deb

Собственно всё. Теперь мы можем запустить Zenmap:
sudo zenmap

Как видим всё прекрасно запустилось:

Zenmap это тот же nmap, но только с графическим интерфейсом, его визуальная версия. Здесь все настройки как для обезьянки. Можно выбрать список, указать цель, нажать кнопочку, а программа сам подставит нужные параметры:

Пункт 02. Vulnerability Analysis. Анализ уязвимостей:

В данном пункте мы с вами опять же видим утилиту nmap и отдельно заслуживающая внимания утилита nikto - с механикой его работы мы можем ознакомиться на основании данных которые нам предоставит nmap, поэтому пока оставим это, разберём позже.

Пункт 03. Web Application Analysis. Анализ веб приложений:

В данном пункте есть утилита с которой сталкивался каждый человек который хотя бы краем уха слышал по поводу уязвимостей sql, по поводу взлома сайтов и всего прочего. Эта утилита называется sqlmap. Её мы также разберём позже. Для тех, кто первый раз видит это приложение - я скажу так, с помощью него можно произвести раскрутку уязвимостей.

Можно открыть и посмотреть справку:
sqlmap -h

В инструкции видим команду sqlmap --wizard

Давайте сейчас её попробуем:
sqlmap --wizard

После запуска данной команды, система по шагам предложит вам ввести все необходимые параметры, необходимый url цели и так далее.

Ещё в пункте 03 есть утилита uniscan.

Очень часто я слышала вопросы, а как можно просканировать сайт на веб уязвимость с помощью Kali. У многих возникают проблемы с использованием стандартного инструментария, поэтому я сейчас покажу как можно просто, самыми простыми средствами просканировать сайт на уязвимость. Опять же, мы работаем сейчас как обезьянки, мы с вами только учимся.

В новой версии она не установлена по умолчанию. Поэтому установим её самостоятельно:
sudo uniscan

Мы можем воспользоваться справкой по данному приложению и посмотреть, что мы с помощью него можем сделать. Мы можем произвести анализ сайта на уязвимость, построить древо сайта, узнать какие файлы находятся внутри. Но для тех людей, которые первый раз сталкиваются с этим, я бы рекомендовала использовать следующее приложение uniscan-gui.

Это тот же uniscan, только в графическом интерфейсе.

Для того, чтобы программа заработала нам нужно установить xterm:
sudo apt install xterm

Теперь давайте запустим сам uniscan-gui:
sudo uniscan-gui

Это самый простой сканер уязвимостей веб приложений и веб сайтов.

Вам будет просто напросто необходимо ввести сюда нужный сайт, там где у нас пункт url, который вы хотите просканировать на предмет уязвимостей:

В зависимости от объёма, размера и защиты сайта, время сканирования может быть абсолютно разным. То есть, начиная фактически от 5 минут и заканчивая сутками или больше.

Давайте попробуем просканировать scanme.nmap.org

Этот ресурс создали специально для того, чтобы его сканировали новички. Введём ссылку на сайт, поставим все галочки и нажмём Start Scan.

Не забудьте поставить все галочки.

После сканирования нам выдаст много полезной информации.

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

Для того чтобы было после сканирования более читабельно, то можете нажать Open log file:

Откроется вот такое окошко. Листаем и читаем информацию которую мы добыли:

Эта информация нам выдаст если на сайте какие-то sql уязвимости. Она выдаст максимум информации о данном сайте: какие внутри у него находятся файлы - если программа их найдёт и так далее. Я сейчас не буду разбирать всю эту читаемость, потому что мы знакомимся сегодня с программами лишь поверхностно.

Пункт 04. Database Assessment. Это анализ баз данных:

В этом разделе раньше было около 15 приложений, но прочему-то разработчики убрали их из меню быстрого доступа, но в Kali все эти приложения по прежнему остались.

Вы получили доступ к какой-либо базе данных. Например вы её выкачали, но не можете расшифровать. Что вам для этого необходимо? Вы можете воспользоваться различным инструментарием.

Опять же, прошу обратить ваше внимание, sqlmap здесь точно также присутствует, мы его видели в пункте 03 - анализе веб уязвимостей, вы его видим также и на 04 - анализе баз данных.

Вы можете его использовать точно также, если вы не понимаете к примеру как построена база данных на каком-либо ресурсе.

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

Пункт 05. Password Attacks. Атаки по паролям:

Великолепный пункт, который позволяет произвести брутфорс. Брутфорс это подбор пароля.

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

Запустим приложение medusa:
sudo medusa

Нам покажет помощь, что может делать данное приложение.

Данное приложение используется в основном людьми которые торгуют на даркнет форумах ssh туннелей.

Оно используется ими для взлома ssh туннелей.

Фактически один раз настроить приложение в течении буквально 5 минут и после этого запустить, а далее просто раз в сутки приходить и проверять результаты работы данного приложения.

Оно может использоваться для взлома тех же самых RDP доступов, для взлома роутеров, для взлома фактически любых интернет ресурсов в которых используются пароли. При грамотной настройке обеспечивается скорость подбора в среднем на ресурс примерно от 100 до 1000 комбинаций в секунду. Но тут уже опять зависит от ресурса.

Пункт 06. Wireless Attacks. Это атаки с помощью беспроводных Wi-Fi сетей:

Тут я думаю объяснять ничего не нужно, и так всё понятно. На эту тему будет отдельная лекция.

Пункт 07. Reverse Engineering:

Опять же тут приложения не все вынесены в список. Их намного больше в Kali.

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

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

Это приложение раньше было в данном пункте меню, но потом его в поздних версиях почему-то убрали из Kali Linux. Но мы с вами это исправим:

И как видим оно теперь появилось:

Дело в том, что когда я занималась раньше реверс инженерингом приложений, чтобы наработать практику в этой области, то 3 из 5 приложений в Play Market было с вредоносным кодом и они скачаны были мной из топ 100 Play Market.

И ещё, кто владеет android телефоном, не замечали ли вы за своим телефоном, что у него иногда может просто загореться экран? Никакого события, ничего не случилось, телефон просто лежал и у него загорелся экран. Он через несколько секунд потухнет, потом через время опять загорится это как раз один из признаков заражения вашего телефона.

Если у кого то имеются такие симптомы у телефона, то я рекомендую проверить всё программное обеспечение которое у вас установлено там.

Пункт 08. Explotation Tools. Инструменты эксплуатации:

О данном пункте также поговорим в будущем.

Пункт 09. Sniffing and Spofing:

Сейчас мы с вами проведём небольшую практику и небольшой интересный ликбез по поводу того, что можно добиться с помощью данного пункта. Sniffing and Spoffing - дословный перевод его грубо говоря - прослушка и подмена.

Вы об этом 99.9% не знали и вам будет довольно интересно.

Мы видим там утилиту macchanger для смены mac адреса, также тут присутствует утилита ettercap-graphical. В данном случае она у нас предоставлена в графическом, то есть нам для того, чтобы начать наш сниффинг необходимо просто нажать на её иконку и запустить, выбрать интерфейс и пойдёт сниф пакетов, мы их можем записать, посмотреть, изменить.

Здесь также представлено такое приложение как mitm proxy, которое позволяет создать свой proxy сервер для подмены запросов.

Но есть очень интересная утилита, которой здесь нет в списке, но она установлена в Kali и которой я бы сейчас хотела уделить отдельное внимание, данная утилита называется hping3. С помощью данной утилиты вас могут легко подставить, даже если вы ничего не делали.

Давайте посмотрим справку по данной утилите:
hping3 -h

Данную утилите hping3 я бы назвала одной из самых опасных утилит которые находятся в составе Kali Linux.

Давайте утилита позволяет производить подмену ip адреса, но не в привычном понимании как вы могли представить.

Мы сейчас это с вами произведём, но пока мы этого не сделали, то немного ликбеза.

Подмена ip адреса интересует людей ещё с момента возникновения интернета. Для тех кто не знает, то когда интернет появился фактически, то не было никаких привычных нам адресов по типу google.com, yandex.ru и прочих других доменных имён, были всего на всего ip адреса ресурсов.

Когда было немного ip адресов, то было просто запоминать их. Но когда уже количество ресурсов начало расти в геометрической прогрессии и уже запомнить их было невозможно. То есть фактически и разговор например: "Привет, а ты вчера заходил на 178.255.312.16". "Нет, я вчера был на портале 218.15.16."

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

Что такое DNS сервер? Когда вы задаёте запрос, например mail.ru - не вы, не выш браузер не знает по какому ip адресу находится mail.ru, идёт обращение к DNS серверу.

DNS сервер либо знает по какому ip адресу находится доменное имя mail.ru, либо не знает. Если не знает, то он обращается к более вышестоящему DNS серверу или же к корневым DNS серверам которые знают всё.

И в таком случае по вашему запросу mail.ru вам приходит ответ в виде ip адреса куда вы перенаправляетесь.

Но к чему я пишу всё это? Дело в том, что с момента по явления интернета был всегда интересен вопрос подмены (не путать со сменой) ip адресов.

Может ли человек действовать от имени другого ip адреса? И ответ был найден.

Ответ был найден в 1988 или 1989 году, точно не помню. Тогда была сделана первая система подмены ip адреса.

Сейчас мы с вами научимся как можно подменить ip адрес. У ip адреса есть 2 вида подмены.

Первый вид подмены это Blind ip, то есть слепая подмена ip адреса, Blind ip спуфинг. Слепая подмена ip адреса предусматривает возможность отправки пакетов от имени отправки другого ip адреса, но без возможности получения ответа.

Фактически я могу указать любой ip адрес, отправить от его имени пакет. Но ответ придёт на тот адрес, который я фактически подставила, то есть это такая чистая подстава.

Данный вид подмены ip адреса очень хорошо используется у DDos-ов, у людей которые занимаются DDos, то есть например в той же самой атаке DNS amplification.

Про DNS amplification после лекции можете почитать тут:
https://habr.com/ru/articles/51574/

Кто не знает, то я расскажу что это такое, чтобы было более понятно.

Для DDos-a используется всего на всего один сервер, не нужно никакого ботнета, не нужно абсолютно ничего, всего один сервер.

Этот один сервер проводит сканирование диапазонов ip адресов на предмет нахождения на них DNS серверов.

В случае нахождения на них уязвимых DNS серверов, этот сервер отправляет эти DNS серверам запросы, запросы очень маленькие идут, но на этот маленький запрос DNS сервера отвечают большим-большим ответом и поскольку при отправке запроса DNS серверам хакер использует подмену ip адрес на ip адрес жертвы, то вся вот это вот огромная сеть (10, 100, 500 тысяч - миллионы) DNS серверов - они все начинают отправлять ответы на тот ip адрес который указал хакер.

То есть фактически, хакер может с одного сервера сделать атаку примерно (возьмём не сильно умного) 10 гигабит с одного сервера. Можно конечно это увеличить и до 15, и до 20, и до 30 гигабит при желании.

Здесь вот как раз используется подмена ip адреса, то есть хакер использует подмену.

sudo tcpdump