DCShadow для FreeIPA. Как DCSync привел меня к новой CVE

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

  • DCSync
  • Что за CVE-2025-4404?
  • Путь эксплуатации
  • Общение с вендором
  • Выводы

Что делать в кон­це пен­теста FreeIPA — ког­да пароль получен, а дос­тупа к кон­трол­леру домена по SSH нет или там сто­ит гроз­ная защита, не дающая сдам­пить id2entry.db и нас­лаждать­ся кра­сивым отче­том? В слу­чае с обыч­ной Active Directory ответ оче­виден — DCSync, и дело с кон­цом, но для FreeIPA таких ресер­чей нет… Что ж, подер­жи мое пиво, оставше­еся у меня пос­ле об­наруже­ния CVE-2024-3183.

Это иссле­дова­ние получи­ло пер­вое мес­то на Pentest Award 2025 в катего­рии «Про­бив инфраструк­туры». Сорев­нование еже­год­но про­водит­ся ком­пани­ей Awillix.

Мое новое иссле­дова­ние нап­рямую не свя­зано с пре­дыду­щим, но из одно­го вылилось дру­гое, да и на про­ектах они при­меня­ются сов­мес­тно.

По­чему я подал­ся и в номина­цию Out of Scope? Счи­таю, что тут цен­нее сам ресерч, а не мес­то его при­мене­ния.

Рас­сказ я попытал­ся мак­сималь­но сок­ратить и убрать тех­ничес­кие под­робнос­ти, которые могут тебе помешать сле­дить за сутью.

 

DCSync

Что ж, нач­нем раз­бирать­ся, как работа­ет реп­ликация в 389 Directory Server. Имен­но этот про­дукт отве­чает за сер­вер LDAP во FreeIPA. Давай заг­лянем в докумен­тацию… Впро­чем, не заг­лянем, потому что ее нет!

Тог­да откро­ем исходный код, это нам силь­но облегча­ет ана­лиз по срав­нению с тем же Microsoft Domain Controller. И в исходном коде мож­но уви­деть некото­рое количес­тво OID, отве­чающих за реп­ликацию.

Это толь­ко часть OID, отве­чающих за реп­ликацию

Од­нако дело упро­щает­ся тем, что реп­ликация здесь вынесе­на в отдель­ный пла­гин из ldap/servers/plugins/replication. Мож­но изу­чить его исходни­ки и понаб­людать за тра­фиком в про­цес­се реп­ликации двух кон­трол­леров доменов. Сде­лав это, я уста­новил нес­коль­ко фак­тов:

  • В отли­чие от MS DC нель­зя зап­росить изме­нения, мож­но толь­ко прий­ти с новыми.
  • Кон­трол­леры домена не исполь­зуют RPC (собс­твен­но, во FreeIPA вооб­ще такого нет).
  • Если меня­ются зна­чения атри­бутов, реп­ликация про­исхо­дит сра­зу по ини­циати­ве кон­трол­лера домена, на котором про­изош­ло изме­нение.
  • Это зна­чит, что ана­логия с DCSync не сов­сем пра­виль­на, так как мы не можем ини­цииро­вать реп­ликацию сами в нашу сто­рону. Зна­чит, нам нужен DCShadow.

    Вспом­ним ори­гиналь­ный ресерч по DCShadow и нач­нем собирать необ­ходимую информа­цию:

  • Как кон­трол­лер домена обра­щает­ся к дру­гому?
  • Что нуж­но, что­бы нас вос­при­няли как дру­гой DC?
  • Как нам обра­ботать зап­рос от дру­гого DC и сох­ранить резуль­тат?
  • Какие пра­ва нуж­ны для ата­ки?
  • Да­вай поп­робу­ем отве­тить на эти воп­росы.

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

    Ответить

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