Keelog вирішив випустити ранню версію своєї сім'ї апаратних кейлогерів у відкрите користування, включаючи повний вихідний код прошивки та програмного забезпечення, електричні схеми апаратних кейлогерів, та документацію. Цей кейлогер PS/2 є 100% функціональним та протестованим пристроєм, зібраним та використовуваним сотнями людей по всьому світу. Робота цього апаратного кейлогера схожа на KeyGrabber PS/2. Ми надаємо додаток KeyGrab для отримання та аналізу записаних даних натискання клавіш. Однак, будь ласка, зверніть увагу, що цей проект апаратного кейлогера для самостійного виготовлення надається як є, з усіма недоліками, та без будь-якої гарантії.
Перш ніж почати, прокрутіть цей список, щоб перевірити, чи є у вас всі необхідні інструменти та навички для виконання цього проекту keylogger для обладнання:
Для проекту апаратного keylogger необхідні наступні компоненти:
Нарешті, для апаратного ключового реєстратора потрібен корпус. Гарна ідея - купити подовжувальний кабель PS/2 та 4-дюймовий шматок термоусадкової трубки, який можна термічно обгорнути навколо готового ключового реєстратора.
Спочатку спрограмуйте прошивку мікроконтролера keylogger. Запустіть програмне забезпечення програматора, виберіть AT89C2051 та випаліть флеш-пам'ять з бінарним файлом або шістнадцятковою версією. Ви також можете перекомпілювати вихідний код, використовуючи вихідний код та компілятор 8051. Паяння, ймовірно, є найважчою частиною проекту, оскільки апаратне забезпечення keylogger повинно бути якомога меншим. Нижче наведені схеми апаратного забезпечення keylogger показують, як повинні бути здійснені з'єднання між компонентами.
Зліплюйте компоненти разом, починаючи з мікроконтролера та EEPROM. Невикористані контакти ІС можна видалити. Переконайтеся, що кнопка доступна. При монтажі конденсатора переконайтеся, що він правильно поляризований.
Зробіть апаратний keylogger якомога компактнішим, але уникайте коротких замикань. Вони будуть важко видалятися після завершення пристрою. Схема keylogger повинна виглядати трохи схоже на прототип, показаний на фото, після підключення основних компонентів.
Нарешті, припаяйте роз'єми PS/2 до ключового реєстратора. Гарна ідея - розрізати кабель-подовжувач PS/2 на дві частини і припаяти кожну частину окремо. Переконайтеся, що ви надягли термоусадкову трубку на одну частину кабелю. Підключіть всі чотири використані контакти PS/2 (CLK, DATA, VCC та GND) до обох роз'ємів (на клавіатурі та на комп'ютері).
Перед тим як намотати термо трубку на апаратний ключ-логер, добре було б залишити трохи клею або смоли між компонентами, щоб зробити пристрій більш жорстким. Нарешті, намотайте термо трубку, нагрійте її, поки вона обгортає припаяні компоненти, і виріжте невелике отвір, щоб кнопка була доступна.
Апаратний keylogger починає записувати ключові дані, як тільки він підключений між клавіатурою та комп'ютером. Keylogger є абсолютно прозорим для роботи комп'ютера і не може бути виявлений програмним забезпеченням у режимі запису. Усі дані клавіатури, відправлені клавіатурою, будуть записані в 64 kB апаратну неволатильну пам'ять EEPROM. Режим запису є повністю незалежним від операційної системи, встановленої на комп'ютері.
Знайдіть роз'єм PS/2 на комп'ютері.
Від'єднайте клавіатуру.
Підключіть апаратний keylogger замість клавіатури.
Підключіть клавіатуру до ключового реєстратора. При ввімкненні комп'ютера почнеться запис даних.
Як тільки апаратний keylogger зареєстрував ключові дані, їх можна відновити на будь-якому ПК з операційною системою Windows 9X/Me/XP/2000. Апаратний keylogger робить це, симулюючи натискання клавіш клавіатури. Передані дані клавіш отримується за допомогою додатка KeyGrab. Як тільки ці дані передані на комп'ютер, їх можна обробити та проаналізувати. Дотримуйтесь інструкцій для початку завантаження даних.
Запустіть додаток KeyGrab.
Підключіть апаратний keylogger замість клавіатури. Не підключайте клавіатуру.
Клацніть на панелі заголовка KeyGrab, щоб зробити її активною програмою.
Натисніть кнопку на апаратному keylogger, щоб розпочати завантаження даних. Не змінюйте активний додаток під час передачі. Натисніть кнопку ще раз, щоб завершити передачу. Робіть це, коли бажані дані натискання клавіш будуть завантажені на ПК.
Від'єднайте апаратний keylogger та підключіть клавіатуру PS/2 назад.
Під час завантаження даних натискання клавіш до основної таблиці KeyGrab, вони автоматично піддаються попередній обробці для відображення даних клавіш, які були зареєстровані під час запису. Дані передаються у порядку спадання, щоб спочатку показати недавно натиснуті клавіші. Натискання клавіш, які відбулися давно, передаються пізніше. Ви можете аналізувати таблицю вручну або використовувати деякі з опцій пошуку.
Єдина колонка, яка цікавить користувача, - Ключ (2) та Дія (3). Ці колонки кодують, які клавіші були натиснуті та відпущені. Прокрутіть смугу, щоб переглянути історію натискань під час запису. Дані keylogger передаються у зворотньому хронологічному порядку (найновіші дані про натискання клавіш спочатку).
Додаток для витягу та аналізу даних від DIY апаратного keylogger для Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
Повний вихідний код для мікроконтролера AT89C2051:
Вихідний код - diy.asm
Також доступний попередньо скомпільований прошивка апаратного ключувальника AT89C2051:
Файл BIN - diy.bin, Файл HEX - diy.hex
Ми радимо вам прочитати цей розділ, щоб уникнути проблем, які можуть виникнути при використанні апаратного keylogger.
Якщо ви виріжете кабель клавіатури PS/2, ви, ймовірно, знайдете всередині 6 дротів. Лише 4 з них мають значення. Два з них - це лінії живлення: земля (GND) та +5 вольт (VCC) від джерела живлення комп'ютера. Інші два дроти - це асинхронні лінії передачі: лінія даних (DATA) та лінія годинника (CLK). Ви можете побачити, як ці лінії відповідають контактам роз'ємів DIN (a) та miniDIN (b) на малюнку справа. Передача є двонапрямленою, проте клавіатура є переважною. Клавіатура надсилає інформацію про натискані та відпущені клавіші. Блок даних складається лише з одного байта, перед яким йде стартовий біт, і за яким йдуть біти парності та стоп-біт. Клавіатура подає послідовні біти на лінію DATA та синхронізує їх з від'ємними імпульсами на лінії CLK. Частота годинника становить 10...30 кГц. Це був би дуже хороший послідовний протокол, якби не комп'ютер, який час від часу хоче надсилати інформацію клавіатурі. У таких випадках ПК знижує лінію CLK на деякий час та чекає, коли клавіатура почне генерувати імпульси. Коли ці імпульси починаються, клавіатура вводить свій власний символ на лінію DATA. Ви можете побачити діаграми станів передачі від клавіатури до хоста (a) та від хоста до клавіатури (b) на малюнку нижче. Звичайно, у цьому протоколі є кілька винятків, таких як переривання передачі, повтор символу тощо. Проте це дуже рідкісні випадки.
Отже, що насправді передається через лінії клавіатури? Під час запуску як клавіатура, так і комп'ютер надсилають дані ініціалізації, повідомляючи, що вони в порядку. Коли комп'ютер працює нормально, дані надсилає лише клавіатура. Це дані про кожну подію, яка відбулася. Подією вважається натискання або відпускання клавіші. Якщо натиснута стандартна клавіша, надсилається так званий "скан-код". Кожна клавіша має рівно один скан-код, створюючи карту скан-кодів. Якщо клавішу відпускають, спочатку надсилається спеціальний байт 240 (шістнадцяткове значення F0), а потім надсилається скан-код клавіші. Таким чином, стандартне натискання клавіші призводить до передачі 3 символів по лінії. Якщо клавішу утримують деякий час, її скан-код буде постійно генеруватися з встановленим інтервалом повторення. Коли її нарешті відпускають, буде надіслано символ 240 (шістнадцяткове значення F0), за яким слідує скан-код. Це все ще був би гарний протокол, якби не деякі спеціальні клавіші, присутні на стандартній клавіатурі ПК, такі як Home, End, стрілки тощо. Коли натиснута спеціальна клавіша, генерується байт 224 (E0 шістнадцятковий), за яким слідує скан-код. Коли відпущена спеціальна клавіша, відправляється послідовність 224, 240 (E0, F0), за якою слідує скан-код. Звичайні та спеціальні клавіші є загальними для всіх національних розкладок клавіатури з урахуванням карти скан-кодів. Щоб ускладнити історію, існують дві супер-спеціальні клавіші, Print Screen і Pause, які призводять до передачі цілої послідовності скан-кодів. Для інтерфейсу клавіатури найкраще просто уявляти, що ці клавіші не існують.
Мікроконтролер постійно моніторить лінії DATA та CLK, збираючи всі дані. Дані записуються в неволатильну пам'ять EEPROM по мірі проходження по лінії. Завдяки цьому користувач зможе пізніше дізнатися про кожну подію на клавіатурі. Коли користувач вирішує, що запис завершено, і натискає кнопку, апаратний keylogger переходить у режим відтворення. Клавіатура повинна бути відключена, інакше вона буде інтерпретувати потік даних. Keylogger починає симулювати дані клавіш з внутрішньої пам'яті обладнання. Додаток KeyGrab повинен бути активним, щоб обробити потік даних від обладнання keylogger. Звичайні клавіші симулюються, ніби вони були записані в пам'ять, а спеціальні клавіші передаються за допомогою двобайтового шістнадцяткового коду.