This shows you the differences between two versions of the page.
pm:prj2023:gpatru:wifi_μducky [2023/05/03 19:15] cristian.simache created |
pm:prj2023:gpatru:wifi_μducky [2023/05/29 20:55] (current) cristian.simache [Descriere generală] |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Emuleaza o tastatura cu input primit printr-o retea wireless.\\ | + | Emuleaza o tastatura generand input primit de la un client conectat pe propria retea wireless.\\ |
- | Inspiratia a fost [[https://shop.hak5.org/products/usb-rubber-ducky?variant=353378649|USB Rubber Ducky]] | + | Inspiratia a fost [[https://shop.hak5.org/products/usb-rubber-ducky?variant=353378649|USB Rubber Ducky]]. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | <note tip> | + | Initial ESP-ul creaza o retea wifi fantoma si astapta sa fie activat printr-o transmisie speciala. |
- | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | Odata activat porneste o retea ascunsa si permite prin intermediul ei accesul sa un server de comanda si control. |
+ | Folosind server-ul se controleaza ce apasari de taste va trimite la calculatorul conectat. | ||
- | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | {{:pm:prj2023:gpatru:logic_diagram.png?direct&800|}} |
- | </note> | + | |
+ | ESP-ul transmite direct comenzile de la utilizator, urmand sa fie decodificate si executate pe Arduino.\\ | ||
+ | Comenzile sunt ingradite de '#'("#sleep20#" => wait for 20 ms) si respecta urmatorul set de reguli | ||
+ | <code> | ||
+ | ## => # | ||
+ | #SLEEP[0-9]+# => wait for $0 ms max 65536 | ||
+ | #($ACTION:)?$SPECIAL_KEY# => specific key | ||
+ | #($ACTION:)?0x[09a-fA-F]+# => raw send | ||
+ | $0: => $0 | ||
+ | |||
+ | |||
+ | ACTION: | ||
+ | T => tap DEFAULT | ||
+ | P => press | ||
+ | R => release | ||
+ | </code> | ||
+ | |||
+ | Exemple: | ||
+ | <code> | ||
+ | #P:WIN#r#R:WIN##sleep20#cmd /c color 02 && tree && color#ENTER# | ||
+ | </code> | ||
+ | <code> | ||
+ | BCD#P:CTRL##LEFT##sleep20##R:CTRL#A | ||
+ | </code> | ||
+ | <code> | ||
+ | #P:WIN#r#R:WIN##sleep20#notepad | ||
+ | #sleep250# | ||
+ | You Got hacked | ||
+ | </code> | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | Componente: |
- | Aici puneţi tot ce ţine de hardware design: | + | * ESP8266 |
- | * listă de piese | + | * Beetle Board(miniatured Arduino Leonardo) |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * Modul translator de tensiune |
- | * diagrame de semnal | + | |
- | * rezultatele simulării | + | {{:pm:prj2023:gpatru:legaturi2.png?direct&800|}} |
- | </note> | + | |
===== Software Design ===== | ===== Software Design ===== | ||
+ | {{:pm:prj2023:gpatru:pm_software_diagram.png?direct&800|}} | ||
+ | |||
+ | Pe ESP, odata primit un beacon cu un SSID specific ESP-ul trece in modul de Comand&Control. | ||
+ | |||
+ | Mediu de dezvoltare: Arduino IDE | ||
+ | |||
+ | Librarii: [[https://github.com/esp8266/Arduino/tree/master|Arduino ESP8266]] | ||
+ | |||
+ | |||
+ | cateva functii ESP: | ||
+ | * void send_fake_beacon() | ||
+ | * void build_fake_beacon(const char *ssid, byte channel) | ||
+ | |||
+ | cateva functii Leonardo: | ||
+ | * void handle_special(const char *token) | ||
+ | * const char *get_next(uint8_t *ret_is_special) | ||
+ | * void append_char(const char new_keystroke) | ||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | <html> | ||
+ | <iframe width="800" height="400" src="https://www.youtube.com/embed/p3mQYzgcj54" title="Demo" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | ||
+ | </html> | ||
<note tip> | <note tip> | ||
Line 44: | Line 86: | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2023:gpatru:surse_pm_2023_cristi_sima_334ca.zip|Surse}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | Capsula cu ESP-07S pe care voiam sa il folosesc nu functiona pe partea de WiFi, din motive de timp am trecut pe un modul cu ESP8266. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | * [[https://wiki.dfrobot.com/Beetle_SKU_DFR0282|Arduino Beetle]] | ||
+ | * [[https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf|ATmega16U4 Datasheet]] | ||
+ | * [[https://github.com/justcallmekoko/ESP32Marauder|ESP32Marauder (a collection of wifi pentesting tools)]] | ||
+ | * [[https://www.espressif.com/sites/default/files/documentation/2c-esp8266_non_os_sdk_api_reference_en.pdf|ESP8266 API Reference]] | ||
+ | * [[https://github.com/esp8266/Arduino/blob/master/doc/boards.rst|Arduino ESP]] | ||
+ | * [[https://www.arduino.cc/reference/en/language/functions/usb/keyboard/keyboardmodifiers|Arduino Keyboard Special Keys Reference]] | ||
- | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||