[Перевод] Конференция DEFCON 22. Группа GTVHacker. Взламываем всё: 20 устройств за 45 минут. Часть 2

Конференция DEFCON 22. Группа GTVHacker. Взламываем всё: 20 устройств за 45 минут. Часть 1

Майк Бейкер: следующее, 14-е устройство, к которому мы получили root-доступ — это смартфон Motorola RAZR LTE Baseband. Я не собираюсь говорить про Android, он уже «прорутован». Этот телефон особенный, так как использует Baseband — отдельный сигнальный процессор, изолированный от основного процессора. Это полностью отдельная часть аппаратного обеспечения смартфона.

jcyie6gzk6kyk_4ts0dmyyhkfjo.jpeg

Связь между Android и Baseband осуществляется через сетевое USB-подключение. Baseband прослушивает внутренний сетевой порт USB, имеет лимитированный доступ к оболочке через порт 3023 и запускает диагностический скрипт через порт 3002 как root.

Если посмотреть на сценарий, то видно, что с помощью языка AWK запускается команда busybox:

busybox awk '{print+substr(" ' "$ {outFilePath}" ' ",0,1)}’


То есть происходит передача имени файла через скрипт AWK. Это означает, что с помощью имени файла мы можем сделать инъекцию в оболочку. Для рутирования оболочки мы используем имя файла, содержащее:

 x",0,1);system("…");("


Это позволяет вводить в систему любую команду и запускать её с root-правами.

Следующим взломанным устройством под номером 15 стал мобильный накопитель PogoPlug Mobile, служащий персональным «облачным» хранилищем. Он используется для передачи контента с вашего мобильного устройства куда угодно, подключаясь к домашней сети и обмениваясь файлами по интернету.

ucci4urpqmzuaenkvt8qm548bs8.jpeg

Стоимость этого устройства менее $10. К нему можно подключить USB-привод или SD-карту и он автоматически загрузит информацию в облако. Он базируется на процессоре Marvell Feroceon и управляется ОС Linux 2.6.31.8.

На печатной плате расположены 4 традиционных контакта для подключения UART, что даёт нам доступ к загрузчику и корневой оболочке, но мы также можем внедрить командную строку с помощью веб-страницы.

0wgobkbwwdqzudidgwpccaniob4.jpeg

Использование такого интерфейса позволяет вводить произвольные команды и запускать их от имени суперпользователя с root-правами.

Следующий экспонат №16 — телевизионная приставка Netgear Push2TV (PTV3000). Она использует открытую технологию Miracast, поддерживаемую Google, которая встречается в некоторых моделях смартфонов и планшетов с Android и технологию Intel WiDi.

gvinw7b2z7l7cczzgvv-dyo9lje.jpeg

На печатной плате этого беспроводного приёмника имеются выводы UART, через которые можно подключиться к устройству, затем нажать на клавишу «пробел» во время загрузки, прервав тем самым работу U-boot, и запустить ваши собственные команды для Linux. Вы можете не возиться с загрузчиком и использовать консоль Root, которая активна в течении 2–3 с после загрузки. Возможно также внедрение команд по веб-интерфейсу через имя устройства, при этом команда будет выполняться от имени суперпользователя с root-правами. Чип памяти SPI Flash, содержащий команды U-boot, может быть перепрошит для запуска вашего пользовательского загрузчика.
Устройство №17 — VOIP роутер Ooma Telo, работающий под управлением ОС OpenWRT и оборудованный процессором ARM.

m2nis7qrjihhbvl_n6k49lfxeoo.jpeg

Здесь снова присутствует UART, который использует консольный вход, но мы рассматриваем инъекции команд. Здесь также имеется SSH порт, который работает по умолчанию как файервол, поэтому нам вначале нужно внедрить команду, которая изменит правила этого файервола. Мы сделали это через веб-интерфейс, чтобы иметь возможность впоследствии ввести любую команду. Интересно, что пароль по умолчанию для root-доступа был »! ooma123», поэтому взломать его не составило особого труда. Как только мы вошли, то сразу «сбросили» файл паролей и начали взлом. По умолчанию SSH доступен только по сети LAN.

На следующем слайде приведён веб-интерфейс Oоmа Telo, стрелкой показана строка, куда мы вводили команду. Возможность отрегулировать правила таблиц IP-адресов даёт доступ к SSH, где можно использовать предоставленный пароль.

x6c7e080hcj57bknhbvcdsqljlc.jpeg

Устройство №18 — потоковый плеер мультимедиа Netgear NTV200–100NAS на основе Adobe Flash стоимостью от 10 до $30, который воспроизводит файлы формата SWF.

Он оборудован модулем Wi-Fi, процессором Broadcom SOC с зашифрованным и подписанным обновлением прошивки.

На печатной плате всё подписано, поэтому найти UART не составило никакого труда. Но давайте поговорим об инъекции командной строки через веб-интерфейс, так как обновления и приложения загружаются в этот плеер по незашифрованному HTTPS-соединению. Это очень плохая идея, потому что в отличие от зашифрованных апдейтов, приложения можно свободно загрузить и установить. Поэтому при установке приложения появляется возможность использовать атаку типа «человек посередине»:

  • cоздаём копию приложения;
  • вставляем в неё вредоносную «мягкую» ссылку symlink;
  • перепаковыем приложение и размещаем его на локальном хосте;
  • запускаем приложение;
  • снова его модифицируем, добавляя во время работы скрипт оболочки, содержащий внутри symlink для вызова Telnet;
  • опять запускаем приложение, перегружаемся, и теперь у нас есть постоянный root-доступ!

vdkk0av6wfme6fxghq8xiiobtng.jpeg

Итак, двигаемся дальше. Устройство под номером 19 — ASUS Cube, «мост» между интернетом и потоковым видео, приставка, обеспечивающая широкомасштабное функционирование аппаратно-программной платформы Google TV. Она оборудована двухъядерным процессором Marvell 88de3100 SOC частотой 1,2 ГГц. На конференции DefCon 21 мы уже представляли дополнительный эксплойт CubeRoot для этого устройства, который предназначался для контроля над процессором в режиме безопасной загрузки.

thvvi9mr3aiqg79i1bfqk1sviqy.jpeg

У нас было приложение, доступное на Play Store, к сожалению Google изъял его, они не любят подобные приложения. Давайте поговорим о том, как нам снова вернуться в этот куб. Встроенные в него мультимедийные приложения позволяют смонтировать сетевой протокол SMB для удалённого доступа к файлам, в данном случае они позволяют делиться файлами Windows без всяких ограничений. Процедура получения root-прав заключается в следующем:

  • создание SMB share с помощью двоичного файла суперпользователя;
  • использование медийного приложения для соединения с SMB share;
  • добавление его в Cube, запуск двоичного файла суперпользователя, получение рут-прав!
  • Перемонтирование системы, установка SuperSu и полный контроль над возможностями устройства.


На этом я передаю слово Амиру.

Амир Этемади: спасибо, Майк!

Давайте продолжим нашу забаву и рассмотрим ещё несколько интересных устройств. Я хочу рассказать вам о радионяне — мониторе активности ребёнка под названием Summer Baby Zoom WiFi.

Это устройство позволяет с помощью видеокамеры наблюдать за детьми и передавать изображение на смартфон по Wi-Fi. У него есть собственный компактный монитор с динамиком и дисплеем, позволяющий удалённо управлять камерой по радиоканалу связи. На рынке оно позиционируется как «защищённое». Это 20-е взломанное нами устройство.

6dzqxbgad6q2srywca4vlvo0mya.jpeg

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

t2no4ckdwcz06jqqvndd1czfgbk.jpeg

Первая ошибка — это иметь жестко закодированные имя пользователя и пароль на устройстве, которое использует двоичный файл для общения с веб-интерфейсом. Это просто ужасная практика. С точки зрения безопасности, у вас не должно быть жестко закодированных учётных данных на каждом отдельном устройстве.

zgoflgwc6k-tzodkfvllfxtlu94.jpeg

Мы нашли интересную зашифрованную строку и системные вызовы в двоичном файле «snapcam», в которых содержались данные аутентификации. Далее мы перешли к разбору жёстко закодированных данных.

Осуществив из командной строки системный вызов «nvram show», мы получили список из 3-х пользователей и их пароли. Два пользователя имели пароли, которые отличались для каждой камеры, и предоставляли разные пользовательские права.

1uvakz86o_xzam9-rlosz5urbme.jpeg

Далее мы нашли системный файл конфигурации SystemGT.cgi, доступ к которому обеспечивался с помощью полномочий admin, и который напрямую исполнялся с помощью оператора system () от имени суперпользователя. Мы ввели командную строку, показанную внизу следующего слайда, и получили доступ к серверу Telnet с root-правами.

1oxaxjfpjq2cojl1ufwkrsv7wbi.jpeg

Помните, что в большинстве случаев, когда устройство не защищено паролем, можно проникнуть в оболочку, просто введя в командную строку выражение типа l/bin/login.

Во многих случаях можно использовать команду /bin/sh, и если кто-то при этом входит в устройство нормальным способом, злоумышленника сразу же отбрасывает в оболочку. Поэтому не позволяйте людям подсоединиться к своему устройству, сохраняйте его в безопасности.

Итак, поскольку это DefCon 22, почему мы нам не рассказать о взломе 22 устройств за 45 минут? Поэтому продолжим презентацию ещё двумя устройствами.

jll-acrj8ol4c9kbv6rmijynafk.jpeg

Давайте перейдем к следующему пункту в нашем списке — это автономная веб-камера Samsung SmartCam с микрофоном и динамиком. Она может управляться с помощью мобильного приложения, а для локального доступа использует веб-интерфейс. Камера оборудована процессором TI DaVinci ARM SOC и работает под ОС Linux 2.6.18. Конструктивно это устройство очень похоже на радионяню Summer Baby Zoom WiFi, но она не изменяет своего положения для слежения за объектом.

tkv0_xxdahlfcmj5h1w6pvs_3aw.jpeg

На печатной плате расположен классический UART-адаптер с контактами приёмника, передатчика, заземления и питания. Ниже расположена колодка контактов для настройки подключения. Здесь используется только метод Console Logging, который выводит отладочную информацию в консоль, скрывая её от пользователя.

Интересно, что мы обнаружили это, глядя, как происходит обработка логинов и как создаётся оригинал пароля администратора при первой настройке устройства. При этой настройке предлагается установить свой собственный пароль администратора. Недостатком является то, что устройство не проверяет, если пароль уже настроен, так что можно вызывать скрипт, чтобы изменить существующий пароль на пароль администратора. Таким образом существует возможность переустановить пароль администратора устройства, не зная пароля пользователя. Доступ к командной строке возможен только по LAN.

Ключ шифрования WEP не проверяется для команд оболочки и помещён в файл конфигурации, откуда его можно вытащить и использовать для ввода команд через консоль. При этом вы должны отключить сетевой кабель, если камера уже подключена к сети через Wi-Fi, потому что если вы меняете WEP ключ, когда камера подключена через Wi-Fi, устройство может отключить вас и вы потеряете к нему доступ.

Если камера подключена к сети Wi-Fi, она может быть взломана без физического контакта с устройством, после чего веб-интерфейс начинает работать с рут-правами.

Таким образом, инъекция команды суперпользователя производится изменением WEP-ключа доступа к сети Wi-Fi. Для того, чтобы подключиться к сети Telnet, достаточно ввести команду $(busybox telnetd — l/bin/sh)

6-rq2oups88697yj1l6weqnzs4q.jpeg

Наиболее интересным из всех рассмотренных устройств нам показалось устройство №22, потому что оно предоставляет большое поле деятельности для хакеров. Это устройство называется Wink Hub, и оно нравится мне больше других преимущественно потому, что имеет большой ассортимент периферийных девайсов.

Эта штука управляет всеми беспроводными «умными» домашними устройствами с помощью мобильного приложения, что позволяет отказаться от отдельных пультов управления. Wink Hub имеет модуль Wi-Fi, Bluetooth, Zwawe и Zigbee, а также отличный плод труда разработчиков RF Toolkit.

ot9znvwcjufonj9my3i9ide_hai.jpeg

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

evy4pby41iadphzt97prynvx1xw.jpeg

Итак, это доска, это действительно красиво.

Здесь всё подписано, и что ещё приятно в этом устройстве — его стоимость менее 50$, причём действует предложение, что если вы покупаете периферийные устройства, то можете получить Wink Hub бесплатно. Поэтому если вы интересуетесь RF устройствами, это реально классная плата.
На ней расположены отдельные чипы для каждого вида подключаемых устройств, которые она поддерживает. Итак, это устройство имеет ошибку инъекции командной строки. Если вы не разбираетесь в PHP, существует команда sudo, которая позволяет выполнять программы с привилегиями администратора без ввода пароля суперпользователя.

6czmpzb15bdyzjn0n_-kgbfpd4m.jpeg

Эта команда придаёт идентификатору узла node ID узла значение атрибута ID переменными POST. Так что возьмите эту команду себе на вооружение, и когда вернётесь домой, купите себе это устройство и развлекайтесь с ним как хотите.

Ну, а сейчас мы покажем вам то, чего вы так долго ждали! Видеозапись демонстрации взлома всех 22 устройств пройдёт под настоящий хакерский рэрп! Для этого мы пригласили нашего друга, репера Нэда из Dual Core! Поприветствуем его и песню «Все эти вещи»!

У нас здесь есть почти сотня различных адаптеры UART, и компакт-диски Сhromecast, и пока вы будете смотреть видео и наслаждаться рэпом, мы пройдём в зал и раздадим вам всё это.

Dual Core: отлично, ребята, я пытаюсь отдышаться…меня зовут Нэд, я рэпер в Dual Core, возможно, вы слышали такие наши песни, как «Выпить всё и всё сломать». Кто-нибудь из вас взламывал автомобили? Отлично!

Я хочу представить вам книгу моего друга, это руководство хакера для взлома автомобилей, вы можете скачать его бесплатно, купить на «Амазон», у меня с собой есть несколько штук, которые я раздам. Итак, рэп-музыка…если я не отдышусь, то могу умереть!

Итак, где мой DJ? Нажмите клавишу «пробел» и запустите видео, чтобы я мог начать!

1dqfp-3cg8whoufxoq2logm_ktu.jpeg

На экране начинается демонстрация взлома устройств, о которых было рассказано в этой презентации. Звучит фраза «не каждый выродок с Commodore 64 способен взломать NASA», затем включается музыкальный трек, под который Нэд исполняет рэп «Drink all the booze» примерно такого содержания:

Я говорю вам выпить всю выпивку,
ребята так быстро взломали все вещи,
что вы даже не успели их сосчитать,
аварийное восстановление требует еще больше кулаков,
положите ваши байты на всё это,
мой C64 взорвёт всё на орбите,
идеальный бум порвёт все цепи,
оптимизируй время выполнения процесса,
чтобы избежать приговора, нужен просто поток,
нужно просто поток,
размер движка не имеет значения,
в командной строке заложены мины,
и прежде чем они увидят меня,
сломайте капчу, закончите главу,
выпейте всю выпивку,
возьмите этот байк, который красный,
он всё ещё подмигивает мне,
выпить все бухло, выпить все спиртное
я жду, пока умрёт мой Blackberry
чтобы заменить его Raspberry Pi,
нейтрализуй для Красного Черепа любую угрозу,
убитые вирусописатели поднялись на VX7,
который регистрирует наши данные в прямом эфире,
привет вам, шифры и драйверы устройств,
куда мы попадём, пока они не запустили формат,
интернет Майк хочет получить ваш Wi-Fi,
он взялся взломать Pineapple 5,
вы готовы взломать все вещи?
да, вы готовы взломать все вещи!
вот так, сэр, мы пьем всю выпивку,
мы выпьем всё,
вы знаете, что там будут правила безопасности,
но сначала выпьем всю выпивку, а потом их взломаем,

yck8ukwt7cxsum3ncjtrbwoyxly.jpeg

все дело в системе или прошивке,
на что вы молитесь независимо от сервиса,
перекодируй и подключи к Интернету,
собрав собственноручно, его испортят пираты
хлопает в ладоши атака над облаком,
но мы вернемся в подземку,
где нет контроля массы,
вниз по узлам Тор по всему миру,
хакаем по трафику устройства онлайн,
вызов государства — охота на нас,
мой Конрад Цузе — триггер –отладчик,
мне нужен план, который работает,
я хочу увидеть, как всё горит,
и теперь твоя очередь,
выпей всю выпивку, да,
выпей всю выпивку, этот бой — игра,
этот ужас до сих пор подмигивает мне,
так что съешь всю еду и выпей всю выпивку!
Я благодарю ребят из GTVHacker!

2szwe2tdorklw_c0jpnr6nfhjzo.jpeg

Амир Этемади: мне трудно поверить, что у нас в гостях побывал Dual Core! Он сделал это без всяких условий, без всякой оплаты, он просто великий парень! Да, я тоже запыхался. У нас совершенно нет времени, поэтому если у вас есть вопросы, мы готовы ответить на них после конференции.

Мы приводим здесь ссылки на наши ресурсы, добро пожаловать на канал GTV Hacker и спасибо всем, мы вас любим!

Слайды презентации: DC22.GTVHacker.com
WIKI: www.GTVHacker.com
Форум: forum.GTVHacker.com
Блог: blog.GTVHacker.com
IRC: irc.freenode.net #GTVHacker
Twitter: @GTVHacker

© Habrahabr.ru