# Практика 2. Атака человек-посередине на SSH. В качестве машины атакующего будем использовать Kali Linux. Там уже предустановленны необходимые программы tshark, ettercap, arpspoof, nmap и iptables. Поэтому устанавливаем оставшиеся зависимости и SSH MITM следующим образом: ![](https://i.imgur.com/zQiXP47.png) ![](https://i.imgur.com/NzuEANF.png) ![](https://i.imgur.com/qdIMNkW.png) ![](https://i.imgur.com/hSEgRYy.png) Запускаем скрипт `JoesAwesomeSSHMITMVictimFinder.py` на интерфейсе eth1 и в качестве блока указываем 255 IP-адресов нашей локальной сети. У скрипта есть и другие опции, например, можно указать IP-адреса для исключения: `sudo ./JoesAwesomeSSHMITMVictimFinder.py --interface eth1 --block-size 255` ``` Кнопки интерактивного меню: [a] включает агрессивный режим (спуфятся все устройства назначения, а не только шлюз) [d] включение режима отладки (самая большая подробность вывода) [v] включение вербального режима (средняя подробность вывода) [p] напечатать статус [h] напечатать меню [q] выйти из программы и аккуратно прекратить спуфинг ``` В этот момент подключаемся из корневой системы к ещё одной виртуалке на Linux по SSH. Отоюражается подключение: ![](https://i.imgur.com/d5z5Mtu.png) В этой информации нас в первую очередь интересует адрес клиента (192.168.1.53), а не сервера. Именно в отношении этого клиента мы будет вновь выполнять атаку ARP спуфинга и пытаться перехватить SSH сессию. После того, как мы завершили начальную установку и нашли список потенциальных жертв, выполним от root скрипт start.sh: ![](https://i.imgur.com/XClGImi.png) Запустим ARP спуфинг цели. Выполним атаку спуфинга с помощью arpspoof в отношении целевых IP: ![](https://i.imgur.com/RtijA5p.png) Теперь возвращаемся на компьютер жертвы и пытаемся вновь зайти на сервер по SSH. Протокол SSH имеет встроенную защиту от реализуемого сценария атаки — он сохраняет некий отпечаток сервера и в случае, если отпечаток меняется, выдаёт следующее предупреждение: ![](https://i.imgur.com/SWUqKwa.png) Нужно найти файл known_host ![](https://i.imgur.com/6ndqgG9.png) ![](https://i.imgur.com/8xtdOr8.png) И после удаления слепка можно пробовать подключаться ещё раз: ![](https://i.imgur.com/xeWhnXw.png) Далее на дополнительном терминале мы запускаем просмотр изменений лог файла auth.log: `tail -f /var/log/auth.log` - так проще мониторить изменения, что не заходить и не проверять постоянно, видим, что у нас появилась запись о перехвате подключения по SSH, также видим IP-адрес, логин и пароль во время подключения. ![](https://i.imgur.com/VsOYDTb.png) Если мы будем выходить из сессии и заходить по SSH, то каждый раз будет осуществляться перехват и мы будем видеть IP-адрес креды доступа: ![](https://i.imgur.com/UvJVZPY.png) ![](https://i.imgur.com/9RAcWzj.png)