Кейлоггер

#2 Кейлоггер. Пишем основу для локального кейлоггера.

Здравствуйте, дорогие друзья.

Напишем программу для идентификации нажатия клавиш на клавиатуре. Это очень полезная программа, которую можно использовать в огромном количестве ситуаций. Ее часто используют во время пентеста, потому что если Вы смогли установить программу в систему, с помощью социальной инженерии или передав файлы на компьютер, то она будет записывать все нажатия клавиш пользователя, в том числе пароли, имена пользователей и т. д.

В сети есть великое множество кейлоггеров для скачивания, как локальных, так и удаленных. Удаленные кейлоггеры более приемлемы для нас, так как нам будет удобнее получать данные с удаленной машины пользователя к себе на сервер или на почту.

Некоторые кейлоггеры могут делать скриншоты и запускаться одновременно с системой. В рамках данного урока мы не будем зацикливаться на дополнительных опциях кейлоггера.

Наша основная цель — это написать программу, которая могла бы фиксировать нажатия клавиш на клавиатуре. Для написания, нам понадобится модуль «pynput». Вот ссылка на него: https://pypi.org/project/pynput/.

Для установки этого модуля, нужно ввести в терминале «pip install pynput»:

установка модуля pynput

Он уже у меня установлен, так что логи будут отличаться. Вам не нужно ничего настраивать.

Итак, приступим к написанию программы. Как обычно, начинаем с импортирования библиотеки. Код будет выглядеть как «import pynput». Эта библиотека позволяет нам следить за мышью и клавиатурой:

import pynput

Нас интересует только нажатия клавиш с клавиатуры, поэтому мы дополняем код библиотеки «pynput» значением «keyboard», через символ точки:

значение keyboard

Далее объявляем переменную «keyboard_listener», которая будет равняться библиотеке «pynput», имея функцию «keyboard», и создаем экземпляр объекта «Listener ()». После этого нужно указать функцию обратного вызова, которая будет выполняться при каждом нажатии клавиш. В скобках пишем функцию «on_press», и назовем ее как: «process_key_press»:

process_key_press

Выше по коду объявляем новую функцию «process_key_press», и она будет использовать переменную «key», которая будет отображать нажатие клавиш. И далее выведем на экран эту переменную: «print(key)»:

def process_key_press

Итак, в нашем коде мы создали «keyboard_listener», но не запустили его. Чтобы запустить эту конструкцию, нам нужно добавить ключевое слово «with», для того, чтобы взаимодействовать с «listener», на клавиатуре.

По-большому счету ключевое слово «with», используется для взаимодействия с неконтролируемыми потоками данных или использованием ключевого слова «with». Запускаем «keyboard.listener»:

with keybpard_listener

Такие примеры можно встретить в документации. Напомню, что ссылку я Вам давал выше.

Теперь наш кейлоггер готов. Он прост, но в тоже время готов к использованию.

Протестируем его, запустив файл через терминал:

тестовый кейлоггер

Как видим, все прекрасно работает. Все будет фиксироваться, даже специальные символы на клавиатуре:

работа кейлоггера

Наш кейлоггер готов к использованию, но он требует доработки.

На этом все. Всем хорошего дня!

Первая часть статьи — Кейлоггеры.