
# Цель практической работы
Необходимо выполнить подбор логина и пароля для развёрнутого SSH-сервера с помощью инструмента под названием SSHprank. Предварительно составить словари с предполагаемыми логинами и паролями с помощью pwdlogy и crunch. Также, необходимо изучить как утилита masscan работает совместно с утилитой nmap.
# 1 Развёртывание SSH-сервера
Запуск машины, на которой будет распалагаться SSH-server. Изначально пробуем скачать метапакет ssh, но в последствии обнаружим, что всё уже скачено. Проверяем статус ssh server – видно, что он работает исправно.

Скачиваем метапакет SSH

Проверяем статус SSH-сервера

Переименование машины с SSH-сервером
Вывод ip адреса машины, для дальнейшего подключения к ней с другой машины.

Вывод ip адреса машины
Далее выполним подключение к SSH-серверу с другой машины(debian@PC1).

Подключение к SSH-серверу
# 2 Установка
Для начала выполним вывод ip адреса машины.

Вывод ip адреса машины debian@PC1
Далее, для дальнейшего удобства выполним подключение к ней с помощью Putty.

Подключение через Putty
Установим пакетный менеджер для третьей версии python.

Установка пакетного менеджера python 3
Переход в директорию с временными файлами и клонирование репозитория с sshprank. Далее просмотрим её содержимое.

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

Установка необходимых пакетов данных
Далее выполним скрипт для просмотра справочной информации про SSHprank.

Вывод справочной информации про SSHprank
# 3. Сканирование
Программа sshprank напрямую не поддерживает диапазоны, хотя чуть позже я покажу, как всё-таки можно указывать подсети для сканирования с помощью sshprank. Поэтому для sshprank нужно создать список хостов.

Создание файла со списком хостов сети.
Сканирование сети по 22 порту, чтобы узнать на каких хостах работает SSH server.

Cканирование своей сети (порт 22)
# 4.1 Составление словарей (Crunch)
Для составления списка паролей и логинов будем использовать утилиту crunch. Для упрощения задачи, предположим, что мы выяснили ФИО предполагаемого user и что пароль состоит только из цифр и предположительно имеет длину 4 цифр.

Генерация предполагаемого списка паролей.

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

Генерация предполагаемого списка логинов

Вывод части информации из файла
# 4.2 Составление словарей (Pwdlogy)
Для составления списка паролей и логинов будем использовать утилиту pwdlogy. Для упрощения задачи, предположим, что мы выяснили ФИО предполагаемого user и что пароль состоит только из цифр и предположительно имеет длину 4 цифр.

Скачивание репозитория pwdlogy
Запишем в keywords предполагаемые цифры которые могут использоваться в пароле. Файлы commonPhase и birthday оставим пустыми.

Запись в файл keywords предполагаемых цифр, используемых в пароле.

Запуск генерации словаря с предполагаемыми паролями.

Просмотр словаря с предполагаемыми паролями gen.txt. Далее переименовываем файл на genParol.txt
Аналогичным образом выполняем действия для составления словаря с предполагаемым логином.

Запись в файл keywords предполагаемых логинов, используемых пользователем

Запуск генерации словаря с предполагаемыми логинами.

Просмотр словаря с предполагаемыми логинами gen.txt. Далее переименовываем файл на genLogin.txt
# 5.1 Подбор логина и пароля к SSH с помощью утилиты (crunch)
Составив словари, с помощью утилит pwdlogy и crunch с предполагаемыми паролями и логинами,выполним запуск SSHprank для одного найденного хоста. Далее для ускорения добавим флаг “-e” для того, чтобы скрипт закончил свою работу после первой успешной авторизации.

Подбор логина и пароля

Просмотр файла, в который записываются подобранный логин и пароль.
# 5.2 Подбор логина и пароля к SSH с помощью утилиты (Pwdlogy)
Аналогичным образом выполним все те же действия, но уже для словарей pwdlogy.

Подбор пароля и логина. Просмотр файла, в который записываются подобранный логин и пароль.
# 6. MASSCAN
Перейдем к сканированию сети с помощью массового сканера IP портов. Для выполнения данной работы нам необходимо установить утилиту masscan и все необходимые пакеты для её исправной работы.

Обновление базы данных пакетов

Установка масскан(уже был установлен)

Установка необходимых пакетов для работы masscan
После выполнения сканирования сети, увидим, что на SSH-сервере утилита обнаружила два открытых порта.

Результат сканирования портов
# 7. Masscan совместно с nmap
В данном пункте практической работы, нам необходимо произвести сканирование при помощи masscan совместно с Nmap 10 различными аргументами.
Флаг --ttl - Установить время-жизни пакета.

Флаг -iL - Задаёт адреса, которые нужно просканировать(файл hosts.txt)

Флаг -max-rate - Отправлять пакеты не быстрее чем <число> в секунду

Флаг -vv - Увеличение уровня вербальности (используйте -vv/-vvv или более для увеличения эффекта)

Флаг --packet-trace - Показать все отправленные и полученные пакеты


Флаг -oX - Вывод сканирования в файл Список XML формат

Флаг -e - Использовать указанный интерфейс

Флаг --connection-timeout - Время в секундах истечения времени TCP подключения при ожидании данных баннера с порта.

Флаг -g - Использовать данный номер порта (Подмена порта при сканировании)

Флаг -S -Подмена ip адреса

Вот несколько функций использования masscan совместно с nmap. Более подробный список всех опций приведен ниже.


# Заключение
Таким образом, в результате выполнения практической работы был развёрнут SSH-сервер.Выполнен подбор логина и пароля для развёрнутого SSH-сервера с помощью инструмента под названием SSHprank. Предварительно составлены словари с предполагаемыми логинами и паролями с помощью pwdlogy и crunch. Также, было изучено как утилита masscan работает совместно с утилитой nmap.