
Исследуйте сеть с помощью инструмента VPNPivot
Иногда мы проводим внешнее тестирование на проникновение, и когда мы компрометируем удалённую цель, нам хотелось бы исследовать внутреннюю сеть за ней и добиться такого же компромета, как захват Active Directory, доступ к общим файлам, проведение MITM-атак и т.д. Существует множество техник, таких как перенаправление портов, socks4 ..., но у каждой есть свои плюсы и минусы. Именно поэтому появилась техника VPN-пивотинга — она решает все проблемы, с которыми сталкиваются при использовании обеих упомянутых техник. Она позволяет взаимодействовать с внутренними сетями, защищёнными межсетевыми экранами, NAT... и т.д.
Это реализация техники VPN-пивотинга в Linux с использованием чистых сокетов низкого уровня в устройстве tap. Она создаёт полностью зашифрованный туннель с помощью SSL/TLS между целевой машиной и атакующим.
VPN Pivot отправляет и получает полностью зашифрованный стек TCP/IP через потоковый сокет TCP, затем пиры пересылают его на нужное устройство/хост. Атакующий исследует внутреннюю сеть так, как будто он сам находится в ней, используя локальный IP-адрес, полученный от DHCP-сервера или настроенный статически.
yaourt -S vpnpivot-git
Установка довольно проста, просто введите следующие команды:
root@pwnies:~# git clone https://github.com/0x36/VPNPivot.git
root@pwnies:~# cd VPNPivot
root@pwnies:~/VPNPivot# ./autogen.sh
root@pwnies:~/VPNPivot# ./configure
root@pwnies:~/VPNPivot# make && make install
Сервер VPNPivot должен быть запущен на машине атакующего. Он создаёт виртуальное устройство (tap) с возможностью изменения MAC (что полезно для спуфинга и переключения MAC), IP-адреса, MTU, а также владельца интерфейса. Устройства TAP взаимодействуют с целевой машиной, отправляя/получая необработанные Ethernet-кадры. Как только атакующий успешно устанавливает туннельное соединение, устройство tap может взаимодействовать с DHCP-сервером взломанной внутренней сети, получать/отправлять широковещательные пакеты, а также использовать повторно IP-адреса.
Работа с pivots очень проста, вам нужно только знать, что означает каждая опция:
root@pwnies:~/VPNPivot# ./src/pivots -h
__ _______ _ _ _____ _ _
\ \ / / __ \| \ | | __ (_) | |
\ \ / /| |__) | \| | |__) |__ _____ | |_
\ \/ / | ___/| . ` | ___/ \ \ / / _ \| __|
\ / | | | |\ | | | |\ V / (_) | |_
\/ |_| |_| \_|_| |_| \_/ \___/ \__|
VPNPivot server v1.0 by Simo36
-i --iface <устройство> Создать непостоянное устройство tap
-I --ifconf <ip/маска> Настройка интерфейса (IP/МАСКА)
-p --port <порт> Порт прослушивания сервера (по умолчанию: 12345)
-m --mtu <размер> Размер MTU виртуального устройства (по умолчанию: 1550)
-u --user <пользователь> Владелец устройства (ОПЦИОНАЛЬНО)
-H --hw <MAC> Установить MAC-адрес для интерфейса
-C --cert <серверный_сертификат> Имя файла PEM-сертификата
-P --pkey <закрытый_ключ> Имя файла PEM-закрытого ключа
-v --verbose Подробный режим
-d Демонизировать
root@pwnies:~/VPNPivot#
Все перечисленные выше опции необязательны, но их стоит объяснить, хотя их описания говорят сами за себя:
Клиент VPN Pivot должен быть запущен на целевой машине. Он создаёт два файла сокетов: первый — клиент для туннеля, второй — для прямого взаимодействия с сетью устройства. Он работает так, как будто мы создаём необнаруживаемое устройство tap, что делает его более сложным для обнаружения.
Работа с pivotc даже проще, чем с сервером; нужно только не запутаться при попытке подключить его к pivots:
root@pwnies:~/VPNPivot# ./src/pivotc
Использование:
./src/pivotc <IP сервера> <порт сервера> <локальный IP> [MTU]
root@pwnies:~/VPNPivot#
Опции:
Нет ничего лучше живой демонстрации, поэтому я сделал видео, объясняющее базовое использование VPNPivot; видео находится на YouTube.
Вот и всё! Приятного взлома :-) С уважением