Хабрахабр

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вам нравятся наши статьи? Спасибо, что остаётесь с нами. Поддержите нас оформив заказ или порекомендовав знакомым, 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 до января бесплатно при оплате на срок от полугода, заказать можно тут.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть