# Практика 2. Атака человек-посередине на SSH.
В качестве машины атакующего будем использовать Kali Linux. Там уже предустановленны необходимые программы tshark, ettercap, arpspoof, nmap и iptables.
Поэтому устанавливаем оставшиеся зависимости и SSH MITM следующим образом:




Запускаем скрипт `JoesAwesomeSSHMITMVictimFinder.py` на интерфейсе eth1 и в качестве блока указываем 255 IP-адресов нашей локальной сети. У скрипта есть и другие опции, например, можно указать IP-адреса для исключения:
`sudo ./JoesAwesomeSSHMITMVictimFinder.py --interface eth1 --block-size 255`
```
Кнопки интерактивного меню:
[a] включает агрессивный режим (спуфятся все устройства назначения,
а не только шлюз)
[d] включение режима отладки (самая большая подробность вывода)
[v] включение вербального режима (средняя подробность вывода)
[p] напечатать статус
[h] напечатать меню
[q] выйти из программы и аккуратно прекратить спуфинг
```
В этот момент подключаемся из корневой системы к ещё одной виртуалке на Linux по SSH. Отоюражается подключение:

В этой информации нас в первую очередь интересует адрес клиента (192.168.1.53), а не сервера. Именно в отношении этого клиента мы будет вновь выполнять атаку ARP спуфинга и пытаться перехватить SSH сессию.
После того, как мы завершили начальную установку и нашли список потенциальных жертв, выполним от root скрипт start.sh:

Запустим ARP спуфинг цели. Выполним атаку спуфинга с помощью arpspoof в отношении целевых IP:

Теперь возвращаемся на компьютер жертвы и пытаемся вновь зайти на сервер по SSH. Протокол SSH имеет встроенную защиту от реализуемого сценария атаки — он сохраняет некий отпечаток сервера и в случае, если отпечаток меняется, выдаёт следующее предупреждение:

Нужно найти файл known_host


И после удаления слепка можно пробовать подключаться ещё раз:

Далее на дополнительном терминале мы запускаем просмотр изменений лог файла auth.log:
`tail -f /var/log/auth.log` - так проще мониторить изменения, что не заходить и не проверять постоянно, видим, что у нас появилась запись о перехвате подключения по SSH, также видим IP-адрес, логин и пароль во время подключения.

Если мы будем выходить из сессии и заходить по SSH, то каждый раз будет осуществляться перехват и мы будем видеть IP-адрес креды доступа:

