{"id":18513545,"url":"https://github.com/anishvedant/hidden-keylogger","last_synced_at":"2025-05-14T12:34:16.389Z","repository":{"id":245333006,"uuid":"817125226","full_name":"anishvedant/Hidden-Keylogger","owner":"anishvedant","description":"The provided code demonstrates techniques for gathering system and network information, capturing user activity, and encrypting data. It includes encryption and decryption scripts that use AES symmetric encryption. The project is designed for educational purposes to showcase how such tools operate and to highlight the importance of ethical use.","archived":false,"fork":false,"pushed_at":"2024-06-21T04:48:22.000Z","size":27536,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T03:30:18.693Z","etag":null,"topics":["aes-encryption","browser-history","clipboard-history","cybersecurity-tools","ethical-hacking-tools","hacking-tools","information-gathering","keylogger-email","keylogger-python","keylogger-screenshot","keylogger-stealer","monitoring-tool","network-analysis","network-monitoring","network-security","python-script","security-automation","security-scanner","security-tools","system-information"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anishvedant.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-19T04:39:52.000Z","updated_at":"2024-12-28T10:38:41.000Z","dependencies_parsed_at":"2024-06-21T13:53:21.257Z","dependency_job_id":null,"html_url":"https://github.com/anishvedant/Hidden-Keylogger","commit_stats":null,"previous_names":["anishvedant/hidden-keylogger"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishvedant%2FHidden-Keylogger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishvedant%2FHidden-Keylogger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishvedant%2FHidden-Keylogger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anishvedant%2FHidden-Keylogger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anishvedant","download_url":"https://codeload.github.com/anishvedant/Hidden-Keylogger/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254142598,"owners_count":22021565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aes-encryption","browser-history","clipboard-history","cybersecurity-tools","ethical-hacking-tools","hacking-tools","information-gathering","keylogger-email","keylogger-python","keylogger-screenshot","keylogger-stealer","monitoring-tool","network-analysis","network-monitoring","network-security","python-script","security-automation","security-scanner","security-tools","system-information"],"created_at":"2024-11-06T15:39:11.720Z","updated_at":"2025-05-14T12:34:16.318Z","avatar_url":"https://github.com/anishvedant.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hidden-Keylogger\n\nThis project is an educational tool designed to monitor various aspects of a computer system, including clipboard data, system information, browser history, connected devices, network information, and keystrokes. It also captures screenshots periodically. The gathered data is encrypted and can be sent to a remote server. A separate decryption program is provided to decrypt the data.  The project includes two primary scripts:\n\n**Keylogger.py** - Gathers system information, network details, and browser history, captures keystrokes and screenshots, and encrypts the data\n**Decrypter.py** - Decrypts the encrypted data produced by keylogger.py\n\n## Features\n\n- Clipboard monitoring\n- System information gathering\n- Connected devices information\n- Network information\n- Browser history extraction\n- Screenshot capturing\n- Keystroke logging\n- Symmetric Data encryption \n- Sending encrypted data to a server\n\n## Requirements\n\nTo run this project, you need to install the following dependencies:\n\n- psutil\n- pynput\n- pyautogui\n- clipboard\n- cryptography\n- requests\n- sqlite3\n\nInstall the required libraries using:\n\n```bash\npip install -r requirements.txt\n```\n\n# Explanation\n\n## Data Gathering and Logging (Keylogger.py)\n### Encryption and File Transfer:\n\n*\tsymmetric_encrypt(data, key): Encrypts data using a symmetric key (AES) with CFB mode and a random IV.\n*\tsend_file(file_path, url): Sends a file to a specified URL using an HTTP POST request.\n\n### Clipboard Monitoring:\n* copy_clipboard(): Copies clipboard content to a file.\n* refresh_clipboard(): Monitors clipboard changes every 2 seconds.\n\n### System Information:\n* gather_system_information(): Gathers detailed system information and writes it to a file.\n* gather_connected_devices(): Collects information about connected devices and writes it to a file.\n* gather_network_information(): Retrieves network information and writes it to a file.\n\n### Browser History:\n* gather_browser_history(): Extracts browser history from the Chrome browser and writes it to a file.\n\n### Screenshot Capturing:\n* capture_screenshot(): Takes screenshots every 30 seconds and saves them in a folder.\n\n### Keylogger:\n* write_file(key): Writes key presses to a file.\n* write_letters_file(key): Writes only letter key presses to a separate file.\n* on_press(key), on_release(key): Handle key press and release events.\n\n###\tEncrypt Files and Folder:\n* encrypt_files(): Encrypts specific files using symmetric encryption.\n* encrypt_screenshots_folder(): Compresses the screenshots folder and encrypts it.\n\n### Send Encrypted Files to Server:\n* send_files_to_server(): Sends encrypted files to a remote server.\n\n\n## Decryption Program (Decrypter.py)\n### Decrypt Files and Folder:\n*\tsymmetric_decrypt(data, key): Decrypts data using a symmetric key (AES) with CFB mode and a random IV.\n* decrypt_files(): Decrypts encrypted files using the symmetric key.\n* decrypt_screenshots_folder(): Decrypts and extracts the screenshots folder.\n\n# Usage\n## Setting Up\n1.\tClone the repository\n```bash\ngit clone https://github.com/anishvedant/Hidden-Keylogger.git\ncd Hidden-Keylogger\n```\n\n2.\tInstall the required packages\n```bash\npip install -r requirements.txt\n```\n\n## Running the Main Script\n1.\tStart the main script\n```bash\npython3 Keylogger.py\n```\n\nAfter the encrypted files are generated, run the decrypter program. \n\n## Running the Decryption Program\n1.\tStart the decryption program:\n```bash\npython3 Decrypter.py\n```\n\n# Screenshots\n\nhttps://github.com/anishvedant/Hidden-Keylogger/assets/73393671/31cec229-07b6-42c2-81c5-27d21ce47a98\n\n| ![Screenshots/Browser history \u0026 Connected Devices](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Browser%20history%20%26%20Connected%20Devices.png)\n|:--:| \n| ***Browser History \u0026 Connected Devices*** |\n\n\n| ![Clipboard Data](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Clipboard%20Data.png)\n|:--:| \n| ***Clipboard data*** |\n\n\n| ![Database is locked](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Database%20is%20locked%2C%20if%20the%20browser%20is%20running.png)\n|:--:| \n| ***Database is locked*** |\n\n| ![Enc are encrypted files](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Encrypted%20files%20after%20encryption.png)\n|:--:| \n| ***Encrypted files (enc) are created after encryption*** |\n\n| ![Files are encrypted and new files are created](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Files%20are%20encrypted%20and%20new%20files%20are%20created.png)\n|:--:| \n| ***Files are encrypted and new files are created*** |\n\n| ![Files created](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Files%20Created.png)\n|:--:| \n| ***Files Created*** |\n\n| ![Keylogger capturing only alphabets and capturing all keys](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/Keylogger%20with%20only%20alphabets%20and%20one%20with%20all%20keys%20captured.png)\n|:--:| \n| ***Keylogger capturing only alphabets and capturing all keys*** |\n\n| ![System info \u0026 Network info](https://github.com/anishvedant/Hidden-Keylogger/blob/main/Screenshots/System%20info%20%26%20Network%20info.png)\n|:--:| \n| ***System info \u0026 Network info*** |\n\n\n# Limitations \n\n* Handling of Keystrokes: Currently, the combination of keystrokes with Ctrl is not handled properly.\n* Numeric Numpad: Numeric numbers on the numpad cannot be captured properly.\n* Resource Usage: The script could be optimized to use fewer system resources and be more efficient.\n* Stealth Mode: Can be made to run in the background and undetectable.\n* Browser History Access: Current implementation might not work if the browser's database schema changes or if multiple profiles are used.\n\n# Scope for Improvements\n1.\tEmail Notifications: Implement a feature to send collected data to an email address periodically or receive an alert once the contents are received by the server.\n2.\tOptimization: Reduce resource usage and improve efficiency.\n3.\tStealth Mode: Enhance stealth capabilities to avoid detection by antivirus software.\n4.\tEnhanced Keystroke Logging: Improve handling of special key combinations and numeric numpad entries.\n5.\tExecutable File: Convert the script into an executable file that can run in the background and undetectable.\n6.\tCross-Platform Support: Extend compatibility to other operating systems like macOS and Linux.\n   \n# Browser History Gathering\n\nThe gather_browser_history function is trying to get the browser history by using the tasklist command. However, the tasklist command does not provide browser history. It only lists the currently running tasks or services in your system. If you want to gather browser history, you would need to access the SQLite databases that browsers like Chrome and Firefox use to store history data. This is a complex task and involves understanding the database schema used by each browser. Also, it's important to note that accessing browser history without user consent can be a violation of privacy.\n\nTo access chrome's history (this will only work if Chrome is not currently running, as the database will be locked otherwise) this code opens the history SQLite database that Chrome uses to store browsing history and writes each URL to a file. Note that this is a simplified example and may not work in all cases, especially if the user has multiple Chrome profiles or if the database schema changes in a future Chrome update.\n\n# Contribution\nFeel free to contribute by submitting pull requests. Ensure all contributions align with the educational purpose and ethical use of the software.\n\n# License\nThis project is licensed under the MIT License.\n\n# Disclaimer\n\n## **Educational Purpose Only**\n**This tool is intended to be used responsibly and for *educational purposes only*. The use of this software on any system or network without explicit permission from the owner is illegal and unethical. The developer is not responsible for any loss or damage resulting from the use or misuse of this software. Always follow ethical guidelines and ensure you have obtained the necessary permissions to monitor and log data on any system you use this software on.**  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanishvedant%2Fhidden-keylogger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanishvedant%2Fhidden-keylogger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanishvedant%2Fhidden-keylogger/lists"}