<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>CyberSecrets</title><subtitle>Блог о наступательной безопасности.
Вся информация представлена в обучающих целях.</subtitle><author><name>CyberSecrets</name></author><id>https://teletype.in/atom/cyb3r53cr3t5</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/cyb3r53cr3t5?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@cyb3r53cr3t5?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cyb3r53cr3t5"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/cyb3r53cr3t5?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-07T19:39:45.788Z</updated><entry><id>cyb3r53cr3t5:create_local_boxes_vagrant_for_goad</id><link rel="alternate" type="text/html" href="https://teletype.in/@cyb3r53cr3t5/create_local_boxes_vagrant_for_goad?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cyb3r53cr3t5"></link><title>Создаем локальные боксы Vagrant для GOAD</title><published>2026-06-04T08:02:38.308Z</published><updated>2026-06-04T08:02:38.308Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/6c/e1/6ce18bd4-925a-432c-9717-4726a1a01c35.png"></media:thumbnail><category term="laboratoriya" label="Лаборатория"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/39/ce/39ce5343-ff15-43d4-bf82-b2cbad8afe8b.png&quot;&gt;Я много слышал про GOAD, но никогда не разворачивал. И вот я решил посмотреть, что это такое в живую. Однако существует проблема Hashicorp запрещает доступ к образам с российских IP адресов. У меня нет возможности выкачивать несколько гигабайт через VPN, однако есть возможность скачать приложения vagrant и packer. Сегодня я расскажу, как с помощью них можно создать локальные боксы Vagrant для GOAD.</summary><content type="html">
  &lt;figure id=&quot;3Rhx&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/39/ce/39ce5343-ff15-43d4-bf82-b2cbad8afe8b.png&quot; width=&quot;639&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;pJDw&quot;&gt;Я много слышал про GOAD, но никогда не разворачивал. И вот решил посмотреть, что это такое в живую. Однако существует проблема Hashicorp запрещает доступ к образам с российских IP адресов. У меня нет возможности выкачивать несколько гигабайт через VPN, однако есть возможность скачать приложения vagrant и packer. Сегодня я расскажу, как с помощью них можно создать локальные боксы Vagrant для GOAD.&lt;/p&gt;
  &lt;p id=&quot;n1m7&quot;&gt;У меня локальная лаборатория на Windows с использованием VirtualBox в качестве гипервизора. Но техника будет работать и для VMWare со своими особенностями. Для самого GOAD я использовал WSL, но сейчас он нам не нужен. Скачиваем и устанавливаем приложение Vagrant с официального сайта. Клонируем GOAD из репозитория. Скачиваем Packer с официального сайте Hashicorp и распаковываем исполняемый файл в «&lt;em&gt;\GOAD\packer\vagrant\&lt;/em&gt;».&lt;/p&gt;
  &lt;p id=&quot;3CZM&quot;&gt;Для взаимодействия Packer с приложениями Vagrant и VirtualBox необходимо установить плагины:&lt;/p&gt;
  &lt;p id=&quot;oIQ9&quot;&gt;&lt;code&gt;.\packer.exe plugins install github.com/hashicorp/virtualbox&lt;br /&gt;.\packer plugins install github.com/hashicorp/vagrant&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;KSFj&quot;&gt;Для Vagrant тоже нужно установить несколько плагинов, возможно, не все они требуются для Packer, но для GOAD точно нужны:&lt;/p&gt;
  &lt;ul id=&quot;geHL&quot;&gt;
    &lt;li id=&quot;IZ7d&quot;&gt;vagrant-reload&lt;/li&gt;
    &lt;li id=&quot;K5bi&quot;&gt;micromachine&lt;/li&gt;
    &lt;li id=&quot;tu9O&quot;&gt;vagrant-vbguest&lt;/li&gt;
    &lt;li id=&quot;NZAb&quot;&gt;nori&lt;/li&gt;
    &lt;li id=&quot;MJNu&quot;&gt;winrm&lt;/li&gt;
    &lt;li id=&quot;YdXE&quot;&gt;winrm-fs&lt;/li&gt;
    &lt;li id=&quot;nFcR&quot;&gt;winrm-elevated&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;iZBe&quot;&gt;Чтобы не обращаться к сайту Hahicorp для установки плагинов пойдем на сайт &lt;a href=&quot;https://rubygems.org&quot; target=&quot;_blank&quot;&gt;https://rubygems.org&lt;/a&gt; и скачаем локально все необходимые плагины. Теперь чтобы установить плагины нужно выполнить команду для каждого файла:&lt;/p&gt;
  &lt;p id=&quot;cAhM&quot;&gt;&lt;code&gt;vagrant.exe plugin install --plugin-clean-sources &amp;lt;plugin_name&amp;gt;.gem&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;dPOJ&quot;&gt;Проверить что все плагины установлены можно командой:&lt;/p&gt;
  &lt;p id=&quot;OLx8&quot;&gt;&lt;code&gt;vagrant.exe plugin list&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;UeSK&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b5/c7/b5c7892a-746a-4bc4-8f03-605bc7c871b2.png&quot; width=&quot;759&quot; /&gt;
    &lt;figcaption&gt;Список установленных плагинов Vagrant&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fIOk&quot;&gt;Мы готовы к созданию боксов.&lt;/p&gt;
  &lt;p id=&quot;LQaM&quot;&gt;Авторы GOAD предоставили все необходимые конфигурационные файлы в «&lt;em&gt;\GOAD\packer\vagrant\&lt;/em&gt;» осталось только запастись терпением. В GOAD в основном используется Windows Server 2019 поэтому начну с него. Необходимо выполнить команду:&lt;/p&gt;
  &lt;p id=&quot;Ogf3&quot;&gt;&lt;code&gt;.\packer.exe build --only=virtualbox-iso windows_2019.json&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;RSqh&quot;&gt;Packer самостоятельно скачает образ Windows Server 2019 и запустит автоматическую настройку. Если во время загрузки происходит обрыв связи, то можно открыть файл «&lt;em&gt;windows_2019.json&lt;/em&gt;» внизу файла будет ссылка на загрузку и можно скачать образ обычным способом и тогда запуск команды немного измениться. Я специально переименовал ISO файл чтобы он был короче.&lt;/p&gt;
  &lt;p id=&quot;hziG&quot;&gt;&lt;code&gt;.\packer.exe build --only=virtualbox-iso --var iso_url=Windows_Server_2019.iso windows_2019.json&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;hsRN&quot;&gt;Если вы хотите использовать собственные ISO файлы нужно прописать ключи в «&lt;em&gt;Autounattend.xml&lt;/em&gt;» в директории «&lt;em&gt;answer_files&lt;/em&gt;», там есть целый блок, описывающий как это сделать. Но ознакомительной версии Windows достаточно для лаборатории.&lt;/p&gt;
  &lt;p id=&quot;5OyU&quot;&gt;Дожидаемся, когда завершится процесс сборки бокса, у меня со всеми обновлениями заняло около двух часов. Теперь необходимо добавить бокс в локальное хранилище Vagrant. Чтобы не менять конфигурационный файлы для лабораторий имя бокса взято из файла «G&lt;em&gt;OAD\ad\&amp;lt;lab&amp;gt;\providers\virtualbox&lt;/em&gt;». Хотя для некоторых лабораторий придется менять Vagrantfile чтобы установить версию &amp;quot;0&amp;quot; иначе будут попытки скачать бокс из Интернета.&lt;/p&gt;
  &lt;p id=&quot;oyiv&quot;&gt;&lt;code&gt;vagrant.exe box add /path/to/file.box --name &amp;quot;StefanScherer/windows_2019&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;O3Bq&quot;&gt;Чтобы проверить, что наш бокс попал в локальное выполним команду:&lt;/p&gt;
  &lt;p id=&quot;xMDA&quot;&gt;&lt;code&gt;vagrant.exe box list&lt;/code&gt;&lt;/p&gt;
  &lt;figure id=&quot;Tc7p&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/df/52/df5284c9-d846-48f5-bb3c-45bf129cf57d.png&quot; width=&quot;742&quot; /&gt;
    &lt;figcaption&gt;Локальное хранилище боксов Vagrant&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;QNQ6&quot;&gt;Локальное хранилище находиться в профиле пользователя в директории «&lt;em&gt;vagrant.d&lt;/em&gt;»&lt;/p&gt;
  &lt;p id=&quot;mMrO&quot;&gt;Выполнив шаги по созданию боксов для других версий Windows, можно приступать к созданию лаборатории.&lt;/p&gt;
  &lt;p id=&quot;x8TY&quot;&gt;Еще раз повторюсь для VMWare будет таже самая история, но нужен другой плагин Packer для взаимодействия c VMWare и в команде &lt;em&gt;build&lt;/em&gt; измениться название гипервизора.&lt;/p&gt;

</content></entry><entry><id>cyb3r53cr3t5:solve_task_6</id><link rel="alternate" type="text/html" href="https://teletype.in/@cyb3r53cr3t5/solve_task_6?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cyb3r53cr3t5"></link><title>Решение задачки #6</title><published>2026-05-28T07:35:05.235Z</published><updated>2026-05-28T07:35:05.235Z</updated><category term="zadachi" label="Задачи"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/d6/9d/d69d277b-2e53-442d-8a71-51bea071b53f.jpeg&quot;&gt;Итак, у нас есть доменная учетная запись PENTESTER, с помощью которой мы можем обращаться к контроллеру домена. Есть сервисная учетная запись учетная запись SVC_SQL с SPN, и мы можем выполнить технику &quot;Kerberoasting&quot;. Однако по условиям задачи на эту учетную запись установлен сложный пароль и перебор пароля если и возможен, то займет много времени.</summary><content type="html">
  &lt;figure id=&quot;ZtW0&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d6/9d/d69d277b-2e53-442d-8a71-51bea071b53f.jpeg&quot; width=&quot;447&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;mS5B&quot;&gt;Итак, у нас есть доменная учетная запись &lt;strong&gt;&lt;em&gt;PENTESTER&lt;/em&gt;&lt;/strong&gt;, с помощью которой мы можем обращаться к контроллеру домена. Есть сервисная учетная запись учетная запись &lt;em&gt;&lt;strong&gt;SVC_SQL&lt;/strong&gt;&lt;/em&gt; с SPN, и мы можем выполнить технику &amp;quot;&lt;em&gt;Kerberoasting&lt;/em&gt;&amp;quot;. Однако по условиям задачи на эту учетную запись установлен сложный пароль и перебор пароля если и возможен, то займет много времени.&lt;/p&gt;
  &lt;p id=&quot;EDvC&quot;&gt;Так же мы видим, что группа доменных компьютеров владеет сервером &lt;strong&gt;&lt;em&gt;SRV-SQL-01&lt;/em&gt;&lt;/strong&gt;. Это означает, что владелец объекта может назначать любые права для объекта &lt;em&gt;&lt;strong&gt;SRV-SQL-01&lt;/strong&gt;&lt;/em&gt;. Но для этого требуется учетная запись компьютера.&lt;/p&gt;
  &lt;p id=&quot;kH16&quot;&gt;По условию задачи все настройки установлены по умолчанию. А значит создаем объект компьютер и с помощью него назначаем себе любые привилегии на &lt;strong&gt;SRV-SQL-01&lt;/strong&gt;. Для удобства &amp;quot;&lt;em&gt;GenericAll&amp;quot;.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;TlNE&quot;&gt;Назначив права, нам необходимо получить доступ на хост. Выбираем технику между &amp;quot;&lt;em&gt;Shadow Credentials&amp;quot;&lt;/em&gt; и &amp;quot;&lt;em&gt;RBCD&lt;/em&gt;&amp;quot;. Пароль сбросить мы не можем так, как в этом случае машина «выпадет» из домена.&lt;/p&gt;
  &lt;p id=&quot;s6Th&quot;&gt;После получения доступа на хост с правами локального администратора, делаем дамп LSA и извлекаем из него секреты. В результате мы получим пароль от сервисной учетной записи &lt;strong&gt;&lt;em&gt;SVC_SQL&lt;/em&gt;&lt;/strong&gt; в открытом виде. И таким образом у нас есть права доменного администратора.&lt;/p&gt;

</content></entry><entry><id>cyb3r53cr3t5:pentest_task_6</id><link rel="alternate" type="text/html" href="https://teletype.in/@cyb3r53cr3t5/pentest_task_6?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cyb3r53cr3t5"></link><title>Задача для собеседования #6</title><published>2026-05-21T09:49:22.256Z</published><updated>2026-05-21T09:49:22.256Z</updated><category term="zadachi" label="Задачи"></category><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/49/72/4972b3a5-8c12-4c38-89b2-365ce3f57f2d.png&quot;&gt;Простой сценарий на понимание как работают службы в Windows.</summary><content type="html">
  &lt;figure id=&quot;6sVk&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/49/72/4972b3a5-8c12-4c38-89b2-365ce3f57f2d.png&quot; width=&quot;831&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;qftp&quot;&gt;Простой сценарий на понимание как работают службы в Windows.&lt;/p&gt;
  &lt;h2 id=&quot;TwNC&quot;&gt;Сценарий&lt;/h2&gt;
  &lt;p id=&quot;4sDI&quot;&gt;В ходе сбора информации мы обнаружили, что есть сервисная учетная запись &lt;strong&gt;&lt;em&gt;SVC_SQL&lt;/em&gt;&lt;/strong&gt; от имени, которой запускается служба MsSQL на сервере &lt;strong&gt;&lt;em&gt;SRV-SQL-01&lt;/em&gt;&lt;/strong&gt;. Сама учетная запись &lt;em&gt;&lt;strong&gt;SVC_SQL&lt;/strong&gt;&lt;/em&gt; является членом группы &lt;strong&gt;DOMAIN ADMINS &lt;/strong&gt;и у нее есть SPN. Так же было обнаружено, что доменная группа &lt;strong&gt;DOMAIN COMPUTERS&lt;/strong&gt; является владельцем сервера &lt;strong&gt;&lt;em&gt;SRV-SQL-01&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  &lt;h3 id=&quot;dKjC&quot;&gt;Дополнительные условия&lt;/h3&gt;
  &lt;ul id=&quot;IhjO&quot;&gt;
    &lt;li id=&quot;xYSh&quot;&gt;Есть доменная учетная запись &lt;strong&gt;&lt;em&gt;PENTESTER&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
    &lt;li id=&quot;W6oU&quot;&gt;Сложный пароль для сервисной учетной записи &lt;em&gt;&lt;strong&gt;SVC_SQL&lt;/strong&gt;&lt;/em&gt;.&lt;/li&gt;
    &lt;li id=&quot;4G7H&quot;&gt;На всех хостах в сети установлены последние обновления.&lt;/li&gt;
    &lt;li id=&quot;SIWF&quot;&gt;Настройки по умолчанию.&lt;/li&gt;
    &lt;li id=&quot;24a1&quot;&gt;Уровень домена – 2016.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;VVLM&quot;&gt;Цель&lt;/h2&gt;
  &lt;ul id=&quot;g1Nq&quot;&gt;
    &lt;li id=&quot;VoWq&quot;&gt;Получить привилегии  доменного администратора.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;4BFT&quot;&gt;Решение будет через пару дней.&lt;/p&gt;

</content></entry><entry><id>cyb3r53cr3t5:traversable_relationships</id><link rel="alternate" type="text/html" href="https://teletype.in/@cyb3r53cr3t5/traversable_relationships?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=cyb3r53cr3t5"></link><title>Проходимые и непроходимые связи в BloodHound</title><published>2026-05-12T07:48:53.168Z</published><updated>2026-05-12T07:48:53.168Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/95/0f/950f6b4a-e8cc-46c3-8a08-40bd9f8c9968.png"></media:thumbnail><category term="blood-hound" label="BloodHound"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/7f/59/7f593cfd-34ee-4761-ab4a-99a28fb96096.png&quot;&gt;Специалисты, которые самостоятельно пишут Cypher запросы для коротких путей, знают, что в некоторых случаях neo4j выдает не те графы, которые хочется увидеть. Особенно, когда строятся короткие пути от общих групп до группы доменных администраторов. Часто рисуются графы, связанные с шаблонами сертификатов и членством в локальных группах и не только в привилегированных. Эти графы практически невозможно преобразовать в цепочку атаки.</summary><content type="html">
  &lt;figure id=&quot;sfOA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7f/59/7f593cfd-34ee-4761-ab4a-99a28fb96096.png&quot; width=&quot;1090&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;FvJT&quot;&gt;Специалисты, которые самостоятельно пишут Cypher запросы для коротких путей, знают, что в некоторых случаях neo4j выдает не те графы, которые хочется увидеть. Особенно, когда строятся короткие пути от общих групп до группы доменных администраторов. Часто рисуются графы, связанные с шаблонами сертификатов и членством в локальных группах и не только в привилегированных. Эти графы практически невозможно преобразовать в цепочку атаки.&lt;/p&gt;
  &lt;p id=&quot;TDwx&quot;&gt;В этом случае надо фильтровать связи в самом Cypher запросе при построении коротких путей. Рассмотрим два варианта Cypher запросов. В перовом варианте указываем все интересующие связи в квадратных скобках и в конце добавляем бесконечное число прыжков:&lt;/p&gt;
  &lt;p id=&quot;3Vnr&quot;&gt;&lt;code&gt;MATCH p=AllshortestPaths((c:Group {name:&amp;quot;DOMAIN USERS@DOMAIN.LOCAL&amp;quot;})-[r:GenericAll|GenericWrite|DCSync|...*1..]-&amp;gt;(v:Group {name:&amp;quot;DOMAIN ADMINS@DOMAIN.LOCAL&amp;quot;})) RETURN p&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;T40m&quot;&gt;В другом варианте будем использовать оператор &lt;em&gt;&lt;strong&gt;IN&lt;/strong&gt;&lt;/em&gt; и исключать неинтересные нам связи:&lt;/p&gt;
  &lt;p id=&quot;k1Vp&quot;&gt;&lt;code&gt;MATCH p=AllshortestPaths((c:Group {name:&amp;quot;DOMAIN USERS@DOMAIN.LOCAL&amp;quot;})-[*]-&amp;gt;(v:Group {name:&amp;quot;DOMAIN ADMINS@DOMAIN.LOCAL&amp;quot;})) WHERE NONE(x IN relationships(p) WHERE type(x)=&amp;#x27;CrossForestTrust&amp;#x27; OR type(x)=&amp;#x27;DelegatedEnrollmentAgent&amp;#x27; OR ...) RETURN p&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;IzA6&quot;&gt;Писать такие запросы очень неудобно и можно создать шаблоны и использовать их. Но пойдем другим путем.&lt;/p&gt;
  &lt;p id=&quot;MA0m&quot;&gt;Разработчики BloodHound &lt;a href=&quot;https://bloodhound.specterops.io/resources/edges/traversable-edges&quot; target=&quot;_blank&quot;&gt;разделяют&lt;/a&gt; ребра (связи) графа на два типа: проходимые (traversable) и непроходимые (non-traversable). Первый тип позволяет захватывать конечный узел в графе, второй тип – это связи, которые могут не предоставлять захват конечного узла в графе.&lt;/p&gt;
  &lt;p id=&quot;Cg8V&quot;&gt;Зная какие связи являются проходимыми к ним можно добавить свойство  &lt;strong&gt;&lt;em&gt;is_traversable&lt;/em&gt;&lt;/strong&gt; и установить значение &lt;strong&gt;&lt;em&gt;TRUE&lt;/em&gt;&lt;/strong&gt;. Чтобы не писать вручную каждый Cypher запрос напишем простой ps-скрипт, который сгенерирует нам Cypher запросы на добавление свойства для каждой связи:&lt;/p&gt;
  &lt;p id=&quot;Kcti&quot;&gt;&lt;code&gt;$relationships = @(&amp;quot;AbuseTGTDelegation&amp;quot;,&amp;quot;ADCSESC1&amp;quot;,&amp;quot;ADCSESC10a&amp;quot;,&amp;quot;ADCSESC10b&amp;quot;,&amp;quot;ADCSESC13&amp;quot;,&amp;quot;ADCSESC3&amp;quot;,&amp;quot;ADCSESC4&amp;quot;,&amp;quot;ADCSESC6a&amp;quot;,&amp;quot;ADCSESC6b&amp;quot;,&amp;quot;ADCSESC9a&amp;quot;,&amp;quot;ADCSESC9b&amp;quot;,&amp;quot;AddAllowedToAct&amp;quot;,&amp;quot;AddKeyCredentialLink&amp;quot;,&amp;quot;AddMember&amp;quot;,&amp;quot;AddSelf&amp;quot;,&amp;quot;AdminTo&amp;quot;,&amp;quot;AllExtendedRights&amp;quot;,&amp;quot;AllowedToAct&amp;quot;,&amp;quot;AllowedToDelegate&amp;quot;,&amp;quot;CanPSRemote&amp;quot;,&amp;quot;CanRDP&amp;quot;,&amp;quot;ClaimSpecialIdentity&amp;quot;,&amp;quot;CoerceAndRelayNTLMToADCS&amp;quot;,&amp;quot;CoerceAndRelayNTLMToLDAP&amp;quot;,&amp;quot;CoerceAndRelayNTLMToLDAPS&amp;quot;,&amp;quot;CoerceAndRelayNTLMToSMB&amp;quot;,&amp;quot;CoerceToTGT&amp;quot;,&amp;quot;Contains&amp;quot;,&amp;quot;CrossForestTrust&amp;quot;,&amp;quot;DCFor&amp;quot;,&amp;quot;DCSync&amp;quot;,&amp;quot;DumpSMSAPassword&amp;quot;,&amp;quot;ExecuteDCOM&amp;quot;,&amp;quot;ForceChangePassword&amp;quot;,&amp;quot;GenericAll&amp;quot;,&amp;quot;GenericWrite&amp;quot;,&amp;quot;GoldenCert&amp;quot;,&amp;quot;GPLink&amp;quot;,&amp;quot;HasSIDHistory&amp;quot;,&amp;quot;HasSession&amp;quot;,&amp;quot;HasTrustKeys&amp;quot;,&amp;quot;ManageCA&amp;quot;,&amp;quot;ManageCertificates&amp;quot;,&amp;quot;MemberOf&amp;quot;,&amp;quot;Owns&amp;quot;,&amp;quot;OwnsLimitedRights&amp;quot;,&amp;quot;ReadGMSAPassword&amp;quot;,&amp;quot;ReadLAPSPassword&amp;quot;,&amp;quot;SameForestTrust&amp;quot;,&amp;quot;SpoofSIDHistory&amp;quot;,&amp;quot;SQLAdmin&amp;quot;,&amp;quot;SyncedToADUser&amp;quot;,&amp;quot;SyncedToEntraUser&amp;quot;,&amp;quot;SyncLAPSPassword&amp;quot;,&amp;quot;WriteAccountRestrictions&amp;quot;,&amp;quot;WriteDacl&amp;quot;,&amp;quot;WriteGPLink&amp;quot;,&amp;quot;WriteOwner&amp;quot;,&amp;quot;WriteOwnerLimitedRights&amp;quot;,&amp;quot;WriteSPN&amp;quot;)&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;7Jnq&quot;&gt;&lt;code&gt;foreach($relationship in $relationships){&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;BNuW&quot;&gt;&lt;code&gt;Write-Host &amp;quot;MATCH(m)-[r:$relationship]-&amp;gt;(n) SET r.is_traversable = TRUE;&amp;quot;&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;Gwpa&quot;&gt;&lt;code&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;l8vr&quot;&gt;После выполнения вставим все эти запросы в базу neo4j через browser neo4j.&lt;/p&gt;
  &lt;blockquote id=&quot;7LgN&quot;&gt;Название свойства &lt;strong&gt;&lt;em&gt;is_traversable &lt;/em&gt;&lt;/strong&gt;взято из документации по OpenGraph, но в самом BloodHound CE данное свойство не используется, и запросы строятся перечислением всех проходимых связей.  &lt;/blockquote&gt;
  &lt;p id=&quot;36mw&quot;&gt;Теперь чтобы воспользоваться новым свойством связи изменим наш поиск коротких путей на:&lt;/p&gt;
  &lt;p id=&quot;eeni&quot;&gt;&lt;code&gt;MATCH p=AllshortestPaths((c:Group {name:&amp;quot;DOMAIN USERS@DOMAIN.LOCAL&amp;quot;})-[*]-&amp;gt;(v:Group {name:&amp;quot;DOMAIN ADMINS@DOMAIN.LOCAL&amp;quot;})) WHERE ALL(x IN relationships(p) WHERE x.is_traversable = TRUE) RETURN p&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;xRH7&quot;&gt;В этом запросе мы просто говорим neo4j, что у всех связей в пути должно быть свойство &lt;em&gt;&lt;strong&gt;is_traversable&lt;/strong&gt;&lt;/em&gt; в значении &lt;strong&gt;&lt;em&gt;TRUE&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;Lsgq&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/53/e1/53e16fc2-cf46-46db-962c-ccc315b190d0.png&quot; width=&quot;698&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;98ZZ&quot;&gt;На двух изображениях одна и таже инфраструктура и узлы начала и конца, но во втором варианте мы используем только проходимые ребра, в результате картина более ясная.&lt;/p&gt;
  &lt;p id=&quot;LyTz&quot;&gt;Аналогично можно сделать с непроходимыми связями просто изменив набор на непроходимые связи и поставить значение свойства &lt;strong&gt;is_traversable&lt;/strong&gt; в &lt;strong&gt;&lt;em&gt;FALSE&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;lbgI&quot;&gt;При построении графов нужно использовать различные варианты фильтрации запросов и тогда результат будет полным.&lt;/p&gt;

</content></entry></feed>