Tunnels Nightmare. Используем провайдерские протоколы для пивотинга

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

  • TUN vs. TAP
  • Осторожность при адресации на TAP-интерфейсе
  • GRE (L3)
  • IPIP (L3)
  • GRETAP (L2)
  • VXLAN (L2)
  • EoIP (L2)
  • Пивотинг против Windows
  • Выводы

В сов­ремен­ном сте­ке про­токо­лов TCP/IP есть мно­жес­тво про­токо­лов тун­нелиро­вания. Обыч­но они исполь­зуют­ся для рас­ширения сетей про­дак­шена, пос­тро­ения инфраструк­туры. Но в моем иссле­дова­нии я буду исполь­зовать их как пен­тестер­ский инс­тру­мент.

Pivoting — это ком­плекс мероп­риятий, в рам­ках которо­го ата­кующий эска­лиру­ет свое при­сутс­твие в сети. Пивотинг — это часть пос­тэкс­плу­ата­ции, то есть дей­ствий пос­ле получе­ния пер­вично­го дос­тупа к сис­теме. Сущес­тву­ет мно­жес­тво спо­собов пивотин­га, но в моем ресер­че речь пой­дет имен­но о про­токо­лах тун­нелиро­вания, то есть сце­нарии, где ата­кующий прод­вига­ется по сети с помощью тех­нологий тун­нелиро­вания. В этой статье я про­демонс­три­рую пивотинг на уров­нях L2 и L3.

warning

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

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

 

TUN vs. TAP

Для тун­нель­ного пивотин­га исполь­зуют­ся спе­циаль­ные вир­туаль­ные сетевые драй­веры. Раз­лича­ют два вида VPN-интерфей­сов:

  • TUN — вир­туаль­ный сетевой драй­вер, который исполь­зует­ся для пос­тро­ения L3-тун­нелей. Работа­ет на сетевом уров­не, опе­рируя IP-пакета­ми;
  • TAP — вир­туаль­ный сетевой драй­вер, который эму­лиру­ет Ethernet. Работа­ет на каналь­ном уров­не, опе­рируя Ethernet-кад­рами.

Ес­ли ата­кующий стре­мит­ся переме­щать­ся по под­сетям во вре­мя пивотин­га, ско­рее все­го, он будет исполь­зовать драй­вер TUN, одна­ко, если ата­кующий нуж­дает­ся в про­веде­нии атак каналь­ного уров­ня, ему необ­ходим имен­но TAP-интерфейс, имен­но L2-тун­нель. Пен­тестер может спро­сить: «А почему у меня не работа­ет Responder? Тун­нель же есть». Но на прак­тике не все так прос­то, и необ­ходимо учи­тывать свои пот­ребнос­ти в пла­не про­веде­ния атак. Оба этих драй­вера будут учас­тво­вать здесь на про­тяже­нии всей статьи.

 

Осторожность при адресации на TAP-интерфейсе

При работе с целевой сетью через TAP будь осто­рожен с получе­нием адре­са на TAP-интерфейс с помощью DHCP. По DHCP может при­лететь новая информа­ция о шлю­зе по умол­чанию, что иног­да при­водит к раз­рыву сетевой связ­ности. Как толь­ко ты запус­тишь dhclient, вто­рой коман­дой уда­ляй новый мар­шрут по умол­чанию:

sudo dhclient -v tap0; sudo route del default  

GRE (L3)

GRE (Generic Routing Encapsulation) — одно из самых популяр­ных решений при пос­тро­ении тун­нелей site-to-site меж­ду орга­низа­циями. Это самос­тоятель­ный про­токол, име­ющий собс­твен­ный заголо­вок и не опи­рающий­ся на TCP/UDP. Раз­работан инже­нера­ми Cisco, но под­держи­вает­ся все­ми вен­дорами. Его глав­ный прин­цип работы — это инкапсу­ляция полез­ной наг­рузки, поз­воля­ющая дос­тичь адре­сата. В осно­ве его работы лежит три сущ­ности:

  • GRE-заголо­вок — содер­жит раз­ные парамет­ры и иден­тифика­тор инкапсу­лиру­емо­го про­токо­ла;
  • Delivery-заголо­вок — содер­жит адре­са источни­ка и наз­начения, при этом исполь­зуют­ся пуб­личные адре­са из интерне­та (сог­ласно кон­фигура­ции на пог­ранич­ных мар­шру­тиза­торах), по фак­ту выпол­няет фун­кцию дос­тавки дан­ных;
  • пас­сажир — непос­редс­твен­но сами дан­ные.

GRE мож­но исполь­зовать как инс­тру­мент пивотин­га, поз­воля­ющий ата­кающе­му получить дос­туп к под­сети на уров­не L3. Целевы­ми устрой­ства­ми могут быть:

  • пог­ранич­ный мар­шру­тиза­тор (нап­ример, Cisco IOS или RouterOS);
  • взло­ман­ный сер­вер на Linux.

Я покажу при­мер имен­но с пог­ранич­ным роуте­ром Cisco, хотя сама кон­цепция нас­трой­ки GRE гло­баль­но не меня­ется. Дизайн лабора­тор­ной сети для демонс­тра­ции тех­ник — на диаг­рамме ниже.

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

Это прос­той при­мер для демонс­тра­ции. Ата­кующий и пог­ранич­ный роутер здесь име­ют белые адре­са, а за самим роуте­ром находят­ся три VLAN-сег­мента:

  • 10.10.200.0/24;
  • 10.10.220.0/24;
  • 10.10.240.0/24.

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

Источник: xakep.ru

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *