Поговорим о взломе паркомата и разберём способы защиты.
Компьютерная игра Watch Dogs прекрасно описывает недалекое будущее: вокруг всевозможные девайсы, средства выдачи и приема наличных, а также разнообразные имеющие доступ в интернет устройства, нашпигованные уязвимостями, эксплуатация которых позволяет хакеру извлечь определенную выгоду. Например, в игре главный герой при помощи смартфона может скомпрометировать систему видеонаблюдения, получив тем самым возможности вести слежку и добывать дополнительную информацию.
Фанаты этой компьютерной игры разошлись во мнениях: кто‑то говорит, что это слишком «утопично» — достать смартфон и ломать все вокруг. Другие осознают, что «сказка — ложь, да в ней намек» и игровой мир отчасти отражает реальный.
Мы попробуем выдвинуть еще немного аргументов в пользу того, что окружающие нас устройства, которые мы едва замечаем в парках и общественных местах, могут оказаться уязвимыми и нести опасность — как минимум для нашего кошелька.
Концепция «заряди свой девайс где угодно»
Терминалы продажи билетов на киносеанс
Однако жизнь учит разработчиков подобных устройств тому, что не все их пользователи касаются тачскринов с благими намерениями. Если ввести в Google запрос вида terminal hacked, то получим много релевантных видео, на которых главные герои раскладывают пасьянс на том или ином терминале или же рисуют всякие непристойности в Paint. Причиной этого могут быть различные баги в приложениях терминала, и часто они носят схожий принцип эксплуатации.
Пример «инструкции по компрометации», найденный в Сети
Так, на одном из видео участник удерживает свой палец на экране около десяти секунд, и это приводит к результату «нажатие правой кнопкой мышки». На другом ребята беспорядочно тыкают в левый нижний угол экрана — и полноэкранное приложение сворачивается. Кто‑то вообще додумался закрыть ладонью GSM-антенну терминала и таким образом спровоцировать выпадение ошибки подключения.
«Ловкость пальцев и никакого мошенничества»
Из случаев компрометации подобных устройств наиболее интересен инцидент, произошедший с терминалами оплаты одного известного вендора электронных платежей. Злоумышленник в поле ввода назначения платежа при помощи виртуальной экранной клавиатуры приложения, которая доступна в интерфейсе платежной системы, вводил строку «last_page=StyleSheet.css». В качестве обработчика для файла с данным расширением открывался notepad.exe, который через свою систему справки позволял злодею перебраться в системную панель управления и запустить виртуальную клавиатуру операционной системы.
Интересный и уже неактуальный вариант компрометации терминала
Методика поиска анализа защищенности публичных терминалов
Наша задача: имея на руках полноэкранное приложение, которое, скорее всего, функционирует на базе операционной системы Windows, выйти за его пределы в системное окружение. Для этого можно использовать так называемый Tap-fuzzing. По‑другому говоря — поработать пальчиками. Нажимать на различные участки приложения с целью спровоцировать его недокументированное поведение. Или можно воспользоваться Data-fuzzing и подставлять различные данные в поля ввода с целью спровоцировать некорректную обработку входящих данных.
Как только удается вызвать элемент стандартного интерфейса операционной системы, следующим этапом будет попадание в панель управления — например, через разделы справочной информации.
Попадание в панель управления будет отправной точкой для запуска виртуальной клавиатуры с соответствующими последствиями.
Интерфейс системы спроектирован специально для этого типа устройств (если ты хоть раз оплачивал что‑либо в платежных терминалах, то представляешь, о чем речь), и в нем трудно запутаться. В этом интерфейсе у пользователя есть возможность получить текущее местоположение, а точнее, увидеть отметку на Google-карте, которая указывает, где находится паркомат.
Все подобные устройств работают на базе классических операционных систем (чаще Windows-подобных) со всеми их уязвимостями. Однако специализированный интерфейс представляет собой полноэкранное приложение с очень ограниченным функционалом, которое не дает пользователю забраться «под капот» и умышленно или непреднамеренно натворить глупостей. Соответственно, при анализе защищенности терминалов основная задача — выйти за пределы данного полноэкранного приложения. После этого можно будет пошалить: запускать свои приложения, поднимать привилегии, дампить ценную информацию и прочее.
В рассмотренных системах паркоматов обнаружена интересная особенность. В разделе «Карты» разработчики не стали придумывать ничего нового и использовали карты от компании Google. И все было бы прилично, если бы только виджет от Гугла не имел строки статусбара, в котором среди прочей информации (текущий масштаб, копирайты и так далее) содержатся ссылки «Сообщить об ошибке», «Конфиденциальность» и «Условия использования», которые открывают стандартное окно Internet Explorer…
Интерфейс полноэкранного приложения, содержащий некоторые особенности…
Выход за пределы полноэкранного приложения
«И что? Ну, открыл я браузер — клавиатуры ведь все равно нет!» Сейчас будет: по ссылкам на страницах со справочной информацией есть возможность перейти в раздел справки, который называется «Специальные возможности», где и прячется виртуальная клавиатура.
Кто я? Администратор!
Дальше все зависит от фантазии и степени наглости атакующего. Запуск cmd.exe демонстрирует еще один недостаток конфигурации: текущий сеанс операционной системы запущен с привилегиями администратора, а это значит, что мы потенциально можем скачать и совершенно беспрепятственно запустить любое приложение.
Бинго: виртуальная клавиатура
Так, атакующий может получить NTLM-хеш пароля администратора. При этом велика вероятность, что пароль, установленный на данном устройстве, подходит и к остальным устройствам данного типа, — а это уже третий недостаток конфигурации…
На этом приключение заканчивается, поэтому давай порассуждаем, что из всего этого может извлечь злоумышленник.
Итак, перед нами интерфейс полноэкранного приложения, которое на основе введенных нами данных предлагает распечатать квитанцию для оплаты.
«Проверь меня полностью»
После заполнения всех полей и реквизитов мы нажимаем кнопку «Создать» и наблюдаем следующую картину: терминал на несколько секунд открывает стандартное окно печати, в котором находятся все параметры печати нашего документа и автоматически производится нажатие на кнопку «Печать».
Ненадолго появляющийся системный элемент
Как следствие, если злоумышленник успевает нажать на кнопку «Изменить», то получает возможность посредством нехитрых манипуляций с параметрами печати выйти в справочный раздел…
Плод воображения: что было бы, если бы mimicatz оказался запущенным на стороне терминала
Кроме того, злоумышленник может получить дамп приложения велопарковки, которое любезно собирает информацию о желающих покататься: ФИО, адрес электронной почты и телефон. Не исключено, что база данных с ценной информацией хранится где‑то неподалеку. Не стоит объяснять, что такая база будет иметь особую ценность на рынке, ведь в ней содержатся верифицированные адреса телефонов и email. В том случае, если же подобной базы нет, злодей может установить свой кейлоггер, который перехватывает все введенные пользователями данные и отправляет на удаленный сервер.
Учитывая одну из особенностей данных устройств — работу в режиме 24/7, можно организовать, например, пул для майнинга или использовать ее в других хакерских целях, требующих круглосуточного присутствия зараженной рабочей станции в сети.
Особо наглые злоумышленники могут реализовать сценарий атаки, результатом которой станет получение платежных данных пользователя: на главном окне приложения паркомата можно в ненавязчивой форме оставить поле для ввода реквизитов пластиковой карты, и с большой долей вероятности введенный в заблуждение пользователь любезно оставит их вместе со своим именем, номером телефона и электронной почтой…
Обилие сценариев, которые открывают возможности для доступа к персональным данным и кошельку ни о чем не подозревающих людей, ограничиваются лишь фантазией злоумышленников. Описанная ситуация с защищенностью паркоматов наглядно демонстрирует, как несколько недостатков конфигурации образуют уязвимость.
Кроме того, скомпрометированный терминал может стать отправной точкой для дальнейшей атаки на корпоративную сеть. Очень часто подобные устройства обращаются к терминальному серверу или целой подсети, которая находится в доверенной зоне компании, а значит, небольшая таргетированная атака, использующая вредоносное ПО и/или социальную инженерию, может позволить злоумышленнику оказаться в главном офисе. Без стука.
Сломал терминал — попал в компанию
Для того чтобы исключить вредоносную активность на публичных устройствах, разработчикам и администраторам терминалов велопарковки и других терминалов, расположенных в публичных местах, мы рекомендуем:
Компьютерная игра Watch Dogs прекрасно описывает недалекое будущее: вокруг всевозможные девайсы, средства выдачи и приема наличных, а также разнообразные имеющие доступ в интернет устройства, нашпигованные уязвимостями, эксплуатация которых позволяет хакеру извлечь определенную выгоду. Например, в игре главный герой при помощи смартфона может скомпрометировать систему видеонаблюдения, получив тем самым возможности вести слежку и добывать дополнительную информацию.
Фанаты этой компьютерной игры разошлись во мнениях: кто‑то говорит, что это слишком «утопично» — достать смартфон и ломать все вокруг. Другие осознают, что «сказка — ложь, да в ней намек» и игровой мир отчасти отражает реальный.
Мы попробуем выдвинуть еще немного аргументов в пользу того, что окружающие нас устройства, которые мы едва замечаем в парках и общественных местах, могут оказаться уязвимыми и нести опасность — как минимум для нашего кошелька.
ТЕРМИНАЛЬНЫЕ ТЕРМИНАТОРЫ
Число публичных устройств, которые ждут своего героя из компьютерной игры, зашкаливает. Парки и улицы пестрят терминалами оплаты парковки всевозможных средств перемещения и уютными «будками» быстрой подзарядки мобильного девайса. Аэропорты и вокзалы предлагают различные устройства оплаты билетов и получения справочной информации. В кинотеатрах находятся терминалы покупки и бронирования билетов на киносеансы. В поликлиниках и государственных учреждениях посетителей встречают устройства электронных очередей и печати каких‑нибудь квитанций. Даже туалеты оснащаются терминалами оплаты. Правда, пентестить последние девайсы вряд ли кто‑нибудь будет — духу не хватит .Концепция «заряди свой девайс где угодно»
Терминалы продажи билетов на киносеанс
Однако жизнь учит разработчиков подобных устройств тому, что не все их пользователи касаются тачскринов с благими намерениями. Если ввести в Google запрос вида terminal hacked, то получим много релевантных видео, на которых главные герои раскладывают пасьянс на том или ином терминале или же рисуют всякие непристойности в Paint. Причиной этого могут быть различные баги в приложениях терминала, и часто они носят схожий принцип эксплуатации.
Пример «инструкции по компрометации», найденный в Сети
Так, на одном из видео участник удерживает свой палец на экране около десяти секунд, и это приводит к результату «нажатие правой кнопкой мышки». На другом ребята беспорядочно тыкают в левый нижний угол экрана — и полноэкранное приложение сворачивается. Кто‑то вообще додумался закрыть ладонью GSM-антенну терминала и таким образом спровоцировать выпадение ошибки подключения.
«Ловкость пальцев и никакого мошенничества»
Из случаев компрометации подобных устройств наиболее интересен инцидент, произошедший с терминалами оплаты одного известного вендора электронных платежей. Злоумышленник в поле ввода назначения платежа при помощи виртуальной экранной клавиатуры приложения, которая доступна в интерфейсе платежной системы, вводил строку «last_page=StyleSheet.css». В качестве обработчика для файла с данным расширением открывался notepad.exe, который через свою систему справки позволял злодею перебраться в системную панель управления и запустить виртуальную клавиатуру операционной системы.
Интересный и уже неактуальный вариант компрометации терминала
МЕТОДИКА АНАЛИЗА ЗАЩИЩЕННОСТИ ТЕРМИНАЛОВ ОБЩЕГО ПОЛЬЗОВАНИЯ
Опираясь на такие видео и печальный опыт вендоров, можно составить несложную методику анализа защищенности устройств данного типа.Методика поиска анализа защищенности публичных терминалов
Наша задача: имея на руках полноэкранное приложение, которое, скорее всего, функционирует на базе операционной системы Windows, выйти за его пределы в системное окружение. Для этого можно использовать так называемый Tap-fuzzing. По‑другому говоря — поработать пальчиками. Нажимать на различные участки приложения с целью спровоцировать его недокументированное поведение. Или можно воспользоваться Data-fuzzing и подставлять различные данные в поля ввода с целью спровоцировать некорректную обработку входящих данных.
Как только удается вызвать элемент стандартного интерфейса операционной системы, следующим этапом будет попадание в панель управления — например, через разделы справочной информации.
Попадание в панель управления будет отправной точкой для запуска виртуальной клавиатуры с соответствующими последствиями.
ТРАНСПОРТНАЯ СИТУАЦИЯ
Жители Москвы все чаще могут встретить в парках своего города велосипедные паркоматы. Суть этих устройств довольно проста: имеется платежный терминал для оплаты велосипеда и стойка с велосипедами. Устройством вывода в платежном терминале служит дисплей, где пользователь может зарегистрироваться, чтобы прокатиться на велосипеде, и получить справочную информацию.Интерфейс системы спроектирован специально для этого типа устройств (если ты хоть раз оплачивал что‑либо в платежных терминалах, то представляешь, о чем речь), и в нем трудно запутаться. В этом интерфейсе у пользователя есть возможность получить текущее местоположение, а точнее, увидеть отметку на Google-карте, которая указывает, где находится паркомат.
Все подобные устройств работают на базе классических операционных систем (чаще Windows-подобных) со всеми их уязвимостями. Однако специализированный интерфейс представляет собой полноэкранное приложение с очень ограниченным функционалом, которое не дает пользователю забраться «под капот» и умышленно или непреднамеренно натворить глупостей. Соответственно, при анализе защищенности терминалов основная задача — выйти за пределы данного полноэкранного приложения. После этого можно будет пошалить: запускать свои приложения, поднимать привилегии, дампить ценную информацию и прочее.
В рассмотренных системах паркоматов обнаружена интересная особенность. В разделе «Карты» разработчики не стали придумывать ничего нового и использовали карты от компании Google. И все было бы прилично, если бы только виджет от Гугла не имел строки статусбара, в котором среди прочей информации (текущий масштаб, копирайты и так далее) содержатся ссылки «Сообщить об ошибке», «Конфиденциальность» и «Условия использования», которые открывают стандартное окно Internet Explorer…
Интерфейс полноэкранного приложения, содержащий некоторые особенности…
А ДАВАЙ ПРОКАТИМСЯ!
Помимо описанной ссылки, в данном приложении незаметно разбросаны и другие линки (например, при показе тех или иных ресторанов можно нажать кнопку «Подробнее»), нажав на которые можно открыть браузер.Выход за пределы полноэкранного приложения
«И что? Ну, открыл я браузер — клавиатуры ведь все равно нет!» Сейчас будет: по ссылкам на страницах со справочной информацией есть возможность перейти в раздел справки, который называется «Специальные возможности», где и прячется виртуальная клавиатура.
Кто я? Администратор!
Дальше все зависит от фантазии и степени наглости атакующего. Запуск cmd.exe демонстрирует еще один недостаток конфигурации: текущий сеанс операционной системы запущен с привилегиями администратора, а это значит, что мы потенциально можем скачать и совершенно беспрепятственно запустить любое приложение.
Бинго: виртуальная клавиатура
Так, атакующий может получить NTLM-хеш пароля администратора. При этом велика вероятность, что пароль, установленный на данном устройстве, подходит и к остальным устройствам данного типа, — а это уже третий недостаток конфигурации…
На этом приключение заканчивается, поэтому давай порассуждаем, что из всего этого может извлечь злоумышленник.
ТЕРМИНАЛЫ ГОСУДАРСТВЕННЫХ УЧРЕЖДЕНИЙ
Под государственными учреждениями мы будем понимать те, которые находятся в зданиях, имеющих герб или российский флаг. Без конкретики и упоминания производителей, но по сути .Итак, перед нами интерфейс полноэкранного приложения, которое на основе введенных нами данных предлагает распечатать квитанцию для оплаты.
«Проверь меня полностью»
После заполнения всех полей и реквизитов мы нажимаем кнопку «Создать» и наблюдаем следующую картину: терминал на несколько секунд открывает стандартное окно печати, в котором находятся все параметры печати нашего документа и автоматически производится нажатие на кнопку «Печать».
Ненадолго появляющийся системный элемент
Как следствие, если злоумышленник успевает нажать на кнопку «Изменить», то получает возможность посредством нехитрых манипуляций с параметрами печати выйти в справочный раздел…
ВАЙТХЕТЫ ЗАСЫПАЮТ, БЛЕКХЕТЫ ПРОСЫПАЮТСЯ
Сценарии постэксплуатации вытекают из особенностей данных устройств:- Все они расположены в публичных местах.
- Доступны в режиме 24/7.
- Имеют одинаковую конфигурацию.
- Имеют повышенную степень доверия со стороны пользователя.
- Связаны друг с другом и могут иметь выходы в другие «приватные» сети.
Плод воображения: что было бы, если бы mimicatz оказался запущенным на стороне терминала
Кроме того, злоумышленник может получить дамп приложения велопарковки, которое любезно собирает информацию о желающих покататься: ФИО, адрес электронной почты и телефон. Не исключено, что база данных с ценной информацией хранится где‑то неподалеку. Не стоит объяснять, что такая база будет иметь особую ценность на рынке, ведь в ней содержатся верифицированные адреса телефонов и email. В том случае, если же подобной базы нет, злодей может установить свой кейлоггер, который перехватывает все введенные пользователями данные и отправляет на удаленный сервер.
Учитывая одну из особенностей данных устройств — работу в режиме 24/7, можно организовать, например, пул для майнинга или использовать ее в других хакерских целях, требующих круглосуточного присутствия зараженной рабочей станции в сети.
Особо наглые злоумышленники могут реализовать сценарий атаки, результатом которой станет получение платежных данных пользователя: на главном окне приложения паркомата можно в ненавязчивой форме оставить поле для ввода реквизитов пластиковой карты, и с большой долей вероятности введенный в заблуждение пользователь любезно оставит их вместе со своим именем, номером телефона и электронной почтой…
Обилие сценариев, которые открывают возможности для доступа к персональным данным и кошельку ни о чем не подозревающих людей, ограничиваются лишь фантазией злоумышленников. Описанная ситуация с защищенностью паркоматов наглядно демонстрирует, как несколько недостатков конфигурации образуют уязвимость.
Кроме того, скомпрометированный терминал может стать отправной точкой для дальнейшей атаки на корпоративную сеть. Очень часто подобные устройства обращаются к терминальному серверу или целой подсети, которая находится в доверенной зоне компании, а значит, небольшая таргетированная атака, использующая вредоносное ПО и/или социальную инженерию, может позволить злоумышленнику оказаться в главном офисе. Без стука.
Сломал терминал — попал в компанию
РЕКОМЕНДАЦИИ
Проведенный нами анализ защищенности паркоматов демонстрирует, как несколько недостатков конфигурации делают устройство уязвимым. А приведенные сценарии атак — как это может открыть злоумышленникам доступ к персональным данным и кошелькам ни о чем не подозревающих людей.Для того чтобы исключить вредоносную активность на публичных устройствах, разработчикам и администраторам терминалов велопарковки и других терминалов, расположенных в публичных местах, мы рекомендуем:
- Запретить возможность открывать внешние ссылки в полноэкранном приложении.
- Не допускать вызова каких‑либо элементов интерфейса ОС Windows (например, правой кнопкой мыши, используя окна печати документов).
- Запускать текущий сеанс операционной системы с ограниченными привилегиями обычного пользователя.
- На каждом устройстве создавать уникальную учетную запись с уникальным паролем.