Он успел сделать это за одну поездку от скуки из-за отсутствия интернета.
Пользователь «Хабра» под псевдонимом keklick1337 рассказал, как взломал Wi-Fi в «Сапсане» пока ехал из Санкт-Петербурга в Москву. Как оказалось, на сервере скоростного поезда хранится информация о всех текущих и прошлых рейсов.
Взлом Wi-Fi от скуки
Keklick1337 рассказал, что ехал в Москву с конференции по информационной безопасности ZeroNights, на которой не было «интересных задач». Сначала он решил почитать книгу, но ему это быстро наскучило и он решил поработать, но в пути часто ловил только 2G-интернет, которого не хватало, даже чтобы подключиться к почте.
Из-за плохого соединения пользователь так и не смог поработать и собирался вернуться к книге, но решил попробовать взломать «Сапсан». Он отметил, что раз для авторизации в Wi-Fi нужно вводить цифры паспорта и номер места с вагоном, то поезд хранит у себя данные обо всех пассажирах.
Пользователь решил выяснить, насколько трудной получить к ней доступ. Оказалось, для этого достаточно просканировать сеть и использовать пару публичных экплоитов.
Как произошёл взлом
Сначала Keklick1337 просканировал сеть «Сапсана» с помощью утилиты nmap с параметрами -v -A. Он обнаружил множество сервисов с открытыми портами и отметил, что такой «взлом» занял 20 минут — и то, потому что сервер «Сапсана» глючил.
Пользователь решил зайти на каждый сервис по отдельности. Вскоре он понял, что в «Сапсане» всё работает на одном сервере, на котором установлен Docker — среда для управления и развёртывания контейнерных приложений.
После этого Keklick1337 зашёл в cAdvisor — утилиту для мониторинга ресурсов и удивился показателям. Оперативная память сервера была загружена на 96% — вероятно, из-за этого он и глючил.
Пользователь решил изучить содержимое контейнеров и с помощью публичных эксплоитов смог попасть в файловую систему. Он пояснил, что у «Сапсана» установлены простые пароли, а по ssh можно получить доступ к Root.
В базе данных на диске «Сапсана» оказалась информация обо всех пассажирах текущего и прошлых рейсов. Кроме того, там оказался VPN в сеть «РЖД». Однако больше всего пользователя удивило, что компания не стала покупать сертификат шифрования для HTTPS, а воспользовалась бесплатным Let’s Encrypt.
Keklick1337 пришёл к выводу, что в «Сапсанах» всё настроено «ужасно». По его словам, везде используют одни и те же пароли, а данные хранят в текстовых документах.
Пользователь решил не публиковать данные авторизации, которые оказались одинаковыми для всех «Сапсанов». Он пояснил, что несколько лет назад уже обращался в РЖД с уязвимостью, но ему не выплатили вознаграждения и просто молча исправили ошибку.
Keklick1337 призвал компанию исправить уязвимости и пообещал проверить их ещё раз через пару месяцев. Заодно он напомнил всем пассажирам «Сапсана», что их данные находятся под угрозой.
Редакция TJ обратилась к РЖД за комментарием по ситуации, но пока не получила ответа.