Keelog ha deciso di pubblicare il progetto della versione precedente di hardware keylogger, rendendo accessibile la piena versione di firmware, codici sorgente di software, schemi elettrici e documentazione. Hardware Keylogger Open Source è un logger della tastiera PS/2 funzionante e testato al 100%, montato ed usato da centinaia di persone nel mondo. Il funzionamento di questo dispositivo è simile alla versioneKeyGrabber PS/2. Per lo scaricamento ed analizzi dei dati da keylogger è assicurata un'applicazione speciale KeyGrab. Però ricordiamo che Hardware Keylogger Open Source è stato pubblicato "come è" con tutti difetti e senza nessuna garanzia.
Prima di cominciare il lavoro verifica con l'elenco se possiedi tutti gli attrezzi e le capacità indispensabili ad eseguire il progetto di Hardware Keylogger Open Source:
I seguenti sottogruppi sono indispensabili per l'esecuzione di questo progetto:
È anche indispensabile attrezzarsi di un involucro per il logger. Una buon idea è acquistare una prolunga PS/2 ed alcuni centimetri di tubo termocontrattile, che si può avvolgere termicamente su logger pronto.
Il montaggio si deve cominciare dalla programmazione del firmware di microcontrollore. Avvia applicazione del programmatore, scegli microcontrollore AT89C2051, e carica il programma usando il codice nella versione binaria oppure versione hex. In caso di dubbi si può anche nuovamente compilare il codice nella versione sorgente usando il compilatore adatto per la famiglia 8051. La più complessa ed impegnativa fase di montaggio è probabilmente la saldatura, perché hardware keylogger dovrebbe essere eseguito utilizzando i più piccoli elementi possibile. Lo schema elettrico di sotto del Hardware Keylogger Open Source illustra come dovrebbero essere disposti i collegamenti tra i sottogruppi.
Salda gli elementi cominciando da microcontrollore e memoria EEPROM. I pin non usati possono essere tolti. Assicurati affinché rimane l'accesso al pulsante. Durante il montaggio dei condensatori assicurati della loro corretta polarizzazione.
Il dispositivo deve essere il più piccolo possibile, senza degli intervalli tra gli elementi. Bisogna però evitare i cortocircuiti, perché poi saranno molto difficili da togliere. Dopo la saldatura degli elementi principali l'hardware keylogger dovrebbe assomigliare al prototipo illustrato nella foto.
Il montaggio dello slot e della spina PS/2 deve essere eseguito alla fine. Una buona idea è effettuare un taglio della prolunga PS/2 in due parti e effettuare una separata saldatura dei fili di ciascuna parte. Ricorda però di infilare il tubo termocontrattile su una delle parti saldate. Salda tutte le quattro linee usate PS/2 (CLK, DATA, VCC e GND) sul slot e sulla spina (collegati alla tastiera e al computer).
Prima della piegatura termica del tubo termocontrattile attorno al keylogger, è bene mettere una piccola quantità di colla o di resina tra gli elementi per rinforzare tutta la costruzione. Alla fine riscalda il tubo termocontrattile affinché si stringa attorno al keylogger e fai un piccolo foro per assicurare l'accesso al pulsante.
L'Hardware Keylogger Open Source comincia ad intercettare i dati dalla tastiera al momento della connessione tra il computer e la tastiera. Il keylogger è totalmente "trasparente", non influisce in nessun modo sul funzionamento di computer e tastiera, e non può neppure essere scoperto dalla software. Tutti i dati dalla tastiera sono registrati nella memoria interna non volatile EEPROM con dimensione di 64kB. La modalità di intercettazione è indipendente dal sistema operativo installato sul computer.
Trova il collegamento della tastiera PS/2 sul computer
Scollega la tastiera.
Connetti hardware keylogger sul posto della tastiera.
Collega la tastiera a keylogger. Il modo di intercettazione parte immediatamente dopo la connessione all'alimentazione.
Quando i dati della tastiera vengono memorizzati in modalità intercettazione, potranno essere letti su qualsiasi computer di classe PC con sistema operativo Windows 9X/Me/XP/2000. L'Hardware Keylogger fa questo attraverso la simulazione di invio dati attraverso la tastiera. I dati trasmessi vengono recepiti dall'applicazione KeyGrab. Dopo aver scaricato tutti dati dal computer, essi possono essere elaborati ed analizzati. Le istruzioni che seguono illustrano il metodo di iniziazione della modalità intercettazione dei dati da keylogger.
Attiva applicazione KeyGrab.
Connetti hardware keylogger sul posto della tastiera. Non connettere la tastiera.
Clicca sulla barra del titolo dell'applicazione KeyGrab per attivarla.
Premi il pulsante su keylogger per iniziare la trasmissione. Durante lo scaricamento non cambiare l'applicazione attiva. Premi nuovamente il pulsante per concludere lo scaricamento. Bisogna farlo quando i dati voluti sono stati scaricati sul computer.
Sconnetti hardware keylogger e connetti di nuovo la tastiera PS/2.
Durante lo scaricamento dati alla tabella principale di applicazione KeyGrab, questi sono automaticamente elaborati in modo da far vedere i tasti premuti durante la modalità di intercettazione. I dati vengono trasmessi in ordine opposto all'ordine cronologico per far vedere all'inizio i dati appena intercettati. I dati scaricati possono essere analizzati manualmente oppure si può usufruire di alcune opzioni di ricerca incorporate.
L'informazione più interessante per l'utente è la colonna con il tasto (2) e l'evento (3). In queste colonne è codificata l'informazione sugli caratteri iscritti. Spostando la barra di navigazione è possibile recuperare la storia del testo scritto in modalità intercettazione. I dati dai keylogger sono trasmessi in ordine opposto all'ordine cronologico (i dati più nuovi all'inizio).
L'applicazione per lo scaricamento dei dati da hardware Keylogger Open Source per Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
Codice sorgente completo per il microcontrollore AT89C2051:
Codice sorgente - diy.asm
Firmware compilato per il microcontrollore AT89C2051:
file BIN - diy.bin, file HEX - diy.hex
Invitiamo a leggere le osservazioni di sotto, le quali possono aiutare ad evitare parecchi problemi connessi all'utilizzo di hardware keylogger.
Tagliando il cavo della tastiera PS/2 generalmente si trovano dentro 6 fili. Solo 4 di queste linee sono importanti. Due di loro sono alimentatori: massa (GND) e +5 Vol (VCC) generate dall'alimentatore di computer. I due rimanenti servono per la trasmissione asincrona dei dati: linea dati (DATA) e linea orologio (CLK). Sul disegno a destra è visualizzato come queste linee si cambiano ai pin della spina DIN (a) e mini DIN (b). La trasmissione è bidirezionale, ma il ruolo più importante è quello della tastiera. Invia informazione sulle pressioni e liberazioni dei tasti. La tabella dati contiene solo un byte, preceduto da un byte dello start e finalizzato con byte di parità e byte dello stop. La tastiera emette i seguenti byte dei dati DATA e li tratta con un versante negativo sulla linea orologio CLK. Frequenza di tatto è 10...30 kHz. Ci sarebbe un protocollo molto semplice ed elegante se non fosse per il fatto che il computer ha bisogno, volta per volta, di inviare l'informazione alla tastiera. In questo caso scarica la linea orologio CLK fino allo zero, fino a quando la tastiera comincia a inviare segnali. Quando partono gli impulsi, il controllore del computer comincia ad inserire i dati sulla linea DATA. Gli andamenti della trasmissione sono illustrati sul grafico di sotto: (a) dalla tastiera al computer, (b) dal computer alla tastiera. Questo protocollo ovviamente possiede alcune eccezioni e complicanze, come per esempio un'interruzione della trasmissione, la ripetizione del carattere, ecc. Però questi sono casi molto rari.
Allora quali dati sono realmente trasmessi attraverso il cavo della tastiera? All'avviamento sia la tastiera che computer inviano i dati di inizializzazione, informando sul suo status. Durante il lavoro ordinario del computer, solo la tastiera invia i dati. Questi dati riguardano ogni evento accaduto sulla tastiera. L'evento preso in considerazione è la pressione del tasto e la sua liberazione. Nel caso della pressione del tasto è inviato il suo così detto "scancode". Ogni tasto possiede precisamente uno scancode, ciò forma una mappa degli scancode. Nel caso della liberazione del tasto, prima viene inviato il byte speciale 240 (hex F0), e dopo lo scancode del dato tasto. Allora iscrizione standard del carattere dalla tastiera causa la trasmissione di 3 byte. Se il tasto rimane premuto più a lungo, il suo scancode sarà ripetuto con la frequenza di ripetizione al momento impostata. Quando verrà liberato, il byte 240 sarà inviato e infine lo scancode. Questo sarebbe un protocollo semplice e piacevole se non ci fosse la presenza di certi tasti speciali, come Home, End, frecce, ecc. Quando il tasto speciale viene premuto, sarà inviato il byte 224 (hex E0), ed in seguito il suo scancode. Quando il tasto speciale viene liberato, è inviata una sequenza 224, 240 (hex E0, F0), ed in seguito lo scancode del tasto. I tasti standard e speciali sono comuni per tutte le disposizioni delle tastiere nazionali, conforme alla mappa degli scandode. A complicare ulteriormente il tutto, esistono due tasti "super-speciali", Print Screen e Pause, la pressione dei quali causa la trasmissione di tutta sfilata dei caratteri. Per la persona che programma la comunicazione della tastiera è meglio far finta che questi tasti non esistano.
Il microcontrollore controlla le linee DATA e CLK per tutto il tempo, intercettando tutti i dati. I dati sono registrati direttamente nella memoria interna non volatile, senza nessuna analisi. Grazie a questo, l'utente può in seguito venire a sapere di tutti gli eventi accaduti sulla tastiera. Quando l'utente decide che l'intercettazione è finalizzata e preme il pulsante, hardware keylogger torna al modo download. La tastiera dovrebbe essere previamente sconnessa, in caso contrario comincerà ad interpretare il flusso dei dati. Keylogger a questo momento comincia la trasmissione dei dati dalla memoria interna attraverso la simulazione della tastiera. Applicazione KeyGrab dovrebbe essere l'applicazione attiva nel sistema, per interpretare il flusso dei dati da hardware keylogger. I tasti standard sono trasmessi direttamente con aiuto di scancode, invece i tasti ampliati con aiuto del codice a 2 byte.