- Клавиатурный шпион на ESP8266
- Что это?
- Что нам понадобится?
- Настройка и прошивка платы ESP8266
- Загрузка скетча
- Как собрать?
- Алгоритм
- Исходный код
- Подключения к шпиону
- Поиск IP-адреса
- Подключение к серверу
- Демонстрация работы устройства
- Что дальше?
- SavePearlHarbor
- Ещё одна копия хабора
- Клавиатурный шпион на Arduino
- Предисловие
- Начнём
- Клавиатурный шпион на Arduino
- Предисловие
- Начнём
- Клавиатурный шпион на Arduino
- Предисловие
- Начнём
Клавиатурный шпион на ESP8266
Что это?
Хотелось ли вам когда нибудь пошпионить за вашим другом, соседом или коллегой по работе? Узнать что он или она так внимательно печатает и почему из за этого радуется или наоборот нервничает. Теперь это возможно с помощью клавиатурного шпиона. Суть его довольна проста: он перехватывает данные с USB-клавиатуры и раздаёт их по Wi-Fi. Всё что надо сделать это подключить его между клавиатурой и компьютером. А потом зайти на созданный сервер и шпионить.
Статья носит образовательный характер и демонстрирует возможность беспроводной передачи данных с использованием Wi-Fi модуля. Описанное в качестве примера устройство не производится и не продается компанией Амперка.
Вы не можете использовать подобное устройство для негласного сбора данных в соответствии со статьёй 138 УК РФ.
Что нам понадобится?
Настройка и прошивка платы ESP8266
ESP8266 — это непросто WI-FI шилд, это высоко интегрированный микроконтроллер со своим набором интерфейсов.
С базовой прошивкой плата ESP8266 используется в виде моста UART ↔ WIFI и управляется с помощью AT-команд. В нашем проекте такая прошивка не имеет смысла, так как модуль сам независимо может работать без дополнительных микроконтроллеров, если в него загрузить другую прошивку. Прошить модуль можно с помощью USB-Serial адаптера. Подробное описание, как это сделать, мы оформили в отдельную статью.
Загрузка скетча
Модуль ESP8266 будет создавать TCP-сервер и передавать на него данные о нажатых клавишах клавиатуры, полученные через Serial соединение с платой Iskra Mini. Реализацию такого моста вы можете найти среди стандартных примеров из библиотеки ESP8266.
Для этого зайдите в меню: Файл Образцы ESP8266WIFI WiFiTelnetToSerial и загрузите в плату ESP8266 открывшийся скетч, предварительно указав вместо звёздочек имя и пароль Wi-Fi сети, к которой необходимо подключиться нашей ESP-шке.
При прошивке на плате ESP8266 будет мигать синий светодиод. Плата прошита теперь можно приступать к сборке устройства.
Как собрать?
Алгоритм
Исходный код
Так как данные передается на очень высокой скорости, то для его захвата и анализа используются ассемблерные вставки, которые подключаются с помощью библиотеки V-USB, которая в своем составе содержит функции приема и обработки USB сигнала.
Подключения к шпиону
Данные захваченные с USB-шины и отправленные на TCP-сервер можно посмотреть любой терминальной программой поддерживающей сетевой протокол TELNET.
Поиск IP-адреса
Для подключения к модулю ESP8266 необходимо знать IP-адрес платы в локальной сети.
При динамической адресации (DHCP) маршрутизатор может менять IP-адрес при каждом включении платы. В таком случае вам каждый раз придётся повторять поиск IP-адреса.
Подключение к серверу
Демонстрация работы устройства
Что дальше?
В нашем проекте устройство вынесено наружу. Если хотите получить полный шпионаж, подарите своей будущей жертве клавиатуру с уже встроенным устройством и тогда уже никто не сможет вас вычислить.
В обработки пришедших байтов мы считываем только одну нажатую в данный момент клавишу. Это можно исправить добавив некоторые изменения в скетч и вычислять до 5 нажатых одновременно клавиш.
SavePearlHarbor
Ещё одна копия хабора
Клавиатурный шпион на Arduino
Предисловие
Стоит сказать, что область применение данного устройства не так уж и велика. Для работы это мониторинг, контроль за рабочим временем, защита от утечки информации и, наверное, всё.
В быту эта вещь может хорошо облегчить жизнь. Например, нажали определённое сочетание клавиш — Arduino их распознало и… послало сигнал включить чайник. Если не чайник, то что-нибудь другое.
Но всё же, это банальное слежение (возможно, даже скрытое) за сотрудником, что с моральной точки зрения не есть хорошо. Но всё же, юридическая справка даёт «добро», если это прописано в трудовом договоре, если этот мониторинг происходит в трудовое время и на рабочем месте и если, конечно, сотрудник проинформирован и поставил свою галочку.
Ну а в личной жизни вы вольны делать всё, что захочется, пока это касается вашей собственности.
Всё, юридически мы защищены, теперь я расскажу и покажу, что нам необходимо и как собрать вместе, чтобы получился простой перехватчик нажатий клавиш с клавиатуры.
Начнём
Итак, нам понадобится десяток проводов и две платы:
Почему Arduino Leonardo? Потому что она относительно дешёвая и в отличие от своих предшественников на ATmega32u4 имеет встроенную поддержку для USB соединения.
USB протокол определяет два типа устройств: хост (master, server) и периферия (slave, client). USB Host Shield управляет периферийными устройствами и обеспечивает их питанием. Например, когда вы подключаете клавиатуру к ПК, то ПК — это хост, который управляет клиентом, а клиент, в данном случае, — клавиатура.
А поддерживаемой перифирии довольно много. Самые интересные из них это:
1) HID устройства: клавиатура, мышь, джойстик и т. д.
2) Игровые контроллеры
3) ADK-совместимые Android телефоны и планшеты.
А за более подробной информацией прошу на официальный сайт.
В нашем случае – это клавиатура. Она относится к классу HID устройств. HID код для клавиатуры кодируется 8 байтами:
1) 1 байт – каждый бит соответствует своему модификатору (L Ctrl, R Ctrl, L Shift, R Shift и т. д.).
2) 2 байт – зарезервирован и нам не нужен, обычно он занулён.
3) 3-8 байты – содержат коды 6ти клавиш.
Более подробно об этом можно почитать здесь.
Всё, с теорией покончено, теперь можно и схему собрать.
Кстати, очень удобная программа для рисования схем, в которой и была нарисована эта схема, здесь.
Теперь стоит пояснить, что к чему.
У Arduino Leonardo есть небольшая особенность из-за которой мы не можем просто подключить её сверху: SPI разъёмы расположены на ICSP (те 6 разъёмов посередине справа) и из-за этого их приходится выводить на цифровые разъёмы USB Host Shield.
1) Жёлтый провод: пин 4 MOSI (подключён к 11 пину на USB Host shield).
2) Серый провод: пин 1 MISO (подключён к 12 пину на USB Host shield).
3) Зелёный провод: пин 3 SCK (подключён к 13 пину на USB Host shield).
Обеспечиваем питание нижними пятью проводами и одним фиолетовым:
1) Reset к Reset
2) 3.3V к 3.3V
3) 5V к 5V
4) GND к GND
5) VIN к VIN
6) Reset к D7
Теперь нам нужно подключить управляющие пины:
1) D7 к D7
2) D10 к D10
Это необходимый минимум, чтобы заставить её работать.
Так, схема есть, теперь нам нужно её как-то запрограммировать и это делается с помощью IDE от Arduino. Она совершенно бесплатна и находится в открытом доступе. Примеры программ и саму IDE можно найти на официальном сайте.
Для работы с USB Host Shield нам понадобится дополнительная библиотека (здесь).
Сам код максимально прост:
Осталось только подключить через USB Arduino к ПК, а клавиатуру к USB Host Shield, загрузить программу на Arduino при помощи IDE и всё! Key Catcher готов!
1) Arduino даёт множество возможностей при своей низкой цене и множеству разнообразных модулей и датчиков.
2) Данное устройство может позволить превратить вашу клавиатуру в пульт управления, например, телевизором, электрочайником, лампой, только докупить пару модулей придётся.
Клавиатурный шпион на Arduino
Предисловие
Стоит сказать, что область применение данного устройства не так уж и велика. Для работы это мониторинг, контроль за рабочим временем, защита от утечки информации и, наверное, всё.
В быту эта вещь может хорошо облегчить жизнь. Например, нажали определённое сочетание клавиш — Arduino их распознало и… послало сигнал включить чайник. Если не чайник, то что-нибудь другое.
Но всё же, это банальное слежение (возможно, даже скрытое) за сотрудником, что с моральной точки зрения не есть хорошо. Но всё же, юридическая справка даёт «добро», если это прописано в трудовом договоре, если этот мониторинг происходит в трудовое время и на рабочем месте и если, конечно, сотрудник проинформирован и поставил свою галочку.
Ну а в личной жизни вы вольны делать всё, что захочется, пока это касается вашей собственности.
Всё, юридически мы защищены, теперь я расскажу и покажу, что нам необходимо и как собрать вместе, чтобы получился простой перехватчик нажатий клавиш с клавиатуры.
Начнём
Итак, нам понадобится десяток проводов и две платы:
Почему Arduino Leonardo? Потому что она относительно дешёвая и в отличие от своих предшественников на ATmega32u4 имеет встроенную поддержку для USB соединения.
USB протокол определяет два типа устройств: хост (master, server) и периферия (slave, client). USB Host Shield управляет периферийными устройствами и обеспечивает их питанием. Например, когда вы подключаете клавиатуру к ПК, то ПК — это хост, который управляет клиентом, а клиент, в данном случае, — клавиатура.
А поддерживаемой перифирии довольно много. Самые интересные из них это:
1) HID устройства: клавиатура, мышь, джойстик и т. д.
2) Игровые контроллеры
3) ADK-совместимые Android телефоны и планшеты.
А за более подробной информацией прошу на официальный сайт.
В нашем случае – это клавиатура. Она относится к классу HID устройств. HID код для клавиатуры кодируется 8 байтами:
1) 1 байт – каждый бит соответствует своему модификатору (L Ctrl, R Ctrl, L Shift, R Shift и т. д.).
2) 2 байт – зарезервирован и нам не нужен, обычно он занулён.
3) 3-8 байты – содержат коды 6ти клавиш.
Более подробно об этом можно почитать здесь.
Всё, с теорией покончено, теперь можно и схему собрать.
Кстати, очень удобная программа для рисования схем, в которой и была нарисована эта схема, здесь.
Теперь стоит пояснить, что к чему.
У Arduino Leonardo есть небольшая особенность из-за которой мы не можем просто подключить её сверху: SPI разъёмы расположены на ICSP (те 6 разъёмов посередине справа) и из-за этого их приходится выводить на цифровые разъёмы USB Host Shield.
1) Жёлтый провод: пин 4 MOSI (подключён к 11 пину на USB Host shield).
2) Серый провод: пин 1 MISO (подключён к 12 пину на USB Host shield).
3) Зелёный провод: пин 3 SCK (подключён к 13 пину на USB Host shield).
Обеспечиваем питание нижними пятью проводами и одним фиолетовым:
1) Reset к Reset
2) 3.3V к 3.3V
3) 5V к 5V
4) GND к GND
5) VIN к VIN
6) Reset к D7
Теперь нам нужно подключить управляющие пины:
1) D7 к D7
2) D10 к D10
Это необходимый минимум, чтобы заставить её работать.
Так, схема есть, теперь нам нужно её как-то запрограммировать и это делается с помощью IDE от Arduino. Она совершенно бесплатна и находится в открытом доступе. Примеры программ и саму IDE можно найти на официальном сайте.
Для работы с USB Host Shield нам понадобится дополнительная библиотека (здесь).
Сам код максимально прост:
Осталось только подключить через USB Arduino к ПК, а клавиатуру к USB Host Shield, загрузить программу на Arduino при помощи IDE и всё! Key Catcher готов!
1) Arduino даёт множество возможностей при своей низкой цене и множеству разнообразных модулей и датчиков.
2) Данное устройство может позволить превратить вашу клавиатуру в пульт управления, например, телевизором, электрочайником, лампой, только докупить пару модулей придётся.
Клавиатурный шпион на Arduino
Предисловие
Стоит сказать, что область применение данного устройства не так уж и велика. Для работы это мониторинг, контроль за рабочим временем, защита от утечки информации и, наверное, всё.
В быту эта вещь может хорошо облегчить жизнь. Например, нажали определённое сочетание клавиш — Arduino их распознало и… послало сигнал включить чайник. Если не чайник, то что-нибудь другое.
Но всё же, это банальное слежение (возможно, даже скрытое) за сотрудником, что с моральной точки зрения не есть хорошо. Но всё же, юридическая справка даёт «добро», если это прописано в трудовом договоре, если этот мониторинг происходит в трудовое время и на рабочем месте и если, конечно, сотрудник проинформирован и поставил свою галочку.
Ну а в личной жизни вы вольны делать всё, что захочется, пока это касается вашей собственности.
Всё, юридически мы защищены, теперь я расскажу и покажу, что нам необходимо и как собрать вместе, чтобы получился простой перехватчик нажатий клавиш с клавиатуры.
Начнём
Итак, нам понадобится десяток проводов и две платы:
Почему Arduino Leonardo? Потому что она относительно дешёвая и в отличие от своих предшественников на ATmega32u4 имеет встроенную поддержку для USB соединения.
USB протокол определяет два типа устройств: хост (master, server) и периферия (slave, client). USB Host Shield управляет периферийными устройствами и обеспечивает их питанием. Например, когда вы подключаете клавиатуру к ПК, то ПК — это хост, который управляет клиентом, а клиент, в данном случае, — клавиатура.
А поддерживаемой перифирии довольно много. Самые интересные из них это:
1) HID устройства: клавиатура, мышь, джойстик и т. д.
2) Игровые контроллеры
3) ADK-совместимые Android телефоны и планшеты.
А за более подробной информацией прошу на официальный сайт.
В нашем случае – это клавиатура. Она относится к классу HID устройств. HID код для клавиатуры кодируется 8 байтами:
1) 1 байт – каждый бит соответствует своему модификатору (L Ctrl, R Ctrl, L Shift, R Shift и т. д.).
2) 2 байт – зарезервирован и нам не нужен, обычно он занулён.
3) 3-8 байты – содержат коды 6ти клавиш.
Более подробно об этом можно почитать здесь.
Всё, с теорией покончено, теперь можно и схему собрать.
Кстати, очень удобная программа для рисования схем, в которой и была нарисована эта схема, здесь.
Теперь стоит пояснить, что к чему.
У Arduino Leonardo есть небольшая особенность из-за которой мы не можем просто подключить её сверху: SPI разъёмы расположены на ICSP (те 6 разъёмов посередине справа) и из-за этого их приходится выводить на цифровые разъёмы USB Host Shield.
1) Жёлтый провод: пин 4 MOSI (подключён к 11 пину на USB Host shield).
2) Серый провод: пин 1 MISO (подключён к 12 пину на USB Host shield).
3) Зелёный провод: пин 3 SCK (подключён к 13 пину на USB Host shield).
Обеспечиваем питание нижними пятью проводами и одним фиолетовым:
1) Reset к Reset
2) 3.3V к 3.3V
3) 5V к 5V
4) GND к GND
5) VIN к VIN
6) Reset к D7
Теперь нам нужно подключить управляющие пины:
1) D7 к D7
2) D10 к D10
Это необходимый минимум, чтобы заставить её работать.
Так, схема есть, теперь нам нужно её как-то запрограммировать и это делается с помощью IDE от Arduino. Она совершенно бесплатна и находится в открытом доступе. Примеры программ и саму IDE можно найти на официальном сайте.
Для работы с USB Host Shield нам понадобится дополнительная библиотека (здесь).
Сам код максимально прост:
Осталось только подключить через USB Arduino к ПК, а клавиатуру к USB Host Shield, загрузить программу на Arduino при помощи IDE и всё! Key Catcher готов!
1) Arduino даёт множество возможностей при своей низкой цене и множеству разнообразных модулей и датчиков.
2) Данное устройство может позволить превратить вашу клавиатуру в пульт управления, например, телевизором, электрочайником, лампой, только докупить пару модулей придётся.