Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Skabtsov_N_V_-_Audit_bezopasnosti_informatsionnykh_sistem_-_2018.pdf
Скачиваний:
101
Добавлен:
24.01.2021
Размер:
9 Mб
Скачать

14 Перенаправление портов и туннелирование

Туннелирование — это процесс, в ходе которого создается логическое соединение между конечными точками сети. Его суть заключается в том, что происходит инкапсуляция пакетов одного типа трафика в пакеты другого типа. При этом инкапсулируемые данные должны находиться на том же или более низком уровне модели OSI.

Перенаправление портов — это метод перенаправления данных с определенного порта локального компьютера на удаленный и наоборот. Используется в защищенных брандмауэром сетях.

В этой главе мы рассмотрим некоторые варианты перенаправления и туннелирования и приведем практические примеры их использования. Начнем с самого простого — перенаправления портов.

Перенаправление портов

Перенаправление портов — самый простой способ управления трафиком. Его суть заключается в том, что мы принимаем сетевые данные на машине с одним IPадресом и портом, а затем перенаправляем на другой IP-адрес и порт. В Linux есть замечательная утилита, которая поможет сделать это просто и быстро.

Установим rinetd и добавим в ее конфигурационный файл IP-адрес и порт подключения, а также IP-адрес и порт перенаправления трафика.

root@kali:~# apt-get install rinetd Reading package lists... Done Building dependency tree

Reading state information... Done

The following NEW packages will be installed: rinetd

...

root@kali:~# echo "129.186.225.128 21 91.189.94.40 443" >> /etc/rinetd.conf root@kali:~# systemctl start rinetd

В нашем случае клиентский компьютер может соединяться за пределами периметра только с сервисами, работающими на порте 21, как показано на рис. 14.1. Однако

180    Глава 14  •  Перенаправление портов и туннелирование

после наших действий, обратившись к компьютеру Б, он будет перенаправлен на сервер В к сервису, работающему на порте 443.

А

:21

45.56.78.1:21

 

:21

:21

 

В

10.0.5.20

 

91.189.94.40.443

А а а

 

 

 

 

:443

Б а а а а

 

 

 

а 21

 

 

 

а

 

 

 

129.186.225.128:21

Б

 

а а

 

Рис. 14.1. Поток данных без перенаправления

А

45.56.78.1:21

 

 

 

 

В

10.0.5.20

 

 

 

 

91.189.94.40.443

А а а

 

Б а а а а

 

https://129.168.225.128:21

 

 

а 21

 

:443

а

Б

 

129.186.225.128:21

а а

Рис. 14.2. Поток данных после перенаправления

SSH-туннелирование

У SSH есть множество достоинств и преимуществ, но в этом разделе мы рассмотрим только возможность создания на его основе защищенных туннелей. Схема сети в данном примере будет точно такой же, как и в предыдущем случае. Только теперь для выполнения той же задачи мы будем использовать SSH.

root@office:~# ssh 129.186.225.128 –p 21 -L 8080:91.198.94.40:443

В нашем примере мы сначала указали локальный адрес и порт, а затем адрес и порт удаленного сервиса.

SSH-туннелирование   181

 

45.56.78.1:21

 

10.0.5.20

 

 

 

91.189.94.40.443

А а а

Б а … а€† а‡ ˆа

 

 

‰ …ƒ ƒ Š а 21

 

ƒ ‹Š ƒ € ‰ ‰ аŠ

129.186.225.128:21 ssh 129.186.225.128 -p 21 -L 8080:91.189.40:443 а а € ‚ƒ

https://localhost:8080

Рис. 14.3. Локальное перенаправление портов с использованием SSH

После создания SSH-туннеля мы можем соединяться с удаленным сервером, несмотря на запрет брандмауэра атакованной организации. А учитывая то, что туннель построен с использованием SSH, администратор не сможет просмотреть содержимое пакетов, поскольку все данные будут зашифрованы.

Как мы уже упоминали выше, SSH обладает достаточно большими возможностями и, помимо локального, поддерживает также удаленное перенаправление портов.

Представьте, что вам удалось получить доступ к удаленному компьютеру, получить хеши паролей, а по ним узнать и сами пароли. Также на данном компьютере запущен VNC-сервис, использующий стандартный порт 5500. Вы сделали обратный туннель от взломанного компьютера к своему и перенаправили через него порт на свой компьютер, пусть это будет порт 55555. Теперь вы можете соединиться со своим локальным интерфейсом через порт 55555 и попасть на удаленный компьютер через SSH-туннель.

root@office:~# ssh 129.186.225.128 -R 55555:192.168.225.128:5500

10.0.5.20

 

А а а

 

Б а а а

а

а 21

а

ssh 129.186.225.128 -p 21 -R 55555:127.0.0.1:5500

129.186.225.128:21

а а

https://localhost:8080

vncviewer localhost::55555

 

Рис. 14.4. Удаленное перенаправление портов с использованием SSH

182    Глава 14  •  Перенаправление портов и туннелирование

А теперь нам предстоит самая интересная часть — динамическое перенаправление портов, позволяющее создать на локальном компьютере своего рода прокси-сервер, через который может осуществляться туннелирование трафика.

Вводные данные немного изменятся — представьте, что вам удалось взломать сервер, находящийся в DMZ-сети и имеющий доступ в публичную сеть через порт 80. Теперь создадим на своем компьютере SOCKS 4 прокси, работающий с использованием порта 8080 и перенаправляющий трафик через SSH-туннель к любому из серверов в DMZ-сети.

10.0.10.3

 

 

 

10.0.10.2

 

 

А а а

Б а а а а

 

 

 

а 80

 

 

 

 

а

10.0.10.4

DMZ

129.186.225.128:21

 

а а

ssh =D 8080 =p 5500 10.0.10.2

Рис. 14.5. Динамическое перенаправление портов с использованием SSH

proxychains

Это бесплатная утилита, позволяющая любой программе, работа которой основана на TCP, пересылать свои данные через цепочку прокси-серверов, таких как TOR, SOCKS 4, SOCKS 5 или HTTPS.

Она может пригодиться для тех случаев, когда вы захотите перенаправить свой трафик через несколько промежуточных узлов — например, так, как показано на рис. 14.6.

В

SOCKS4

TOR

а а

 

 

 

 

 

Рис. 14.6. Пример цепочки прокси-серверов