Офисный шпион KeySweeper

Офисный шпион KeySweeper

Речь пойдет о перехвате данных с беспроводных клавиатур, в которых используется радиочастотный передатчик NRF24L0 на 2.4 ГГц.

 

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

 

Теперь что-то скрыть или побездельничать в рабочее время тайком от босса будет совсем не просто.

 

Нажатия клавиш регистрируются онлайн и локально. SMS-оповещения отправляются по кодовым словам, именам пользователей или URL-адресам, раскрывая пароли.

 

Идея воплощена в жизнь в 2015 году.

Стоимость постройки обойдется в 10 – 80 $ в зависимости от начинки (в продаже устройства нет).

 

Возможности

Офисный шпион KeySweeper

Устройство Arduino беспроводным образом и локально перехватывает, расшифровывает, регистрирует и пересылает по GSM все нажатия клавиш с беспроводных клавиатур Microsoft, использующих запатентованный радиочастотный сигнал 2,4 ГГц, в непосредственной близости.

 

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

 

KeySweeper имеет возможность отправлять SMS-сообщения при вводе определенных нажатий клавиш, например. «www.bank.com».

Офисный шпион KeySweeper

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

 

Программное обеспечение KeySweeper обновлено Travis Goodspeed в проекте goodfet.nrf, а также Thorsten Schröder и Max Moser в проекте KeyKeriki v2.0.

 

Железо

Офисный шпион KeySweeper

 

Микроконтроллер Arduino или Teensy

 

3 – 30 $: можно использовать микроконтроллер Arduino или Teensy. В этой сборке применен Arduino Pro Mini 3.3v из-за его очень тонкого профиля.

 

Микросхема NRF24L01+ 2,4 ГГц

 

1 $: применен чип nRF24L01+ RF, который поддерживает GFSK свыше 2,4 ГГц. Эту микросхему можно купить всего за 1 $ на eBay, более подробно о ней написано ниже. Микросхема работает только по протоколу защищенных данных и не предназначена для шпионажа, однако, как убедимся ниже, с помощью хитрой уловки она может беспорядочно перехватывать информацию.

 

Зарядное устройство AC USB

 

6 $: взят недорогой адаптер переменного тока, выпрямитель, который преобразует сетевое напряжение переменного тока в 5 В постоянного. У выбранного адаптера есть винт, что упрощает его вскрытие, иначе можно сломать несколько корпусов пока их откроешь. Если собирать KeySweeper с беспроводной передачей GSM, то фактически понадобится два зарядных устройства: внутренняя схема от компактного адаптера, такого как для iPhone, и корпус от более крупного USB-зарядного.

 

Микросхема флеш-памяти SPI

 

2 $ при необходимости: установленный чип SPI Serial Flash используется для хранения данных нажатых клавиш. Если применена плата FONA GSM, то флеш-память не является необходимой, так как все нажатия клавиш будут переданы через интернет в реальном времени, однако если вы хотите собрать более дешевый вариант устройства, нужно сохранять данные во внутренней памяти. Забрать данные можно будет позже, дополнительным KeySweeper, которое находясь в радиусе действия беспроводной сети 2,4 ГГц, заберет нужную информацию.

 

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

 

Adafruit FONA

 

45 $ при необходимости: Adafruit создали плату под названием FONA, которая позволяет использовать SIM-карту 2G для отправки и принятия SMS, телефонных звонков и выхода в Интернет непосредственно с устройства.

 

Используя FONA, нет необходимости в карте флеш-памяти, поскольку сведения о нажатых клавишах сразу же отправляются на сервер через интернет связь. Кроме того, при вводе определенных ключевых слов на целевых клавиатурах, будет отправлено предупреждающее SMS на номер оператора.

 

SIM карта

 

3 $ только при использовании FONA: плата FONA требует mini-SIM карту, а не micro-SIM. Выбирайте оператора предоставляющего сеть 2G, некоторые операторы не имеют или попросту отрицают свою поддержку 2G, а FONA поддерживает только 2G связь.

 

Литийионная (LiOn или LiPo) батарея 3.7V

 

5 $ и дороже, только при использовании FONA: плата FONA обеспечивает зарядку внутреннего аккумулятора LiPo или LiOn, и пока KeySweeper подключен к сети переменного тока, батарея будет заряжаться. Внутренняя батарея не обязательна, но в случае, когда KeySweeper будет вытянут из сети переменного тока он продолжит скрытную работу, и перезарядится при повторном подключении.

Офисный шпион KeySweeper

Программное обеспечение

 

KeySweeper

 

Исходный код и схему KeySweeper можно получить по ссылке: СКАЧАТЬ

 

Программное обеспечение для KeySweeper состоит из двух частей: основной код устанавливается на микроконтроллер, а веб-интерфейс, использующий jQuery и PHP, нужен для вашего интерфейс устройства для регистрации сведений о нажатых клавишах при «живом» мониторинге целевых клавиатур.

 

Adafruit FONA библиотека

 

Вам нужно использовать измененную версию библиотеки Adafruit FONA: СКАЧАТЬ, поскольку в ней есть дополнительная опция, которая заставляет FONA сообщать о приходе нового текстового сообщения. В исходной библиотеке, вам придется постоянно пролистывать текстовые сообщения, если их приходит больше, чем вы ожидаете, однако в измененной версии можно включить опцию fona.setSMSInterrupt(1), которая вызывает прерывание RI (Ring Interrupt), чтобы на мгновение вывести новое SMS-сообщение на экран.

 

JQuery Terminal

 

Создано приложение интерфейса, которое дает возможность наблюдать действия на клавиатуре через веб-страницу. Плагин СКАЧАТЬ делает его вид круче.

 

Виртуальная клавиатура JQuery UI

 

jQuery UI Virtual Keyboard делает интерфейс KeySweeper ещё круче, показывая на виртуальной клавиатуре в реальном времени, какая именно клавиша была нажата.

Офисный шпион KeySweeper

Определение радиопротокола клавиатуры

 

После получения доступа к беспроводной клавиатуре Microsoft, нужно осмотреть заднюю часть для изучения кода FCC. Например, у рассматриваемой клавиатуры идентификатор FCC (требуемый для всех устройств, использующих радиочастоты) — C3K1455, его можно легко сверить на веб-сайт FCC.

Офисный шпион KeySweeper

Мы сразу же обнаруживаем, что клавиатура работает на 2403 – 2480 МГц, основываясь на сведениях FCC.

 

Теперь, когда известно, что это 2,4-гигагерцовое устройство, можно предположить, что оно работает с использованием открытого протокола 2,4 ГГц, такого как Wi-Fi, Bluetooth, ZigBee, но может и защищенного протокола. В связи с тем, что устройство имеет свой собственный USB-ключ FCC ID, C3K1461, более чем вероятно, что используется защищенный сигнал 2,4 ГГц.

 

Теперь понадобится использовать какой-то метод перехвата 2.4GHz. Wifi жучки не помогут, так как клавиатура работает не по стандарту 802.11.

 

Есть предположение, что клавиатура использует передатчик вроде Nordic nRF24L01+, TI CC2500 или Cypress CYRF6936, но нельзя знать наверняка без вскрытия устройства.

Офисный шпион KeySweeper

Раскрутив винты на клавиатуре, и открыв ее, мы видим, что за все отвечает один микрочип. Он обозначен как NRF 24LE1H, который очень похож на nRF24L01 (n — Nordic Semiconductor, RF — Radio Frequency, 24 — 2,4 ГГц). Быстро задаем в поисковике чип nRF24LE1 и видим, что на самом деле он состоит из nRF24L01+ и интегрированного процессора RF (System-on-Chip / SoC), а быстрый поиск на eBay показал, что nRF24L01+ можно купить всего за 1 $.

 

Микрочип NRF24LE1 содержит ядро радиочастотного трансивера nRF24L01+ 2,4 ГГц, расширенных 16 МГц, 8-битный 8051-совместимый процессор, 1kB + 256B RAM, встроенную флеш-память 16kB и широкий спектр системной периферии.

Офисный шпион KeySweeper

Судя по даташиту на nRF24L01+, это чип RF 2.4GHz, который работает со скоростью 250 кбит/с, 1 Мбит/с, 2 Мбит/с, используя GFSK (индукционно-частотный переход клавиш, с цифровой частотной модуляцией / FM) и, к сожалению, не имеет общеразрешенного доступа для прямого режима отслеживания.

Офисный шпион KeySweeper

Согласование жучка с сигналом 2.4 ГГц

 

После основательного интернет поиска, появилась потрясающая страница Travis Goodspeed, где рассказано не только, о том, как перехватить данные с клавиатуры Microsoft Comfort Desktop 5000 и других аналогичных, но и продемонстрировано, как превратить nRF24L01+ в жучок 2.4 ГГц с помощью устройства GoodFET и домашнего компьютера с приложением goodfet.nrf python.

Офисный шпион KeySweeper

Обнаружено, что прослушивание устройством весьма затруднено, если не указать канал (частоту) для отслеживания, а также MAC-адрес. Чип nRF должен отправлять пакеты данных, только по одному указанному MAC-адресу. Чужая микросхема nRF не сообщит вам MAC-адрес, так как предполагается, что он уже задан и хранится в одной из строк кода RX_ADDR_P [0-5] программного обеспечения клавиатуры.

 

Однако при известной длине MAC, есть один вариант, который считается «незаконным», в программном коде SETUP_AW, 0x03 изменить на 00, при этом фактически устанавливается MAC в 2 байта. Кроме того, задав MAC первого байта (0x00AA или 0x0055, 0000000010101010 или 0000000001010101 в двоичном коде), можно обмануть беспроводное устройство, заставив отдавать пакеты нам раньше, чем будет предоставлен полный MAC-адрес.

Офисный шпион KeySweeper

Когда в поле зрения появляется целевая клавиатура, нам требуется, по меньшей мере, четыре пакета, чтобы определить правильный код доступа из множества ложных. Это означает, что для сканирования всего диапазона частот потребовалось бы приблизительно 85 минут и, по крайней мере, несколько нажатий клавиш подряд на клавиатуре в течение 10 секунд.

 

Можно сделать несколько улучшений:

  • Как вы помните из найденного идентификатора FCC, мы проверяем клавиатуры только 2403 – 2480 МГц, что уменьшает наш поиск из 128 возможных частот до 78 (около 40% сокращения поисков).
  • Сегодня все клавиатуры работают со скоростью 2 Мбит/с, что вдвое сокращает наши изыскания.
  • У всех Microsoft клавиатур MAC адрес начинается с 0xCD, то есть начало кода в пакете всегда будет 0xAA (10101010). Так как коду 0xAA всегда предшествует 1 бит 0xCD — 11001101, можно чередовать биты, сокращая наш поиск пополам. Зная первый байт нашего MAC адреса (0xCD), и размер пакета при поиске, мы просто отсеиваем данные, чтобы увидеть единственно нужный сигнал целевой клавиатуры. Так уменьшается время сканирования частот до 500 мс. Время полного сканирования занимает не более 40 секунд.
  • Также обнаружено, что в общей длине пересылаемого пакета, равного 11 байт, часть MAC занимает 5 байт, а последний байт CRC — это точная копия MAC-адреса xor’d (до шифрования). Получается, что-то интересное: поскольку MAC-адрес это повторение xor’d, можно вычислить контрольную сумму, не зная MAC-адрес. Это связано с тем, что MAC-адрес находится в пакете дважды, и удаление любого байта в отдельности (xor MAC или MAC) возобновляемо. 11-й байт точно повторяет первый байт MAC, который мы знаем (0xCD). Что позволяет нам выполнять другие атаки, такие как при расширенном нажатии клавиш Alt и CRC, опять же, не зная MAC-адрес.

 

Сборка и использование в качестве зарядного устройства

 

Предупреждение: стандартные зарядные устройства, включаемые в сеть переменного тока, преобразуют высокую мощность, а собираемый жучок при подключении к сети является небезопасным, так как не соответствует принятым стандартам электробезопасности. Самодельный прибор опасен, и если его собрать и использовать ненадлежащим образом, он может убить, вызвать пожар или другой серьезный ущерб. Не собирайте устройство с питанием от сети переменного тока, если вы не имеете опыта работы с высоким напряжением. Можно собрать жучка без питания от сети высокого напряжения, просто запитав его от внутренней батареи или подключив к стандартному зарядному устройству, которое явно безопаснее.

 

KeySweeper использует чрезвычайно маломощную и малогабаритную начинку, чтобы оставаться как можно более незаметным. KeySweeper может работать от литийионной батареи 3.7 В или от преобразователя 3 – 20 В постоянного тока. Поскольку мы хотим надолго оставить KeySweeper для наблюдения, мы должны обеспечить его питание от родной схемы неприметного зарядного устройства, которое, как мы надеемся, всегда будет включено в сеть.

 

Лучше предусмотреть внутреннюю батарею на случай отсоединения зарядного устройства KeySweeper от сети, чтобы оно продолжило скрытно свою работу. При повторном подключении к розетке KeySweeper возобновит работу от сети переменного тока и одновременно перезарядится аккумулятор.

 

Если вы хотите использовать KeySweeper без платы GSM, то можете поместить все в маленькое зарядное устройство USB. Лучше найти то, у которого есть винт, что облегчает разборку, поскольку у готового жучка не должно быть следов вмешательства.

Офисный шпион KeySweeper

Если вы решите применить плату GSM, то готовьтесь к тому, что она не поместится в зарядное устройство USB типа разом с другой начинкой. Тем не менее, есть маленькие зарядные устройства USB такие как iPhone, у которых небольшой выпрямитель AC-DC и понижающий преобразователь высокого напряжения в 5 В, что позволяет установить их электронику в более крупное зарядное от планшета.

Офисный шпион KeySweeperОфисный шпион KeySweeper

Пригодится паяльник с прикрепленным лезвием вместо жала, он отлично подходит для резки пластика.

Офисный шпион KeySweeper

Очень важно подключить плату Arduino через вывод RAW к питанию 5 В соблюдая правильную полярность: минус к GND, плюс к RAW. В этом примере использована Arduino Pro Mini 3.3v, вывод RAW принимает нерегулируемое напряжение между 3.35 – 12 В и использует встроенный стабилизатор напряжения, чтобы снизить его до 3.3 В. Обратите внимание, что микросхема nRF24L01+ требует 1.9 – 3.6 В, так что 5 В слишком много! Также, если вы используете SPI-чип, такой как SST25VF016B, он требует 2.7 – 3.6 В, поэтому снова упомянутых 5 В слишком много! Обязательно используйте отрегулированное 3.3 В после Arduino (контакт VCC у Arduino на 3.3в, или контакт 3V3 у Arduino на 5 В).

Офисный шпион KeySweeper

Примечание: плата AC-DC преобразователя, изображенная рядом с мультиметром, является родной для большого USB зарядного устройства, её потребовалось поменять на меньшую, чтобы установить плату GSM.

Офисный шпион KeySweeper

Перед тем как выполнить соединение проводами, помещаем всё оборудование в корпус зарядного устройства, дабы убедиться, что внутри достаточно места.

 

Для забавы, был привязан светодиод зарядного устройства к контакту 6 Arduino, и, хотя индикатор, кажется, ведет себя одинаково, на самом деле он вспыхивает при перехвате нажатия клавиши. Вероятно, это может разрушить прикрытие, но так за работой устройства становится интереснее наблюдать. Можете быть уверены, что светодиод погаснет, как только питание от сети будет потеряно, хотя при этом устройство все равно продолжит работать от внутренней батареи.

 

Нужно не забыть вывести питание на внешний USB-разъем, чтобы случайный человек смог убедиться, что оставленное зарядное устройство действительно является таковым и исправно.

Офисный шпион KeySweeper

 

Схема

 

Кликните, чтобы увеличить размер изображения или скачайте схему в полном размере по следующей ссылке: KeySweeper Fritzing file

сХЕМА

Сборка дополнительного KeySweeper

 

Если вы хотите снизить затраты и отказаться от платы GSM, то понадобится дополнительно устройство. Дополнительный KeySweeper собирается из платы Arduino и nRF24L01+. При компиляции прошивки второго устройства, раскомментируйте строку #define BACKTRACER 1.

 

Метод, по которому будет работать второй KeySweeper (BACKTRACER), заключается в том, что если он когда-либо попадет в беспроводную связь 2,4 ГГц nRF24L01+ скрытого устройства, то автоматически обнаруживает его наличие и получает от него журналы данных. Автоопределение встроено в обеих KeySweepers, поэтому они быстро находят друг друга, благодаря способности nRF24L01+ транслировать по нескольким RX каналам.

 

Если подключить BACKTRACER к компьютеру, то журналы данных с него сбрасываются через последовательный порт. Также через последовательный порт компьютера можно отправить команду «E» на BACKTRACER, чтобы стереть содержимое чипа памяти SPI Serial Flash у первого KeySweeper, после того как считаете её содержимое. Так вы можете уйти, оставив незаметно подготовленный к работе KeySweeper дальше регистрировать нажатия клавиш.

 

Автор: Виталий Петрович, Украина Лисичанск.

 


 


Понравилась статья? Поделиться с друзьями:
Добавить комментарий

17 − двенадцать =