Был получен доступ к тысячам персональных данных пользователей «Билайн проводной интернет»

Уж простите за пафосный заголовок, но раз пошла такая пьянка, то продолжим. Мне лично такие посты нравились всегда.Итак, речь пойдёт про уязвимость известного в Мск (да и не только) провайдере Beeline. Многие помнят его под именем Corbina. Без сомнения, это один из передовых интернет провайдеров, с большой и хорошей историей. В своё время он был спасением, благодаря качественному и быстрому инету, интранет сетям итп. В настоящий момент сотрудники провайдера в курсе уязвимостей и самые критичные уже закрыты. Однако, уверен, многие откроют для себя много нового и интересного. Тем более, что техника применима практически к любому провайдеру.

imageВолею судеб я оказался в съемной хрущёвке. У меня был свисток мегафона и т.к. я должен был пробыть там с недельку, меня не напрягало отсутствие стационарного интернета. Однако, моё пребывание там затянулось. Я решил что это не беда, т.к. был вооружён инструментарием для вардрайвинга. Но сбрутить я ничего не смог за пару дней, кроме открытой сети YOTA (facepalm). Как вы могли догадаться из названия поста, в прихожей квартиры я нашёл до боли знакомый оранжевый провод. Подключил — это был билайн. Казалось бы, это просто оранжевый провод. И тем не менее, это как минимум 100 мб канал (оптимально) с доступом в локальную сеть (возможно). В нашем случае хуиз сказал, что это 10.0.0.0/8 подсеть. Понятно, что не все ip будут доступны, но уже лучше, чем ничего.Тут в бой вступает nmap. Я забыл про него в начале 2000-ых, т.к. вроде эра открытых портов прошла. Однако, в начале 2010 я снова про него вспомнил, ибо широкую популярность получили всякого рода nosql и прочие подсервисы, которые часто были без авторизации. nosql экономили на всём в погоне за производительностью, а кучища подсервисов, типа заббикса, дженкинса итп часто оказывались либо открытыми, из категории «да кто узнает, что у меня 12345 порт открыт», либо дырявыми. Тот же заббикс имел кучу дыр, в том числе sqli без авторизации. Короче) моей целью были роутеры. 80-ые порты. Раньше часто они были открыты на внешку, сейчас провайдеры блокируют внешку по дефолту, как и сами роутеры. Но я то для них был локальным.

Начал сканировать nmap`ом, но быстро передумал, т.к. он предложил мне подождать пару дней. В бой был отправлен zmap. Можете почитать про него, но если кратко — это очень быстрая и узкая альтернатива nmap`у. zmap просканировал ту же подсеть за 2 минуты.

Уязвимость #1Не имея логина/пароля от билайна, просто воткнув провод, я получал доступ ко всем локальным ресурсам и устройствам (роутерам, камерам, voip железкам итп)

То, что на железках были дефолтовые логины/пароли, я даже за уязвимость считать не буду. Старо как мир. Из категории «зачем мне ставить сложный пароль на свой роутер, если он локальный». Или, что ещё чаще: «Ой, всё».Однако, далее меня ждала более интересная деталь. 80% роутеров, что я нашёл — dir300 с прошивкой от beeline. Без сомнений, это один из самых надёжных и доступных роутеров, который сполна справляется со своей задачей. Когда я столкнулся с нестандартными логинами/паролями, я решил посмотреть, что как и куда ходит. Т.е. открыл инспектор в браузере и начал снифать запросы. Удивительное рядом! Оказалось, что прошивка билайна на попытку неверной авторизации возвращала:

{ auth: false } однако, прошивка зачем-то слала сразу несколько запросов на авторизацию. Одновременно. И когда первый просто ругался auth: false, второй выдавал что-то вроде: { auth: false, … settings: { ssid: «blablabla», wpakey:»12345678», login: 089746254 password: «lovelove123» … } } Т.е. прошивка как бы говорила, что auth: false, прости парень. Но при этом попутно отдавала всю настройку роутера, в том числе логин/пасс от личного кабинета билайна и от wifi. В некоторых случаях было вообще смешно, вебморда ругалась на неверный логин/пароль, но сама же и показывала логин/пароль, но это было скорее исключением, таких роутеров встретил может парочку штук: 82ea4e937edb4cbfab8761f8be9e10b5.png Уязвимость #2Прошивка билайна для роутеров сама отдавал все настройки роутера без знания логина/пароля.

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

Сканируем роутеры, собираем логины/пароли от wifi. Смотрим, какие сети есть в зоне досягаемости. Коннектимся к ним и сидим как партизаны. Даже сети с огромным паролем не устоят, т.к. в роутере он хранится в открытом виде. Ну и чтобы совсем не палиться. Берём маркер и в подъезде пишем логин/пароль от этой wifi сети где-нибудь в труднодоступном месте. Под лестницей первого этажа, например. Т.е. даже если к вам придут, вы включаете дурака и говорите, что вон там под лестницей нашли логин и пароль и приписку: «Пользуйтесь все, бесплатный wifi».

В моём случае у меня не хватило терпения собрать все wifi доступы со всех роутеров. Единственная сеть, что я быстро нашёл и которая была в диапазоне видимости моего ноута, имела хорошую скорость, но пинги от 30 мс до 7с. С AlfaNetworks я имел стабильный сигнал, но эти внешние wifi карты по всему миру имеют репутацию помощника вардрайвера, поэтому сидеть под ними тоже палевно.

Я продолжал собирать доступы к wifi. Их было очень много и мне это надоедало. Хотелось сети прямо сейчас. В голову пришла простейшая и гениальная идея. Предположим, что я нашёл роутер с открытым 80 портом по адресу 10.82.2.20. Стандартный dir300. Либо что угодно другое, это не важно. Выключаем DHCP, и пишем настройки сети:

gateway: 10.82.2.20 (роутер, что нашли)ip: 10.82.2.222 (от балды в той же подсети)dns: 8.8.8.8

подключаем сеть и, даже без интриги, имеем качественный интернет через провод, а не через wifi. Заходим на роутер, смотрим — да действительно, мы подключены к нему как-будто в lan.

599d944684e84bb5964a7622a9ba3748.png Ещё раз читаем, медленно и вникая в каждое слово: В качестве gateway прописываем ЛЮБОЙ активный IP сети и имеем коннект к нему по LAN.Нормально? По-моему вполне.

Мне оставалось только проверить несколько роутеров в личном кабинете на нормальный тариф, чтобы выбрать «кем быть сегодня».Честно говоря, это скорее уязвимость не столько (и не только) билайна, сколько роутеров. Но тем не менее.

Уязвимость #3Возможность коннектится/регистрироваться локально на любом роутере внутри сети и получить с него интернет.

Получив моральное и эстетическое удовольствие, я связался с представителями провайдера и передал им все наработки.На выходе, имея лишь провод beeline, не зная логинов/паролей, можно было получить быстрый интернет на халяву. Просто, как 2 байта переслать.Некоторые детали:

1. 99% роутеров TrendNet имеют стандартные логин/пароль. За всё время я нашёл лишь 1 или 2 роутера от TrendNet, к которым не подошли дефолтовые доступы.2. 0% роутеров Zyxel имеют стандартный логин/пароль. Скорее всего, при настройке они требуют поменять этот пароль.3. 50% доступов к ЛК не меняются. Кто знаком с билайном знает, что при заключении договора, установщик делает пароль от ЛК либо равный логину, либо добавляет 1 символ в начало или конец логина.

И вот ещё что, на уровне фантастики. Опять же, совершенно случайно я наткнулся на живой роутер, прописал его в качестве гейтвея и себе локальный 192.168.0.222. Получил интернет, попользовался им, а потом пошёл в настройки роутера (на 192.168.0.1). Уже не помню зачем. Может что-то проверить или чего ещё. Представьте моё удивление, когда передо мной открылась форма логина ADSL роутера от МТС. Я перепроверил сеть, посмотрел checkip.dyndns.com, прохуизил внешний IP — да действительно, это МТС инет.Я воткнул провод билайна, а получил интернет от МТС. Я долго ломал голову, в чём тут смысл и как такое возможно. Подключил к процессу сисадмина с работы и спецов от билайна. Единственный возможный вариант, что я придумал:

1. Есть чувак, у которого и МТС и Билайн инеты, соответственно, 2 роутера.2. Оба роутера законекчены друг к другу.3. Билайн роутер не имеет инета и спрашивает его у МТС роутера.4. Билайн роутер не находится в сети 192.168.0.0/245. МТС роутер находится в сети 192.168.0.0/246. Зная локальный IP билайна, вставив его в качестве gateway, я коннекчусь через него к МТС роутеру и имею интернет с него.

Круто? Примечательно, что 1-го числа следующего месяца устройство пропало. Предположительно, чувак отключил билайн.

Спасибо сотрудникам Билайна за быструю реакцию. В частности хабражителям geran_utran и givtone. На самом деле частенько приходится общаться с админами и разработчиками того или иного сервиса по поводу безопасности и чаще натыкаешься на: «Да мы тебя посадим, да это подсудное дело!» и прочий неадекват. Ребята быстро поправили критические дыры и привлекли нужных людей. Я был уверен, что у меня будет ещё месяц-два халявы, пока всю сеть билайна не перенастроят, но нет) всё решилось в течении суток, как только нашли ответственного. Молодцы одним словом.

© Habrahabr.ru