Disclaimer: L'uso di KeyRoll è consentito esclusivamente a fini educativi e nel rispetto delle leggi vigenti. Gli sviluppatori di KeyRoll declinano ogni responsabilità per utilizzi impropri o illegali del software.
KeyRoll è un keylogger sviluppato in Python come parte di un progetto scolastico per il corso di Red Teaming presso la nostra scuola di Cyber Security. Il software è stato creato da due studenti, Carioni Federico e Torchia Vincenzo, con la collaborazione di Benedetti Denis e Mazzola Giorgio.
- Registrazione Tasti: KeyRoll è in grado di registrare la tastiera dell'utente e salvare i dati in un file di log.
- Modalità Silenziosa: Il keylogger opera in background senza mostrare segni evidenti di attività.
- Easter Egg: KeyRoll contiene un easter egg nascosto all'interno del codice, che offre un tocco divertente al progetto.
- Python 3.x
- Sistemi Operativi: Windows, Linux
- Assicurarsi di avere Python 3 installato sul sistema.
- Clonare il repository:
git clone https://github.com/HydraHackerSec/KeyRoll.git
- Eseguire il programma:
keyroll.py
- Il keylogger inizierà a registrare la tastiera e salverà i log in un file e lo invierà a un server in ascolto.
Siamo aperti a contributi e miglioramenti. Se trovi bug o hai suggerimenti, apri una nuova issue su GitHub.
KeyRoll è stato creato a scopo educativo e per consentire agli studenti di comprendere le minacce potenziali relative ai keylogger. Non incoraggiamo né supportiamo l'uso illecito o dannoso di questo software. Gli sviluppatori non si assumono alcuna responsabilità per qualsiasi conseguenza derivante dall'uso improprio di KeyRoll.
Usa il software in modo responsabile e legale.
Nota: Il progetto KeyRoll è stato realizzato a fini educativi e non deve essere utilizzato in modo illecito o senza il consenso dell'utente interessato. Il disclaimer è incluso per chiarire che gli sviluppatori non intendono promuovere attività illegali o dannose.
Classe |
Funzione | Nome | Scritto |
Testato (Windows) | Implementato | Note |
---|---|---|---|---|---|---|
CustomDescritionFormatter(argparse.RawDescriptionHelpFormatter) | Massima lunghezza linea | _init_ | Si |
Si |
Si |
|
Argparse nuova linea |
_split_lines |
Si |
Si |
Si |
||
Keyboard |
Quando viene premuto un pulsante | on_key_press | Si |
Si |
Si |
|
Quando viene rilasciato un pulsante | on_key_release |
Si |
Si |
Si |
||
Mouse | Quando viene premuto un pulsante del mouse | on_mouse_click |
Si |
Si |
Si |
|
Quando il mouse effettua uno scroll | on_mouse_scroll |
Si |
Si |
Si |
||
Quando il mouse si muove | on_mouse_move |
Si |
Si |
Si |
||
Util | Controllo ip |
is_valid_ip |
Si |
Si |
Si |
|
Rimozione dell'ultimo log inviato | log_path_size |
Si |
Si |
Si |
||
Interrupt di uscita | controlled_exit |
Si |
Si |
Si |
||
Gestione interrupt di uscita | sigint_handler | Si |
Si |
Si |
||
Cerca la directory di dove salvare i log | log_dir_find |
Si |
Si |
Si |
||
Crea la directory dove salvare i log | log_dir_create | Si |
Si |
Si |
||
Costruzione un nome per file con data e ora UTC |
UTC_filename | Si |
Si |
Si |
||
Cerca il file di log | get_log_file |
Si |
Si |
Si |
||
Key_special_function | Mappa tasti non riconosciuti | keyboard_codes_mapping |
Si |
Si |
Si |
|
Mappa tasti non riconosciuti che iniziano con \ | windows_keyboard_codes_mapping |
Si |
Si |
Si |
||
Controlla se il tasto premuto è destro o sinistro | left_or_right | Si |
Si |
Si |
||
Stampa messaggio di taglia |
handle_cut | Si |
Si |
Si |
||
Stampa messaggio di copia | handle_copy | Si |
Si |
Si |
||
Stampa messaggio di incolla | handle_paste | Si |
Si |
Si |
||
Trigger | Chiama una funzione da una stringa | call_global_function |
Si |
Si |
Si |
|
Quando viene digitata una parola | class Special_word | Si |
Si |
Si |
||
Quando path supera peso | class Over_size | Si |
Si |
Si |
||
Funzione richiamata ad intervalli (async) |
class Recursive_interval | Si |
Si |
Si |
||
Prima di spegnimento |
Preso in considerazione |
|||||
Spy |
Fa uno screenshot | screenshot |
Si |
Si |
Si |
|
Fa una foto | photo | Si |
No |
No | ||
Fa il dump dei processi | process | Si |
Si |
Si |
||
Fa il dump delle NIC | web | Si |
Si |
Si |
||
Ritorna grandezza schermo | screen_size | Si |
Si |
Si |
||
Fa il dump dei dischi |
Preso in considerazione |
|||||
Fa il dump della CPU |
Preso in considerazione |
|||||
Microfono |
Preso in considerazione |
|||||
Dispositivi USB |
Preso in considerazione |
|||||
Log |
Crea il messaggio | create_message | Si |
Si |
Si |
|
Crea il messaggio di errore fatale | error | Si |
Si |
Si |
||
Stampa il messaggio a schermo | print_message | Si |
Si |
Si |
||
Stampa il messaggio su file di log | print_file | Si |
Si |
Si |
||
Crea nuovo file di log | configure_print_file | Si |
Si |
Si |
||
Trova vecchi file di log | find_old_file | Si |
Si |
Si |
||
Sender |
Controlla la connessione | check_connection |
Si |
Si |
Si |
|
Invia tramite richiesta post |
send_file_via_http |
Si |
Si |
Si |
||
Invia tramite ftp |
Preso in considerazione |
|||||
Invia tramite mail |
Preso in considerazione |
|||||
Invio in streaming |
Preso in considerazione |
|||||
Invia il messaggio e rinomia il file di log | sender | Si |
Si |
Si |
||
global space | - | main | Si |
Si |
Si |
|
Controlla OS se eseguibile imposta autoesecuzione e riavvia | pre_main | Si |
Si |
Si |
Nota: KeyRoll è stato testato su Windows e risulta funzionante
Per installare i pacchetti elencati nel file requirements.txt, puoi utilizzare il comando pip. Assicurati di trovarmi nella directory che contiene il tuo file requirements.txt, quindi esegui il seguente comando nel tuo terminale o prompt dei comandi:
pip install -r requirements.txt
Questo comando installerà tutti i pacchetti elencati nel file requirements.txt e le relative dipendenze. Assicurati di avere pip installato e che sia aggiornato alla versione più recente. Se non hai ancora installato pip, puoi farlo seguendo le istruzioni nel sito web di Python: https://pip.pypa.io/en/stable/installation/
Una volta completata l'installazione, il tuo ambiente dovrebbe essere pronto con tutte le dipendenze necessarie.
Per installare pyinstaller, puoi utilizzare il comando pip come segue:
pip install pyinstaller
Una volta installato pyinstaller, puoi utilizzare il comando che hai fornito per creare un eseguibile standalone del tuo script Python. Assicurati di essere nella directory del tuo script prima di eseguire questo comando. Se stai utilizzando un terminale Windows, sostituisci py con python nel comando. Ecco il comando aggiornato:
python -m PyInstaller "path/to/key.py" --onefile --icon "path/to/keyroll.ico" --name "KeyRoll" -w
Assicurati di fornire i percorsi corretti ai tuoi file (key.py, l'icona, ecc.) nei comandi sopra.
Inoltre, tieni presente che il flag -w nel comando indica di eseguire l'app in modalità GUI senza aprire una finestra del terminale. Se preferisci visualizzare l'output del tuo script, puoi rimuovere questo flag.
Dopo aver eseguito il comando, troverai il tuo eseguibile nella directory dist all'interno della directory del tuo progetto.
- Windows: compatibile, stabile e testato
- Linux, debian based: compatibile, stabile e testato
KeyRoll is a keylogger developed in Python as part of a school project for the Red Teaming course at our Cyber Security school. Copyright (C) 2024 Federico Carioni - Vincenzo Torchia
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.