В этой статье я покажу, как работа­ет ата­ка ShadowCoerce, которая исполь­зует служ­бу тенево­го копиро­вания (VSS) и поз­воля­ет при­нудить учет­ку кон­трол­лера домена Active Directory авто­ризо­вать­ся на узле зло­умыш­ленни­ка. А это, как ты догады­ваешь­ся, может при­вес­ти к зах­вату домена.
 

PetitPotam и PrinterBug

Ра­нее в тех же целях при­меня­лись тех­ники PetitPotam и PrinterBug.

PetitPotam исполь­зовал фун­кцию EfsRpcOpenFileRaw из про­токо­ла Microsoft Encrypting File System Remote Protocol (MS-EFSRPC), который пред­назна­чен для выпол­нения опе­раций с зашиф­рован­ными дан­ными, хра­нящи­мися в уда­лен­ных сис­темах.

PrinterBug зло­упот­реблял фун­кци­ей RpcRemoteFindFirstPrinterChangeNotificationEx в про­токо­ле Microsoft Print System Remote Protocol (MS-RPRN). При ата­ке поль­зователь домена может зас­тавить любую машину, на которой запуще­на служ­ба оче­реди печати, под­клю­чить­ся к машине со вклю­чен­ным неог­раничен­ным делеги­рова­нием. Для экс­плу­ата­ции это­го бага при­меня­ется инс­тру­мент Krbrelayx.

ShadowCoerce — новый спо­соб при­нуди­тель­ной аутен­тифика­ции. Он исполь­зует про­токол служ­бы тенево­го копиро­вания VSS (MS-FSRVP). Но преж­де чем говорить о нем, рас­ска­жу пару слов о самой VSS.

 

Что такое VSS

Volume Shadow Copy Service (VSS) — это фича Windows Server, которая поз­воля­ет тихо, незамет­но и цен­тра­лизо­ван­но бэкапить поль­зователь­ские дан­ные.

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

По сути, VSS копиру­ет всю информа­цию, хра­нящу­юся на дис­ке, но при этом отсле­жива­ет изме­нения и берет толь­ко нуж­ные бло­ки. Сами копии дела­ются авто­мати­чес­ки каж­дый час, и по умол­чанию Windows хра­нит их в количес­тве 64 штук. VSS — шту­ка удоб­ная и пов­семес­тно исполь­зует­ся в домен­ных сетях.

 

Стенд

Для про­веде­ния ата­ки нам понадо­бит­ся тес­товый стенд:

  • кон­трол­лер домена (DC) — Windows Server 2016;
  • центр сер­тифика­ции (AD CS) — Windows Server 2016 с вклю­чен­ной служ­бой Web Enrollment;
  • ском­про­мети­рован­ная учет­ная запись поль­зовате­ля с низ­кими при­виле­гиями.

Су­дя по докумен­тации Microsoft, про­токол уда­лен­ного фай­лового сер­вера VSS (MS-FSRVP):

  • соз­дает теневые копии фай­ловых ресур­сов на уда­лен­ных компь­юте­рах;
  • де­лает резер­вное копиро­вание при­ложе­ний;
  • вос­ста­нав­лива­ет дан­ные на фай­ловых ресур­сах SMB2.

Что­бы наш кон­трол­лер домена начал делать теневые копии, нуж­но уста­новить служ­бу аген­та VSS из меню «Роли сер­вера».

На момент написа­ния статьи извес­тны толь­ко две уяз­вимые фун­кции, которые обра­баты­вает MS-FSRVP: IsPathSupported и IsPathShadowCopied. Имен­но они поз­воля­ют под­нять наши пра­ва, так как обе работа­ют с уда­лен­ными путями UNC.

 

Как работает ShadowCoerce

Для ShadowCoerce дос­тупен PoC, который демонс­три­рует зло­упот­ребле­ние эти­ми фун­кци­ями. Исполне­ние кода зас­тавля­ет учет­ную запись кон­трол­лера домена зап­росить общий ресурс NETLOGON или SYSVOL из сис­темы, находя­щей­ся под кон­тро­лем зло­умыш­ленни­ка. При­нуди­тель­ная аутен­тифика­ция выпол­няет­ся через SMB, в отли­чие от дру­гих подоб­ных методов при­нуж­дения (PrinterBug и PetitPotam).

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

В жур­нале событий кон­трол­лера домена видим, как запус­кает­ся сам про­цесс и служ­ба VSS.

Подключение к сетевому ресурсу от имени user
Под­клю­чение к сетево­му ресур­су от име­ни user
Запуск процесса fssagent и службы VSS
За­пуск про­цес­са fssagent и служ­бы VSS

Да­вай раз­берем сам про­цесс ата­ки ShadowCoerce.

Для ее про­веде­ния зло­умыш­ленник выпол­няет сле­дующие дей­ствия.

  1. Под­клю­чает­ся к сетево­му ресур­су с помощью экс­пло­ита и зло­упот­ребля­ет фун­кци­ями IsPathSupported и IsPathShadowCopied в про­токо­ле MS-FSRVP.
  2. По­луча­ет NTLMv2-хеш от кон­трол­лера домена (SMB). Вре­донос­ный код при­нуж­дает учет­ную запись кон­трол­лера домена к аутен­тифика­ции по про­токо­лу SMB на зах­вачен­ном компь­юте­ре.
  3. Пе­ренап­равля­ет хеш в центр сер­тифика­ции (LDAP).
  4. По­луча­ет сер­тификат в Base64.
 

Эксплуатация

Те­перь я покажу, как выг­лядит сама экс­плу­ата­ция.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии