SSH-туннелирование при пентесте Windows и Linux

SSH туннелирование пентест Windows Linux

SSH (Secure Shell) — это сетевой протокол, который предоставляет безопасный способ удаленного доступа к компьютерам и другим сетевым устройствам. SSH создает зашифрованный канал для безопасной передачи данных между клиентом и сервером. Мы уже рассказывали про техники туннелирования при пентесте. Давайте продолжим эту тему и рассмотрим использование SSH-туннелирования в пентестах и постэксплуатации.

Еще по теме: Туннелирование при пивотинге

SSH-туннелирование при пентесте и постэксплуатации

Популярность SSH обусловлена следующими факторами:

  • Безопасность. SSH использует современные алгоритмы шифрования для защиты передаваемых данных.
  • Универсальность. SSH используется для решения широкого спектра задач, включая удаленное администрирование, передачу файлов и туннелирование портов.
  • Широкая поддержка. SSH работает с большинством операционных систем, включая Linux, macOS, Windows.
  • Простота использования.

Перенаправление локального порта

SSH Local Port Forwarding — процесс, при котором создается безопасное соединение для перенаправления трафика через SSH-сервер. Работает это следующим образом:

  1. Клиент устанавливает безопасное SSH-соединение с удаленным сервером. Весь трафик, идущий через этот туннель, будет зашифрован.
  2. На клиентском компьютере открывается специальный (локальный) порт.
  3. Весь трафик, отправляемый на этот локальный порт, будет перенаправлен через SSH-туннель на определенный порт на удаленной машине или на другую машину, доступную через эту удаленную машину.

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

Статья в образовательных целях и предназначается для обучения этичных хакеров. При написании статьи использовались личные устройства автора. Использование SSH-тунелей для несанкционированного доступа к чужим сетям без разрешения является незаконным. Ни редакция spy-soft.net, ни автор не несут ответс­твен­ности за ваши действия.

Второй вариант применения — шифрование, которого вы не добьетесь, используя Rinetd (см. Проброс TCP с помощью Rinetd на Kali Linux). Шифрование позволит вам убить сразу двух зайцев. Первый — обход IDS/IPS. Некоторые из них, не имея возможности проверить, что за данные передаются между двумя машинами в сети, просто никак на это не отреагируют, и вы останетесь незамеченным. Второй «заяц» — это приватность. Как уже говорилось, вы должны убедиться в том, что любые получаемые в ходе аудита данные хранятся и передаются максимально безопасным способом. Использование SSH-туннелей позволит решить эту проблему.

Для нашего примера возьмем сценарий, абсолютно идентичный рассмотренному в предыдущем примере, только теперь реализуем перенаправление потока данных через SSH:

Выполнив эту команду на нашем компьютере, мы получим следующее:

  • весь трафик, который пойдет через порт 443, будет перенаправлен на внутренний сервер компании;
  • мы используемый скомпрометированный сервер для доступа к машине, у которой нет соединения с внешним миром;
  • весь трафик шифруется;
  • мы обходим ограничения файервола, используя нестандартный порт для подключения к SSH.
SSH-туннелирование. Перенаправление локального порта
SSH-туннелирование. Перенаправление локального порта

Перенаправление удаленного порта

SSH Remote Port Forwarding — метод, при помощи которого можно перенаправлять трафик с порта на удаленном SSH-сервере на указанный порт на локальной машине (или на другой удаленной машине). Это означает, что все подключения, поступающие на определенный порт на SSH-сервере, будут автоматически перенаправлены через SSH-туннель.

SSH-туннель. Перенаправление удаленного порта
SSH-туннель. Перенаправление удаленного порта

Представьте, что вам удалось получить доступ к удаленному компьютеру, получить хеши паролей, а по ним узнать сами пароли. На компьютере есть VNC-сервер, работающий на порте 5900. Беда в том, что напрямую к данному компьютеру вы подключиться не можете, однако с него можно подключиться к внешним ресурсам, используя порты 80, 443, 25.

Теперь установлено подключение к вашему компьютеру с удаленной машины, и вы без проблем сможете подключиться к VNC-серверу в обход файервола.

Динамическое перенаправление портов

Самая интересная часть — динамическое перенаправление портов, оно позволяет создать на локальном компьютере своего рода прокси-сервер, через который будет осуществляться туннелирование трафика.

Вводные данные немного изменятся. Представьте, что вам удалось взломать сервер, находящийся в сети DMZ, а у него есть доступ к публичной сети через порт 80. Создадим на своем компьютере SOCKS4-прокси, который будет работать с использованием порта 80 и перенаправлять трафик через SSH-туннель к любому из серверов в сети DMZ.

SSH-туннель. Динамическое перенаправление портов
SSH-туннель. Динамическое перенаправление портов

Для этого на своей машине выполним:

Но это еще не все, для выполнения динамического перенаправления нам понадобится вторая утилита — proxychains. Это бесплатная утилита, позволяющая любой программе, работа которой основана на TCP, пересылать свои данные через цепочку прокси-серверов — TOR, SOCKS4, SOCKS5 или HTTPS.

Для работы с нашим туннелем внесем некоторые правки в конфигурационный файл /etc/proxychains.conf:

Теперь все готово. Для примера запустим nmap, который просканирует внутреннюю сеть организации, используя созданный нами туннель и SOCKS4-прокси:

SSH-туннелирование с помощью Plink

После прочтения приведенного выше материала у вас наверняка возник вопрос: а что же делать с Windows-машинами, ведь в современной сети их обычно достаточно много и, учитывая ограниченные права доступа, не так-то просто установить на них SSH-сервер? На выручку приходит plink.

PuTTY Link, или Plink, — консольная утилита, распространяемая вместе с PuTTY (популярный SSH- и Telnet-клиент). Эта утилита предназначена для автоматизации работы с PuTTY и PSCP (PuTTY SCP client), преимущественно в скриптах.

Plink можно использовать для подключения к удаленным серверам и выполнения команд, так же как и в классическом SSH. Однако Plink обладает несколькими ключевыми особенностями:

поскольку Plink создана для Windows, она работает хорошо с другими программами этой операционной системы и может быть использована в командной строке Windows и скриптах PowerShell;
помимо SSH, Plink поддерживает Telnet, Rlogin и протоколы raw TCP.

Предположим, нам удалось проникнуть на машину под управлением Windows 10 и получить обратный шелл; посмотрим, что мы можем сделать дальше.

Первое действие, которое рассматривалось в предыдущей главе, — это передача файла. Второе, что мы должны выполнить, — осуществить поиск портов, через которые возможно подключение.

Предположим, после решения этих двух задач мы поняли, что хотим использовать порт 3389 для подключения к RDP-серверу. Для этого на взломанной машине выполним следующую команду:

Итак, мы применили утилиту Plink для создания SSH-туннеля с использованием протокола Remote Port Forwarding со следующими параметрами:

  • plink.exe — исполняемый файл утилиты Plink;
  • -ssh — использование SSH-протокола для подключения к удаленному серверу;
  • -l root — указание имени пользователя для подключения к удаленному серверу;
  • -pw test1234 — передача пароля для пользователя root;
  • -R 10.83.10.2:1234:127.0.0.1:3389 — указание IP-адреса и порта, на которых будет прослушиваться удаленный сервер; 127.0.0.1:3389 — указание IP-адреса и порта, на которые будет перенаправляться трафик.

Заключение

SSH-туннелирование представляет собой мощный инструмент в арсенале пентестера. Он позволяет обходить ограничения сети, перенаправлять трафик и создавать безопасные каналы связи. Однако необходимо использовать SSH-туннелирование с осторожностью и соблюдением правил. При правильном использовании SSH-туннелирования можно значительно улучшить эффективность.

ПОЛЕЗНЫЕ ССЫЛКИ:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *