# Практика 4
###### tags: `MiSD`, `MIREA`, `OSINT`
## Цель работы
Получить навыки работы с ПО для сканирования сети и брут-форс утилит. Применение ранее полученных навыков по работе с Pwdlogy и crunch.
## Выполнение работы
>Разные скриншоты терминала, так как что-то выполнял из консоли VirtualBox, а что-то из консоли MobaXTerm через SSH, из ВМ неудобно копировать.
### Установка ПО
Установка Python и пакетного менеджера pip на ВМ Ubuntu Server 20.04:
```
sudo apt install python3-pip
git clone https://github.com/noptrix/sshprank
cd sshprank
```
Скриншоты установки:


#### Сервер SSH
В качестве цели для использования утилит использую свой домашний сервер на Ubuntu 22.04. Служба активна, так как постоянно используется в локальной сети:

Проба работы SSHPrank с реальными данными:

Для наглядности добавлю в словари перебора реальные данные для входа на сервер.
Работа sshprank в Verbose-режим (с отображением логов):

Как можно заметить, логин и пароль были выявлены.

Сканирую домашнюю сеть на наличие открытых портов SSH, можно увидеть мой сервер и данную ВМ:

Просканирую все открытые порты на сервере:

Обнаружены все открытые порты на моем домашнем сервере. Здесь большая часть это docker-контейнеры, есть smb, http и https для доступа к контейнерам по reverse-proxy из внешней сети.
Сканирование сети на наличие открытых портов 22,80,2222,8080:

#### Masscan с NMAP
Для просмотра всех доступных nmap-совместимых команд:
```
masscan --nmap
```
Также есть [Инструкция](https://github.com/robertdavidgraham/masscan)
Несколько примеров выполняемых команд:
1. сканирование 80 портов всех устройств домашней сети
```
sudo masscan -p80 192.168.31.0/24 --rate=5000
```
2. сканирование и поиск баннеров
```
sudo masscan --banners --ports 0-65535 192.168.31.228
```
3. использование определенного сетевого интерфейса
```
sudo masscan -e enp0s3 --ports 0-65535 192.168.31.228
```
4. показывать только открытые порты
```
sudo masscan --open --ports 0-65535 192.168.31.228
```
5. демонстрировать все отправленные и полученные пакеты
```
sudo masscan --packet-trace --ports 0-65535 192.168.31.228
```
6. установить произвольные TTL на пакеты
```
sudo masscan --ttl 60 --ports 0-65535 192.168.31.228
```
7. изменить IP-адрес отправителя
```
sudo masscan --source-ip 192.168.31.230 --ports 0-65535 192.168.31.228
```
8. исключить адрес(а) из выборки
```
sudo masscan --exclude 192.168.31.228 --ports 0-65535 192.168.31.0/24 --rate=500000
```
9. изменить порт отправки
```
sudo masscan --source-port 8080 --ports 0-65535 192.168.31.0/24
```
10. сохранять результаты поиска в файл logs.txt
```
sudo masscan --ports 0-65535 192.168.31.0/24 --output-filename logs.txt
```
### Ответы на вопросы
1. **Что такое SSHPrank?**
Утилита для перебора и, соответсвенно, взлома SSH.
2. **Какие основные функции SSHPrank?**
Перебор по адресам, по учетным данным, поиск открытых SSH портов и их доступности, логирование и сохранение найденных портов в любом статусе.
3. **Как установить SSHPrank на Linux?**
С помощью менеджера пакетов Python.
4. **Как создать файл конфигурации для SSHPrank?**
Можно создать словари учетных данных паролей и логинов и разместить в директории с исполняемым файлом, затем указать с флагами -u -p.
5. **Как запустить SSHPrank в интерактивном режиме?**
С помощью режима Verbose (-v).
6. **Как использовать ключ -s для атаки на сервер SSH?**
Ключ -s устанавливает число потоков для параллельного взлома службы
7. **Как использовать ключ -r для атаки на список IP-адресов?**
Генерирует список случайных адресов и пытается их взломать.
`./sshprank.py -r 10 -m!`
8. **Как использовать ключ -I для чтения списка IP-адресов из файла?**
`./sshprank -l sshds.txt -u admin -P pass.txt`
9. **Какие параметры можно использовать в файле конфигурации SSHPrank?**
Можно указывать списки паролей и логинов, их комбинаций. С помощью `-C` можно также исполнять команды по списку.
10. **Какие риски существуют при использовании SSHPrank для атаки на сервер SSH?**
Получить блокировку по количесвту неудачных входов на свой адрес. Спровоцировать смену учетных данных на хосте. Риск быть обнаруженым.