Методы туннелирования:
Перемещение между хостами в разделенной сети может представлять собой задачу с определенными сложностями. Например, возникают ситуации, когда необходимый для выполнения работы хост находится в другой сегментированной подсети, и доступ к нему ограничен правилами межсетевого экрана. Также бывает, что доступ разрешен только с определенных адресов. Для решения этой проблемы было разработано большое количество утилит:
1.
Proxychains - уверен, что для него не требуется разъяснений
2.
Shadowsocks-Windows - shadowsocks на C#
3.
Gost - китайский аналог Chisel, с большей функциональностью
4.
Bore - утилита, написанная на Rust
5.
FRP - опять Go, тут уже позволяет нам использовать какой-то конфиг файл, token/oidc аутентификация, bandwidth лимит, поддержка KCP/QUIC и много чего другого.
6.
Mubeng - хороша для ротации IP
7.
proxy.py - классная утилита, написанная на Python
8. nc - оказалось, что у netcat'a есть флаг --ssl позволяющий зашифровывать трафик
9.
Chisel - очень популярный инструмент, написанный на Go, пользуюсь им чаще всего
Так как мне больше всего нравится chisel, то рассмотрим его:
Chisel представляет собой инструмент, который обеспечивает создание безопасного сетевого туннеля между двумя устройствами. Этот инструмент позволяет обходить ограничения сетевых настроек и передавать информацию через зашифрованный канал. Он может быть использован для получения доступа к удаленным ресурсам через защищенное соединение, обхода ограничений, налагаемых межсетевыми экранами и файрволами, а также для обеспечения безопасности при подключении к сетям через ненадежные каналы. Иногда бывают проблемы с утилитой, если версии на хостовой и удаленной машине отличаются, поэтому советую использовать и там, и там одну версию
Примеры использования Chisel:
1.
Настройка сервера Chisel на своей машине:
./chisel server -p --reverse
Эта команда запускает Chisel сервер на своей машине, который ожидает входящие подключения на указанном порту.
2.
Создание туннеля с помощью клиента Chisel на удаленной машине:
./chisel client : R:::
3.
Создание прокси
./chisel client : R:socks
Кроме того, если первоначальный доступ был получен к windows-тачке, то можно рассмотреть такой вариант
В таком случае удобно использовать инструмент portproxy в netsh. Для настройки этого механизма требуются привилегии локального администратора, и также необходимо, чтобы была активирована служба iphlpsvc. Для проверки статуса этой службы можно воспользоваться командой:
Get-Service iphlpsvc
Правила проброса портов можно настраивать как между адресами IPv4, так и IPv6. Для этого предусмотрены параметры v4tov6, v6tov4, v4tov4 и v6tov6.
Для иллюстрации, давайте рассмотрим пример проброса порта для WIN-RM:
netsh interface portproxy add v4tov4 listenaddress=your-ip listenport=1337 connectaddress=192.168.1.1 connectport=5985
С помощью следующей команды можно подключиться к WIN-RM:
mstsc.exe /v:your-ip:1337
Список правил проброса портов можно посмотреть с помощью команды:
netsh interface portproxy show all
Изменить настройки проброса портов можно с помощью команды set, заменив параметр add в команде.
После завершения работ рекомендуется удалить правило проброса портов:
netsh interface portproxy delete v4tov4 listenport=1337 listenaddress=your-ip
Если было создано несколько правил, то их можно удалить сразу(не советую так делать, тк будут удаленно ВСЕ правила, а не только недавно созданные):
netsh interface portproxy reset
В данном
посте автор привел более расширенный список утилит для туннелирования трафика