#2 Кейлоггер. Пишем основу для локального кейлоггера.
Здравствуйте, дорогие друзья.
Напишем программу для идентификации нажатия клавиш на клавиатуре. Это очень полезная программа, которую можно использовать в огромном количестве ситуаций. Ее часто используют во время пентеста, потому что если Вы смогли установить программу в систему, с помощью социальной инженерии или передав файлы на компьютер, то она будет записывать все нажатия клавиш пользователя, в том числе пароли, имена пользователей и т. д.
В сети есть великое множество кейлоггеров для скачивания, как локальных, так и удаленных. Удаленные кейлоггеры более приемлемы для нас, так как нам будет удобнее получать данные с удаленной машины пользователя к себе на сервер или на почту.
Некоторые кейлоггеры могут делать скриншоты и запускаться одновременно с системой. В рамках данного урока мы не будем зацикливаться на дополнительных опциях кейлоггера.
Наша основная цель — это написать программу, которая могла бы фиксировать нажатия клавиш на клавиатуре. Для написания, нам понадобится модуль «pynput». Вот ссылка на него: https://pypi.org/project/pynput/.
Для установки этого модуля, нужно ввести в терминале «pip install pynput
»:
Он уже у меня установлен, так что логи будут отличаться. Вам не нужно ничего настраивать.
Итак, приступим к написанию программы. Как обычно, начинаем с импортирования библиотеки. Код будет выглядеть как «import pynput
». Эта библиотека позволяет нам следить за мышью и клавиатурой:
Нас интересует только нажатия клавиш с клавиатуры, поэтому мы дополняем код библиотеки «pynput» значением «keyboard», через символ точки:
Далее объявляем переменную «keyboard_listener», которая будет равняться библиотеке «pynput», имея функцию «keyboard», и создаем экземпляр объекта «Listener ()». После этого нужно указать функцию обратного вызова, которая будет выполняться при каждом нажатии клавиш. В скобках пишем функцию «on_press», и назовем ее как: «process_key_press»:
Выше по коду объявляем новую функцию «process_key_press», и она будет использовать переменную «key», которая будет отображать нажатие клавиш. И далее выведем на экран эту переменную: «print(key)»:
Итак, в нашем коде мы создали «keyboard_listener», но не запустили его. Чтобы запустить эту конструкцию, нам нужно добавить ключевое слово «with», для того, чтобы взаимодействовать с «listener», на клавиатуре.
По-большому счету ключевое слово «with», используется для взаимодействия с неконтролируемыми потоками данных или использованием ключевого слова «with». Запускаем «keyboard.listener»:
Такие примеры можно встретить в документации. Напомню, что ссылку я Вам давал выше.
Теперь наш кейлоггер готов. Он прост, но в тоже время готов к использованию.
Протестируем его, запустив файл через терминал:
Как видим, все прекрасно работает. Все будет фиксироваться, даже специальные символы на клавиатуре:
Наш кейлоггер готов к использованию, но он требует доработки.
На этом все. Всем хорошего дня!