Амир Отемади: Всем привет и добро пожаловать на презентацию GTVHacker «Взломай всё: 20 устройств за 45 минут».
Мы являемся создателями оригинальных продуктов Google TV с 2010 года, а также таких продуктов, как Chromecast, Roku и Nest, а также создаем эксплойты для всех устройств Google TV.
Так кто мы? Я научный сотрудник Accuvant Labs, группы GTVHacker, CJ — руководитель группы и исследователь безопасности, а иногда и разработчик технологий.
Ханс Нильсен — старший консультант по безопасности в Matasano, а Майк Бейкер — разработчик прошивки и соучредитель OpenWRT. Всего в нашей группе 8 участников, включая Gynophage, сейчас он занимается чем-то под названием DefCon CTF, Джей Фриман, создатель Cydia, ученик Коа Хоанга, и Том Двенгер, величайший эксперт по APK и всему, что с ними связано.
Джава.
Так почему же мы решаем взламывать устройства, почему не программное обеспечение, которое нам тоже не нравится? Знаете, когда устройство морально устаревает, подходит к концу срок службы, его просто выбрасывают на свалку.
По сути, старые устройства убиваются и никакой пользы от этого нет, как это произошло с Logitech Revue. Мы даем новую жизнь выброшенным устройствам, а также всегда стремимся сделать продукт лучше, придать ему больше возможностей, и если мы можем это сделать, мы это делаем.
Знаете, нам нравится решать технические задачи, например головоломки, которые вам нравится решать.
Обучение – это, конечно, увлекательный процесс, но суть этого изложения можно выразить словами:
«У тебя есть корень!»
По сути, «взломать 20 устройств за 45 минут» (время презентации) не оставляет нам много времени, чтобы подробно изучить каждое устройство.
Поэтому я покажу вам витрину устройств, которые сразу после презентации попадут в нашу Wiki. Мы расскажем вам технические подробности, схемы оборудования, все, что сможем, потому что это довольно сложно читать.
Внизу слайда вы можете увидеть ссылку, вы можете использовать ее после презентации, чтобы получить доступ ко всему, что было показано во время этой демонстрации.
А теперь я передам слово своему коллеге, который расскажет вам о «Перспективе атаки».
Ханс Нильсен: Существует бесконечное количество способов атаковать устройства такого типа.
Сегодня на примере этих 20 устройств мы рассмотрим 3 основных метода взлома.
Первый — использование портов отладки, расположенных в самих устройствах.
Второй метод заключается в том, что мы можем использовать последовательные порты или карты памяти EMMC, которые являются более старой версией SD-карт, для подключения к устройству и изменения хранилища.
Третий способ — получить прямой доступ к ОС, что позволяет вводить через командную строку целый набор команд, вызывающих наиболее распространенные ошибки бытовой электроники.
Итак, поговорим об UART – универсальном асинхронном трансивере.
Он используется разработчиками для отладки оборудования и никакой функциональной нагрузки уже не несет. Это очень простой интерфейс — один провод на передачу, другой на прием, а третий служит землей.
Меня спрашивают, сколько мне лет - я отвечаю, мне 27 лет, спасибо за вопрос! Таким образом, он использует очень простой протокол связи, а сам порт работает с разными уровнями напряжения, например 1,8 В, 3,3 В или 5 В, и представляет собой последовательный порт, аналогичный портам USB на компьютере.
Итак, у вас есть несколько бесплатных адаптеров, которые позволят вам играть со своими устройствами, и я надеюсь, что вы получите от них такую же пользу, как и мы.
Так как же можно использовать UART? Рассмотрим конкретное устройство – МФУ Epson Artisan 700/800; это одновременно принтер, сканер и копир, который можно использовать в качестве сетевого принтера.
Он работает под управлением ОС Linux 2.6.21 — Arm1. Что ты можешь сделать с этим? Если открыть корпус, то можно увидеть печатную плату, на которой расположены 4 контакта: прием, передача, земля, питание.
Это вариант классического подключения UART.
Подключив сюда наш отладочный порт, мы увидели консольное меню настроек принтера.
Мы можем перезагрузить принтер, сбросить настройки, выполнить произвольную команду оболочки, запустить любые нужные нам команды и вообще весело провести время, играя с нашим принтером.
Второе устройство — умная розетка Belkin WeMo с интернет-управлением.
Он позволяет использовать мобильный телефон для включения кофеварки и другой бытовой техники через Интернет и достаточно широко используется разными людьми.
Это достаточно маленькое устройство, поэтому прочитать маркировку на печатной плате довольно сложно.
Но мы нашли контакты приемника и передатчика и подключили к ним UART. После этого в Интернете появилась информация, что устройство пропатчено, но это неправда.
Оказалось, что на ввод команды у нас было всего 2 секунды, после чего устройство автоматически перезагрузилось.
В нужный момент нам удалось ввести команду, которая «убила» сценарий перезагрузки, после чего мы могли делать с этим умным сокетом все, что хотели.
Третьим устройством стала умная лампа Greenwave Reality, конкурент Phillips Hue, использующая сетевой протокол верхнего уровня ZigBee; об этом уже много сказано.
Самое смешное, что здесь используется микропроцессор PowerPC. При запуске эта лампа предоставляет SSH-сервер, для которого у нас не было пароля.
Когда мы открыли корпус, мы также обнаружили контакты для UART. Это устройство было оснащено универсальным открытым загрузчиком U-boot, который загружает и запускает Linux. С помощью этого загрузчика можно делать что угодно - перепрошивать устройство, менять командную строку ядра.
Вы можете загрузить Linux с множеством опций, например, позволяющих узнать объем памяти на вашем устройстве.
Нам удалось получить root-права путем изменения командной строки загрузчика.
Для этого мы подключились по UART, вставили модуль bin/sh в командную строку ядра и вошли в оболочку загрузчика.
Чтобы в дальнейшем безопасно пользоваться устройством, мы взломали пароль thinkgreen для доступа к root-правам.
Четвертое устройство — File Transporter — флешка с возможностью передачи данных по сети.
Это своего рода портативное «облако», использующее для хранения файлов большой жесткий диск классического формата HDD емкостью 1 ТБ.
Его можно подключить к домашней сети и получить доступ к файлам на различных домашних устройствах.
Этот «транспортер файлов» является новинкой на рынке и представляет собой довольно стандартную форму устройства Linux. Это довольно забавная штука, и сняв с нее корпус, мы легко нашли переходник для подключения UART.
Здесь также использовался загрузчик U-boot, поэтому, как и в предыдущем случае, мы смогли получить root-права с помощью командной строки ядра.
Это дало нам возможность сменить пароль root и получить доступ к устройству.
Пятым устройством стал сетевой медиаплеер Vizio CoStar LT модели ISV-B11. Он обеспечивает доступ к каналу CoStar, который ранее был частью сети Google TV. Этот медиаплеер подключается к другим устройствам через Интернет или по кабелю через выход HDMI.
Может показаться смешным, что Google TV больше не существует, но наша группа под названием GTVHacker все еще существует. Итак, в левом верхнем углу печатной платы белыми буквами обозначен классический разъем для подключения UART из 4-х контактов подряд. Здесь у нас возникли небольшие трудности с общением с ядром, так как после подключения флешки мы получили сообщение «непонятная файловая система на флешке».
Мы переформатировали его в FAT32, после чего выскочило сообщение: «Не могу найти fs.sys».
Это выглядело подозрительно, поэтому мы провели небольшое исследование.
В итоге был сделан вывод, что во время загрузки нужно иметь на флэшке оба файла - fs.sys и Safe-kernel.img1. Первый файл представляет собой образ сценария загрузчика U-Boot, который содержит произвольные команды U-Boot, которые должны выполняться при загрузке.
Мы использовали ту же технику, что и при взломе предыдущего устройства.
Модификация командной строки ядра дала нам возможность взломать ядро и получить root-права.
Чтобы загрузить совершенно новое ядро, вы можете использовать комбинацию этих двух файлов, расположенную на флэш-накопителе, который просто подключается к UART. Staples Connect, модель Linksys Zonoff, была шестым устройством, которое мы взломали.
Это еще один небольшой центр домашней автоматизации, хаб, осуществляющий совместное общение домашних устройств разных марок и разных типов.
Он оснащен модулем Wi-Fi и USB-портом для подключения жесткого диска и основан на использовании облачных технологий.
На печатной плате мы обнаружили колодку с контактными гнездами.
Мы закоротили контакты памяти NAND 29/30, из-за чего произошла ошибка при загрузке среды U-Boot и устройство перезагрузилось.
Установив время ожидания по умолчанию, мы выполнили команду setenv bootargs «console=ttyS0,115200 init=/bin/sh […]», загрузились в корневую консоль.
Добавив строку #dropbear – d 222, мы смогли модифицировать, сохранять и редактировать U-Boot. Для доступа к корневому каталогу мы использовали пароль SSH «oemroot», который нам удалось взломать относительно легко.
А теперь я хотел бы познакомить вас с CJ.
CJ Jerez: Я хочу поговорить с вами о энергонезависимых картах памяти формата eMMC — Embedded MultiMedia Card. Они основаны на стандартном чипе карты памяти SD. Это довольно крутая штука, включающая в себя модуль флеш-памяти и контроллер флеш-памяти.
Благодаря этому вам не придется беспокоиться о каких-либо дополнительных магических битах.
Обычная карта памяти содержит дополнительные биты, обрабатывающие ошибки и содержащие код исправления ошибок, эта функция предназначена для разработчиков.
Карта памяти eMMC использует обычную файловую систему, а доступ к ней осуществляется через дешевый мультимедийный кард-ридер, который одинаково хорошо читает как обычные SD-карты, так и eMMC. Поскольку эта карта конструктивно представляет собой BGA-чип поверхностного монтажа, ее контакты представляют собой шарики припоя, нанесенные на обратную сторону площадки.
Для работы с такой картой необходимо идентифицировать эти контакты, то есть для подключения отладчика нам нужны были определенные шары.
Чтобы найти необходимые контакты, мы сначала изучили конструкцию платы, всевозможные наклейки, надписи под резисторами, трассировку печатной подложки и контактов на другой стороне платы.
Дальше мы использовали интуицию и логический анализ, а после просто вытаскивали чип и наблюдали, что не работает. Нам удалось подключить эту карту к считывателю MMC и сбросить настройки.
Теперь поговорим о нашем 7-м устройстве, это приставка Amazon Fire TV с дистанционным управлением.
Он оснащен четырехъядерным процессором Snapdragon 600 с тактовой частотой 1,7 ГГц и памятью eMMC емкостью 8 ГБ и управляется модифицированной версией Android 4.2.2 под названием Fire OS 3.0.
Вскрыв корпус, мы начали искать распиновку eMMC, и в ходе поиска испортили одно устройство, так как мы сломали один из контактов, когда вытаскивали чип eMMC, поэтому пришлось работать над вторым экземпляром комплекта.
-верхний ящик.
Слева на слайде показано расположение контактов eMMC, справа - контактов UART на напряжение 1,8В.
Успешно взломав эту приставку, мы взяли за устройство номер 8 — Hisense Android TV, смарт-телевизор под управлением Android, это своего рода Google TV, прошедший ребрендинг.
Он использует один из новейших процессоров — 4-ядерный Marvell MV88DE3108. На прошлогодней конференции DefCon мы показали, как обойти загрузку в безопасном режиме для этой линейки процессоров благодаря небольшой ошибке в их прошивке.
На следующем слайде показано, как выглядят пины для подключения отладчика.
Они довольно маленькие, но вытаскивать микросхему флэш-памяти нам не пришлось.
Для этого устройства мне пришлось пройти довольно обширную процедуру — сначала смонтировать раздел заводских настроек «factory_settings» с помощью команды /dev/mmcblk0p3, которая сохранялась между загрузками, затем использовать старый добрый режим #chmod 4755 su, можно также используйте программу Super root SU. Затем через мост отладки Android ADB можно модифицировать ОС, которая очень похожа на оригинальный Android.
Итак, давайте двигаться дальше.
Никогда не говорите: «Устройство X невозможно взломать».
В 2011 году USPS выпустила рекламу, в которой говорилось, что «холодильник невозможно взломать».
Эта компания позиционировала себя как лидер в области безопасности холодильников.
Вы можете посмотреть видео об этом на YouTube Здесь .
Я воспринял это как вызов.
У меня не было лишних 3000 долларов, чтобы проверить это утверждение на новом холодильнике, но на свалке можно найти что угодно, включая детали от выброшенных холодильников.
Мне удалось раздобыть электронные компоненты умного холодильника LG модели LFX31995ST, работающего под управлением немного устаревшей операционной системы Android 2.3. Это девятое устройство, которое было взломано.
«Мозг» холодильника контролировал заморозку, температуру продуктов, приготовление льда, расход питьевой воды, а само устройство было оснащено модулем Wi-Fi, USB-портом и картой памяти SD.
На печатной плате были контакты UART, позволяющие загружать Root-консоль, и чип eMMC. Это позволило смонтировать систему, как в случае с Fire TV, вставить стоковый загрузчик Android и загрузить корневой бинарный файл.
Как оказалось, параметр ro.secure=0, то есть устройство уже имело доступ суперпользователя.
Разработчики наверняка были уверены, что никто даже не воспользуется этой возможностью.
Затем мы начали вводить команды.
Отмечу, что никогда не следует доверять данным, которые вводит пользователь, и никогда не использовать команды оболочки.
Ввод команды ls %s с параметром «;reboot» дал результат ls ;reboot, после чего система успешно перезагрузилась.
Экспонат №10, прекрасно продемонстрировавший возможности взлома, стал Vizio Smart TV, модель VF552XVT, созданный на базе серии BCM97XXX Yahoo Powered Smart TV. Хотя эта платформа устарела, она до сих пор широко используется.
Это один из последних светодиодных телевизоров, он заметно тоньше ЖК-моделей.
Внедрение командной строки здесь осуществляется через пароль Wi-Fi, что представляет собой более современный вариант отладчика UART через USB.
Если вы установите режим Wi-Fi, вы сможете войти в меню и подключиться к точке доступа к сети Wi-Fi. Если вам удастся ввести команды, показанные на слайде, вы получите доступ к корню системы.
Для этого мы использовали USB-UART-адаптер, а затем ввели строку из нескольких символов, которая сообщала ядру, куда отправлять данные.
Через пару минут мы получили ошибку ввода, а затем ввели длинную команду bash 2, которая означала, что все данные, поступающие от данного устройства, должны быть перенаправлены в оболочку, и все данные оболочки должны быть отправлены на устройство.
Таким образом мы смогли получить root-права через USB UART. Устройство №11 представляло собой Blu-Ray-проигрыватель Sony BDP-S5100 с процессором MTK 8500 под управлением ОС Linux. Он оснащен Wi-Fi, доступом к онлайн-сервисам потокового кино Netflix, VUDU и так далее.
Еще один проигрыватель Blu-Ray на том же чипсете — устройство под номером 12, LG BP530, с аналогичным функционалом.
Мы обнаружили, что оба этих устройства имеют одну и ту же ошибку прошивки чипсета, которая поддерживает использование SDK.
Если вы поместите пустой файл с именем «vudu.txt» в папку с именем «vudu» на флэш-накопителе, а также создадите эксплойт «vudu.sh», содержащий такие строки:
Тогда вы можете сделать следующее.mount –t overlayfs –o overlayfs /etc/passwd echo "root::0:0:root:/root:/bin/sh" > /etc/passwd /mnt/rootfs_normal/usr/sbin/telnetd
Запустите службу VUDU, она выполнит сценарий оболочки от имени суперпользователя, и вы сможете полностью свободно использовать соединение Telnet. Это можно сделать со всеми плеерами на базе чипсета MTK 8500, включая следующее устройство номер 13 — Blu-Ray плеер Panasonic DMP-BDT230.
Это очень просто.
На следующем слайде показана печатная плата, имеющая практически одинаковую разводку для всех упомянутых плееров.
Имеется консольный вывод 115200 8n1, к которому можно подключить UART. Для нас это было очень важно, так как позволило обнаружить упомянутую выше ошибку во время отладки.
Однако существует и другая возможность внедрения командной строки через корневую консоль с помощью экранного меню, поскольку имя сетевой папки перед использованием не проверяется.
Таким образом вы сможете получить права суперпользователя и управлять всеми возможностями устройства по своему усмотрению.
24:10 мин.
Конференция DEFCON 22. GTVHacker Group. Взламываем всё: 20 устройств за 45 минут. Часть 2 Спасибо, что остаетесь с нами.
Вам нравятся наши статьи? Хотите увидеть больше интересных материалов? Поддержите нас, разместив заказ или порекомендовав друзьям, Скидка 30% для пользователей Хабра на уникальный аналог серверов начального уровня, который мы придумали для вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от 20$ или как правильно расшарить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40 ГБ DDR4).
VPS (KVM) E5-2650 v4 (6 ядер) 10 ГБ DDR4 240 ГБ SSD 1 Гбит/с бесплатно до декабря при оплате на срок от шести месяцев и более вы можете заказать здесь .
Dell R730xd в 2 раза дешевле? Только здесь 2 x Intel Dodeca-Core Xeon E5-2650v4 128 ГБ DDR4 6x480 ГБ SSD 1 Гбит/с 100 ТВ от 249 долларов США в Нидерландах и США! Прочтите об этом Как построить корпоративную инфраструктуру класса, используя серверы Dell R730xd E5-2650 v4 стоимостью 9000 евро за копейки? Теги: #информационная безопасность #ИТ-инфраструктура #Конференции #Старое железо #uart #Взлом устройств #Взлом устройств #взлом через отладочные порты #взлом через отладочные порты #взлом через последовательные порты #взлом через последовательные порты #взлом через карты памяти EMMC #взлом через Карты памяти EMMC
-
Вопрос На 10 Терабайт
19 Oct, 24 -
Новая Версия Промодж
19 Oct, 24