LIMB
Вход Регистрация

тема

Как открыть 1500 шлагбаумов Москвы

kasir · · 9 ответов · 2.6к просмотров

Случилось как-то, что рядом с нашим офисом жильцы соседнего дома поставили себе шлагбаум. С парковкой в центре Москвы и так проблемы, а если еще и офисное здание неподалеку...в общем, жильцов можно понять. Но не давало покоя ощущение, что доступ к шлагбаумам могут получить далеко не только жильцы дома.

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

Компания, установившая шлагбаум

Переходим на сайт компании и продолжаем разведку уже в онлайне. Восклицательный знак в правом верхнем углу отправляет нас прямиком в "святая святых" любого веб-приложения - на страницу входа в админ-панель.
Вложение

Админка для "старших по объектам"
Внизу можно увидеть едва заметную ссылку, предлагающую ознакомиться с возможностями личного кабинета в тестовом режиме. Почему бы и не ознакомиться?
Вложение

Вход в личный кабинент от имени тестового аккаунта

Переходим по очень интересному URL -https://lk.amvideo-msk.ru/index.php?login=tеst - и попадаем в админ-панель, как нам и обещали на предыдущей странице. На открывшейся странице в глаза бросается еще один пользователь test14. Сразу же хочется подставить test14 в "интересный" URL вместо test:
Вложение

Успешно вошли от имени test14. Данных стало чуть больше - это видно даже визуально, но не прав доступа. Походим по админке от имени этого аккаунта, посмотрим, что есть. В списке шлагбаумов всего один с названием "ТЕСТ", "Список клиентов" явно тестовый, как и "История проездов", "Добавление клиентов" недоступно, да и вообще большинство действий блокируется сообщением с текстом "Недостаточно прав".

Осталась вкладка "Управление КПУ", но и там почти все действия заблокированы, кроме просмотра стрима с камеры, встроенной в шлагбаум, и получения состояния оборудования:
Вложение

Возможности тестового аккаунта
Немного странно, что эти действия были разрешены кому попало для вполне реального шлагбаума. Если можно смотреть стрим с камеры и получать состояние оборудования на одном КПУ(контрольно пропускное устройство), мешает ли что-то делать это на других? Посмотрим, как устроены запросы, которые отправляются при запросе стрима и состояния оборудования:
Вложение

Структура двух HTTP-запросов, управляющих КПУ

В обоих случаях в HTTP-запросах фигурирует числовой идентификатор(!). Не остается выбора, кроме как попробовать поподставлять другие идентификаторы в запросы:

Вложение

Просмотр чужих камер и состояния КПУ

Три случайно выбраных числовых идентификатора привели к трем разным объектам! От имени тестового пользователя! На самом нижнем шлагбауме даже видно, что из-за того, что статус панели - "не в сети", одна из камер не работает.

Интересно еще то, что запрос на получение состояния оборудования возвращает статусы только в том случае, если объект с переданным идентификатором существует. Благодаря этому можно "сбрутить" все идентификаторы КПУ простым перебором чисел, которых не сильно больше 1500, судя по данным официального сайта (всего в Москве установлено 7082 шлагбаума).
Выходит, в приложении компании по установке шлагбаумов есть некоторая системная уязвимость, из-за которой не проверяется, можно ли тому, КТО запросил, отдавать то, ЧТО он запросил, а значит приключение только начинается!

Читаем тикеты тех.поддержки (можно даже создавать тикеты-задачи от имени любого пользователя, в т.ч администраторов):
Вложение

Получаем адреса и телефонные номера шлагбаумов для их открытия:
Вложение

Получаем списки жильцов на объектах с персональной информацией (номера машин, телефонов, квартир):
Вложение

ПРОДОЛЖЕНИЕ СНИЗУ
👍383 🔥73 😁132 😮64 🤔24 😢98 👎48
И на этом уже можно было бы остановиться - каждый, кто "успел" собрать улов из номеров шлагбаумов и номеров жильцов, уже может открывать любой шлагбаум в удобное для него время с помощью SIP-сервисов для подмены номера, которых сейчас развелось предостаточно - SipCaller, BlackVoip и тому подобные.

Но мы решили не останавливаться. Вишенкой на торте стал не сильно примечательный на первый взгляд эндпоинт редактирования информации о пользователе, при переходе на который визуально казалось, что ничего не происходит. Однако под капотом возвращались реальные данные(адрес, ник, email, фио) вместе с кодом редиректа 302 на index.php:
Вложение

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

Пройдясь по первой тысяче чисел (0-999), удалось многое узнать о пользователях данной системы - как развивалась схема имен с ростом компании, когда примерно никнеймы в виде телефонного номера начали вытеснять текстовые и даже то, как в некоторых случаях по никнейму можно определить адрес. Но самым важным обнаружением стал пользователь с ником test30.

В этот момент возникло непреодолимое желание вернуться в самое начало и подставить test30 теперь уже вместо test14 в URL авторизации. Результат был выше всяких ожиданий:
Вложение

(не)Тестовый аккаунт

Мы попали не в очередной тестовый аккаунт, а в аккаунт с повышенными (сильно повышенными) правами - в аккаунт диспетчера всей системы!

Теперь стало возможным управлять любыми шлагбаумами без SIP-телефонии как независимо, так и массово :) Присутствие шлагбаумов компании в Москве выглядит довольно обширно:
Вложение

Шлагбаумы Москвы

Есть даже шлагбаумы в других городах, но там их не много. Полученные доступы такого уровня - не важно, жилец вы конкретного дома или просто проезжаете мимо - открывают для любого желающего "режим Бога" со следующими функциями:

  • Скрытное открытие шлагбаумов (проезды не будут светиться в истории)Из веб-админкиЗвонком через SIP (с подмененного телефона жильца на телефон шлагбаума)В истории не фиксируются открытия только с номеров админов, это ок?
  • Просмотр в реальном времени имен/телефонов/квартир проезжающих через шлагбаум
  • Получение видео с камер шлагбаумовВ режиме реального времениЗа любой промежуток времени за последние 7 дней
  • Чтение тикетов службы поддержки и создание тикетов от имени любого пользователя
  • Получение конфиденциальной и технической информацииGeo-координаты всех шлагбаумовИнформация об аппаратуреВнутренние SIP-номера шлагбаумов и креды авторизации в SIPIP адреса камер и панелей управленияЛогины и пароли (в основном дефолтные) прямого доступа к аппаратуре (доступной через Интернет)К камерамК "микротикам" по SSHК Beward-панелям КПУCписки жильцов (телефоны и имена) по адресам с номерами квартир, а также номерами и марками автомобилейCписок объектовАдреса объектовТарифы на объектах и у пользователейНомера телефонов КПУ на объектах
  • Рассылка Push-уведомлений на номера телефонов пользователей
  • Редактирование и просмотр пользователейИзменение имени\телефона\emailВыдача\изъятие прав на платные действияОткрытие с мобильного приложенияСоздание одноразовых заявок на проездПросмотр видео с КПУ
  • Создание новых пользователей на объектах
  • Создание одноразовых заявок на проезд
  • Просмотр созданных заявок на проезд (запланированные проезды)
  • Звонки диспетчерам от имени любого шлагбаума через внутреннюю SIP-систему
  • Перевод всей системы в аварийный режим или включение тестового режима
  • Блокировка открытия шлагбаума и перезагрузка оборудования

Outro


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

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

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

На определенных этапах исследования не покидало ощущение, что в отдельных участках этой системы уже кто-то может обитать. Очень надеемся, что разработчики проведут более глубокий аудит с привлечением надежных специалистов и исправят то, что пока не было найдено.
👍12 🔥1 😁2 😮1 👎1
Это новый эпичный тренд: компании, поставляющие решения безопасности, снижают вашу безопасность :D
👍6 ❤️1
Да, если посмотреть те же автосигнализации взглядом человека, знакомого с безопасностью, можно заметить примерно то же самое.
👍14 👏2 💯1 👎1
В вашем примере дорога на юге-западе всё таки входит в участок МКД, а значит является общей собственностью жильцов (но вообще карта какая-то кривая у росреестра). Другое дело, что жители прилежащего дома не могут не пользоваться этой дорогой, а значит на эту дорогу поидее должно быть наложено обременение права ограниченного пользования другими лицами (ст. 36. ч. 5). Могут ли жильцы всех этих домов договориться и поставить шлагбаум с учётом того, что это разные участки — не знаю. В любом случае, просто так собраться жильцам, решить и внезапно втихую поставить шлагбаум нельзя, нужно как минимум получить согласование от совета муниципальных депутатов, иначе — самострой и снос.

Вообще для городов, в частности для Москвы, выгодно субсидировать шлагбаумы, т.к. это вынуждает «понаприехавших» парковаться не бесплатно во дворах, а на платных общественных парковках и пополнять местный бюджет.
👍17 🔥4 👏1 👎2
Зачем вообще ставить шлагбаум?
👎1
Предполагаю, чтобы посторонние люди не парковали машины во дворе, отнимая места у жильцов дома, которым принадлежит придомовая территория на праве общей долевой собственности согласно ЖК РФ ст. 36 ч. 1 п. 4, и которые вправе на общем собрании принять решение об ограничении и порядке въезда на территорию.
Более того, правительство Москвы даже выдает субсидии на установку шлагбаумов в размере 100 тысяч рублей, что в целом покрывает если не всю, то большую часть стоимости работ по монтажу и самого шлагбаума (но не дальнейшего обслуживания).
👍12 🔥2 😁1 👏1 🤔2 👎1
Это ж надо же get'ом и без проверки прав админку спроектировать . Студент на фрилансе никак писал
👍12 🔥1 😁1 👎1
Спасибо за информацию по SIP. У нас было обсуждение установки шлагбаума, и кто-то высказывался в духе радиомаячки нельзя, потому что их подделывают, только по номеру телефона
👍4 ❤️1
У нас сделано проще. Подьезжает машина экстренных служб, включает СГУ и через 4-5 секунд шлагбаум открывается.
👍5 🔥2 👎2

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.