Přeskočit na obsah

🚚 Doprava zdarma od 2 000 Kč

Evil Crow Cable Wind - jak zaprogramować firmware i nie zwariować

Evil Crow Cable Wind – jak naprogramovat firmware a nezbláznit se

Každý, kdo někdy držel v ruce USB kabel a pomyslel si „co kdyby tento kabel uměl dělat i něco víc než jen nabíjet telefon" – pravděpodobně nakonec narazil na Evil Crow Cable Wind. Je to nenápadný USB kabel, který uvnitř skrývá mikrokontrolér ESP32-S3 s WiFi, flash pamětí a ambicemi, které daleko přesahují jeho velikost.

Dnes vám ukážu, jak do něj nahrát nejnovější firmware - od nuly, načisto, na Windows. A pak, jak se k němu připojit a začít se bavit.

Vlastně můžete tento návod také hodit do AI a ta vás povede za ručičku... :)

Co se skrývá uvnitř

Evil Crow Cable Wind je vlastně plnohodnotný mikrokontrolér ESP32-S3-PICO-1 uzavřený v pouzdře USB kabelu. Konkrétně máme k dispozici:

  • 8 MB Flash paměti (vestavěné, ne na SD kartě)
  • 2 MB PSRAM
  • WiFi a Bluetooth LE
  • Rozhraní USB HID - kabel umí emulovat klávesnici

Firmware poskytuje webový panel, ze kterého můžete psát a spouštět payloady, nahrávat skripty, plánovat autoexec - zkrátka vše, co potřebujete pro práci s BadUSB. Aby to ale všechno fungovalo, musíte nejprve nahrát správný firmware.

Úvodní obrazovka panelu Evil Crow Cable

Co budete potřebovat

Než přejdeme k samotné zábavě, musíme si připravit pracoviště. Nákupní seznam vypadá takto:

  • Arduino CLI - konzolový nástroj pro kompilaci a nahrávání firmwaru. Samozřejmě můžete použít plné Arduino IDE s grafickým rozhraním, ale proč klikat, když můžete zadat jeden příkaz?
  • ESP32 Board Manager v3.2.0 - platforma Espressif pro Arduino, obsahuje kompilátor, nástroje pro flashování a definice desek. Verze 3.2.0 je vyžadována – novější verze mohou zavést nekompatibilitu.
  • Repozitář EvilCrowCable-Wind - tam sídlí firmware a upravená USB knihovna.
  • Knihovna ArduinoJson - firmware ji potřebuje ke zpracování konfigurace.
  • Magnet - ano, fyzický magnet. Přiložením k aktivnímu konci kabelu se přepne do programovacího režimu. Bez něj se kabel chová jako běžný USB kabel a nelze jej flashovat.

Příprava prostředí krok za krokem

Začneme vytvořením pracovního adresáře a stažením všeho potřebného.

Krok 1 - Stáhněte si arduino-cli

Přejděte na stránku arduino-cli releases a stáhněte si nejnovější verzi ZIP pro Windows 64-bit. Rozbalte do našeho pracovního adresáře.

mkdir EvilCrowCable-Wind-Setup
cd EvilCrowCable-Wind-Setup
curl -L -o arduino-cli.zip https://github.com/arduino/arduino-cli/releases/download/v1.4.1/arduino-cli_1.4.1_Windows_64bit.zip
unzip arduino-cli.zip -d arduino-cli-bin

Krok 2 - Nakonfigurujte ESP32 board manager

Přidáme URL repozitáře Espressif a nainstalujeme platformu ESP32 ve verzi 3.2.0:

arduino-cli-bin/arduino-cli.exe config init --overwrite
arduino-cli-bin/arduino-cli.exe config add board_manager.additional_urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
arduino-cli-bin/arduino-cli.exe core update-index
arduino-cli-bin/arduino-cli.exe core install esp32:[email protected]

To chvíli potrvá - platforma ESP32 má přes 1 GB. Dobrý čas na kávu.

Krok 3 - Klonování repozitáře a knihoven

git clone https://github.com/joelsernamoreno/EvilCrowCable-Wind.git
git clone https://github.com/bblanchon/ArduinoJson.git

Nyní musíme zkopírovat knihovny tam, kde je bude Arduino CLI hledat – do složky Documents\Arduino\libraries:

mkdir -p ~/Documents/Arduino/libraries
unzip EvilCrowCable-Wind/modified-libraries/USB.zip -d ~/Documents/Arduino/libraries/
cp -r ArduinoJson ~/Documents/Arduino/libraries/ArduinoJson

Knihovna USB v adresáři modified-libraries je upravená verze knihovny ESP32 USB - není to standardní knihovna ze správce, takže se musí nainstalovat ručně. Bez ní se firmware nezkompiluje.

Flashování - jeden příkaz

A teď ta nejlepší část. Celá kompilace a nahrání firmwaru jedním příkazem v terminálu:

arduino-cli-bin/arduino-cli.exe compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=default,CPUFreq=80,DFUOnBoot=default,FlashMode=qio,FlashSize=8M,PartitionScheme=default_8MB,UploadSpeed=921600,USBMode=hwcdc" --libraries ~/Documents/Arduino/libraries --upload --port COM3 EvilCrowCable-Wind/firmware

Pojďme si to rozebrat na drobné, protože to vypadá hrozivě:

Parametr Hodnota Co to dělá
--fqbn esp32:esp32:esp32s3:... Fully Qualified Board Name - identifikuje desku a její konfiguraci
CDCOnBoot=default Vypnuto Vypne USB CDC při startu
CPUFreq=80 80MHz (WiFi) Takt procesoru - 80 MHz stačí a šetří energii
DFUOnBoot=default Vypnuto Vypne režim DFU při startu
FlashMode=qio QIO 80MHz Režim komunikace s flash pamětí - nejrychlejší dostupný
FlashSize=8M 8MB (64Mb) Velikost flash paměti v kabelu
PartitionScheme=default_8MB 3MB APP / 1.5MB SPIFFS Schéma oddílů - 3 MB pro aplikaci, 1.5 MB pro souborový systém
UploadSpeed=921600 921600 baud Rychlost nahrávání - čím rychleji, tím lépe
USBMode=hwcdc Hardware CDC a JTAG Režim USB - hardwarový CDC
--port COM3 Sériový port Port, na kterém je kabel vidět - u vás může být jiný
--libraries Cesta ke knihovnám Ukazuje na naše ručně nainstalované knihovny

Příznak --upload říká arduino-cli, aby po kompilaci rovnou nahrál firmware do zařízení. Bez něj dostaneme pouze zkompilovaný binární soubor.

Jak najít port COM

Než spustíte výše uvedený příkaz, musíte vědět, na kterém portu kabel sedí. Stačí zadat:

arduino-cli-bin/arduino-cli.exe board list

Uvidíte něco takového:

Port  Protocol Type              Board Name          FQBN                      Core
COM3  serial   Serial Port (USB) ESP32 Family Device esp32:esp32:esp32_family esp32:esp32

Zapamatujte si číslo portu a vložte jej do parametru --port.

Programovací režim - magnet

Toto je prvek, který odlišuje Evil Crow Cable Wind od běžné vývojové desky. Kabel nemá tlačítko BOOT - místo něj má magnetický senzor. Chcete-li vstoupit do režimu programování:

  1. Vezměte magnet (stačí malý neodymový)
  2. Přiložte jej k aktivnímu konci kabelu (ten označený nálepkou)
  3. Připojte kabel k počítači
  4. Nyní je kabel v režimu programování a objeví se jako port COM

Po nahrání firmwaru magnet odložte. Kabel se restartuje a spustí nový firmware.

Použití magnetu u kabelu

Připojení ke kabelu - webový panel

Firmware je nahrán, kabel funguje. Jak s ním ale komunikovat? Evil Crow Cable Wind se připojuje k WiFi síti jako klient (režim STA) - to znamená, že nevytváří vlastní síť, ale připojuje se k existující.

Výchozí konfigurace WiFi

Ve firmwaru jsou výchozí následující údaje:

  • SSID: Evil Crow Cable Wind
  • Heslo: 123456789

Po spuštění kabel hledá síť s tímto názvem a pokusí se k ní připojit. Pokud ji nenajde, připojení se prostě nenaváže a webový panel bude nedostupný.

Vytvoření hotspotu

Nejjednodušší je vytvořit hotspot na notebooku nebo telefonu s přesně stejnými parametry jako výše. Ve Windows to lze provést přes Nastavení > Síť a internet > Mobilní hotspot, kde nastavíte:

  • Název sítě: Evil Crow Cable Wind
  • Heslo: 123456789

Po spuštění hotspotu připojte kabel k USB (bez magnetu). Po několika sekundách by se měl kabel automaticky připojit k síti.

Hledání IP adresy

Teoreticky by měl být kabel dostupný na adrese http://cable-wind.local díky mDNS. Prakticky – mDNS na Androidu někdy nefunguje a ve Windows bývá náladový. Proto je lepším řešením zkontrolovat, jakou IP adresu kabel dostal.

Na notebooku s hotspotem stačí vstoupit do seznamu připojených zařízení, nebo v terminálu spustit:

arp -a

Hledáme adresu v podsíti hotspotu – obvykle to bude něco jako 192.168.0.x. Zadejte tuto adresu do prohlížeče a měli byste vidět panel Evil Crow Cable Wind.

Webový panel

Po vstupu na IP adresu kabelu v prohlížeči máme k dispozici plný panel správy:

  • Home - stav zařízení, informace o připojení
  • Payload Editor - editor payloadů v reálném čase
  • Upload Payload - nahrávání hotových skriptů
  • List Payloads - seznam uložených payloadů
  • AutoExec Planning - plánování automatického spouštění skriptů po připojení
  • Config - konfigurace WiFi, USB (Vendor ID, Product ID, název zařízení), hostname a rozložení klávesnice

V sekci Config můžete změnit SSID a WiFi heslo na své vlastní - kabel se pak bude připojovat k vaší domácí síti a nebudete muset pokaždé vytvářet dedikovaný hotspot.

Aktualizace firmwaru přes WiFi (OTA)

Pokud již má kabel nahrán firmware a je připojen k síti WiFi, další aktualizace lze nahrávat bezdrátově - bez magnetu a bez připojování k počítači.

V Arduino CLI exportujeme zkompilovaný binární soubor:

arduino-cli-bin/arduino-cli.exe compile --fqbn "esp32:esp32:esp32s3:CDCOnBoot=default,CPUFreq=80,DFUOnBoot=default,FlashMode=qio,FlashSize=8M,PartitionScheme=default_8MB,UploadSpeed=921600,USBMode=hwcdc" --libraries ~/Documents/Arduino/libraries --output-dir ./build EvilCrowCable-Wind/firmware

A poté jej odešleme do kabelu jedním příkazem curl:

curl -F "image=@./build/firmware.ino.bin" http://192.168.137.22/update

Samozřejmě je potřeba IP adresu vyměnit za aktuální adresu vašeho kabelu. Po nahrání se kabel automaticky restartuje.

Shrnutí

Celý proces od nuly k funkčnímu firmwaru vypadá takto:

  1. Stáhněte si arduino-cli, naklonujte repozitář a knihovny
  2. Nainstalujte ESP32 board manager v3.2.0
  3. Přiložte magnet, připojte kabel, zkontrolujte COM port
  4. Spusťte jeden příkaz compile --upload
  5. Vytvořte hotspot, najděte IP, otevřete panel v prohlížeči

Celé to - od prázdného disku po funkční webový panel - trvá asi 15 minut, z čehož většinu času zabere čekání na stažení platformy ESP32. Samotný flash trvá necelých 10 sekund.

Evil Crow Cable Wind je zajímavý nástroj pro bezpečnostní testování a učení se o útocích BadUSB. Jako každý takový nástroj – používejte jej zodpovědně a výhradně na zařízeních, ke kterým máte autorizovaný přístup. Etický hacking začíná souhlasem majitele.

Předchozí článek Baofeng UV-5R - návod k obsluze a jak odblokovat plný rozsah frekvencí
Další článek Flipper Zero WiFi Board - jak přidat WiFi do Flipperu?