Обратный ssh-туннель с помощью socks

Обратный ssh-туннель с помощью socks

Моя ситуация следующая:

  • Рабочий Mac за брандмауэром, названный «Victim». (High Sierra 10.13.3)
  • Ubuntu VHS в сети, названный как 'server'. На котором ssh работает на порту 2222. (Ubuntu 16.04)
  • другой Mac также за брандмауэром, названный «атакующим». (High Sierra 10.13.3)

Я хочу использовать Socks для посещения внутренних веб-сайтов, доступных только «жертве».

Когда я делаю это из «жертвы» и подключаюсь по ssh к «серверу» из атакующего и запускаю , у меня есть доступ к оболочке от атакующего к жертве.ssh -R 5555:localhost:22 [email protected] -P 2222ssh victim@localhost -p 5555

Мне нужно добиться того, чтобы с помощью Socks можно было посещать веб-сайты, доступные только «жертве».

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

Когда я настраиваю socks напрямую от злоумышленника к серверу, я просто запускаю и настраиваю proxy socks v5 localhost:8080 в Firefox, но я не понимаю, как настроить переадресацию на сервере...ssh -D 8080 [email protected] -p 2222

Кто-нибудь может мне это объяснить? Спасибо.

решение1

Видимо, никто не может ответить на этот вопрос, но это нормально, потому что я сам нашел ответ.

Вот ответы:

  • Нажертва:ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • Нанападающий#1:ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
  • Нанападающий#2:ssh -p 4444 -D localhost:3333 user_on_victim@localhost
  • Нанападающий#3: в Firefox или IRC, или даже для Общих сетевых настроек: Настройки прокси-сервера Socks (v5): 127.0.0.1 порт 3333

Каждое приложение, для которого вы настроите хост localhost с портом 3333, будет туннелироваться через serv к жертве, и когда вы посетите что-то вродеhttp://myip.comвы увидите ip/хост жертвы. С этого момента вы даже можете использовать GUI-приложения нанападающий(если вы настраиваете параметры socks для конкретного приложения или для системы в целом), которые будут туннелироваться черезсервкжертваи вы будете действовать какжертвакак таковой.

Ошибка, которую я допустил в своих размышлениях, заключалась в том, что я не совсем понял, как выглядит схема реверсивного порта. Попробую объяснить ее простыми словами.

Действия жертвы

ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
  • -N= Я не собираюсь запускать команды в оболочке
  • -f= перевести процесс в фоновый режим (чтобы можно было закрыть окно терминала)
  • -R= обратный туннель
  • 5555:localhost:22= 5555 — это порт, на котором сервер внутренне прослушивает передачу данных на порт 22жертва. Если вы настроили жертву на запуск ssh на порту 2222, вам следует изменить 22 на 2222.
  • -p= порт, на котором ssh включенсервбежит.

1-е атакующее действие

ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`

Первая команда, которую вы даетенападающий( -L 4444:localhost:5555) создаст туннель, так что ваше соединение с вашей 3-й командой будет туннелироваться прямо черезжертва. (Это только для динамической переадресации портов / приложений Socks)

Если вы просто хотите иметь доступ к оболочкежертвавместо этой команды вы просто подключаетесь к серверу по ssh и затем выполняете команду: 'ssh user_on_victim@localhost -p 5555'.

Но нам не нужен доступ к оболочке, мы хотим динамически туннелировать все данные, поэтому нам нужно сделать переадресацию портов.

Или схематическое объяснение

  • -L= локальная переадресация портов (насерв)
  • - 4444:localhost:5555перенаправить все данные, поступающие на порт 4444, на порт 5555.

2-е атакующее действие

Вторая команда, которую вы делаетенападающий

ssh -p 4444 -D localhost:3333 пользователь_на_жертве@localhost

это фактическая команда, которая инициализирует соединение через 2 туннеля. Что вы делаете, так это говорите: подключитесь к порту 4444 и переместите все данные, которые приходят на (localhost port 3333) на 4444. (которые будут проходить локально насервна порт 5555 -> который будет отправлен на порт 22 нажертва.

Или схематическое объяснение

  • -D= Динамическая пересылка
  • localhost:3333= прослушивать порт 3333 и передавать данные через SSH-соединение на порт 4444 для обслуживания.
  • -p 4444= порт, на которомсервпрослушивает передачу данных на порт 5555, а затем на порт 22жертва.

3-е атакующее действие

Настройте свои приложения или даже всю систему на использование прокси-сервера SOCKS (v5) по адресу: localhost port: 3333. Неважно, на каких портах эти приложения работают в обычном режиме, потому что это будет обработано прокси-сервером. Теоретически каждое приложение может работать через динамическую переадресацию портов прокси-сервера socks. Вам нужно будет только настроить его. :)

3-е действие нанападающийэто фактические данные, которые вы собираетесь туннелироватьжертва. Неважно, какие это данные или приложение, вот почему это динамическая пересылка, неважно, на каких портах работают эти приложения, потому что это будет обработано SOCKS.

Надеюсь, кому-то пригодится мое объяснение.

Хорошего дня....

Связанный контент