[Перевод] Конференция DEFCON 18. Практический шпионаж с помощью мобильного телефона. Часть 2

Конференция DEFCON 18. Практический шпионаж с помощью мобильного телефона. Часть1

Мы хотим применить определённые методы, чтобы ускорить захват телефонов фальшивой сетью. На данный момент у нас есть простой перехватчик IMSI, вы можете попробовать позвонить и услышать записанное мною предупреждение. Вижу, что несколько человек подняли руки. Я имею в виду, что вы, ребята, подключаетесь к моей сети, и я перехватываю весь ваш трафик.
Во-первых, я теперь знаю все ваши IMSI и могу их отфильтровать, оставив только IMSI конкретного человека, который является моей целью. То же самое я могу проделать с фильтрованием IMEI, которые представляют собой идентификаторы телефонов. Например, я могу разрешить подсоединяться к сети только телефонам марки «Нокия» или только «Айфонам». Я могу сделать так, что только этот конкретный IMEI будет в моей сети и никого больше. Я могу ограничить доступ с помощью самых разных параметров.

wsezfpalvznibzanflocbkuyfbe.jpeg

Как я уже упоминал, для миграции людей из официальной сети в мою сеть требуется время, и мы можем сделать это быстрее, я расскажу об этом через секунду. Одно из главных ограничений этой системы то, что она принимает только исходящие звонки. Когда вы подключаетесь к моей сети, независимо от того, будет ли это Т-Mobile или AT&Т, ваш телефон отключается, потому что реально вы не подключены ни к одной из легальных вышек сотовой связи. Таким образом, как только приходит звонок, он поступает прямо в вашу голосовую почту. Это проблема разрешаема, позже я покажу вам, что исходящие звонки тоже могут быть записаны.

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

  • список «соседей», то есть расположенных по соседству вышек;
  • замена кода локальной зоны LAC;
  • загрузка телефона;
  • усиление приёма.


Расcмотрим «соседство» GSM. Каждая базовая станция знает, какие вышки расположены поблизости, и при подключении к ней телефона он получает список «соседей», то есть информацию, на каком канале работает каждая станция.

atpmivb530qyecqhlpyxewvqbhg.jpeg

Ваш телефон будет контролировать все эти каналы и наблюдать за мощностью сигнала, и если сигнал соседней вышки окажется сильнее, то он подключится именно к ней. Какие преимущества можно из этого извлечь? Нам известно, что сотовый телефон будет следить за соседними частотами, так что если мы осмотрим всю зону и узнаем, какие вышки нас окружают, мы сможем выяснить, какую именно частоту выбирает телефон и к какой вышке подключается. В конце концов, мы сможем найти соседний канал, который, возможно, находится с другой стороны вышки, и настроить нашу станцию именно на частоту, которую, как я знаю, воспринимает ваш телефон. Предположим, ваш телефон подключится к базовой станции, всё идёт хорошо, но тут вы немного проехали по улице и другая вышка оказалась ближе к телефону, поэтому я просто переключусь на её частоту, чтобы вас не потерять. Таким образом, мониторинг соседних каналов позволит быстро переключаться на нужную частоту.

На самом деле это довольно легко. Предположим, у меня есть телефон Nokia 3310 (900/1800) или 3390 (1900), который принимает европейские и один из американских частотных диапазонов. Этот телефон поддерживает режим мониторинга сети Network Monitor, при котором ведутся логи всего, что делает GSM телефон, записывается каждый пакет, который он отослал базовой станции и каждый полученный от неё ответ. Это не предоставляет вам никаких преимуществ взлома или захвата данного телефона, но даёт полную информацию о том, что этот телефон видит в сети GSM.
Если вы получите один из этих телефонов, то вам понадобится специальный коммутационный кабель с переходниками Fbus/Mbus и программа для управления телефоном под названием Gammu. Это программа с открытым исходным кодом, она подключается к телефону через компьютер с помощью такого кабеля и просто выводит трассировку в виде XML — файла, который вы можете открыть в Wireshark. Список соседних вышек содержится в строке «System Info type 2».
Сейчас я покажу вам демо №3, а именно, как выглядит трафик, пойманный Wireshark. На этом скрине вы видите трафик, который я поймал и записал прошлой ночью с телефона, подсоединённого к сети T-Mobile.

0xo6_xvhhpqldshkzndjo903d2a.jpeg

Здесь вы видите различные GSM сообщения, и если найти среди пакетов справа строку «System Info type 2» и кликнуть по ней, можно получить список соседних GSM-вышек.

oi6ig9_xcw3fnknhkzce6g1q9um.jpeg

Так что вы просто берете этот телефон, подключаете его к компьютеру через кабель с переходником, запускаете Gammu, просматриваете список каналов в Wireshark, сравниваете их с тем, что вы знаете, то есть буквально включаете радиоприёмник на каждой из этих частот и смотрите, получаете ли при этом сигнал. Это совсем несложно. С помощью этой технологии вы можете найти «соседа», который не используется в локальной зоне, задействовать его и тем самым увеличить скорость подключения. Сегодня я просто хотел показать вам, что атакующий с такой же легкостью может воспользоваться этим приёмом для захвата вашего телефона.
Мы можем воспользоваться другим способом ускорить подключение, меняя код LAC. Это код местоположения, транслируемый базовой станцией BTS, который группирует вместе кучу вышек, расположенных в одном районе. То есть вы имеете кучу вышек в одной и той же области, предоставляющих один и тот же LAC. Им точно также можно манипулировать. Когда телефон мониторит все соседние вышки и при этом LAC меняется, можно сделать вывод, что телефон перемещается. Если телефон действительно переехал в другую область, необходимо переназначить станцию, то есть передать его другой вышке.

С помощью моей локальной Open BTS я полностью контролирую LAC и могу его менять. Тогда все телефоны поблизости скажут: «эй, смотрите, LAC поменялся, значит, я отъехал на 50 миль от старой вышки и должен подключится к этой новой вышке!». Таким образом, «прокручивая» другие LAC каждые несколько минут, то есть периодически изменяя код района, можно привязать к своей станции ещё больше телефонов.

Я покажу вам демо, как менять LAC. Давайте сначала посмотрим, сколько телефонов сейчас находится в моей сети. Перед тем, как мы подделали сеть оператора AT&T, у нас было 30 подключенных трубок. Затем я использовал AT&T MMC и MCC, и мы видим, что на данный момент к сети подключено 24 телефона. TIMSI имеет тайм-аут, так что повторная команда, которую я ввожу, следует с некоторой задержкой, и она тоже показывает, что теперь у нас 24 подключенных телефона. Можно не обращать на это внимания, у нас всё равно целая куча телефонов.

Мы снова можем использовать команду Cell ID для прокрутки LAC. Мой код местоположения был 666, думаю, я должен изменить его на 31337 и оставить Cell ID на 10. На самом деле я также поменяю идентификатор ячейки Cell ID, просто чтобы телефоны знали, что это новая вышка. Это совершенно не сложно — менять LAC. Как я уже говорил, теперь телефоны подумают, что изменили своё местоположение, и число телефонов, подсоединяемых к новой вышке, должно увеличиться.
Мы вернёмся к этому после того, как рассмотрим следующий способ — запуск телефона, или загрузка телефона информацией. Когда телефон только включается, перед тем, как найти свою первую вышку, он ничего не знает — ни частоты вышки, ни LAC, ни соседских вышек. Поэтому после включения он выполняет длительное сканирование всего частотного диапазона, находит вышки, проверяет их MNC и MCC, пытается выяснить, имеется ли рядом сеть, подключение к которой позволяет его SIM-карта, проверяет силу сигнала и, наконец, подсоединяется к самой «мощной» вышке.

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

Если хакер использует DoS по отношению к сетевому сервису, телефоны теряют сигнал и начинают сканировать сеть в большем диапазоне, что увеличивает шанс подключения к вышке атакующего.

Как можно заставить телефон потерять сигнал? В этом примере я буду говорить только о втором поколении связи 2G GSM, потому что 3G обладает намного большей безопасностью. Итак, если вы глушите какой-то диапазон GSM, телефоны начинают выполнять развёрнутое медленное сканирование, тем самым увеличивая шанс найти именно нашу вышку.

wqi68nthjih__pzvygeh33f8zgk.jpeg

Однако, если вы используете 3G, я ничего не могу сделать, потому что благодаря мощным протоколам перехватить 3G — звонок намного труднее. Поэтому нам нужно вынудить телефоны подключиться к сети 2G, глуша сигнал 3G. Если ваши телефону утрачивают возможность подключиться к сети 3G, они с радостью переходят на 2G.

Всё, что вам нужно сделать — это транслировать «шум», который заблокирует возможность разговаривать по сети 3G и вынудит телефон перейти на 2G с передачей сообщений простым текстом. То есть если вы не можете подключиться к порту 22, то пробуете подключиться к порту 23. Вы можете считать 3G аналогом SSH, а GSM — аналогом Telnet, так что возникает ситуация, аналогичная той, когда вы, не сумев подключится к порту SSH, подключаетесь к порту Telnet. Именно так поступает сотовый телефон в подобной ситуации.

Вопрос состоит в том, насколько трудно заглушить сигнал сотовой связи в определенном диапазоне частот. Рассмотрим, что представляет собой генерирование помех. Всё, что должен сделать атакующий — это обеспечить «шум». Когда я говорю про «шум», то имею в виду очень конкретную вещь. Я имею ввиду не случайность, а совершенно плоский спектральный шум, перекрывающий весь частотный диапазон и каждый канал.

Что эффективнее всего сделать в данном случае, кроме как полностью разрушить вышку? Это исключить возможность телефонам увидеть эту вышку, полностью замаскировав её шумом. Генератор шума не слишком дорогая штука, на eBay его можно купить за 450 долларов. У меня с собой есть один такой генератор. Как видите, это достаточно тяжёлая штука!

0skilr7q6lfagi7brrykq3zft9m.jpeg

Если я подключу его к усилителю мощности, а усилитель к антенне и точно её настрою, то его включение вызовет серьёзные нарушения в работе сети сотовой связи. Как я уже говорил, генератор помех стоит на eBay $450, усилитель мощностью 100 Вт можно купить в интернете за $400, а шум мощностью 100 Вт способен вызвать просто колоссальные сбои в сети.

Данный генератор работает в 2-х режимах — один предназначен для постановки помех в диапазоне 900 Мгц, второй — в диапазоне 1900 Мгц. На слайде вы видите кривую анализатора спектра низкой частоты, слева — около 500 мегагерц, справа самая высокая частота 2,5 гигагерц.

3jbiyora8pqwzyx2eqp-gp_y5x0.jpeg

Слева вы видите «большой и толстый» блок в частотном диапазоне 900 Мгц. Точно такой же блок усилитель может поставить на любом канале сотовой связи в диапазоне от 850 до 950 мегагерц.
Включите эту штуку, и связь на частоте 850 и 950 просто перестанет работать. Аналогично происходит в режиме 1900 — немного дальше вы снова видите основной пик частоты.

Демо №5 покажет, как происходит глушение несущей частоты сотовой связи. Однако не думайте, что я настолько глуп! Если я включу эту штуку, генерирующую помехи, в усилитель мощностью 100 Вт и присоединю его к антенне, то выбью всю сотовую связь в округе — GSM, CDMA, 3G, Verizon и практически каждый сотовый телефон во всем Лас-Вегасе, если не дальше.

(аплодисменты и смех в зале)

vkwiismzlcu7icprmwdr8e4ba0y.jpeg

Так что я никогда не включу эту штуку. Основная причина, по которой она у меня есть — это то, что это сказочно полезная вещь в роли испытательного оборудования. Если вы пытаетесь классифицировать фильтры, вы пропускаете «белый шум» через фильтр, сравниваете форму волны на входе и выходе и очень точно калибруете фильтр. Вот для чего я использую этот генератор помех, а не для организации DoS атаки сотовой связи. Дело в том, что от такой «глушилки» не существует никакой защиты.

Вам нужен всего лишь короткий запуск генератора длительностью несколько секунд, чтобы «положить» всю сеть, но подобная демонстрация силы будет здесь совершенно неуместна. Я думаю, что усилитель мощностью 100 Вт и правильно настроенная антенная способна отключить всю систему сотовой связи Лас-Вегаса.

Ещё один метод, который мы можем использовать для перехвата телефонов, носит название Receive gain, или «усиление приёма». Он состоит в том, что BTS может отправить телефону команду: «воспринимай мой сигнал так, как если бы он был на X дБ сильнее, чем есть на самом деле». Смысл этого заключается в следующем.

Представьте себе шкалу, проградуированную от +50 до -100. Любой, кто знаком с RF поймёт, почему я выбрал такой диапазон. Допустим, что мой сигнал опустился до -80, это действительно очень низко. Я могу приказать вашему телефону просто добавить к этому значению 100, в результате получится сигнал уровня +20дБм. Телефон подумает: «отлично, это самая мощная вышка в округе, сейчас я к ней подсоединюсь»! Да, это выглядит смешным, это надувательство, но опять же, это еще один отличный пример инструкций, которые BTS может отправить телефону. То есть мне совершенно не обязательно иметь более мощный сигнал, мне достаточно убедить телефон, что мой сигнал действительно сильнее всех окружающих. И телефон этому поверит, потому что так работает GSM, и он просто обязан выполнять команды вышки. Конечно, злоумышленник может воспользоваться этим методом привлечения телефонов и, имея достаточно слабый сигнал, выиграть состязание с более мощными вышками. Open BTS пока что не поддерживает эту возможность, поэтому я не смогу продемонстрировать данный метод. В этом, собственно, и заключается суть патентов R&S, использованных в перехватчике IMSI.
В Великобритании был случай, когда кто-то продал технологию перехватчика IMSI, использующую метод усиления приёма, и R&S подали на него в суд, потому что этот метод запатентован их компанией. Подмена MNC, MCC, переименование сетей — это всё достаточно тривиально, но описанный выше метод запатентован разработчиками «ловца» сетей.

Как я уже упоминал, мы не видим входящих звонков, мы видим только исходящие вызовы. Так происходит потому, что «ловец» IMSI представляет собой полностью изолированную сеть сотовой связи. Оператор считает, что ваш телефон отключен или не принимает сигнал. В этом случае он пересылает все адресованные вам звонки на вашу голосовую почту, в результате чего атакующий не видит входящие звонки.

rqtjzbhdbbet-h4mijulj7fw43k.jpeg

Как это можно обойти? Очевидно, что если вы связались с моей вышкой, она запросит аутентификацию, ваш IMSI, и телефон с радостью его предоставит, так что ваш IMSI окажется у меня. Что я могу сделать? Пойти в AT&T и сказать: «Эй, вот мой IMSI, я выманил его у другого парня, но вам не обязательно про это знать, и я знаю, что этот парень не в сети, потому что это моя сеть»? Проблема в том, что я не знаю секретный ключ на SIM-карте. Что же может случиться, когда я утверждаю, что этой мой IMSI в сети AT&T? Они присылают мне случайное 32-битное число, и обычно бывает так, что оно поступает на сим-карту, шифруется вашим секретным ключом и делится на 2 части. Половина отсылается вышке и служит доказательством того, что вы знаете секретный ключ, а другая половина используется как шифровальный ключ.

Как же я могу это использовать? Я могу просто направить это число вашему телефону, который знает, как зашифровать секретный ключ, проделать все остальное и прислать мне ответ. Однако фактически он не может прислать мне ответ, потому что я не в состоянии принимать входящие звонки. Выход один — взломать секретный ключ.

Кто из вас был на презентации взломщика ключей Cracker 5.1 на конференции Black Hat, тот знает, что этот взломщик имеет серьёзное ограничение — он не работает на базовых станциях со скачкообразной перестройкой частоты, какими являются каждая базовая станция в мире. В реальных приложениях такого не бывает. Но я сам устанавливаю «прыжки» частоты в своей BTS, поэтому я вполне могу их отключить, чтобы ни о чём не беспокоиться, а затем использовать «радужные таблицы» для взлома секретного ключа.

После этого я восстановлю сеансовый ключ. Теперь я знаю сеансовый ключ и ответный ключ для аутентификации и могу использовать всё это для оператора сотовой связи. Это займёт немного времени, но, в конце концов, я получу его ответ, и мой телефон авторизуется на законном основании.

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

Расскажу немного больше о взломе сеансового ключа. Это единственный раз, когда в процессе использования «ловца» IMSI может понадобиться криптоатака.

yiefoz-dyhptktumw3h0n2v6jlm.jpeg

Всё, что мне понадобилось с точки зрения шифрования при настройке своей базовой станции — это отключить функцию шифрования трафика A5/0. Легче всего взлому подаётся A5/2, но некоторые телефоны отбрасывают A5/2, используя вместо него A5/1, который тоже не сложно взломать с помощью «радужной таблицы». В любом случае исходящие вызовы вашего телефона приходят ко мне в виде простого текста.

Как же со всем этим бороться? Реальность заключается в том, что не существует никакого удобного решения, потому что GSM уязвим сам по себе, это тот же Telnet, только в сотовой системе. Для того, чтобы пофиксить GSM, его необходимо полностью изменить. Вам придётся обновить каждый телефон, переделать каждую вышку, изменить все сети и так далее. Так зачем же этим заниматься, если можно просто перейти на стандарт 3G?

Таким образом, единственно правильным решением является переход на 3G и более поздние протоколы сотовой связи. Аутентификация 3G намного лучше, на таких же принципах построены 3.5G (HSPA), 3.9 G, LTE и последующие протоколы. Основное решение — это просто отключить 2G.
Поднимите руки, у кого есть Android телефоны? Вы видите, что у них в настройках есть функция «использовать только сети 2G». Предположительно, это экономит батарею, но сколько людей когда-нибудь видели телефон, который имеет функцию «использовать только сети 3G»? Отлично, у кого-то есть BlackBerry с такой функцией, но ни «Андроид», ни «Айфон» её не имеют, так как же мы можем чувствовать себя в безопасности?

Конечно, 3G не лишён уязвимостей, и если сам протокол трудно взломать, то можно попробовать взломать используемое в нём шифрование KASUMI, также обозначаемое A5/3, такие случаи известны. Но всё равно лучше использовать именно этот стандарт сотовой связи. Просто посмотрите на экран своего телефона, и если увидите там вверху маленькие буквы 3G, то с вами всё в порядке. Так что самым оптимальным способом обезопасить себя от сетевого шпионажа будет отключение 2G. Уже появились сети 3.5G, на горизонте появление сетей 4G, так что постарайтесь этим воспользоваться.

А сейчас мы перейдёт к финальному демо. Посмотрим, сколько телефонов сейчас находятся в моей сети. Так, всего 17 человек, вероятно, люди начали возвращаться к нормальной сети! Возможно, ваши телефоны сначала поверили, что я являюсь настоящей сетью AT&T, но потом поняли, что она ведёт себя как-то не так, и решили уйти.

Так или иначе, чувствуйте себя свободно, бесплатно звоните из моей сети куда угодно, единственным ограничением является то, что вы должны набрать 1 перед номером вызываемого абонента. Если вы знаете код любой страны, звоните, не стесняйтесь, вы ограничены только 20 долларами на моём счету SIP. Если вы не услышали записанного сообщения, где я говорю о подключении к сети, попробуйте ещё раз через пару минут, развлекайтесь, а я пока буду отвечать на вопросы…

Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).

VPS (KVM) E5–2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps до января бесплатно при оплате на срок от полугода, заказать можно тут.

Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel Dodeca-Core Xeon E5–2650v4 128GB DDR4 6×480GB SSD 1Gbps 100 ТВ от $249 в Нидерландах и США! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5–2650 v4 стоимостью 9000 евро за копейки?

© Habrahabr.ru