Обход брандмауэров с помощью SSH
Этичный Хакер
SSH - это безопасный протокол, который можно использовать для туннелирования через брандмауэры. Используя SSH, мы можем подключиться к удаленному серверу и туннелировать наш трафик через SSH-соединение. Брандмауэры предназначены для защиты сетей от несанкционированного доступа, но брандмауэр также может блокировать законный трафик, если он неправильно настроен. Это может быть проблемой, когда нам нужно разрешить доступ к определенному приложению или службе. Один из способов обойти эту проблему - обойти брандмауэр с помощью ssh.
Существует несколько способов обхода брандмауэров с использованием SSH:
- Туннелирование SSH: это наиболее распространенный способ обхода брандмауэров.Туннелирование SSH создает безопасное соединение между двумя хостами по небезопасной сети. Это соединение может использоваться для туннелирования трафика через брандмауэр.
- Переадресация портов SSH: это менее распространенный способ обхода брандмауэров, но в некоторых случаях он может быть полезен. Переадресация портов SSH позволяет перенаправлять трафик с одного порта на сервере на другой порт на клиенте. Это можно использовать для обхода брандмауэров, которые блокируют трафик на определенном порту.
- SSH SOCKS прокси: это еще один менее распространенный способ обхода брандмауэров. SSH SOCKS прокси позволяет пересылать трафик через SSH-соединение. Это можно использовать для обхода брандмауэров, которые блокируют трафик на определенном порту.
Шаг для выполнения туннелирования SSH:
Чтобы обойти брандмауэр с помощью SSH-туннелирования, нам нужно будет настроить SSH-сервер на машине, которая находится за пределами брандмауэра. Затем нам нужно будет подключиться к этому серверу с помощью SSH-клиента и перенаправить трафик с клиентской машины на серверную. Например, предположим, что мы хотим обойти брандмауэр, который блокирует весь трафик на порт 80. Мы могли бы настроить SSH-сервер на компьютере с открытым портом 80, а затем подключиться к этому серверу с помощью SSH-клиента. Как только мы подключимся, мы сможем перенаправить трафик с локального компьютера на порт 80 на серверной машине. Это позволило бы нам обойти брандмауэр и получить доступ к веб-сайтам, которые обычно заблокированы.
Теперь мы видим настройку SSH-сервера на компьютере, который находится за пределами брандмауэра.
Шаг 1. Установите программное обеспечение SSH-сервера на компьютер.
- В Windows 11:Перейдите в Настройки> Приложения> Дополнительные функции и нажмите "Просмотреть функции"
- Найдите функцию “OpenSSH server”, выберите ее> установите флажок, нажмите "Далее", а затем нажмите "Установить".
- В Windows 10:Перейдите в Настройки> Приложения> Приложения и функции> Дополнительные функции и нажмите Добавить функцию
- Найдите функцию “OpenSSH server”, разверните функцию> установите флажок и выберите Установка.

Шаг 2. Настройте SSH-сервер на прослушивание порта 80 и разрешите трафик на порт 80 через брандмауэр.
В Windows:
- Перейдите в Панель управления> Система и безопасность> Брандмауэр защитника Windows 1> Дополнительные настройки> Входящие правила и добавьте новое правило для порта 80.
- Или выполните следующую команду PowerShell от имени администратора
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 80 -Program "C:\Windows\System32\OpenSSH\sshd.exe"

Шаг 3. Запустите SSH-сервер
- В Windows: перейдите в Панель управления> Система и безопасность> Администрирование и откройте службы. Найдите службу сервера OpenSSH SSH и нажмите кнопку Запустить службу.
- Как только SSH-сервер будет запущен и доступен удаленно, следующим шагом будет загрузка SSH-клиента на целевой компьютер.
Шаг для подключения SSH-сервера и пересылки трафика:
Шаг 1. Установите программное обеспечение SSH-клиента на целевой компьютер: клиент OpenSSH по умолчанию включен в дистрибутивы Ubuntu Linux. Для платформы Windows доступно несколько бесплатных SSH-клиентов. Лучший из них - Putty, который доступен онлайн на их сайте.
Шаг 2. Подключитесь к серверу SSH и перенаправьте трафик с целевой машины на порт 80 на серверной машине. После запуска Putty заполните следующие сведения о конфигурации :
В поле “Имя хоста” введите общедоступный IP-адрес SSH-сервера Перейдите к соединению> SSH> Туннели Добавьте новый перенаправленный порт: Исходный порт = целевой порт для обратного туннелирования Назначение = 127.0.0.1: [Целевой порт] Направление = Удаленное Нажмите Добавить Нажмите Открыть, чтобы начать сеанс SSH

На этом этапе целевой порт будет сопоставлен с целевым удаленным SSH-сервером. Это означает, что клиенты в удаленной сети смогут получить доступ к целевому компьютеру, как если бы он находился в удаленной сети. По сути, это создает частный туннель между двумя удаленными конечными точками, что позволяет удаленно администрировать защищенную брандмауэром машину.
Выполните переадресацию портов SSH:
Предполагая, что у нас есть SSH-доступ к удаленному серверу, мы можем использовать переадресацию портов SSH для обхода брандмауэров. Допустим, мы хотим получить доступ к веб-сайту, который заблокирован брандмауэром. Мы можем использовать переадресацию портов SSH для туннелирования трафика с локального компьютера на удаленный сервер, а затем с удаленного сервера на веб-сайт.
Для этого мы сначала подключились бы к удаленному серверу по SSH. Затем мы использовали бы следующую команду для пересылки трафика с локального компьютера (порт 8080) на удаленный сервер (порт 80):
ssh -L 8080: localhost: 80 user@remote.server.com
Теперь мы можем получить доступ к веб-сайту, перейдя по http://localhost:8080 в веб-браузере. Трафик будет туннелироваться через SSH-соединение, а удаленный сервер будет действовать как прокси.
Мы также можем использовать переадресацию портов SSH для туннелирования трафика с удаленного сервера на локальную машину. Допустим, мы хотим получить доступ к базе данных, которая доступна только с удаленного сервера. Мы можем использовать переадресацию портов SSH для туннелирования трафика с удаленного сервера на локальную машину (порт 3306), а затем подключиться к базе данных с помощью локальной машины.
Для этого мы сначала подключились бы к удаленному серверу по SSH. Затем мы использовали бы следующую команду для пересылки трафика с удаленного сервера (порт 3306) на локальный компьютер (порт 3306):
ssh -R 3306: localhost:3306 user@remote.server.com
Теперь мы можем подключиться к базе данных с помощью локального компьютера. Трафик будет туннелироваться через SSH-соединение, а локальный компьютер будет выступать в качестве прокси.
Выполните SSH SOCKS прокси:
Предполагая, что у нас есть SSH-сервер, работающий на удаленном компьютере, к которому мы можем получить доступ:
Шаг 1. На локальном компьютере откройте терминал и выполните следующую команду:
имя пользователя ssh -D 9999 -f -C -q -N@remotemachine
Шаг 2. Это установит прокси-сервер SOCKS на порт 9999 локальной машины.
Шаг 3. Чтобы использовать прокси-сервер, настройте браузер или другое приложение на использование прокси-сервера SOCKS на localhost: 9999.
Шаг 4: Просмотр веб-страниц весь трафик будет туннелироваться через SSH-соединение.