Skip to content

Commit c308f31

Browse files
author
kripthor
authored
Merge pull request #1 from jpdias/master
Documentation & build process
2 parents 400d7be + fd90487 commit c308f31

19 files changed

+145
-5
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.pio
2+
.vscode
3+
lib

README.md

+110-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,114 @@
11
# UberHid
2-
Wifi keylogger with keyboard and mouse injection capabilities
32

4-
*in the firmware directory resides the firmware for the ATmega32u4 and ESP8266 (ESP-12)
3+
![logo](docs/logo/logo-small.png)
54

6-
*in the hardware directory resides the schematics (I used Eagle)
5+
Wifi keylogger with keyboard and mouse injection capabilities.
76

8-
This page needs some love. Early development. More info ping @kripthor
7+
```bash
8+
├── docs # docs and pictures
9+
├── firmware # firmware code
10+
│ ├── UberHID-ESPUSB # ESP8266 firmware
11+
│ │ └── data # ESP8266 static files
12+
│ └── UberHID-Leonardo # ATmega32u4 firmware
13+
└── hardware # hardware schematics
14+
```
15+
16+
## Bill of Materials
17+
18+
| Qty. | Description | Obs. |
19+
|------|------------------------|-----------------------------------------------------------------|
20+
| 1 | UBERHid PCB | Designed by [@kripthor](https://github.com/kripthor/UberHid/) |
21+
| 1 | Arduino atmega32u4 | Board is designed for DM Micro AU version (Beetle with 18 pins) |
22+
| 1 | ESP8266 ESP-12E module | Module to solder |
23+
| 1 | MAX3421EEHJ+ USB | USB Peripheral Host Controller 32-Pin |
24+
| 5 | 10kΩ Resistor | SMD. |
25+
| 2 | 33Ω Resistor | SMD. |
26+
| 2 | 18pF Capacitator | SMD. |
27+
| 1 | XTAL TXC 12Mhz | SMD. |
28+
| 1 | 2k2 Resistor | 2.2KΩ SMD. |
29+
| 1 | FTDI FT232RL | USB to TTL Serial 3.3V/5V USB Adapter or equivalent. Used to program the ESP8266. |
30+
31+
![UBERHid Parts](docs/pics/parts.jpg)
32+
33+
* All the components can be found in the usual online stores such as *Aliexpress* and *eBay*.
34+
35+
## Schematics
36+
37+
### UBERHid PCB
38+
39+
![UBERHid PCB](docs/pcb.png)
40+
41+
### UBERHid Schematic
42+
43+
![Schematic](docs/uberhid-schematic.png)
44+
45+
### UBERHid Wiring
46+
47+
Details of the wiring between the ATmega32u4 and FTDI programmer. Note that the ATmega used in this case was an SS Micro version which does not have the same pinout as the recommended DM Micro AU Beetle Leonardo, which fits directly in the PCB pinout layout.
48+
49+
![Wiring](docs/wiring.png)
50+
51+
## Soldering
52+
53+
The components must be soldered accordingly to the above schematic. Some extra details and _protips_:
54+
55+
- Start by sodering the smaller components, especially the MAX3421 chip, the SMD resistors and capacitors and the XTAL crystal.
56+
- Two pins stay right bellow the ESP8266 chip. You have to be sure that these pins do not make any contact with the ESP8266 after the soldering is completed. I used a little of heat-resistant isolator tape to avoid any contact and soldered the pins on the other side of the board.
57+
- Solder the ESP8266 before the remaining pinouts to have more space.
58+
- Finish the soldering by adding the remaining pins and the USB port.
59+
- The atmega32u4 can be soldered directly on top of the UBERHid PCB, although some jumper cables can also be used to make it possible to reuse it to other projects.
60+
- Clean the board using isopropyl alcohol.
61+
62+
## How to program the devices
63+
64+
### Using [Platformio](https://platformio.org/)
65+
66+
#### ESP8266
67+
68+
0. Connect the FTDI to the PCB pins as depicted in the wiring scheme above.
69+
1. GPIO0 is needs to be grounded to get into programming mode.
70+
2. Uncomment the follwing lines in ```platformio.ini```:
71+
```yaml
72+
src_dir = ${workspacedir}/firmware/UberHID-ESPUSB/.
73+
data_dir = ${workspacedir}/firmware/UberHID-ESPUSB/data/.
74+
```
75+
3. ```$ platformio run -e esp12e``` _sanity check_
76+
4. ```$ platformio run -e esp12e --target upload --upload-port <dev/ttyUSB*>``` _uploads firmware_
77+
- Replace ```<dev/ttyUSB*>``` with your device, _e.g._: ```dev/ttyUSB0```
78+
5. ```$ pio run -e esp12e --target uploadfs --upload-port <dev/ttyUSB*>``` _uploads filesystem (data folder)_
79+
- Replace ```<dev/ttyUSB*>``` with your device, _e.g._: ```dev/ttyUSB0```
80+
81+
#### Arduino Leonardo (atmega32u4)
82+
83+
0. Plug-in the Arduino Leonardo in one of the computer USB ports.
84+
1. Uncomment the follwing line in ```platformio.ini```:
85+
```yaml
86+
src_dir = ${workspacedir}/firmware/UberHID-Leonardo/.
87+
```
88+
2. ```$ platformio run -e leonardo``` _sanity check_
89+
3. ```$ platformio run -e leonardo --target upload --upload-port <dev/ttyACM*>```
90+
- Replace ```<dev/ttyACM*>``` with your device, _e.g._: ```dev/ttyACM0```
91+
92+
93+
## How to use it?
94+
95+
0. Connect the device between a keyboard and a computer.
96+
```
97+
---------- --------- ----------
98+
|Keyboard| <-> |UBERHid| <-> |Computer|
99+
---------- --------- ----------
100+
```
101+
1. Connect to the device access point.
102+
- It can be visible or hidden depending on the configuration on file ```Config.h``` in ```firmware/UberHID-ESPUSB```. Other configurations available are the access point name and password.
103+
104+
```C
105+
#define WIFISSID "UBERHID"
106+
#define WIFIPASS "uberidiota"
107+
#define WIFICHANNEL 7
108+
#define WIFISSIDHIDDEN 0 // 0 for not hidden
109+
```
110+
2. Navigate to ```192.168.4.1```
111+
112+
![UBERHid Homepage](docs/page.png)
113+
114+
3. You can see the keystrokes in realtime and inject keyboard and mouse commands. Also, you can RickRoll your friends.
File renamed without changes.

docs/logo/logo-small.png

8.63 KB
Loading
File renamed without changes.

logo/logo.png docs/logo/logo.png

File renamed without changes.

docs/page.png

75.7 KB
Loading

docs/pcb.png

40.2 KB
Loading

docs/pics/back.jpg

587 KB
Loading

docs/pics/devices.jpg

550 KB
Loading

docs/pics/front.jpg

398 KB
Loading

docs/pics/parts.jpg

1.53 MB
Loading

docs/pics/voltage.jpg

2.32 MB
Loading

docs/pics/wiring.jpg

1.21 MB
Loading

docs/uberhid-schematic.png

100 KB
Loading

docs/wiring.png

303 KB
Loading

firmware/UberHID-ESPUSB/Config.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
#define WIFISSID "UBERHID"
55
#define WIFIPASS "uberidiota"
66
#define WIFICHANNEL 7
7-
#define WIFISSIDHIDDEN 1 // 0 for not hidden
7+
#define WIFISSIDHIDDEN 0 // 0 for not hidden
88

99
#define OTANAME "uberhid-iota"
1010
#define OTAPASS "uberidiota"

firmware/UberHID-Leonardo/UberHID-Leonardo.ino

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include "SPI.h"
12
#include "Keyb.h"
23
#include "Mouse.h"
34

platformio.ini

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
;PlatformIO Project Configuration File
2+
;
3+
; Build options: build flags, source filter
4+
; Upload options: custom upload port, speed and extra flags
5+
; Library options: dependencies, extra library storages
6+
; Advanced options: extra scripting
7+
;
8+
; Please visit documentation for the other options and examples
9+
; https://docs.platformio.org/page/projectconf.html
10+
11+
[platformio]
12+
;src_dir = ${workspacedir}/firmware/UberHID-Leonardo/.
13+
src_dir = ${workspacedir}/firmware/UberHID-ESPUSB/.
14+
data_dir = ${workspacedir}/firmware/UberHID-ESPUSB/data/.
15+
16+
[env:esp12e]
17+
platform = espressif8266
18+
board = esp12e
19+
framework = arduino
20+
upload_protocol = esptool
21+
lib_deps =
22+
USB-Host-Shield-20
23+
24+
[env:leonardo]
25+
platform = atmelavr
26+
board = leonardo
27+
framework = arduino
28+
lib_deps =
29+
USB-Host-Shield-20
30+
Mouse

0 commit comments

Comments
 (0)