Туннели SSH или переадресация портов могут быть немного запутанными.
Есть три разных типа туннелей SSH:
1. Перенаправление локального порта: соединения от клиента SSH перенаправляются через сервер SSH на сервер назначения
2. Переадресация удаленного порта: соединения с SSH-сервера перенаправляются через SSH-клиент на целевой сервер.
3. Динамическая переадресация портов: соединения от различных программ перенаправляются через SSH-клиент на SSH-сервер, а затем на целевой сервер.
Перенаправление локального порта
Прежде всего я хотел бы отметить, что для выполнения перенаправления локального порта у вас должен быть SSH-доступ к вашему целевому или удаленному хосту. Если у вас нет прямого доступа по SSH, вы можете посмотреть раздел «Переадресация удаленного порта». Эта грубо нарисованная диаграмма с mspaint довольно хорошо объясняет, как выглядит перенаправление локального порта:
Для того что бы объяснить, что происходит слева направо в команде ssh -L 123: localhost: 456 remotehost, мы разберем это:
Команда для этого будет: ssh -L 9000:localhost:8080 victim
Как только туннель будет установлен, вы сможете получить доступ к этому новому веб-сайту через http: // localhost: 9000.
Другой пример - использование SSH-туннеля для обхода межсетевого экрана компании. Это будет вторая диаграмма сверху.
Допустим, вам очень нравится общаться на IRC-сервере Freenode, особенно на канале Offensive Security #offsec. Вы можете использовать переадресацию локального порта, чтобы обойти брандмауэр и получить доступ к серверу IRC.
Следующая команда сделает это: ssh -L
Теперь мы можем использовать наш любимый клиент IRC и подключиться к Freenode через
/server localhost:9000 -j #offsec
Перенаправление удаленного порта
Злоумышленник должен использовать этот метод для переадресации портов, если у их жертвы нет доступа SSH. Этот метод пересылки полезен, если у вас ограниченная оболочка и вы хотите попытаться повысить привилегии до службы, не подключенной к Интернету.
С учетом вышесказанного, опять же, у нас есть эта грубо нарисованная диаграмма с mspaint, которая довольно хорошо объясняет, как выглядит перенаправление удаленного порта:
Для того что бы объяснить, что происходит слева направо в команде ssh -R 123: localhost: 456 remotehost, мы разберем это:
Когда вы запускаете указанную выше команду, example.com:8080 затем перенаправляется на вашу атакующую машину Kali через порт 7000. Теперь со своей машины Kali вы можете перейти по адресу http: // localhost: 7000 и перейти на example.com:8080,к которому Вы не имели доступ раньше.
Динамическая переадресация портов
Вы захотите использовать это, когда получите SSH-доступ к системе. Это также будет более полезно, если у вас есть доступ по SSH на корневом уровне.
При настройке динамического переадресации портов он превращает SSH-клиент в SOCKS-прокси.
Proxychains использует порт по умолчанию 9050.
Для настройки динамической пересылки портов рекомендуется следующая команда SSH:
Proxychains по умолчанию должны работать на порту 9050. Однако, если вы хотите использовать другой порт в приведенной выше команде, вам нужно будет отредактировать файл conf, расположенный в /etc/proxychains.conf, или просто ввести locate proxychains.conf
Отсюда мы можем использовать nmap для сканирования нашей немаршрутизируемой цели №2 через прокси-цепи nmap target_2.
Есть три разных типа туннелей SSH:
1. Перенаправление локального порта: соединения от клиента SSH перенаправляются через сервер SSH на сервер назначения
2. Переадресация удаленного порта: соединения с SSH-сервера перенаправляются через SSH-клиент на целевой сервер.
3. Динамическая переадресация портов: соединения от различных программ перенаправляются через SSH-клиент на SSH-сервер, а затем на целевой сервер.
Перенаправление локального порта
Прежде всего я хотел бы отметить, что для выполнения перенаправления локального порта у вас должен быть SSH-доступ к вашему целевому или удаленному хосту. Если у вас нет прямого доступа по SSH, вы можете посмотреть раздел «Переадресация удаленного порта». Эта грубо нарисованная диаграмма с mspaint довольно хорошо объясняет, как выглядит перенаправление локального порта:
Для того что бы объяснить, что происходит слева направо в команде ssh -L 123: localhost: 456 remotehost, мы разберем это:
- ssh - cама команда ssh
- -L - указывает данный порт на стороне клиента, который будет перенаправлен на удаленную сторону
- 123 - порт 123 на нашей машине (Kali) для получения перенаправленного порта с удаленного хоста
- localhost - вперед к хосту. В данном случае это машина жертвы
- 456 - порт 456 на целевой машине (жертве) для перенаправления на удаленный хост
- remotehost - система, в которую мы хотим подключаться по SSH и перенаправлять порты.
- -N - не один из флагов выше. Однако здесь говорится, что не следует выполнять команду. Полезно, если вы не хотите, чтобы терминал ssh открывался на сервере после успешного выполнения ssh.
Команда для этого будет: ssh -L 9000:localhost:8080 victim
Как только туннель будет установлен, вы сможете получить доступ к этому новому веб-сайту через http: // localhost: 9000.
Другой пример - использование SSH-туннеля для обхода межсетевого экрана компании. Это будет вторая диаграмма сверху.
Допустим, вам очень нравится общаться на IRC-сервере Freenode, особенно на канале Offensive Security #offsec. Вы можете использовать переадресацию локального порта, чтобы обойти брандмауэр и получить доступ к серверу IRC.
Следующая команда сделает это: ssh -L
9000:irc.freenode.net:6667 user@server -N
Теперь мы можем использовать наш любимый клиент IRC и подключиться к Freenode через
/server localhost:9000 -j #offsec
Перенаправление удаленного порта
Злоумышленник должен использовать этот метод для переадресации портов, если у их жертвы нет доступа SSH. Этот метод пересылки полезен, если у вас ограниченная оболочка и вы хотите попытаться повысить привилегии до службы, не подключенной к Интернету.
С учетом вышесказанного, опять же, у нас есть эта грубо нарисованная диаграмма с mspaint, которая довольно хорошо объясняет, как выглядит перенаправление удаленного порта:
Для того что бы объяснить, что происходит слева направо в команде ssh -R 123: localhost: 456 remotehost, мы разберем это:
- ssh - Сама команда ssh;
- -R - указывает данный порт на удаленной стороне, который будет перенаправлен на сторону клиента;
- 123 - порт 123 на целевой машине (жертве) для перенаправления на нашу машину Kali;
- localhost - Вперед к хосту. В данном случае это наша машина Kali;
- 456 - порт 456 - это порт, который мы хотим на нашей машине Kali;
- remotehost - Наша машина Kali ;
- -N - не один из флагов выше. Однако здесь говорится, что не следует выполнять команду. Полезно, если вы не хотите, чтобы терминал ssh открывался на сервере после успешного выполнения ssh.
ssh -R 7000:localhost:8080 [email protected]
Когда вы запускаете указанную выше команду, example.com:8080 затем перенаправляется на вашу атакующую машину Kali через порт 7000. Теперь со своей машины Kali вы можете перейти по адресу http: // localhost: 7000 и перейти на example.com:8080,к которому Вы не имели доступ раньше.
Динамическая переадресация портов
Вы захотите использовать это, когда получите SSH-доступ к системе. Это также будет более полезно, если у вас есть доступ по SSH на корневом уровне.
При настройке динамического переадресации портов он превращает SSH-клиент в SOCKS-прокси.
Proxychains использует порт по умолчанию 9050.
Для настройки динамической пересылки портов рекомендуется следующая команда SSH:
ssh -f -N -D 9050 user@victim_1.com
Proxychains по умолчанию должны работать на порту 9050. Однако, если вы хотите использовать другой порт в приведенной выше команде, вам нужно будет отредактировать файл conf, расположенный в /etc/proxychains.conf, или просто ввести locate proxychains.conf
Отсюда мы можем использовать nmap для сканирования нашей немаршрутизируемой цели №2 через прокси-цепи nmap target_2.