Бэкдор в active directory своими руками

    Итак, мы все знаем про подлых пользователей c UID=0 в unix, которых может быть больше одного.

    Посмотрим, как такое же (а на самом деле, даже более страшное) организовывается в инфраструктуре Windows. Разумеется, мы говорить будем не про локальные виндовые учётные записи, а про Active Directory, т.е. говорить будем об администраторе домена. Или, даже, хуже, об enterprise administrator.

    Итак, истина номер один: у объектов в active directory есть атрибуты и права доступа.
    Истина номер два: эти атрибуты можно менять.

    Как легко понять, мы МОЖЕМ сделать учётную запись с фантастическими правами, к которой не будет доступа НИ У КОГО. Однако, он сможет логиниться, блокировать, разблокировать, менять свои атрибуты и атрибуты чужих людей.

    В самом страшном случае, это будет пользователь с волшебным SID-*500, которого не позволяет удалить уже сама винда. (Для этого нужно переименовать, а на его место положить другого пользователя с ником Administrator и с полными правами).

    Таким образом, мы получим формально чистенький беленький пушистенький домен, внутри которого живёт большой, жирный… м… даже не знаю кто. Ну, пусть он будет называться северным пушным зверем.

    Шаги для выполнения:
    1) Создайте учётную запись или переименуйте администратора. Назовите её очень… странно. Например, ExchangeLegacyReciver. В обычном эксчейнже есть ExchangeLegacyInterop, так что понять о чём тут речь будет очень и очень сложно.
    2) Задайте ей соотвествующее имя. Типа, Exchange Legacy Connection Reciver.
    3) Задайте ей пароль, укажите «пароль никогда не истекает» и т.д.
    4) Включите её в все нужные группы. Реально, для контроля над доменом достаточно вхождения в Remote Desktop Users (или другую группу, указанную в свойствах tcp-RDP) и Enterprise Administrator. Чем меньше

    Дальше начинается магия:

    1) Логинимся под этой учёткой.
    2) Запускаем ads* (если не знаете, что там на месте звёздочки, вам это не нужно. Тем кто знает и понял о чём речь, просьба не отвечать на вопросы школьных хэккеров про пропущенную часть)
    3) Ищем себя в нужном OU. Первым делом идём в свойства и меняем владельца на некую другую учётную запись с достаточными правами (чтобы, если ошибёмся, могли поменять или удалить)
    4) Снимаем галку наследования, копируем атрибуты.
    И… Ну вы поняли. Удаляем всё лишнее. Удаление SYSTEM из тех, кто имеет право, приведёт к странной ситуации: даже учётная запись не сможет изменить свои атрибуты через оснастки, однако, может их редактировать через ads*; добавляем себе полные права на себя.
    5) Создайте в ou=Program data новый контейнер System
    5) Переместите объект (правой кнопкой, move) в, например, Program Data. Это место никому и никогда НЕ видно. Т.е. ваш объект будет существовать «где-то», где его видно будет только через ads* или подобные утилиты. Альтернативно, переместите просто в корень домена.
    6) Проверьте права после перемещения (их любят дописывать)
    7) проделайте трюк с правами с контейнером. Это не позволит посторонним людям не только менять атрибуты или их читать, но и видеть сам факт существования.

    Учтите, во время всего этого — одна ошибка — и вы больше не владелец самого себя без права восстановления.

    Собственно, можно сказать, почти всё. Можете (проверив, что логин и т.д. хорошо), менять владельца пользователя на самого себя. Точка, цепочка замкнулась. Дальше только восстановление из бэкапа. Самое что смешное, другие пользователи с полными правами вас даже не будут видеть в active directory. Даже в ads*.

    Дальше остаётся только секьюритизировать главное — это членство в группах (один неверный шаг — и вы труп, восстанавливать из бэкапа).

    Итак:

    1) Переименовываем группу (через ads) в что-то своё. Например, Builtin Security Principial.
    2) Создаём Enterprise Administrator. Включаем его в Builtin Security Principial.
    3) Перемещаем Builtin Security Principial в program data\system
    4) делаем ему аналогичную «магию» с правами.
    5) PROFIT???

    ВИДНО это будет. Увы. Спрятать до конца членство мне не удалось (хотя можно создать цепочку...) Однако, при попытке удалить вас из членов группы, будет появляться ошибка there is no such object on server.

    При этом:

    1) энтерпрайзнутые и доменные админы по-прежнему имеют право на существование. Группа есть, права её правильные, домен работает как положено (не проверял установку эксчейнжа, правда).
    2) Есть учётная запись, которую НЕВОЗМОЖНО увидеть. Никак. Ни из ads* ни из чего-либо другого (можно увидеть странный контейнер, но не более).
    3) Членство в группах у этой учётки не заметно.

    Дальнейший уровень стелса — попытаться сменить тип группы и пользователя на что-то другое (например, на компьютер). Не уверен, что это можно, и что это будет адекватно воспринято компьютерами в сети.

    P.S. Прошу прощения, писал сумбурно по мере поиска решения проблем. Завтра если будет время, подниму виртуалку с 2008, проверю это там в полном объёме.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 69
    • НЛО прилетело и опубликовало эту надпись здесь
      • +1
        Тушите топик!!!11: )
        • +21
          Вот так вот на мелочах крутейшие дырки и палятся.
          Reciver = Receiver :)
          • +1
            Principial = Principal
            • +3
              кажыся это не баг, кажыся это фича.
              • +1
                рут своими руками через drug'n'drop интерфейс? =)
                • 0
                  чтоб сделать его уже надо быть рутом. завтра все деревья корпоративные не лягут. тока нерадивые админы, норы себе оставят.
                  • 0
                    Да, без drug тут не обошлось.
              • 0
                Написано несколько сумбурно.
                Но если ничего не пропустил, то:

                1)В members тех security group, куда добавлена эта учетка можно будет увидеть SID неизвестной учетки.
                2)Если у вас есть права админа вы можете стать owner'ом объекта даже если у вас явно не назначены права.
                • –1
                  Групп этих 2 шт — enterpirse administrator и Remote desktop users.

                  Как я уже сказал, вместо того, чтобы включать SSID учётки туда (кстати, там будет не SSID, а вполне себе человеческий CN), вместо «правильной группы» кладётся подложная, включенная в переименованную «настоящую», которая заныкана в недоступном CN.
                  • 0
                    Ну если мы говорим об Enterprise Admins, то и SID у нее будет стандартный, у группы добавленной вручную, соответственно, отличный. Да, визуально, в первом приближении это не заметно, но, например, в том же ADUC для 2008 серверов можно легко атрибуты посмотреть.

                    Опять же, на невидимую папку (Program Data виден при включении Advanced View в ADUC) или OU можно переназначить права и настроить видимость.
                    • –1
                      Да, завтра я посмотрю как это выглядит на 2008, пока ничего не скажу, писал по 2003.
                      • 0
                        В 2003 аналогично. И папку Program data в стандартной оснастке видно (в Эдвансед Вью) и оунером объекта на который нет прав стать можно, если права администратора домена есть.
                        • –1
                          Да, есть такой метод. В ads* он был не доступен (невозможно было отобразить элемент без прав на него), так что я решил, что это будет касаться и ADUC. В таком виде, это, действительно, наивная маскировка.
                    • +2
                      Всякие запрятывания в несколько групп с хитрыми именами, могут принести пользу только при неопытном администраторе который пользуется только ADUC'ом. Любой более менее опытный — знает какие записи у него должны быть в Enterprise Admins, и лишняя группа вызовет подозрение.
                      Ну а дальше либо скрипт перебирающий членство группы и подгрупп, либо просто Get-QADGroupMember -recurse (или как то так). Сразу всплывает ошибка при чтении какой то подозрительной учетки. Такие ошибки у Ent admin'а возникают не часто, и сразу вызывают еще большие подозрения. Осталось получить права на учетку с помощью… какой там ads*, возьмем сразу ld?.exe ;) Ну или командлеты опять же. Так что «бекдор» далеко не невидимый и не неубиваемый…

                      А если еще вспомнить про то что в домене может быть настроен аудит (про что автор забыл), то «исследователь интересных эффектов» может еще и по ушам получить. Если конечно его манипуляции с группами не были засечены еще раньше с помощью OpsMgr ACS и его не уволили ;)
                    • –1
                      По второму пункту: нет, не можете. Я лично «упустил» одну учётку — я не могу открыть её свойства для смены ownership'а, ads* говорит, что «путь не найден».

                      Кстати, права админа чего должны быть для смены ownershipa объекта в Domain, OU=Computers например?
                      • 0
                        Только что попробовал, через ADS* выводит сообщение An invalid directory pathname was passed, но при этом прекрасно можно поменять owner'а через ADUC, вкладку security.
                        • –1
                          Видимо, это уже 2008. В 2003 показывает мол, путь не найден и всё.

                          Выглядят права вот так:



                          т.е. снесены нафиг все SYSTEM и т.д.
                          • +10
                            Раз уж прячешь, прячь по хорошему — корень прошляпил 8)
                            Илита, блин.
                            • +7
                              EPIC FAIL.
                              • –2
                                А ты его спалил. В пм не мог написать?
                                Еще один, блин.
                                • +10
                                  Да нечего там палить.
                                  Что, блин, за подростковая тяга к элитарности? «У меня есть, но никому не скажу».
                                  Хочешь избежать размножения скрипт-киддисов? Шли такие штуки разработчикам, а не на хабре выкладывай.
                                  • +10
                                    Во-во, на йух эти дешевые понты на пустом месте. Я вот не разбираюсь в AD, мне шарады предлагается разгадывать, если я статью хочу прочитать? Давайте еще каждое второе слово звездочками закроем.
                              • –1
                                fixed
                              • 0
                                Ну вот, что я вижу в ADUC для W2K3. Объект неизвестного типа (контейнер), после перехвата owner'а и назначения прав, вижу внутри учетку и поступаю аналогичным образом.
                                • –1
                                  а, точно. Сейчас подумаю…
                        • 0
                          У нас был случай на работе, орлы молодые сделали подобное в отношении одного важного контейнера, но не от большого ума, а от его отсутствия. Как раз ads* и помог, к счастью.
                          • +2
                            мощно завернул. даже в голову не приходило. спасибо.
                            • –4
                              А смысл прятать за что-то за * если это находится на раз?
                              • +8
                                Зашита от дурака.
                                Вы еще спросите почему публичные эксплоиты в нерабочем состоянии публикуют :)
                              • 0
                                Нашел утилиту поиском. Мда, много воды утекло, с тех пор, как сдавал на MCP по 2000-му серверу и AD.
                                Только чего её скрывать-то? Школота все равно не справится, а кому-то может и на пользу пойдет.
                                А или вот как я — чисто любопытство удовлетворить.
                                Но хозяин — барин, раскрывать секрет Полишинеля не буду. Тем более — гугл справляется за пару минут.
                                Если, конечно, понимаешь, что ищешь.
                                • 0
                                  заходим на википедию>статья про active directory, поиск на странице>ads>profit
                                  от силы 10 секунд ) какие минуты то? )
                                  • 0
                                    зачем поиск на странице? достаточно просто ввести в гугле «active directory ads
                                    остальные буквы оно само подсказывает
                                • +1
                                  Интересно, можно написать на PowerShell скриптик которые всё это делает, хммм…
                                  • –1
                                    Можно. Меня, скорее, интересует изменение атрибутов, которые owned by SAM и construction. Там можно очень много нахулиганить.
                                    • 0
                                      Можно попробовать использовать дополнительный модуль от Quest с коммандлетами для взаимодействия с AD, либо из Windows Server 2008 R2, оба позволяют менять произвольные атрибуты и назначать ACL на объекты.
                                    • 0
                                      Дайте пожалуйста направление на инфу о про подлых пользователях Unix c UID=0
                                      • 0
                                        1. vim /etc/passwd
                                        2. меняем uid с не-0 на 0
                                        3. логинимся
                                        4. ???
                                        5. PROFIT!
                                        • 0
                                          так просто? спасибо! буду знать.
                                          • 0
                                            В Solaris в таких случаях при настройках ssh по-умолчанию этим пользователем нельзя будет зайти удаленно, также как и рутом нельзя зайти. Поэтому придется сначало логиниться обычным пользователем, а затем делать su на юзера с UID=0.

                                            Пару раз приходилось таких пользоваталей продить сразу после инсталляции ОС, ибо в процессе работы над проектом заказчик менял рутовый пароль, а у нас был софт, который отчасти только под рутом можно было настроить.
                                          • 0
                                            Ну… это несерьезно, слишком уж палевно для бэкдора))
                                          • +7
                                            Ну, если грубо, все пользователи с UID=0 имеют права рута.

                                            А теперь вопрос на засыпку: сколько времени нужно админу unix, чтобы найти всех пользователей с uid=0 (в отсутствии руткитов), и сколько нужно администратору windows, чтобы найти описанное мною?
                                            • 0
                                              Хорошо бы статью про то, как такое детектить и устранять.
                                              • +4
                                                детектить рутов? или вот эту фигню в AD?

                                                левых рутов под unix — скрипт в одну строчку на шелле.

                                                Фигню в AD?

                                                Advanced Network Security Ltd выпустила Adanced Network Security Vuneability and Backdoor enterprise suite, всего по $7999 за процессор.
                                                • 0
                                                  Что-то наподобие

                                                  • +2
                                                    grep «x:0:» /etc/passwd | awk -F: '{print $1}'

                                                    Явно какая-то доп. клавиша моей Logitech G11 работает как Enter — который раз случайно отправляю недописанный комментарий.
                                                  • 0
                                                    Если использовать внешний мониторинг, в том же Zabbix есть предустановленные проверки на чексуммы в том числе /etc/passwd, удобно
                                                • 0
                                                  по уровню заморочек это сравнимо с «echo `my rsa key` >> /root/.ssh/authorized_keys» в малоприметной части конфига какого-нть демона с рутовыми на момент запуска правами. да, это руткит классический, но и описанный в статье способ — руткит.
                                                  • –1
                                                    вы путаете руткит и бэкдор. Описанное — бэкдор. Средство получить «дорогу в систему». Руткит — система, маскирующая присутствие в системе (например, заменяющая libc и показывающая немодифицированный ahuthorized_keys.
                                                    • 0
                                                      Не соглашусь, имхо тут разница чисто терминологическая: есть сокрытие уже полученного доступа (какой-то установленной сессии управления/обмена) или обеспечено только сокрытие таковой возможности (до собственно доступа). Опять же, имея рутовый бекдор/руткит, можно сессии ограничить по времени и чистить за собой следы каждый раз, благо их мало останется.
                                              • +3
                                                К вопросу «Во избежание шк*»
                                                Может быть следует изменить название статьи на что-то вроде: «Любопытные эффекты отображаемости поведения объектов AD, в связи со сменой их свойств. :)
                                                А то «бэкдор своими рукам» действует магически --> ТАКОЕ СЛУЧИЛОСЬ!!! ЖЕСТЬ!!! Я В ШОКЕ!!!
                                                • –1
                                                  Ну, реальное применение этого (помимо злобненького бэкапа аккаунта администратора) — бэкдоры.
                                                  • 0
                                                    … ну вот об этом пусть и будет внутри, а не на лобовом стекле.
                                                    Впрочем, с нынешним названием статью уж никто не прпустит, а это, что ни говори, популярность.
                                                    Спокойной ночи… А ну как на завтра проснетесь знаменитым? :)
                                                  • +1
                                                    Все равно шк* вряд ли имеют админский доступ к серверу (а иначе, как я понял, такого не провернуть).
                                                  • +4
                                                    Добыв азотную кислоту, Сайрес Смит подлил к ней глицерина, предварительно сгустив его путём выпаривания в водяной бане, и получил (даже без добавления охлаждающей смеси) несколько пинт желтоватой маслянистой жидкости.

                                                    Составление смеси Сайрес Смит произвёл один и поодаль от Трущоб, так как это соединение являлось опасным и могло привести к взрыву; а когда он принёс своим товарищам сосуд с полученной жидкостью, то коротко сказал:

                                                    — Вот нитроглицерин!
                                                    • 0
                                                      какая-то несовременная версия. В современной он должен привести 5 мешков и сказать «вот гексо… сахар!»
                                                      • +1
                                                        Вот вы ржете, а меня лет 5 назад один школьник (юный террорист — вахабист) выспрашивал как нитроглицерин получать. Пришлось объяснять, что основная проблема сделать и не взорваться самому. — Приведенный Вами рецепт череват самопроизвольным подрывом. Есть вариант исправить ***
                                                        • 0
                                                          В книге «Таинственный остров» в самые опасные химические рецепты были внесены намеренные ошибки.

                                                          ads* это безхитростное напомнило :)
                                                        • +4
                                                          Тише, а то Жюля Верна приравняют к экстремистской литературе!
                                                          • 0
                                                            Это еще фигня… У некоего Тома Клэнси в одной из книг рассказывается, как водородную бомбу смастерить :)
                                                        • +3
                                                          Мик* гов*
                                                          • –1
                                                            Ребячество какое-то…
                                                            Ещё и псевдо-конспирацию со звёздочкми устроили. Смешно!
                                                            Зачем всё это, если и так уже есть права Domain/Enterprise Admin?
                                                            • –2
                                                              Смешно то что это кого-то хоть на пол секунды напрягло.
                                                            • 0
                                                              Уже спрашивали что на месте *?
                                                              • 0
                                                                спасибо, полезное
                                                                в избранное

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.