HackerSIM: подделка любого телефонного номера. CTF по социальной инженерии
«Народ не должен бояться своего правительства, правительство должно бояться своего народа»
«Privacy is ultimately more important than our fear of bad things happening, like terrorism.»
Уверены ли вы, что вам звонит тот, за кого себя выдает? Даже если высвечивается знакомый номер.
Недавно я обзавелся "хакерской симкой всевластия". Которая помимо лютой анонимности имеет фичу — подделка номера. Расскажу как это происходит.
Чак на своем телефоне, куда вставлена HackerSIM, набирает команду *150*НомерАлисы# и через секунду получает подтверждение, что номер успешно «подделан». Затем Чак звонит со своего телефона Бобу. Телефон Боба принимает вызов, и на нем высвечивается, что ему звонит… Алиса. Profit.
Далее события разворачиваются в зависимости от социнженерного (или чревовещательного) таланта Чака.
Я начал разыгрывать своих хороших знакомых.
«Да ты просто взял его трубку и звонишь мне с его телефона», могли бы сказать жертвы розыгрыша, но я выбирал такие номера для подделки, которые исключают такую возможность, например, подделывал тех людей, которые сейчас в другой стране. Реакция происходит по классической схеме: отрицание, гнев, торг, смирение и «где взял, хочу себе такую же».
Мы имеем большую дыру в системе коммуникации на основе телефонной связи. А многие (даже матерые пранкеры) не знают про технологию подделки номера. Симки всевластия уже в свободной продаже, а мир к этому еще не готов, поэтому. Есть баг в мозгу — доверять входящему звонку со знакомого номера. Вроде даже есть сервисы с идентификацией по номеру телефона.
Мемберы хакспейса мне намекнули, что теперь они знают кого бить, если их кто-то разыграет по телефону, на это я ответил, мол этих симок по Москве уже сотни. Они уже есть у самых продвинутых пентестеров, которые проверяют security awareness в крупных организациях на устойчивость к социнженерным атакам.
Могу продемонстрировать вам пару звонков. Всем не позвоню, ибо дороговато, но на 15-20 звонков меня хватит.
Присылайте мне свой номер, и номер, с которого мне позвонить (подделать). Приоритет хабрачитателям с положительной кармой. (Если у вас нет аккаунта, но вам очень хочется, пишите на почту, попробуем договориться).
CTF по социальной инженерии
Цель: провести экспресс-аудит безопасности телефонной коммуникации и выявить основные угрозы и векторы атак (в т.ч. и социльно-инженерных), выявить потенциально возможный ущерб и просто попить пивка с интересными людьми.
2 этапа:
- Заочный тур, 6-15 октября.
- Очный тур, 16 октября, Москва, Хакспейс «Нейрон».
Отправить заявку и более подробная информация тут.
Технология работы HackerSIM и подделки номера
Процедура регистрации телефона в сети и выбора соты
После каждого включения телефона происходит процедура выбора сети и регистрация абонента в этой сети.
После включения телефона с обычной SIM-картой, производится сканирование частот и выбор соты с наивысшим уровнем сигнала. HackerSIM работает только с сотой уровень сигнала, которой является второй по своему значению. Данный алгоритм обеспечивает защиту от комплексов перехвата.
После процедуры синхронизации происходит идентификация оборудования и аутентификация абонента в сети. Обычная SIM-карта производит процедуру аутентификации в сети оператора согласно Алгоритма А3. Данный протокол производит вычисление ключа SRES, который позволяет завершить процедуру аутентификации. Для вычисления ключа SRES в алгоритме А3 используются параметр IMSI и Ki. В обычной SIM-карта параметр IMSI вшит в SIM-карту и он не меняется. В HackerSIM несколько профилей со своими парами IMSI + Ki.
Шифрование в сети GSM
Шифрование сессии обеспечивает алгоритм шифрования А5, который использует в своих вычислениях Кс (сессионный ключ). Кс в свою очередь вычисляется алгоритмом А8, который использует параметры Ki и RAND. В обычной SIM-карте параметр Ki является неизменным, как и IMSI. HackerSIM использует несколько профилей со своими парами IMSI+Ki. Чтобы понизить уровень шифрования A5/1 до A5/2 или A5/0, оператор со своей стороны или комплекс перехвата отправляет служебную команду на номер мобильного абонента MSISDN. У обычной SIM-карты мобильный номер MSISDN привязан к конкретной паре IMSI+Ki и хранится у оператора эмитента. HackerSIM не принадлежит ни одному из операторов и не имеет жёстко привязанного MSISDN, так как имеет несколько профилей.
Даже если HackerSIM попадает в зону подсистемы базовых станций BSS и команда о снятии шифрования производится по средствам широковещательного сообщения Paging Request, он не сможет выполнить данную команду, так как данный исполнительный механизм в алгоритме HackerSIM отсутствует.
Вызов
Абонент обычной SIM-карты после набора номер нажимает кнопку вызова. В этот момент телефон посредством высокоскоростного канала управления FACCH отправляет сигнал ALERT на BSS (подсистему базовых станций), а оттуда на MSC (центр коммутации). Далее коммутатор отправляет сообщение Address Complete на вызывающего абонента. Абонент, сделавший вызов, слышит гудки, а второй абонент звонок вызова. Зная мобильный номер абонента А или Б (MSIDIN) можно получить от биллинга оператора все детали звонка и саму сессию. Так же можно перехватить эту сессию по воздуху посредством комплекса перехвата. Абонент HackerSIM, после набора номера нажимает кнопку вызов. В этот момент происходит сброс вызова. Одновременно по сигнальному каналу отправляется команда в зашифрованном виде на серверную АТС (автоматическую телефонную станцию) HackerSIM.
АТС через ОКС№7 (SS7) запрашивает у VLR (визитный регистр) для того, чтобы для данной SIM-карты и для данного звонка выделить временный номер MSRN (Mobile Station Roaming Number). Как только оператор выделил нашей SIM-карте MSRN, АТС начинает процедуру звонка на этот MSRN. В этот момент происходит вызов на HackerSIM. После того, как абонент HackerSIM поднял трубку, открывается первое плечо. Далее АТС начинает процедуру дозвона второму абоненту. После того, как второй абонент поднимает трубку, открывается второе плечо (технология Call Back). При данной логике совершения звонка невозможно получить информацию с биллинга оператора так, как не известно, на каком операторе зарегистрирована в данный момент карта HackerSIM, нет публичного идентификатора MSISDN, по которому можно было бы получить IMSI, Ki и IMEI. Даже если абонент Б находится на контроле, не возможно понять с кем был разговор. Так как сессия состоит из двух плеч, в разрыве которой стоит серверная АТС. Таким образом, невозможно определить круг Вашего общения.
Приём звонка
Звонок на обычную SIM-карту происходит согласно стандартных процедур. После выполнения процедуры вызова и назначении TMSI (временного идентификатора мобильной станции) в зоне действия VLR, происходит приземление трафика, и сессия считается установленной. При этом биллинг оператора фиксирует с какого устройства инициирован звонок, место положение принимающего устройства в момент сессии (локация), длительность разговора и т.д. Звонок на HackerSIM осуществляется следующим образом. К HackerSIM присваивается виртуальный номер DID, который принимая звонок из сети, преобразовывает его в SIP протокол и маршрутизирует его на АТС. В свою очередь АТС определяет конкретного абонента, которому присвоен данный DID запускает процедуру вызова, описанную выше. Таким образом, невозможно определить местоположение HackerSIM взаимосвязи между обоими абонентами, так как в разрыве всегда находится АТС.