Аппаратный кейлоггер
Аппаратный кейлоггер является отличным решением для мониторинга пользовательской активности и в отличие от программного кейлоггера, у него минимальный риск обнаружения.
Аппаратный кейлоггер - это чисто электронное устройство, которое не требует установки какого-либо дополнительного программного обеспечения, вмешательства в ОС, драйверы и т.п. Однако, у большинства аппаратных кейлоггеров есть один недостаток - периодически требуется физический доступ к компьютеру для переброса информации с памяти кейлоггера. Но есть очень хорошее решение: радио кейлоггер (Wireless Keylogger).
Радио (или беспроводной) кейлоггер состоит из двух основных модулей: передатчика и приемника. Сам модуль кейлоггера находится в передатчике, который является PS/2 аппаратным кейлоггером с встроенным радиопередающим модулем 2.4 ГГц. Т.о. все нажатия клавиш клавиатуры передаются в реальном времени через радиоканал. Приемник находится в другом месте и подключен через USB. Далее, на стороне ПО через виртуальный COM-порт, принятые данные можно отобразить в любом терминале.
Вся система работает в режиме реального времени, т.е. текст, который набирается на клавиатуре с передатчиком, сразу же виден на приемной стороне. Максимальный радиус действия составляет около 50 метров. В здании с 3-4 стенами радиус действия составляет около 20 метров (зависит от толщины стен).
И передатчик и приемник, имеют одинаковую принципиальную схему и соответственно топологию печатной платы. Оба имеют однотипный форм-фактор и сделаны под PS/2 и USB удлинители с т.н. балуном (ферритовое кольцо - фильтр).
Чтобы собрать данный кейлоггер вам понадобятся базовые знание электроники и умение пайки SMD-компонентов.
В таблице ниже, приведен список требуемых радиоэлементов для приемника или передатчика (разницы нет, т.к. все одинаковое кроме кабеля и прошивки).
Обозначение | Описание | Корпус | Кол-во |
U1 | Микроконтроллер AT91SAM7S64 | TQFP64 | 1 |
U2 | Передатчик nRF2401 | QFN24 | 1 |
U3 | Стабилизатор напряжения MCP1700T-330 | SOT-23 | 1 |
Q1 | Кварц 18.432 МГц | HC-49 SMD | 1 |
Q2 | Кварц 16 МГц | HC-49 SMD | 1 |
R1, R2 | Резистор 1.5 кОм | 0805 | 2 |
R3, R4 | Резистор 27 Ом | 0805 | 2 |
R5 | Резистор 1 МОм | 0805 | 1 |
R6 | Резистор 22 кОм | 0805 | 1 |
C1, C27 | Конденсатор 10 нФ | 0805 | 2 |
C2, C28 | Конденсатор 1 нФ | 0805 | 2 |
C3, C4, C6, C7, C8 | Конденсатор 22 пФ | 0805 | 5 |
C5 | Конденсатор 33 нФ | 0805 | 1 |
C9 | Конденсатор 2.2 пФ | 0805 | 1 |
C10, C11 | Конденсатор 1 пФ | 0805 | 2 |
C12, C22, C23, C24, C25, C26, C32, C33, C34, C42, C43 | Конденсатор 100 нФ | 0805 | 11 |
C21, C31, C41 | Конденсатор 1 мкФ | 0805 | 3 |
L1 | Ферритовый фильтр | 0805 | 1 |
L2 | Индуктивность 3.6 нГ | 0805 | 1 |
L3 | Индуктивность 18 нГ | 0805 | 1 |
Основными компонентами здесь является микроконтроллер AT91SAM7S64 фирмы Atmel и радиомодуль nRF2401. Для обеих м/с нужны соответствующие кварцевые резонаторы. Кроме стабилизатора напряжения MCP1700 все остальные компоненты пассивные (резисторы, конденсаторы и пара индуктивностей). Обычный провод используется в качестве дипольной антенны. На картинках ниже приведена двухсторонняя плата.
Ниже представлены маски для изготовления печатной платы. В оригинальном устройстве используется стеклотекстолит FR4 толщиной 1мм.
Ниже, в данной статье вы найдете PDF-файлы плат и масок для их изготовления.
Вся схема питается от 3.3В, которые выдает стабилизатор напряжения MCP1700. Питание берется напрямую от шины PS/2 (если передатчик) или от USB (в случае приемника).
Для пайки компонентов используйте соответствующие паяльник и флюс. Не допускайте перегрева компонентов. Сначала припаяйте радиомодуль nRF2401, это наиболее сложный компонент. Затем, микроконтроллер AT91SAM7S64 и стабилизатор MCP1700. В самом конце припаяйте резисторы, конденсаторы, кварцы и индуктивности. В качестве антенны можно использовать ISM 2.4 ГГц антенну, либо сделать простую четверть волновую дипольную антенну из кусочка провода. Оптимальная длина - 3.125 см. Собранные платы показаны на фото ниже.
После того, как все собрано, осталось разобраться с кабелями. Как уже отмечалось выше, они разные для передатчика и приемника. Плата передатчика подсоединяется в разрыв кабеля. Плата приемника, цепляется к USB как обычно. На рисунках ниже показано присоединение.
Кабели разрежьте и подсоедините согласно вышеприведенным рисункам. Для вызванивания контактов воспользуйтесь тестером.
Распиновка PS/2
Сигнал | Описание | PS/2 pin | Комментарий | |
VCC | +5В питание | 4 | Должны быть подсоединены к модулю | |
GND | Земля питания | 3 | ||
CLK | Clock | 5 | ||
DATA | Data | 1 | ||
NC | Не использ. | 2, 6 | Не используется | |
SHLD | Экран | - |
Распиновка USB
Сигнал | Описание | USB pin | Комментарий |
VCC | +5В питание | 1 | Должны быть подсоединены к модулю |
D- | Data | 2 | |
D+ | Data | 3 | |
GND | Земля питания | 4 | |
SHLD | Экран | - | Не используется |
Микроконтроллер прошивается при помощи ISP (внутрисхемное программирование) Об этом чуть ниже.
После того как все собрано, на всякий случай прозвоните цепь питания (между VCC и GND) на предмет наличия КЗ. Иначе можете спалить порт в компьютере. Если все нормально, то можно уложить платы в корпуса и склеить сам корпус.
Микроконтроллер AT91SAM7S64 прошивается при помощи технологии ISP (внутрисхемное программирование). Технология ISP позволяет прошить микроконтроллер после его припаивания на плату. Т.к. МК AT91SAM7S64 содержит встроенный USB-контроллер, то прошивка контроллера незатейливый процесс и здесь используется технология SAM-BA (SAM Boot Assistant). Требуется USB-кабель и несколько джамперов. Для прошивки необходимо скачать AT91 ISP, а затем следуя нижеследующей пошаговой инструкции прошить микроконтроллер.
Шаг 1. Применительно только к передатчику, данный шаг для приемника не требуется, т.к. он уже подключен к USB. Подготовьте кабель USB type A папа на одном конце и с зачищенными проводками на другом конце. Припаяйте выводы кабеля VCC, GND, D+, и D- к соответствующим местам на печатной плате.
Шаг 2. Подготовьте несколько перемычек, для того, чтобы замкнуть все SAM-BA выводы: TST, ERASE, PA2, PA1, PA0, 3.3V. Соедините вместе все выводы при помощи перемычек или джамперов.
Шаг 3. Установите ПО AT91 ISP
Шаг 4. Воткните USB шнур в свободный порт компьютера. Может появиться сообщение, что устройство не определено, это нормально.
Шаг 5. На пару секунд соедините между собой выводы ERASE и 3.3V. Это сотрет флэш память микроконтроллера.
Шаг 6. Отсоедините устройство от USB-порта компьютера и снимите перемычки. Теперь, соедините между собой все выводы: PA0, PA1, PA2, TST и 3.3V. Снова подсоедините устройство к USB ПК, выждите около 10 секунд и отсоедините его. Эта операция активирует SAM-BA bootloader.
Шаг 7. Уберите все перемычки и подсоедините устройство к USB. Windows обнаружит новое устройство и предложит стандартную процедуру установки драйверов.
Шаг 8. Откройте диспетчер устройств и удостоверьтесь, что SAM-BA bootloader активирован.
Шаг 9. Запустите приложение SAM-BA (ПО AT91 ISP) и выберите тип МК: AT91SAM7S64-EK.
Шаг 10. После установки соединения с МК, перейдите в вкладу Flash, выберите подходящий файл прошивки (для передатчика или приемника) и нажмите Send File. Когда ПО спросит "lock and unlock the involved flash regions" нажмите yes. После этого микроконтроллер прошьется и устройства готовы к работе.
Настало время тестирования нашего устройства. Мы рекомендуем для тестов использовать один компьютер. Выключите компьютер и между портом компьютера PS/2 и клавиатурой подключите модуль передатчика.
Включите компьютер и проверьте работу клавиатуры, модуль не должен никоим образом на нее влиять.
После этого необходимо протестировать приемник, но сначала скачайте соответствующие драйвера (см. ниже). Подключите приемник в свободный USB-порт, система обнаружит устройство и предложит установить драйвера.
Драйвера представляют из себя виртуальный COM-порт (USB to serial converter) и вешаются на любой свободный COM-порт вашего компьютера.
Для того, чтобы принимать данные с передатчика кейлоггера удобнее всего пользоваться терминальным клиентом, к примеру Hyperterminal. Мы рекомендуем для этой цели воспользоваться программой Simple Serial Monitor.
После запуска программы, выберите COM-порт к которому у вас привязан ваш приемник. Если все правильно работает, то в терминале вы должны сразу же видеть символы, которые набираются на клавиатуре с кейлоггером.
Следующим этапом тестирования будет использование двух разных компьютеров. При этом, учитывайте радиус действия!
Скачать прошивки, ПО и печатные платы
Оригинал статьи на английском языке (перевод Колтыков А.В.)