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

german

Модератор
VIP
Подтвержденный
Регистрация
26.01.14
Сообщения
2,794
Реакции
1,336
Депозит
0
Покупок
1
Продаж
3
Telegram
Часть 1

Добро пожаловать на презентацию «Практический шпионаж с помощью сотового телефона». Прежде чем мы начнем, сделаю пару замечаний по поводу конфиденциальности. В-первых, звонок по сотовому телефону может быть записан прямо во время разговора. Сюрприз! Так что если вы не хотите, чтобы ваш звонок был записан, выключите свой телефон. Если вы пользуетесь услугами сотовых операторов Sprint или Verizon, вы не находитесь в сетях GSM, и моя система вообще не сможет говорить с вашими телефонами, так что вам не о чем беспокоиться.

1547010707000.png


Должен заметить, что я призываю людей держать свои телефоны на виду во время разговора, особенно если они пользуются GSM – трубкой, потому весь смысл этого в том, чтобы показать, как могут быть перехвачены ваши телефонные звонки. Если же вы не пользуетесь своей трубкой, этот приём не работает.

Итак, это компьютерная презентация, вы видите сбоку моего ноутбука большую щель, где должен быть HDD, но я использую загрузочную USB-флешку, потому что базовую приёмно-передающую станцию сотовой связи BTS для GSM-сети можно загрузить с переносного носителя без использования жесткого диска. В конце презентации я разрежу эту флешку пополам с помощью мультитула Leatherman, потому что собираюсь записать на неё очень конфиденциальную информацию, все настройки вашего телефона, лог телефонных звонков и прочее. Всё это будет уничтожено в конце презентации, так что можете об этом не беспокоиться.

Позвольте мне подключить обратно шнур питания и вернуться к теме. В настоящее время я подключен к сети Verizon, так что мой «веризондроид» обеспечивает меня подключением к VoIP связи.

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

Итак, прежде чем мы поговорим о перехватчике IMSI, я расскажу, что это такое. IMSI, или международный идентификатор мобильного абонента – это уникальный 15-значный номер, используемый для аутентификации абонента, перемещающегося от сети к другой сети. Вы можете считать его чем-то вроде имени пользователя сети GSM. Он состоит из двух частей, которые находятся на вашей SIM-карте и осуществляют вашу аутентификацию.

1547010730100.png


Ваш MSI — это имя пользователя и секретный ключ аутентификации в сети, расположенный в read-only части SIM-карты. Небольшая защита осуществляется так: при подключении к сети IMSI заменяется временным TMSI. В процессе презентации я покажу вам, сколько этих TMSI возникает, чтобы дать возможность увидеть, сколько людей связаны с базовой станцией.

Так что IMSI — это своего рода секрет, а ICCID, длинная строка цифр, напечатанная на SIM-карте, является уникальным идентификатором самой карты, чем-то вроде её серийного номера. Эти два идентификатора тесно связаны. Во многих сотовых сетях США и некоторых других странах вы можете определить IMSI по ICCID и наоборот, и это не секрет. В других странах сделали немного лучше, там ICCID никак не связан с другим идентификатором и представляет собой просто случайный набор цифр.

На самом деле это не имеет особого значения, но я часто упоминаю об этом, потому что, по крайней мере, в США вы можете узнать из него IMSI. Итак, что собой представляет «ловец» IMSI?
Основная идея заключается в том, что это поддельная вышка GSM, поддельная базовая станция. По идее, когда телефон ищет сигнал, он выбирает ту вышку, которая предоставляет самый мощный сигнал, и подсоединяется в вышке с лучшим сигналом. Если вблизи находится антенна с самым высоким коэффициентом усиления, направленная прямо на вас, то я буду этой вышкой! Я продуцирую очень слабый сигнал, всего 25 милливатт, но я нахожусь близко и использую направленные антенны. Поэтому я надеюсь, что ваши телефоны выберут именно мой сигнал и вы подсоединитесь к моей сети.

Нужно иметь ввиду, что в сети GSM базовая станция определяет все настройки, поэтому, когда вы подключитесь к моей вышке, она сообщит вашему телефону, следует ли использовать шифрование, переход на другие частоты сигнала и подобные вещи. Если я прикажу не использовать шифрование, ваш телефон подумает: «отлично, никакого шифрования, я буду использовать обычный текст».

Поверьте мне на слово, я не делаю ничего вредоносного, мой тест влияет только на функциональность и не вызовет никаких постоянных изменений в характеристиках ваших телефонов, если они подключатся к моей сети. Но если бы я захотел, то мог бы проделать с ними множество вещей, например, обновить SIM-карту и вообще получить от этого кучу удовольствия.
Итак, если у меня имеется возможность генерировать действительно мощный сигнал, то отменив шифрование А5, я без труда смогу захватить контроль над вашим телефоном, и вы ничего не сможете сделать и даже не узнаете об этом. Идея перехватчика IMSI возникла одновременно со стандартом GSM, и технология перехватчика была запатентована Роде и Шварцем в Европе в 1993 году. Я никогда не встречал ссылки на подобные патенты в США, но в любом случае патенты в Европе являются достоянием общественности, так что эта уязвимость хорошо известна. Смысл патента в том, что если вы обратитесь в компанию R&S и скажете, что хотите купить «ловца» IMSI, они сдерут с вас пару миллионов долларов.

1547010752100.png


Из оборудования, которое находится на столе, самым дорогим является мой ноутбук, затем следует трансивер USRP, примерно за $1500, и следующим по стоимости является устройство мгновенного обмена сообщениями за $20. Таким образом, используя это оборудование, вы можете делать то же самое, что делает коммерческое оборудование стоимостью в 1000 раз дороже.

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

1547010776300.png


В действительности спецификация стандарта GSM предусматривает отправку абоненту сообщения, когда ваш телефон подключается к сети, которая не использует шифрование. Но если вы дальше прочтёте дальше, то увидите, что в спецификации есть еще одно место, где говорится: «если вы хотите отключить предупреждающее сообщение, то установите на SIM-карте эту небольшую конфигурацию бит». Каждая виденная мной SIM-карта, а я видел множество различных сетей сотовых операторов по всему миру, содержит эти биты. Каждый оператор, которого я когда-либо встречал, отключает это предупреждение, поэтому мне ни разу не попадался телефон, который бы выдал сообщение: «вы подключаетесь к небезопасной сети!», как этого требует спецификация GSM.

Это осознанный выбор операторов. Идея заключается в том, что если вы едете в такую страну, как Индия, где не поддерживается шифрование сотовой связи, так как там это незаконно, но вы хотите пользоваться своим телефоном, он должен поддерживать функцию незашифрованных звонков A5/0. Если вы начнёте получать предупреждение каждый раз, как подсоединяетесь к новой вышке GSM, то подумаете, что, черт возьми, происходит, начнёте проклинать AT&T или кого-то ещё и так далее.

Давайте обратим внимание на спектр используемого диапазона частот. Один из вопросов, который был поднят прессой, касался проблемы, при которой операторы используют разные частоты. Поэтому во всём мире было принято решение использовать всего 4 стандарта GSM: 850, 900, 1800 и 1900. Частоты 850 и 1900 используются преимущественно в США, а 900 и 1800 — в Европе.
Если вы посмотрите на размер полосы этих частот, то увидите, что между европейской частотой 900 и американской 850 существует перекрытие. Фактически стандарт GSM 900 работает в диапазоне от 880 до 914 Мгц, а американский стандарт US ISM – от 902 до 928 Мгц, таким образом, частоты этих стандартов будут перекрываться в диапазоне от 902 до 912 Мгц.

Итак, я запущу свой трансмиттер в абсолютно законном диапазоне частот, сдвинувшись в сторону европейского стандарта связи. При этом вашему телефону будет абсолютно всё равно, его не волнуют географические особенности связи, он просто поймает самый сильный сигнал и скажет: «прекрасно, вот моя вышка»!

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

Что же представляет собой американский стандарт ISM? Он расшифровывается как Industrial, Scientific, Medical, то есть создан для промышленных, научных и медицинских сетей сотовой связи. Идея стандарта состоит в том, что он предназначен для маломощных устройств, которые очень быстро меняют частоту, и конструкция которых предусматривает минимальное вмешательство пользователя в работу телефона.

1547010798700.png


Формально это вспомогательный диапазон связи, предназначенный в основном для радиолюбителей, но они не любят пользоваться этими частотами, потому что они слишком зашумлены, кроме того, любители считают, что это просто отстойный диапазон. Однако для наших целей он вполне подходит, и мы можем на законной основе запустить свою базовую станцию BTS в любительском диапазоне GSM. Итак, мы будем действовать как радиолюбители.

Что нам нужно в первую очередь – это лицензия на использование любительских частот, и получить её необычайно легко. Можно зайти на сайт kb0mga.net/exams и начать отвечать на экзаменационные вопросы. Вы можете проделывать это снова и снова, пока не случайно не наткнётесь на правильный ответ, потому что если вы отвечаете неправильно, вам будут продолжать задавать вопросы. Вы можете потратить на это несколько часов, и когда, наконец, правильно ответите на все вопросы, то сдадите экзамен. Я бы посоветовал всё-таки изучить материал, если вы надумаете стать радиолюбителем, потому что я определенно многому научился, отвечая на экзаменационные вопросы. Следующее требование к любительской радиостанции – её мощность не должна превышать 1500 Вт, что для наших целей более чем достаточно. У меня есть еще один усилитель, который я используя для RFID, его мощность составляет 600 Вт, и это ужасающее количество энергии, его мощность слишком велика, так что 1500 Вт хватит для каких угодно целей.

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

Вам также не позволено использовать шифрование, то есть ваши сообщения не должны быть зашифрованы никоим образом. Так что по закону я, запуская свою базовую станцию, просто обязан отключить шифрование! Что я и делаю.

Для радиолюбителей нет никаких ограничений в размере антенны, единственное, что ограничено – это радиочастотное воздействие. FCC публикует нормы, какой коэффициент поглощения радиоизлучения является безопасным для людей. Моё оборудование далеко от этих лимитов, поскольку излучает всего 25 милливатт. Если ваш телефон работает в высшем диапазоне частот GSM 1800/1900, то он изучает около 1 Вт, то есть в 40 раз больше, а в низшем GSM 800/900 – около 2 Вт, то есть в 80 раз больше. Так что телефон в вашем кармане излучает намного больше, чем моя «большая и страшная» антенна.

Единственное важное требование – это то, что станция должна идентифицировать себя каждые 10 минут. Позывной радиостанции — это прямая несущая волна, азбука Морзе, сигнал, который периодически отправляется в эфир. Интегрировать подобное в GSM довольно трудно, поэтому оптимальное решение – это вторая передающая станция, работающая на частоте основной базовой станции. Она немного мощнее и заменяет сигнал базовой станции GSM, совершая на неё DoS атаку в течение 1 секунды, чтобы передать позывной. Я просто интегрировал эту функцию в трансмиттер USRP, это совсем не сложно. Так что всё, что нам нужно – это легко управляемый 900-мегагерцовый трансмиттер.

Далее у меня имеется эта маленькая розовая коробочка для мгновенного обмена сообщениями Instant messaging device, она называется ID-ME, или «идентифицируй меня». Её принёс мне Тревис Гудспид. Она имеет выходную мощность +10 дБм, широкий охват частотного диапазона и программируется на языке С. У этого устройства нет никакой безопасно прошивки, его можно «прошить» с помощью утилиты Тревиса под названием GoodFET. К сожалению, она не совместима с интерфейсом JTAG и радиочастотными разъемами, но их достаточно легко добавить.
Итак, мы можем написать прошивку для этого устройства, мы знаем соответствующие частоты, поэтому можем привести частоту и мощность в соответствие с USRP, объединить и усилить сигналы основной станции и дополнительного трансмиттера.

Теперь рассмотрим установку базовой приемо-передающей станции сотовой связи BTS. Итак, у меня есть IMEI для радиолюбителя, это то, что нужно для GSM, и теперь мне нужно универсальное программное радио USRP. Вся периферия для него доступна онлайн, там она стоит примерно 1500 долларов за две дочерние платы RFX900.

Кроме того, необходимо устройство под названием ClockTamer — code.google.com/p/clock-tamer, которое позволяет создать очень точный тактовый генератор для синхронизации с GPS. Оно специально разработано для совместного использования с USRP.

1547010818400.png

Телефоны получают свои частоты от базовых станций. Базовые станции обеспечивают весьма точные частоты, и телефоны выясняют, насколько их собственная частота совместима с частотой передающей станции.

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

«Прямо из коробки» ClockTamer чрезвычайно точно настраивает частоту с шагом ±100 Гц в диапазоне до 1,9ГГц, по сравнению с этой точностью GPS модуль – просто отстой. Это устройство обладает просто сумасшедшей точностью и оно гибко программируется.

Программное обеспечение моей станции сотовой связи обеспечивает ноутбук с Debian, OpenBTS и Asterix. OpenBTS обеспечивает всё, что связано с GSM, Asterix принимает звонки от OpenBTS и отправляет их через VoIP. Я использовал базовую версию BTS, она передаёт голос и SMS, но не передаёт данные.

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

Итак, давайте приступим к первому демо и запустим BTS в тестовом режиме. Я подключаю к ноутбуку USRP, всё остальное уже включено, так что давайте запустим базовую станцию. Не знаю, насколько вы сможете разглядеть изображение на экране моего ноутбука, сейчас я подвину его поближе к камере. Единственное, что я хочу показать, это запуск команды TMSI – она показывает мне список всех временных MSI, которые были выделены базовой станцией, другими словами, сколько людей в настоящее время связаны с ней. Внизу экрана вы можете увидеть, что в таблице 0, то есть в данный момент к моей сети никто не подключился.

Сейчас я наберу ещё несколько команд. Cell ID – это идентификатор соты, который показывает, что мобильный код страны, который я использую в данный момент, равен 001, 00 это код страны по спецификации GSM, 1 означает тест. Затем я использую код мобильной сети MNC, он равен 01, единица здесь тоже означает тест, так что это тестовая сеть в тестовой стране, это не Европа и не Америка. Ниже показано название сотовой сети, которую я представляю, это DEFCON18. Некоторые телефоны его отобразят, некоторые нет.

Хочу обратить ваше внимание, что в настоящее время это не «враждебная» конфигурация, это тестовый режим, это не реклама какой-либо известной сети и он не работает на частоте сотовой связи США, так что пока я не запущу эту штуку, никто не сможет подсоединиться к моей сети.
Если вы захотите просканировать доступные сети сотовой связи, то можете это сделать, но я рекомендую вам просто оставить свои телефоны в покое. Просто доставайте их из карманов раз в несколько минут и пробуйте позвонить. Буквально через минуту я покажу вам, насколько легко это работает.

1547010858200.png


Итак, как я подменяю конкретную сеть, чтобы использовать перехватчик IMSI не просто в случайной сети? Мобильные телефоны идентифицируют сеть по двум значениям, которые я упоминал – это мобильный код страны MCC, состоящий из двух цифр, и MNC – код мобильной сети оператора. Для США MCC равен 310. В Википедии приведён список этих кодов для каждой страны мира. Код MNC обычно состоит из 2-3 цифр, его также можно найти в Википедии, так что подменить эти значения не так уж сложно, через секунду я покажу вам, как это сделать с помощью OpenBTS. Это действительно очень легко. Итак, я установил нужный MNC и MCC, изменил имя сети, и оно отобразиться на экране ваших телефонов во время подключения к моей сети, потому что я хочу, чтобы вы его увидели.

Я заметил, что в некоторых случаях телефоны проверяют имя сети и не будут подсоединяться к базовой станции, если имя сети введено неправильно. Однако чувствительность к регистру не является серьёзной защитой.

Итак, приступим к демо №2, где я покажу, как подменить коды MNC/ MCC и название сети. Прежде чем я это сделаю, я ещё раз запущу TMSIS. Ничего себе! У нас в сети уже 15 человек, в данный момент к моей вышке подключены 15 «трубок», и это без всякого спуфинга сотовой связи. То есть моей сетью перехвачены звонки 15 человек в этом зале, при этом моя сеть не представляет собой ни одну из известных в мире сеть сотовой связи. Она работает в тестовом режиме, не излучает частоты, но вы всё равно смогли к ней подсоединиться!

1547010887600.png


Проведу быстрый опрос: поднимите руки, если у вас есть iPhone. Если вы не подняли руку, то вероятно, не смогли подсоединиться к моей сети. Опыт показывает, что легче всего к моей сети подсоединяются «Айфоны». Поэтому я стараюсь держать эти чёртовы «Айфоны» подальше от себя.

Ничего себе, теперь в нашей таблице TMSIS уже 30 абонентов! Сейчас я объясню, почему все эти люди присоединились к сети. Итак, давайте посмотрим, как подделать MNC/ MCC. Я упомянул команду Сell ID, которая показывает код зоны расположения MCC/MNC и идентификатор соты. Я очень быстро могу подделать идентификатор соты. Поднимите руки, кто хочет, чтобы я подделал оператора сети T-mobile. А теперь поднимите руки, кто желает, чтобы я подделал AT&T. Ага, я просто должен был это увидеть!

Итак, я просто набираю этот ID и код страны. Мы находимся в Штатах, так что наш MCC 310, затем я ввожу код оператора AT&T. У него несколько кодов, но чаще всего используется 410, и в конце набираю код области местоположения вышки и идентификатор соты 6610. Вот и все, теперь я сфальсифицировал сеть AT&T. Я мог бы быть с этим более осторожным и сделать такую конфигурацию — вы видите на экране ноутбука команду Cell ID 31041066610, которая устанавливает мобильный код страны и код моей мобильной сети. Ниже неё расположена команда, задающая конфигурацию короткого имени GSM, так что для ваших мобильных телефонов моя сеть неотличима от подлинной сети AT&T.

Поступил вопрос, сколько времени длится передача. Честно говоря, с момента, как только я запустил перехватчик IMSI, в течение следующих 20 минут или получаса каждый телефон, принадлежащий оператору AT&T, будет прописываться в моей сети. Единственный вопрос, который при этом возникает – как можно ускорить процесс захвата телефонов фальшивой сетью. На практике требуется около часа, чтобы перехватчик обнаружил и подсоединил к фальшивой сети все телефоны, находящиеся в зоне передачи сигнала.

Ссылка на видео конференции.
 
Автор
Автор
german

german

Модератор
VIP
Подтвержденный
Регистрация
26.01.14
Сообщения
2,794
Реакции
1,336
Депозит
0
Покупок
1
Продаж
3
Telegram
Часть 2

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



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

Так как же ускорить подключение, ведь я не хочу сидеть здесь целый день, наблюдая, как ваши телефоны подключаются к моей сети? Существуют несколько технологий ускорения, использующие такие методы:
  • список «соседей», то есть расположенных по соседству вышек;
  • замена кода локальной зоны LAC;
  • загрузка телефона;
  • усиление приёма.
Расcмотрим «соседство» GSM. Каждая базовая станция знает, какие вышки расположены поблизости, и при подключении к ней телефона он получает список «соседей», то есть информацию, на каком канале работает каждая станция.



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

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



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



Так что вы просто берете этот телефон, подключаете его к компьютеру через кабель с переходником, запускаете 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, телефоны начинают выполнять развёрнутое медленное сканирование, тем самым увеличивая шанс найти именно нашу вышку.



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

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

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

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



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

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



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

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

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



Так что я никогда не включу эту штуку. Основная причина, по которой она у меня есть – это то, что это сказочно полезная вещь в роли испытательного оборудования. Если вы пытаетесь классифицировать фильтры, вы пропускаете «белый шум» через фильтр, сравниваете форму волны на входе и выходе и очень точно калибруете фильтр. Вот для чего я использую этот генератор помех, а не для организации 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 представляет собой полностью изолированную сеть сотовой связи. Оператор считает, что ваш телефон отключен или не принимает сигнал. В этом случае он пересылает все адресованные вам звонки на вашу голосовую почту, в результате чего атакующий не видит входящие звонки.



Как это можно обойти? Очевидно, что если вы связались с моей вышкой, она запросит аутентификацию, ваш IMSI, и телефон с радостью его предоставит, так что ваш IMSI окажется у меня. Что я могу сделать? Пойти в AT&T и сказать: «Эй, вот мой IMSI, я выманил его у другого парня, но вам не обязательно про это знать, и я знаю, что этот парень не в сети, потому что это моя сеть»? Проблема в том, что я не знаю секретный ключ на SIM-карте. Что же может случиться, когда я утверждаю, что этой мой IMSI в сети AT&T? Они присылают мне случайное 32-битное число, и обычно бывает так, что оно поступает на сим-карту, шифруется вашим секретным ключом и делится на 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.9 G, LTE и последующие протоколы. Основное решение – это просто отключить 2G.
Поднимите руки, у кого есть Android телефоны? Вы видите, что у них в настройках есть функция «использовать только сети 2G». Предположительно, это экономит батарею, но сколько людей когда-нибудь видели телефон, который имеет функцию «использовать только сети 3G»? Отлично, у кого-то есть BlackBerry с такой функцией, но ни «Андроид», ни «Айфон» её не имеют, так как же мы можем чувствовать себя в безопасности?

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

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

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

Ссылка на видео конференции
 
Сверху Снизу