Эксплуатация наушников IKKO Activebuds с искусственным интеллектом, запуск DOOM, кража их ключа API OpenAI и данных клиентов.

Man

Professional
Messages
2,965
Reaction score
488
Points
83
IMG_3221-1-2.jpg


Итак, мое путешествие с этими наушниками началось после того, как я увидел их в этом видео Mrwhosetheboss о бесполезных технологиях. Это устройство, похоже, также популярно в TikTok. Мои подозрения подтвердились, оно работает на Android. Поэтому, конечно, я пошел и купил их.

image.png


245 евро спустя... и они наконец прибыли!

Прежде чем мы углубимся в это, в отличие от rabbit, эта проблема была должным образом сообщена и исправлена. Это также мой первый настоящий пост в блоге/раскрытие, поэтому обратная связь приветствуется.

Небольшой обзор​


vlcsnap-2024-10-20-16h00m53s735.png


image-1.png


Мне нравится, как они прикрепили кабель USB-c к внешней стороне коробки, хотя внутри коробки есть еще один, поменьше. Кажется, у них закончилось место в коробке...

image-2.png


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

IMG_3227.jpg


Также доступны некоторые другие функции ИИ, например, переводы. Но это не обзор устройства, вы можете посмотреть другие видео на YouTube об этом. Анимация ChatGPT выглядит слишком похожей на само приложение, и OpenAI, вероятно, может навлечь на них юридические проблемы за кражу их фирменного стиля. Я также упомяну, что качество звука — полное дерьмо, если вы используете их профили эквалайзера, но его можно поднять до приемлемого уровня, настроив кривые эквалайзера самостоятельно.

Также есть несколько приложений, доступных в магазине IKKO, причина, по которой нет магазина Google Play, заключается в том, что эти приложения специально модифицированы для экрана ActiveBuds, по крайней мере, так говорит о них генеральный директор. Мы проверим это немного позже. Эти приложения включают в себя некоторые музыкальные приложения, такие как Spotify, а также некоторые игровые приложения, такие как, о боже, SUBWAY SURFERS BAYBEEEEE

IMG_3229.jpg


Конечно, все они невыносимы для навигации из-за маленького экрана. Однако теперь мы можем подтвердить, что он определенно работает на Android.

Время для хакерства​

К сожалению, нет браузера, который бы напрямую скачивал другие приложения. И хотя вы можете открыть собственное приложение настроек Android, нажатие номера сборки 7 раз не включает режим разработчика. Так что, похоже, я не смог включить adb. Неужели он так хорошо заблокирован? Хех, нет.

Давайте просто подключим его к ПК и посмотрим, что произойдет...

image-5.png


Какого хрена, они оставили ADB включенным. Ну, это намного упрощает задачу.

IMG_3221-4.jpg


После загрузки обязательного DOOM я начал проверять, как работает интеграция ChatGPT на бэкенде. Сначала я начал HTTP-инспектирование устройства, однако, поскольку я не мог включить нужные системные сертификаты без рутирования устройства, я не мог точно увидеть, на какой URL оно общалось. К счастью, это не было действительно необходимо.

image-6.png


Черт возьми, черт возьми, черт возьми, он общается НАПРЯМУЮ С OPENAI. Это означает, что на устройстве должен присутствовать ключ ChatGPT!

Я знаю, что это устройство можно рутировать, чтобы установить нужные сертификаты, потому что на всех устройствах Spreadtrum/Unisoc есть инструмент, который можно использовать для разблокировки загрузчика, если компании используют ключи подписи по умолчанию. Это действительно было так и здесь. Однако я не смог пройти дальше экрана подтверждения, так как на устройстве нет клавиши увеличения громкости для подтверждения разблокировки. Я думаю, что вы можете подписать свои собственные разделы, чтобы заставить его прошивать их без разблокированного загрузчика, но это немного слишком сложно для меня.

Итак, я вернулся к чертежной доске и просто выгрузил все приложения с помощью инструмента APK extractor. После того, как я вставил приложение-лаунчер в JADX, все сразу стало тревожным.

image-7.png


Устройство может взаимодействовать с любым из этих доменов.
  • api.openai.com
    Очевидно, API OpenAI
  • chat1.chat.iamjoy.cn
    Похоже, это API для всего устройства, включая функции, не связанные с ChatGPT, такие как магазин приложений. Загрузка его в браузере дает страницу входа.
  • chat2.chat.iamjoy.cn
    То же самое, что и chat1, возможно, резервный сервер?
  • openspeech.bytedance.com
    Понятия не имею, возможно, это резервная копия распознавателя речи вместо шепота, не видел сообщений об этом с этого устройства.
  • www.airdimple.cn
    Похоже на зеркало или прокси-сервер OpenAI API?

Зная это, я отправился на поиски конечных точек и ключей API. Я нашел файл SecurityStringsAPI, который содержал зашифрованные конечные точки и ключи аутентификации.

image-8.png


Вы можете подумать, эй, это просто base64, идиот, самая базовая кодировка, известная человечеству. И да, так оно и есть.

image-9.png


Однако есть второй этап, который обрабатывается нативной библиотекой, которая запутана до чертиков. Я даже не буду пытаться это читать. К счастью, мне не пришлось. Я просто загрузил приложение на другое устройство, которое было рутировано, и, ну, как и apk rabbit , оно просто работает!

IMG_3231.jpg


Проверка данного устройства:

image-10.png


Да, это ключ OpenAI.

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

image-11.png


Устройство также имеет еще несколько режимов, которые являются Angry Dan и In-Love Dan. Для режима angry вам нужно подтвердить, что вам 18+, потому что он на самом деле много ругается.

IMG_3232.jpg


IMG_3234.jpg


Системные подсказки для этого немного скучнее.

image-14.png


Я также заметил, что он записывает чат на другую конечную точку в домене chat1. Вероятно, это просто для ведения журнала сообщений, поскольку API ChatGPT этого не позволяет. Возможно, для какого-то китайского шпионажа? Ну, возможно, но не полностью, мы до этого доберемся.

image-12.png


Заголовки этого запроса включают сообщение, модель, ответ и IMEI устройства в качестве идентификатора устройства.

Я также загрузил приложение магазина и обнаружил, что большинство приложений, похоже, скопированы прямо с apkpure.com.

image-16.png


Узнав эту информацию, я отправил электронное письмо в отдел безопасности IKKObuds.

image-13.png


Пока ждал их ответа, я начал изучать их сопутствующее приложение. Подождите, я забыл вам об этом рассказать?
Да, у этих наушников есть сопутствующее приложение, с помощью которого вы также можете напрямую взаимодействовать с ChatGPT и просматривать свои предыдущие чаты с устройства. Так вот для чего используется конечная точка регистрации! Вы привязываете приложение, сканируя QR-код с устройства в меню «Участие».

Screenshot_20241020_171909_IKKO.jpg


Итак, давайте проверим HTTP-запрос этого приложения и выясним, откуда оно берет эту информацию.

image-17.png


image-18-1.png


Хорошо, он запрашивает этот API с вашим токеном учетной записи и идентификатором вашего устройства и возвращает все чаты, которые у вас когда-либо были с устройством. Однако после удаления токена учетной записи запрос все еще работал? Так что этот API не имеет аутентификации, кроме идентификатора устройства. Я боялся худшего.

Я нашел кадр в обучающем видео, в котором идентификатор устройства не был должным образом размыт, и добавил его в API.

image-19.png


image-20.png


ДА, теперь у меня есть вся история чата их демо-устройства. И поскольку IMEI имеет определенный диапазон, вы сможете выяснить историю чата всех клиентов, которая может включать конфиденциальные данные.
Я также добавил это новое открытие в цепочку писем.

image-23.png


Пока это письмо ждало ответа, я проверил, могу ли я сфабриковать связывающий QR-код из известного IMEI, чтобы привязать устройство. (QR-код — это не сам IMEI, а что-то зашифрованное) Я нашел конечную точку API, посмотрев на тот же SecurityStringsAPI, который оказался менее безопасным, чем я изначально думал, потому что имена переменных буквально раскрывают зашифрованные конечные точки API (лол)

image-22.png


Подключив API getBindDevQrCode в Postman, я смог создать изображение QR-кода в формате base64 с любым IMEI.

image-24.png


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

image-25.png


Однако я соврал, это все еще проблема безопасности/конфиденциальности. Почему, спросите вы? Это раскрывает имя пользователя, которое вы указали при создании учетной записи для приложения. Однако при создании учетной записи нет поля имени пользователя. Только имя и фамилия.

image-26.png


Я создал учетную запись с именем "Cheese2" и вторым именем "Delight2". Оказывается, имя пользователя равно имени + фамилии. При попытке привязать это устройство к приложению после того, как оно уже было привязано к другому приложению, ответ включает имя "Cheese2Delight2". Отлично. Doxed.

image-27.png


Итак, что мы можем сделать сейчас, так это угадать IMEI -> сгенерировать QR-код -> Привязать устройство, если оно еще не привязано, или узнать ваше полное имя, если устройство уже привязано. -> Получить всю историю чатов, независимо от того, привязано устройство или нет.

Doxed + Ratio + ждать....

image-28.png

Есть ли конечная точка unbind_dev???

К сожалению, этот способ на самом деле проверяет токен аккаунта и не позволяет отвязать случайный IMEI устройства. Уф.

Эй, а ты помнишь ту конечную точку регистрации, которая на самом деле отправляла твои чаты, созданные с помощью ChatGPT, на их серверы? Вот эту?

image-12-1.png


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

Я попытался отправить через него немного HTML и JS, чтобы попытаться использовать сопутствующее приложение, к счастью, они используют vue для своего приложения, и в нем встроена защита от инъекций HTML и JS по умолчанию . Но мы все равно можем отправлять мошеннические сообщения или что-то еще любому пользователю.

О, привет, ответ на мое письмо!

image-31-1.png


Во-первых, с адреса gmail? Да ладно, постарайтесь же проявить хоть какой-то профессионализм. Во-вторых, окей, они действительно что-то делают.

(Упомянутый канал YouTube — это потому, что я сказал, что сниму видео об этом. У меня есть все кадры для этого, но я ненавижу свой голос всей душой, поэтому мы здесь, в этом блоге :))

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

image-32.png


image-33.png


Они также хотели стать спонсором моего пустого канала на YouTube? Что?

Я не думаю, что они поняли, что я буду говорить об их ужасной безопасности. В любом случае.

image-34.png


API теперь не функционировал и отображал сообщение о техническом обслуживании. После периода обслуживания они выпустили как обновление приложения, так и обновление устройства.

Что изменилось? Конечной точке для получения истории чата теперь нужен заголовок «signature». Который состоит из токена вашей учетной записи, идентификатора вашего устройства, языка и текущего времени, закодированных с помощью открытого/закрытого ключа + пароля.
(ой, раскрыл это)

image-35.png


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

Обновление устройства сломало функциональность ChatGPT, которая не функционирует на устройстве, которое не является самим IkkoBuds. Ключи остаются на устройстве и не были ротированы. Так что если кто-то сможет разобраться со сломанным приложением на другом устройстве или системой шифрования ключей, вы все равно сможете получить свой собственный бесплатный ключ API OpenAI.

image-37.png


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

image-36.png


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

Я сдаюсь, но если кто-то еще хочет, чтобы эта компания это исправила, будьте моим гостем.
Также, если вам понравилось это глубокое погружение, подумайте о том, чтобы поддержать меня, чтобы я смог убедить себя, что покупка более странных устройств Android того стоит, лол.

Источник
 
Top