La forza bruta attaccare un BIOS con Arduino
L'obiettivo di questo esperimento è quello di convertire la scheda Arduino in una tastiera USB più una VGA sniffer per craccare la password di un BIOS standard usando il brute force attack metodo. Non ci sono vantaggi nell'usare questo metodo, in realtà questo può essere molto lenta e non può mai trovare la password a tutti, ma come sempre lo facciamo per divertimento. E 'solo un proof of concept, ci sono molti modi di ripristino di un BIOS specialmente se si ha accesso all'hardware, e ne avete bisogno comunque, perché stiamo parlando di BIOS e non c'è "accesso remoto" per quanto ne so.
In teoria, è possibile utilizzarlo con altri programmi, inoltre, non solo un setup del BIOS, ma ci deve essere alcune condizioni particolari, ad esempio il software deve essere uno di quelli che non si blocca dopo alcuni tentativi non riusciti di immissione della password pochi.
Anche uno dei limiti principali è che non possiamo leggere l'intera struttura VGA ed elaborare, invece leggiamo un pixel singolo (più o meno) al centro dello schermo, e secondo il suo colore che passare attraverso le varie fasi, per esempio: un pixel rosso al centro dello schermo può indicare che la password è errata in una configurazione regolare BIOS, mentre un pixel blu può indicare che è pronta a ricevere la password successivo.
USB Keyboard Emulator
Per la parte di tastiera USB, ho usato il V-USB per Arduino codice, che a sua volta utilizza V-USB biblioteca . Avrete bisogno di installare il V-USB per Arduino per rendere il lavoro "PDE".
Circuito
Lo scudo Arduino per questo progetto è abbastanza semplice, ho allegato un modulo regolare LCD per avere un uscita per evitare un secondo computer solo per vedere il progresso o risultato.
Un paio di diodi Zener per rendere l'interfaccia USB della tastiera (è una delle quattro opzioni proposte nel V-USB Readme, ecco un link ad un altro progetto che utilizza questo metodo anche).
C'è un pulsante che viene utilizzato per mettere in pausa / continuare l'attacco. Se si tiene premuto il pulsante per più di 2 secondi, l'attacco sarà azzerato.
Sniff la VGA
Per conoscere il colore del pixel al centro dello schermo, è necessario leggere il segnale analogico rosso, e anche gli impulsi di sincronizzazione verticale e orizzontale per sapere quando leggere il rosso. Il primo tentativo è stato con Arduino attachInterrupt per catturare l'HSYNC e VSYNC ma l'overhead fatto la tastiera USB di smettere di lavorare.
L'ISR () e SIGNAL () macro sembra funzionare meglio in questo caso, così il polso VSYNC ripristinerà una variabile globale chiamata h_line mentre il HSYNC lo incrementa di sapere in quale linea è la cornice VGA in corso di elaborazione.
La waitWrongPassword funzione fa l'analisi del pixel. Si attende per alcuni secondi prima che appaia il pixel rosso, e continua a guardare il contatore di riga in modo che quando è nel # 238 (quasi la metà in verticale in una risoluzione 640 × 480) che ritarderà un po 'per arrivare al centro orizzontale tempi e leggere l'input analogico.
Poi, dopo aver letto l 'ingresso analogico rosso viene confrontato con il risultato per vedere se la finestra di dialogo' password sbagliata 'è spuntato, sto parlando del if (valueR > 140) . Si avrà probabilmente bisogno di cambiare questo valore, secondo i livelli di scheda VGA.
Codice
È necessario definire il set di caratteri che si desidera utilizzare per l'attacco. Per fare questo, modificare il charset matrice aggiungendo i codici chiave USB che si desidera utilizzare. Abbiamo solo KEY_A, KEY_B, KEY_C di default nel codice di esempio. Inoltre, è necessario modificare un secondo array chiamato charset_log che deve avere le stesse dimensioni, ma invece del codice della chiave riflette il byte stampabile, per scopi di registrazione.
L'altra cosa è necessario modificare è la lunghezza massima della password, dal valore di default a 4. Cercare il MAX_LEN definire.
Lo stato viene periodicamente salvato nella EEPROM così in caso di mancanza di corrente, è possibile continuare dall'ultimo (o vicino l'ultima) testato password.
Scarica il codice qui , e sentitevi liberi di modificarlo se avete bisogno.
Ecco alcune immagini dello scudo
Tone metodo di trasferimento per rendere la tavola. Un po 'bruciato a causa della eccessiva stiratura.
Bye!



