La force brute attaquer un BIOS avec Arduino
Le but de cette expérience est de convertir la carte Arduino en un clavier USB et un renifleur VGA à craquer le mot de passe d'un BIOS standard à l'aide de la force brutale attaque méthode. Il n'ya aucun avantage à utiliser cette méthode, en fait, cela peut être très lente et vous pouvez ne jamais trouver le mot de passe à tout, mais comme toujours nous le faisons pour le plaisir. C'est juste une preuve de concept, il existe de nombreuses façons de réinitialiser le BIOS en particulier si vous avez accès à du matériel, et vous en avez besoin tout de même parce que nous parlons du BIOS et il n'y a pas "d'accès à distance" dans la mesure où je sais.
En théorie, vous pouvez l'utiliser avec d'autres logiciels aussi non seulement une configuration du BIOS, mais il doit y avoir certaines conditions particulières, par exemple, le logiciel doit être l'un de ceux qui ne bloque pas au bout de quelques échecs de tentatives d'entrée de mot de passe.
Aussi l'une des principales limitations est que nous ne pouvons pas lire l'ensemble du bâti VGA et de les traiter, au lieu nous avons lu un seul pixel à partir de (plus ou moins) au milieu de l'écran, et selon sa couleur nous passons par les différentes étapes, pour Par exemple: un pixel rouge au milieu de l'écran peut indiquer que le mot de passe est faux dans une configuration régulière du BIOS, tandis qu'un pixel bleu peut indiquer qu'il est prêt à recevoir le mot de passe suivant.
Emulateur clavier USB
Pour la partie du clavier USB, j'ai utilisé le V-USB pour Arduino de code, qui à son tour utilise V-USB bibliothèque . Vous aurez besoin d'installer le V-USB pour Arduino pour faire du "PDE" travail.
Circuit
Le bouclier Arduino pour ce projet est assez simple, j'ai joint un module LCD régulière d'avoir une sortie pour éviter un second ordinateur, juste pour voir les progrès ou le résultat.
Un couple de diodes Zener pour rendre l'interface clavier USB (c'est l'une des quatre options proposées dans le fichier Readme V-USB, voici un lien vers un autre projet qui utilise cette méthode aussi).
Il ya un bouton qui est utilisé pour mettre en pause / continuer l'attaque. Si vous maintenez la touche enfoncée pendant plus de 2 secondes, l'attaque sera remis à zéro.
Sniff le VGA
Pour connaître la couleur du pixel dans le milieu de l'écran, nous avons besoin de lire le signal analogique rouge, et aussi les impulsions de synchronisation verticale et horizontale de savoir quand de lire la Croix-Rouge. La première tentative a été à l'aide Arduino attachInterrupt pour capturer le HSYNC et VSYNC, mais la surcharge fait le clavier USB d'arrêter de travailler.
Le ISR () et SIGNAL () macros semble mieux fonctionner dans ce cas, si le pouls VSYNC réinitialiser une variable globale appelée h_line tandis que le HSYNC sera l'incrémenter de savoir dans quelle ligne est le cadre VGA en cours d'élaboration.
Notre waitWrongPassword fonction fait l'analyse du pixel. Il attend quelques secondes à apparaître le pixel rouge, et jette un regard sur le compteur de lignes alors quand il est dans le 238 # (presque la verticale du milieu dans une résolution 640 × 480), il va retarder un peu pour obtenir le milieu horizontal calendrier, et de lire l'entrée analogique.
Puis, après avoir lu l'entrée analogique rouge le résultat est comparé à voir si la boîte de dialogue "mauvais mot de passe" est sorti, je veux parler du if (valueR > 140) . Vous aurez probablement besoin de changer cette valeur, en fonction de vos niveaux de cartes VGA.
Code
Vous devez définir le jeu de caractères que vous souhaitez utiliser pour l'attaque. Pour ce faire, modifier le charset tableau en ajoutant les codes de clés USB que vous souhaitez utiliser. Nous avons seulement KEY_A, KEY_B, KEY_C par défaut dans l'exemple de code. En outre, vous avez besoin de modifier un second réseau appelé charset_log qui doit avoir la même taille, mais au lieu de le code clé, il reflète l'octet imprimables, à des fins d'exploitation forestière.
L'autre chose dont vous avez besoin de changer est la longueur maximale du mot de passe, par défaut à 4. Recherchez le MAX_LEN définir.
L'état est régulièrement enregistré dans la mémoire EEPROM ainsi en cas de panne de courant, vous pouvez continuer à partir de la dernière (ou à proximité de la dernière) passe testée.
Télécharger le code ici , et n'hésitez pas à le modifier si vous avez besoin.
Voici quelques photos de l'écran
Méthode de transfert de tonalité pour faire du conseil. Un peu brûlé en raison de la planche à repasser excessive.
Bye!




Je veux que le détail de ce projet qui fait u .... Je veux La valeur de l'résistant, Condensateurs, etc ...
Wich IC vous avez utilisé tout ça ..... im vraiment attendre de réponse ur ... si u ont la conception de PCB pour ce projet envoyer cette aussi ..... pl.pl.pl.pl.pl.pl.pl.pl.pl
Salut Max. Tout est détaillé dans ce post, y compris PCB et le code source. Tout l'intérieur de la ZIP (cherchez "code ici" dans ce post). L'élément le plus important est l'Arduino, outre que j'ai utilisé un affichage de la ligne, une résistance variable (10k) pour régler le contraste de l'écran, et les connecteurs. Tout est dans le schéma Eagle. Télécharger Aigle CAD si vous ne l'avez pas et d'ouvrir les fichiers pour plus de détails.
mots de passe par seconde essayé? combien de temps pour obtenir un mot de passe AZ 5 characaters?
@ Krnico
Les mots de passe par seconde ... humm ... lent, très lent.
Je suppose que seulement 5 caractères de longueur avec l'ensemble chevalier tel ne sera pas si mauvais (quelques jours?). Rappelez-vous juste de mettre à jour les deux tables de la PDE. Avec le jeu de caractères que vous souhaitez utiliser!