• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

Статья SSH man-in-the-middle tool

Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
vertigo.png

Счастлив приветствовать Форумчан,Друзей,Гостей и тех,кто следит за пульсом ИБ.
Сегодня хотел бы рассмотреть с вами инструмент для перехвата 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!







 
Последнее редактирование:
D

disconnekt

Спасибо! То что искал, и не пришлось долго гуглить:)
 
  • Нравится
Реакции: Vertigo
I

Inject0r

Пожалуй самая полезная программка за август)
JoesAwesomeSSHMITMVictimFinder.py на продолжительное время лучше не запускать, работает как DDoS, глушит все соединения ssh и не дает создать новые.

Не совсем понятно для чего нужно ssh -p 2222 valid_user_on_debug_host@localhost
 
  • Нравится
Реакции: Vertigo
Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
Пожалуй самая полезная программка за август)
JoesAwesomeSSHMITMVictimFinder.py на продолжительное время лучше не запускать, работает как DDoS, глушит все соединения ssh и не дает создать новые.Не совсем понятно для чего нужно ssh -p 2222 valid_user_on_debug_host@localhost
Да,об отказе обслуживания предупреждается в описании.
Команда скорее приведена ,как алгоритм.
Хотел дополнить тему антиподом,но раз уж написано Вами сообщение,то приведу ссылку здесь

А то всё атаки, а защита тоже должна как бы не дремать
Это утилита ,которая находит соединения ssh на наших машинах и просто убивает их процессы.
Отличная защита от такого рода вторжений.
 
  • Нравится
Реакции: Breed и Inject0r
I

Inject0r

Отличная защита от такого рода вторжений.
Если есть в сети есть коммутаторы Cisco, то тогда лучше вообще полностью защитить сеть от ARP-спуфинга, тогда и плагины не потребуются
В принципе такую функцию на домашних маршрутизаторах даже встречал.
[doublepost=1502647960,1502640429][/doublepost]
Хотел дополнить тему антиподом,но раз уж написано Вами сообщение,то приведу ссылку здесь
Этот скрипт бесполезен по 2 причинам:

1. Он написан для машины на каком-то испанском языке. Если его запустить на англоязычной, то он будет работать некорректно, так как скрипт активно работает с выводом команд на испанском и использует отфильтрованные данные в качестве параметров команд.

2. Даже если скрипт адаптировать к английскому языку, то он не будет универсальным. Так как вывод команд на разных платформах отличается, и по вышеописанной причине опять скрипт не будет работать. Его нужно подгонять под каждую платформу индивидуально.
 
  • Нравится
Реакции: Vertigo
Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
1. Он написан для машины на каком-то испанском языке.
2. Даже если скрипт адаптировать к английскому языку, то он не будет универсальным.
Не соглашусь с Вами. Написан инструмент на языке python.
Описательная часть в конфигах и остальное на английском.Работает корректно всё.
В этом можно убедиться,посетив страницу с его кодом и конфигурационными файлами.
 
I

Inject0r

Не соглашусь с Вами. Написан инструмент на языке python.
Описательная часть в конфигах и остальное на английском.Работает корректно всё.
В этом можно убедиться,посетив страницу с его кодом и конфигурационными файлами.
Скрипт на bash написан, я про IntruDec.sh
Из шапки скрипт работает как положено.
 
  • Нравится
Реакции: Vertigo
Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
Скрипт на bash написан, я про IntruDec.sh
Понял наконец-то,прошу прощения. Есть такое в этом скрипте.
В моём терминале он информацию выводит на русском.Но такое чувство,что работает криво.
 
I

Inject0r

Понял наконец-то,прошу прощения. Есть такое в этом скрипте.
В моём терминале он информацию выводит на русском.Но такое чувство,что работает криво.
Он не работает у тебя на все 100%. Потому что независимо от количестве ssh-сессий переменная num_usuario получает неправильное значение и условие if сразу уходит в раздел else и блок с завершением ssh подключений просто никогда не выполняется. А все потому, что значение переменной фильтруется грепом из вывода команды who -q с использованием испанских слов. Этот скрипт просто как концепт, под каждую платформу его нужно пилить индивидуально.
 
  • Нравится
Реакции: Vertigo
Wise

Wise

Active member
19.01.2018
31
9
Bitmask установил затем заново.
Доброго всем вечерка. Искал по форуму вой вопрос, но так и не нашел. По устанавливал на Kali Bitmask. А после запуска, появляется его окно авторизации и на этом все. Не какие кнопки не нажимаюся, как тольк оможно ввести данные авторизации и саму программу в треер свернуть. Кто может скачать, в чем может быть проблема, что не так?
 
Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
Доброго всем вечерка. Искал по форуму вой вопрос, но так и не нашел.
Bitmask убрали из репозиториев Kali Linux .И установить как ранее не получится.
Можно попробовать добавить отдельный репозиторий.
Но у меня не всё-специально для Вас выкладываю рабочее решение по установке Bitmask.
Сделал я это на Kali Linux вчера в 64-битовой версии.

1 ) Проверим зависимости
Код:
# apt-get update
# apt install leap-archive-keyring
2) Идём на этот и скачиваем в самом низу архив
3) Проверяем ,чтобы Ваша версия битовой системы совпадала и качаем пакет.
В моём случае это архив Bitmask-Linux64-latest.tar.gz

4) Разархивируем , у Вас получится вот такая директория Bitmask-Linux64-latest
Её Вы можете поместить в какую угодно директорию для удобства,можно в домашнюю.

5) Теперь ,с ней можно работать.Вы в терминале заходите в неё,видите Bitmask-0.10.2
6) Вам надо зайти сюда и видим файл запуска bitmask

7) Запускаем # ./bitmask. Нам откроется абсолютно пустое окно и попросят либо авторизоваться,либо пройти авторизацию.
На этом этапе вся сложность в том,что требуют указать провайдера c доменом (а это только те ,с которыми работает Bitmask).
Многие пишут здесь не то,поэтому и не получается. Т.е. Логин юзера должен выглядеть так Имя@провайдер для bitmask

Лучше пройти регистрацию заново,ничего там не потребуют ни почту и прочее.
Заодно ,проверится имя на существующее.
Теперь список провайдера,нам придётся самим добавить в интерфейс это ,нажав крестик (add)
Поочерёдно вводим после проверки каждого ( не каждый сможет добавиться,но те,что добавились-у вас получилось)
demo.bitmask.net
mail.bitmask.net
calyx.net
codigosur.org
colnodo
riseup.net

8) Теперь,логин сам верно введётся в окне авторизации (если нет,то в конце приписываем провайдера)
9) Ждём,авторизовались-увидели окно install helper-жмякаем. Если всё прекрасно,то жмём появившуюся кнопку Turn on
10) Если видите зелёным подсветки кнопки - всё,Ваш IP меняется.Проверяем.
 
Последнее редактирование:
  • Нравится
Реакции: Wise, OneDollar и n01n02h
Wise

Wise

Active member
19.01.2018
31
9
Спасибо за ответ. Буду пробовать. У меня он только запускался из скачанного архива. О логине - методом тыка, уже давно разобрался. Но за напоминание, так же благодарочка.
 
  • Нравится
Реакции: Vertigo
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб