Pull to refresh

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

Reading time6 min
Views119K
Уж простите за пафосный заголовок, но раз пошла такая пьянка, то продолжим. Мне лично такие посты нравились всегда.

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

image


Волею судеб я оказался в съемной хрущёвке. У меня был свисток «Мегафона». Так как я должен был пробыть там с недельку, меня не напрягало отсутствие стационарного интернета. Однако моё пребывание там затянулось. Я решил, что это не беда, так как был вооружён инструментарием для вардрайвинга. Но сбрутить я ничего не смог за пару дней, кроме открытой сети Yota (facepalm). Как вы могли догадаться из названия поста, в прихожей квартиры я нашёл до боли знакомый оранжевый провод. Подключил — это был «Билайн». Казалось бы, это просто оранжевый провод. И тем не менее, это как минимум 100мб канал (оптимально) с доступом в локальную сеть (возможно). В нашем случае whois сказал, что это 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. В некоторых случаях было вообще смешно, вебморда ругалась на неверный логин/пароль, но сама же и показывала логин/пароль, но это было скорее исключением, таких роутеров встретил может парочку штук:



Уязвимость #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.



Ещё раз читаем, медленно и вникая в каждое слово: В качестве 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/24
5. МТС роутер находится в сети 192.168.0.0/24
6. Зная локальный IP билайна, вставив его в качестве gateway, я коннекчусь через него к МТС роутеру и имею интернет с него.

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

Спасибо сотрудникам «Билайна» за быструю реакцию. В частности хабражителям geran_utran и givtone. На самом деле частенько приходится общаться с админами и разработчиками того или иного сервиса по поводу безопасности и чаще натыкаешься на: «Да мы тебя посадим, да это подсудное дело!» и прочий неадекват. Ребята быстро поправили критические дыры и привлекли нужных людей. Я был уверен, что у меня будет ещё месяц-два халявы, пока всю сеть «Билайна» не перенастроят, но нет, всё решилось в течении суток, как только нашли ответственного. Молодцы, одним словом.
Tags:
Hubs:
Total votes 144: ↑137 and ↓7+130
Comments87

Articles