Конференция DEFCON 18. Практический шпионаж с использованием мобильного телефона.
Часть 1 Мы хотим использовать определенные методы, чтобы ускорить захват телефонов фальшивой сетью.
На данный момент у нас есть простой перехватчик IMSI, вы можете попробовать позвонить и услышать записанное мною оповещение.
Я вижу, что несколько человек подняли руки.
Я имею в виду, что вы, ребята, подключаетесь к моей сети, и я перехватываю весь ваш трафик.
Во-первых, теперь я знаю все ваши IMSI и могу их фильтровать, оставляя только IMSI конкретного человека, который является моей целью.
Я могу сделать то же самое с фильтрацией IMEI, которые являются идентификаторами телефона.
Например, я могу разрешить подключение к сети только телефонам Nokia или только iPhone. Я могу сделать так, чтобы в моей сети был только этот конкретный IMEI и никто другой.
Я могу ограничить доступ, используя множество опций.
Как я уже упоминал, миграция людей из официальной сети в мою сеть требует времени, и мы можем сделать это быстрее, я расскажу об этом через секунду.
Одним из основных ограничений этой системы является то, что она принимает только исходящие вызовы.
Когда вы подключаетесь к моей сети, будь то T-Mobile или AT&T, ваш телефон отключается, потому что вы на самом деле не подключены ни к одной из законных вышек сотовой связи.
Таким образом, как только поступает звонок, он сразу поступает на вашу голосовую почту.
Эту проблему можно решить, позже я покажу вам, что исходящие звонки тоже можно записывать.
Так как же мне ускорить соединение, ведь я не хочу сидеть здесь весь день и смотреть, как ваши телефоны подключаются к моей сети? Существует несколько технологий ускорения, использующих следующие методы:
- список «соседей», то есть башен, расположенных рядом;
- замена кода города LAC;
- загрузка телефона;
- повышенный прием.
Ваш телефон будет отслеживать все эти каналы и следить за уровнем сигнала, и если сигнал от соседней вышки окажется сильнее, он подключится к ней.
Какие выгоды можно извлечь из этого? Мы знаем, что сотовый телефон будет контролировать близлежащие частоты, поэтому, если мы осмотрим всю территорию и выясним, какие вышки находятся вокруг нас, мы сможем точно выяснить, какую частоту выбирает телефон и к какой вышке он подключается.
Со временем мы сможем найти соседний канал, который может находиться на другой стороне башни, и настроить нашу станцию на ту частоту, которую, как я знаю, принимает ваш телефон.
Допустим, ваш телефон подключается к базовой станции, все идет хорошо, но вот вы проезжаете немного по улице и ближе к телефону оказывается другая вышка, поэтому я просто переключусь на ее частоту, чтобы вас не потерять.
Таким образом, мониторинг соседних каналов позволит вам быстро переключиться на нужную частоту.
На самом деле это довольно легко.
Допустим, у меня есть телефон Nokia 3310 (900/1800) или 3390 (1900), который принимает европейский и один из американских диапазонов частот. Этот телефон поддерживает режим сетевого мониторинга Network Monitor, который ведет журналы всего, что делает телефон GSM, записывая каждый пакет, отправленный им на базовую станцию, и каждый полученный от него ответ. Это не дает вам никакой выгоды от взлома или захвата данного телефона, но дает вам полную информацию о том, что этот телефон видит в сети GSM. Если вы приобретете один из этих телефонов, вам понадобится специальный патч-кабель с адаптерами Fbus/Mbus и программа для управления телефоном под названием Gammu. Это программа с открытым исходным кодом, которая подключается к вашему телефону через компьютер с помощью такого кабеля и просто выводит трассировку в виде XML-файла, который вы можете открыть в Wireshark. Список соседних вышек содержится в строке «Информация о системе тип 2».
Сейчас я покажу вам демо номер 3, а именно, как выглядит трафик, пойманный Wireshark. На этом скриншоте вы можете увидеть трафик, который я поймал и записал вчера вечером с телефона, подключенного к сети T-Mobile.
Здесь вы видите различные GSM-сообщения, а если найти среди пакетов справа строку «Информация о системе тип 2» и нажать на нее, то можно получить список соседних вышек GSM.
Итак, вы просто берете этот телефон, подключаете его к компьютеру через кабель с переходником, запускаете Gammu, смотрите список каналов в Wireshark, сравниваете их с тем, что знаете, то есть буквально включаете радио на каждой из этих частот. и посмотрите, получите ли вы при этом сигнал.
Это совсем не сложно.
С помощью этой технологии можно найти неиспользуемого в локальной зоне «соседа», использовать его и тем самым увеличить скорость соединения.
Сегодня я просто хотел показать вам, что злоумышленник может легко использовать эту технику, чтобы завладеть вашим телефоном.
Мы можем использовать другой способ ускорить соединение, изменив LAC-код. Это код местоположения, транслируемый базовой станцией BTS, который группирует группу вышек, расположенных в одной области.
Итак, у вас есть несколько вышек в одном районе, обеспечивающих один и тот же LAC. Ими также можно манипулировать.
Когда телефон мониторит все соседние вышки и меняется LAC, можно сделать вывод, что телефон движется.
Если телефон действительно переехал в другой район, необходимо переназначить станцию, то есть перенести ее на другую вышку.
С моим местным Open BTS я имею полный контроль над LAC и могу его изменить.
Тогда все телефоны поблизости скажут: «Эй, смотрите, LAC изменился, значит, я нахожусь в 50 милях от старой вышки и мне нужно подключиться к этой новой вышке!» Таким образом, «пролистывая» другие ЛАКы каждые несколько минут, то есть периодически меняя код города, вы сможете привязать к своей станции еще больше телефонов.
Я покажу вам демо, как изменить LAC. Давайте сначала посмотрим, сколько телефонов сейчас в моей сети.
До того, как мы подделали сеть AT&T, к нам было подключено 30 телефонов.
Затем я использовал AT&T MMC и MCC, и мы видим, что в настоящее время к сети подключено 24 телефона.
У TIMSI есть тайм-аут, поэтому при повторном вводе команды возникает небольшая задержка, а также это показывает, что теперь у нас подключено 24 телефона.
Можете не обращать внимания, у нас еще целая куча телефонов.
Мы снова можем использовать команду Cell ID для прокрутки LAC. Мой код местоположения был 666, я думаю, мне следует изменить его на 31337 и оставить идентификатор ячейки 10. Я также поменяю идентификатор ячейки, просто чтобы телефоны знали, что это новая вышка.
Поменять ЛАК совсем не сложно.
Как я уже сказал, теперь телефоны будут думать, что поменяли свое местоположение, и количество телефонов, подключающихся к новой вышке, должно увеличиться.
К этому мы вернемся после того, как рассмотрим следующий способ – запуск телефона, или загрузка телефона информацией.
При первом включении телефон, прежде чем найти свою первую вышку, он ничего не знает - ни частоты вышки, ни ЛАКа, ни соседних вышек.
Поэтому после включения он производит длительное сканирование всего диапазона частот, находит вышки, проверяет их MNC и MCC, пытается узнать, есть ли поблизости сеть, к которой позволяет подключиться его SIM-карта, проверяет уровень сигнала и, наконец, подключается к самому «мощному».
башня.
Как только он начинает обнаруживать вышки, диапазон сканирования ограничивается: телефон сканирует меньше, но быстрее, поскольку у него уже есть некоторая информация о том, какие полосы частот используются, какие вышки и какие каналы искать.
Злоумышленник может использовать это в своих целях, поскольку аналогичный процесс происходит, когда телефон теряет сигнал.
Если хакер использует DoS против сетевой службы, телефоны теряют сигнал и начинают сканировать сеть в более широком диапазоне, увеличивая вероятность подключения к вышке злоумышленника.
Как сделать так, чтобы телефон терял сигнал? В этом примере я буду говорить только о втором поколении GSM-связи 2G, поскольку 3G имеет гораздо большую безопасность.
Так вот, если глушить какой-нибудь диапазон GSM, телефоны начинают выполнять детальное медленное сканирование, тем самым увеличивая шанс найти нашу вышку.
Однако, если вы используете 3G, я ничего не могу сделать, поскольку мощные протоколы значительно затрудняют перехват вызова 3G. Значит нам нужно заставить телефоны подключаться к сети 2G путем глушения сигнала 3G. Если ваши телефоны потеряют возможность подключения к сети 3G, они с радостью перейдут на 2G.
Все, что вам нужно сделать, это транслировать «шум», который заблокирует возможность разговаривать в сети 3G и заставит телефон переключиться на 2G с помощью текстовых сообщений.
То есть если вы не можете подключиться к порту 22, то попробуйте подключиться к порту 23. Вы можете думать о 3G как об аналоге SSH, а о GSM как об аналоге Telnet, поэтому возникает ситуация, аналогичная той, когда вы, потерпев неудачу, для подключения к порту SSH подключитесь к порту Telnet. Именно это и делает сотовый телефон в такой ситуации.
Вопрос в том, насколько сложно заглушить сигнал сотовой связи в определенном диапазоне частот. Давайте посмотрим, что представляет собой генерация помех.
Все, что нужно сделать злоумышленнику, это обеспечить «шум».
Когда я говорю о «шуме», я имею в виду очень конкретную вещь.
Я имею в виду не случайность, а совершенно плоский спектральный шум, охватывающий весь диапазон частот и каждый канал.
Что наиболее эффективно сделать в этом случае, кроме как полностью разрушить башню? Это не позволит телефонам видеть эту башню, полностью замаскировав ее шумом.
Генератор шума не слишком дорог; Вы можете купить его на eBay за 450 долларов.
У меня с собой есть такой генератор.
Как видите, это довольно тяжелая вещь!
Если я подключу его к усилителю мощности, а усилитель к антенне и настрою его, то включение вызовет серьезные нарушения в работе сотовой сети.
Как я уже говорил, генератор шума стоит 450 долларов на eBay, усилитель мощностью 100 Вт можно купить в Интернете за 400 долларов, а шум мощностью 100 Вт может вызвать колоссальные сбои в работе сети.
Этот генератор работает в 2-х режимах - один предназначен для создания помех в диапазоне 900 МГц, второй - в диапазоне 1900 МГц.
На слайде вы видите кривую анализатора спектра низких частот, слева около 500 мегагерц, справа самая высокая частота 2,5 гигагерца.
Слева вы видите «большой и толстый» блок в диапазоне частот 900 МГц.
Точно такой же блок усилитель можно установить на любой канал сотовой связи в диапазоне от 850 до 950 МГц.
Включите эту штуку и связь на 850 и 950 просто перестанет работать.
То же самое происходит и в режиме 1900 — чуть дальше снова виден основной пик частоты.
Демо №5 покажет, как происходит глушение несущей частоты сотовой связи.
Однако не подумайте, что я настолько глуп! Если бы я подключил эту генерирующую помехи штуку к 100-ваттному усилителю и подключил ее к антенне, я бы отключил всю сотовую связь в округе — GSM, CDMA, 3G, Verizon и почти все сотовые телефоны во всем мире.
Лас-Вегас, если не дальше.
(аплодисменты и смех в зале)
Так что я никогда не включу эту штуку.
Основная причина, по которой он у меня есть, заключается в том, что это невероятно полезное испытательное оборудование.
Если вы пытаетесь классифицировать фильтры, вы пропускаете через фильтр «белый шум», сравниваете входные и выходные сигналы и очень точно калибруете фильтр.
Именно для этого я и использую этот глушилку, а не для организации DoS-атаки на сотовую связь.
Дело в том, что защиты от такой «глушилки» нет. Чтобы отключить всю сеть, достаточно короткого запуска генератора в несколько секунд, но такая демонстрация силы здесь была бы совершенно неуместна.
Я думаю, что 100-ваттный усилитель и правильно настроенная антенна могут вывести из строя всю систему сотовой связи Лас-Вегаса.
Другой метод, который мы можем использовать для перехвата телефонов, называется усилением приема.
Он заключается в том, что БТС может отправить на телефон команду: «воспринимай мой сигнал так, как будто он на Х дБ сильнее, чем есть на самом деле».
Смысл этого следующий.
Представьте себе шкалу, градуированную от +50 до -100. Любой, кто знаком с RF, поймет, почему я выбрал этот диапазон.
Допустим, мой сигнал упадет до -80, что на самом деле очень мало.
Я могу сказать вашему телефону просто прибавить 100 к этому значению, в результате чего уровень сигнала составит +20 дБм.
Телефон подумает: «отлично, это самая мощная вышка в округе, сейчас подключусь к ней»! Да, это выглядит забавно, это мошенничество, но опять же, это еще один отличный пример инструкций, которые BTS могут отправлять на телефон.
То есть мне не обязательно нужен более мощный сигнал; Мне просто нужно убедить телефон, что мой сигнал действительно сильнее, чем у всех остальных.
И телефон этому поверит, ведь так работает GSM, и он просто обязан выполнять команды вышки.
Конечно, злоумышленник может использовать такой метод привлечения телефонов и, имея достаточно слабый сигнал, выиграть соревнование с более мощными вышками.
Open BTS пока не поддерживает эту функцию, поэтому продемонстрировать этот метод я не смогу.
В этом, собственно, и состоит суть патентов R&S, использованных в перехватчике IMSI. В Великобритании был случай, когда кто-то продал технологию перехватчика IMSI, использующую метод усиления приема, и R&S подала на него в суд, поскольку этот метод был запатентован их компанией.
Замена MNC, MCC, переименование сетей – это все достаточно тривиально, но описанный выше метод запатентован разработчиками ловца сетей.
Как я уже говорил, мы не видим входящие звонки, мы видим только исходящие.
Это связано с тем, что ловец IMSI представляет собой полностью изолированную сотовую сеть.
Оператор думает, что ваш телефон выключен или не принимает сигнал.
В этом случае он перенаправляет все обращенные к вам звонки на вашу голосовую почту, в результате чего злоумышленник не видит входящие звонки.
Как этого можно избежать? Очевидно, что если вы связались с моей вышкой, она запросит аутентификацию, ваш IMSI, и телефон с радостью предоставит его, так что ваш IMSI у меня есть.
Что я могу сделать? Зайдите в AT&T и скажите: «Эй, вот мой IMSI, я получил его от другого парня, но тебе не нужно об этом знать, и я знаю, что этот парень не в сети, потому что это моя сеть»? Проблема в том, что я не знаю секретный ключ на сим-карте.
Что может произойти, если я заявлю, что это мой IMSI в сети AT&T? Они присылают мне случайное 32-битное число, и обычно оно попадает на SIM-карту, шифруется вашим закрытым ключом и делится на 2 части.
Половина отправляется в вышку и служит доказательством того, что вы знаете секретный ключ, а другая половина используется как ключ шифрования.
Как я могу это использовать? Я могу просто отправить этот номер на ваш телефон, который умеет зашифровать секретный ключ, сделать все остальное и отправить мне ответ. Однако на самом деле он не может отправить мне ответ, потому что я не могу принимать входящие звонки.
Выход один – взломать секретный ключ.
Если кто-нибудь из вас был на презентации взломщика ключей Cracker 5.1 на конференции Black Hat, то знает, что у этого взломщика есть серьёзное ограничение — он не работает на базовых станциях со скачкообразной перестройкой частоты, которыми обладает каждая базовая станция в мире.
В реальных приложениях этого не происходит. Но я сам настроил скачкообразную перестройку частоты в своем BTS, поэтому могу легко отключить его, ни о чем не беспокоясь, а затем использовать радужные таблицы для взлома секретного ключа.
После этого я восстановлю сеансовый ключ.
Теперь я знаю сеансовый ключ и ключ ответа для аутентификации и могу использовать все это для оператора сотовой связи.
Это займет немного времени, но в итоге я получу его ответ и мой телефон будет легально авторизован.
Этот метод пока не реализован в моей системе, но его точно можно реализовать, это технология, которую коммерческие ловцы IMSI используют для перехвата входящих звонков.
Конечно, я не могу сделать это в своей системе прямо сейчас, но это абсолютно возможно.
Расскажу немного подробнее о взломе сеансового ключа.
Это единственный случай, когда использование перехватчика IMSI потребует крипто-атаки.
Все, что мне нужно было с точки зрения шифрования при настройке базовой станции, — это отключить функцию шифрования трафика A5/0. Проще всего взломать A5/2, но некоторые телефоны отказываются от A5/2 и используют вместо него A5/1, который также нетрудно взломать с помощью радужной таблицы.
В любом случае, исходящие звонки с вашего телефона приходят ко мне в виде обычного текста.
Как со всем этим справиться? Реальность такова, что удобного решения не существует, потому что GSM сам по себе уязвим, это то же самое, что и Telnet, только в сотовой системе.
Для того, чтобы починить GSM, его нужно полностью поменять.
Вам придется модернизировать каждый телефон, перепроектировать каждую вышку, изменить каждую сеть и так далее.
Так зачем это делать, если можно просто перейти на стандарт 3G? Таким образом, единственное правильное решение – переход на 3G и более поздние протоколы сотовой связи.
Аутентификация 3G намного лучше, 3.5G (HSPA), 3.9G, LTE и последующие протоколы построены на тех же принципах.
Основное решение — просто отключить 2G. Поднимите руки, у кого есть телефоны на Android? Видите, у них в настройках есть функция «использовать только сети 2G».
Якобы это экономит батарею, но сколько людей когда-либо видели телефон с функцией «использовать только сети 3G»? Отлично, у кого-то есть BlackBerry с такой функцией, но ни у Android, ни у iPhone ее нет, так как же мы можем чувствовать себя в безопасности? Конечно, 3G не лишен уязвимостей, и если сам протокол сложно взломать, то можно попробовать взломать используемое в нем шифрование KASUMI, также обозначаемое A5/3, такие случаи известны.
Но все же лучше использовать именно этот стандарт сотовой связи.
Просто посмотрите на экран своего телефона, и если вы увидите там маленькие буквы 3G, то все в порядке.
Так что лучший способ защититься от сетевого шпионажа — отключить 2G. Сети 3.5G уже появились, а сети 4G не за горами, так что постарайтесь этим воспользоваться.
Теперь мы перейдем к финальной демонстрации.
Давайте посмотрим, сколько телефонов сейчас в моей сети.
Итак, всего 17 человек, люди наверное начали возвращаться в нормальную сеть! Возможно, ваши телефоны изначально считали, что я настоящая сеть AT&T, но потом поняли, что она ведет себя как-то иначе, и решили уйти.
В любом случае, смело звоните куда угодно из моей сети бесплатно, единственное ограничение – перед номером вызываемого абонента необходимо набрать 1. Если вы знаете какой-либо код страны, не стесняйтесь звонить, на моем SIP-счете вы ограничены только 20 долларами.
Если вы не услышали записанное сообщение, где я рассказываю о подключении к сети, попробуйте еще раз через пару минут, развлекайтесь, пока я отвечаю на вопросы.
Спасибо, что остаетесь с нами.
Вам нравятся наши статьи? Хотите увидеть больше интересных материалов? Поддержите нас, разместив заказ или порекомендовав друзьям, Скидка 30% для пользователей Хабра на уникальный аналог серверов начального уровня, который мы придумали для вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от 20$ или как правильно расшарить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40 ГБ DDR4).
VPS (KVM) E5-2650 v4 (6 ядер) 10 ГБ DDR4 240 ГБ SSD 1 Гбит/с бесплатно до января при оплате на срок от шести месяцев и более вы можете заказать здесь .
Dell R730xd в 2 раза дешевле? Только здесь 2 x Intel Dodeca-Core Xeon E5-2650v4 128 ГБ DDR4 6x480 ГБ SSD 1 Гбит/с 100 ТВ от 249 долларов США в Нидерландах и США! Прочтите об этом Как построить корпоративную инфраструктуру класса, используя серверы Dell R730xd E5-2650 v4 стоимостью 9000 евро за копейки? Теги: #информационная безопасность #программирование #ИТ-инфраструктура #Конференции #IMSI #IMSI
-
Простое И Надежное Облачное Erp-Решение Sage
19 Oct, 24 -
Анатомия Модульного Тестирования
19 Oct, 24 -
Постановка Задачи Обратной Совместимости
19 Oct, 24 -
Iphone: Путаница В Товарных Знаках
19 Oct, 24