воскресенье, 17 ноября 2019 г.

Пользователь «Хабра» рассказал, как взломал Wi-Fi в «Сапсане» и получил доступ к данным пассажиров

Он успел сделать это за одну поездку от скуки из-за отсутствия интернета.

В закладки

Пользователь «Хабра» под псевдонимом keklick1337 рассказал, как взломал Wi-Fi в «Сапсане» пока ехал из Санкт-Петербурга в Москву. Как оказалось, на сервере скоростного поезда хранится информация о всех текущих и прошлых рейсов.

Взлом Wi-Fi от скуки

Keklick1337 рассказал, что ехал в Москву с конференции по информационной безопасности ZeroNights, на которой не было «интересных задач». Сначала он решил почитать книгу, но ему это быстро наскучило и он решил поработать, но в пути часто ловил только 2G-интернет, которого не хватало, даже чтобы подключиться к почте.

Я решил подключиться к местному Wi-Fi «Сапсана». Делал я это впервые! Ну так вот, он попросил меня ввести номер вагона, места и последние 4 цифры паспорта для авторизации, и тут меня уже немного заинтересовало, что же я могу сделать с этой сеткой Сапсана, но всё же в приоритете были пентест-задачи по работе.

Из-за плохого соединения пользователь так и не смог поработать и собирался вернуться к книге, но решил попробовать взломать «Сапсан». Он отметил, что раз для авторизации в Wi-Fi нужно вводить цифры паспорта и номер места с вагоном, то поезд хранит у себя данные обо всех пассажирах.

Пользователь решил выяснить, насколько трудной получить к ней доступ. Оказалось, для этого достаточно просканировать сеть и использовать пару публичных экплоитов.

Как произошёл взлом

Сначала Keklick1337 просканировал сеть «Сапсана» с помощью утилиты nmap с параметрами -v -A. Он обнаружил множество сервисов с открытыми портами и отметил, что такой «взлом» занял 20 минут — и то, потому что сервер «Сапсана» глючил.

Лишь часть открытых портов в сети «Сапсана» Скриншот пользователя «Хабра» Keklick1337​

Пользователь решил зайти на каждый сервис по отдельности. Вскоре он понял, что в «Сапсане» всё работает на одном сервере, на котором установлен Docker — среда для управления и развёртывания контейнерных приложений.

После этого Keklick1337 зашёл в cAdvisor — утилиту для мониторинга ресурсов и удивился показателям. Оперативная память сервера была загружена на 96% — вероятно, из-за этого он и глючил.

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

В базе данных на диске «Сапсана» оказалась информация обо всех пассажирах текущего и прошлых рейсов. Кроме того, там оказался VPN в сеть «РЖД». Однако больше всего пользователя удивило, что компания не стала покупать сертификат шифрования для HTTPS, а воспользовалась бесплатным Let's Encrypt.

Keklick1337 пришёл к выводу, что в «Сапсанах» всё настроено «ужасно». По его словам, везде используют одни и те же пароли, а данные хранят в текстовых документах.

Пользователь решил не публиковать данные авторизации, которые оказались одинаковыми для всех «Сапсанов». Он пояснил, что несколько лет назад уже обращался в РЖД с уязвимостью, но ему не выплатили вознаграждения и просто молча исправили ошибку.

Keklick1337 призвал компанию исправить уязвимости и пообещал проверить их ещё раз через пару месяцев. Заодно он напомнил всем пассажирам «Сапсана», что их данные находятся под угрозой.

Все, кто подключён к их Wi-Fi, подвержены снифу [перехвату] трафика. Так как всё идёт через их прокси, можно легко собирать HTTP-трафик, но если чуть постараться, то и [зашифрованный] HTTPS (проверенно). К данным пассажиров рейса получить доступ не составляет труда, и занимает это от силы 20 минут.

Редакция TJ обратилась к РЖД за комментарием по ситуации, но пока не получила ответа.

Let's block ads! (Why?)