DNS-DriveBy
DNS-DriveBy copied to clipboard
Make file has a large error in the middle and DNS driveby device doesn't appear to be working
Make file doesn't seem to be compiling properly. There is a large error in the middle of it. I've removed the first line because that's where my canary token was.
/dev/ttyUSB0
docker build . --file Dockerfile --tag dnsdriveby
Sending build context to Docker daemon 6.028MB
Step 1/13 : FROM debian:buster
---> 1df4474660a1
Step 2/13 : WORKDIR /app
---> Using cache
---> 3af0c3010f0f
Step 3/13 : RUN apt-get update && apt-get install -y wget zip bsdmainutils xz-utils python3 python3-pip
---> Using cache
---> f7580d533307
Step 4/13 : RUN pip3 install pyserial esptool
---> Using cache
---> 368dbff43fa9
Step 5/13 : ARG ARDUINO_CLI_VERSION=0.22.0
---> Using cache
---> cefe3101a8a5
Step 6/13 : RUN wget https://github.com/arduino/arduino-cli/releases/download/${ARDUINO_CLI_VERSION}/arduino-cli_${ARDUINO_CLI_VERSION}_Linux_64bit.tar.gz
---> Using cache
---> 5e428f1e8f7c
Step 7/13 : RUN tar -xf arduino-cli_${ARDUINO_CLI_VERSION}_Linux_64bit.tar.gz
---> Using cache
---> 9a8a94be1593
Step 8/13 : COPY arduino-cli.yaml .
---> Using cache
---> ac22cffd6da0
Step 9/13 : RUN ./arduino-cli core update-index --config-file arduino-cli.yaml
---> Using cache
---> 9dadae9f6389
Step 10/13 : RUN ./arduino-cli core install esp8266:esp8266
---> Using cache
---> 9bee0dacb8a9
Step 11/13 : RUN ./arduino-cli lib install "ESP8266 and ESP32 OLED driver for SSD1306 displays" "Adafruit NeoPixel" "TinyGPSPlus"
---> Using cache
---> 86081f71a674
Step 12/13 : COPY Demo ./Demo
---> Using cache
---> a2349dab70b3
Step 13/13 : RUN ./arduino-cli compile -b esp8266:esp8266:d1_mini Demo
---> Running in 7c24961c92c5
In file included from /app/Demo/Demo.ino:4:
/app/Demo/Scan.h: In function 'uint8_t initGPS()':
/app/Demo/Scan.h:46:20: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
46 | drawMockup("...","...",0,0,0,0,"Waiting for GPS ...");
| ^~~~~
/app/Demo/Scan.h:46:26: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
46 | drawMockup("...","...",0,0,0,0,"Waiting for GPS ...");
| ^~~~~
/app/Demo/Scan.h:46:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
46 | drawMockup("...","...",0,0,0,0,"Waiting for GPS ...");
| ^~~~~~~~~~~~~~~~~~~~~
In file included from /app/Demo/Demo.ino:4:
/app/Demo/Scan.h:66:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
66 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"GPS SUCCESS");
| ^~~~~~~~~~~~~
/app/Demo/Scan.h:69:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
69 | drawMockup("...","...",0,0,0,0,"GPS NOT DETECTED");
| ^~~~~
/app/Demo/Scan.h:69:22: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
69 | drawMockup("...","...",0,0,0,0,"GPS NOT DETECTED");
| ^~~~~
/app/Demo/Scan.h:69:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
69 | drawMockup("...","...",0,0,0,0,"GPS NOT DETECTED");
| ^~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h: In function 'bool connectToOpen()':
/app/Demo/Scan.h:165:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
165 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"No open nets found :(");
| ^~~~~~~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:170:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
170 | drawMockup(currentGPS,currTime,sats,nets,reqs,openNets,"Open nets found!");
| ^~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:182:64: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
182 | drawMockup(currentGPS,currTime,sats,nets,reqs,openNets,"Attemping to connect...");
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:193:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
193 | drawMockup(currentGPS,currTime,sats,nets,reqs,openNets,"Failed to connect :(");
| ^~~~~~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:214:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
214 | drawMockup(currentGPS,currTime,sats,nets,reqs,openNets,"CONNECTED TO NET");
| ^~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:218:72: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
218 | drawMockup(currentGPS,currTime,sats,nets,reqs,openNets,"COULDN'T CONNECT");
| ^~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h: In function 'void encodeB32()':
/app/Demo/Scan.h:237:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
237 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"Making request...");
| ^~~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h: In function 'bool dnsRequest(char*, uint8_t)':
/app/Demo/Scan.h:275:115: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
275 | if (dnsRequestSuccess) {Serial.println("[+] Success!"); drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"DNS SUCCESS");}
| ^~~~~~~~~~~~~
/app/Demo/Scan.h:276:117: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
276 | else { Serial.println("[-] Failed :("); drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"DNS FAILED :(");}
| ^~~~~~~~~~~~~~~
/app/Demo/Scan.h: In function 'void makeDNSRequest()':
/app/Demo/Scan.h:299:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
299 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"DNS FAILED :(");
| ^~~~~~~~~~~~~~~
/app/Demo/Scan.h:308:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
308 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"DNS SUCCESS");
| ^~~~~~~~~~~~~
/app/Demo/Scan.h: In function 'char* getEncryption(uint8_t)':
/app/Demo/Scan.h:320:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
320 | return "WEP"; // WEP
| ^~~~~
/app/Demo/Scan.h:322:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
322 | return "WPA"; // WPA
| ^~~~~
/app/Demo/Scan.h:324:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
324 | return "WPA2"; // WPA2
| ^~~~~~
/app/Demo/Scan.h:326:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
326 | return "NONE"; // NONE
| ^~~~~~
/app/Demo/Scan.h:328:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
328 | return "AUTO"; // AUTO
| ^~~~~~
/app/Demo/Scan.h:330:10: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
330 | return "AUTO"; // AUTO / fail case
| ^~~~~~
/app/Demo/Scan.h: In function 'void dnsDriveby()':
/app/Demo/Scan.h:347:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
347 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"Scanning WiFi...");
| ^~~~~~~~~~~~~~~~~~
/app/Demo/Scan.h:353:59: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
353 | drawMockup(currentGPS,currTime,sats,nets,reqs,opn,"None found :(");
| ^~~~~~~~~~~~~~~
/app/Demo/Scan.h:359:73: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
359 | drawMockup(currentGPS,currTime,tinyGPS.satellites.value(),0,0,0,"Connecting to:");
| ^~~~~~~~~~~~~~~~
. Variables and constants in RAM (global, static), used 32756 / 80192 bytes (40%)
║ SEGMENT BYTES DESCRIPTION
╠══ DATA 3584 initialized variables
╠══ RODATA 2060 constants
╚══ BSS 27112 zeroed variables
. Instruction RAM (IRAM_ATTR, ICACHE_RAM_ATTR), used 62559 / 65536 bytes (95%)
║ SEGMENT BYTES DESCRIPTION
╠══ ICACHE 32768 reserved space for flash instruction cache
╚══ IRAM 29791 code in IRAM
. Code in flash (default, ICACHE_FLASH_ATTR), used 266432 / 1048576 bytes (25%)
║ SEGMENT BYTES DESCRIPTION
╚══ IROM 266432 code in flash
Removing intermediate container 7c24961c92c5
---> cd1ad2bf1a00
Successfully built cd1ad2bf1a00
Successfully tagged dnsdriveby:latest
docker create --name dnsdriveby-1692150741 --device=/dev/ttyUSB0 -t dnsdriveby:latest
2881b3bc5ee5ef3e654e9811f7fcdf4bf9b6c31b4a86d635b5bd989ed60e95b0
docker start dnsdriveby-1692150741
dnsdriveby-1692150741
docker exec dnsdriveby-1692150741 bash -c \
'./arduino-cli upload -b esp8266:esp8266:d1_mini --port /dev/ttyUSB0 Demo/ && sleep 2'
esptool.py v3.0
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 48:e7:29:55:7b:6d
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 306016 bytes to 221358...
Writing at 0x00000000... (7 %)
Writing at 0x00004000... (14 %)
Writing at 0x00008000... (21 %)
Writing at 0x0000c000... (28 %)
Writing at 0x00010000... (35 %)
Writing at 0x00014000... (42 %)
Writing at 0x00018000... (50 %)
Writing at 0x0001c000... (57 %)
Writing at 0x00020000... (64 %)
Writing at 0x00024000... (71 %)
Writing at 0x00028000... (78 %)
Writing at 0x0002c000... (85 %)
Writing at 0x00030000... (92 %)
Writing at 0x00034000... (100 %)
Wrote 306016 bytes (221358 compressed) at 0x00000000 in 5.2 seconds (effective 474.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
docker rm --force dnsdriveby-1692150741
dnsdriveby-1692150741
Other than this error, everything else seems to compile and load onto the DNS driveby without error.
I tried running the DNS driveby on my drive to work (plenty of open wifi networks on the way) after compiling and I didn't receive anything. I was powering it via USB-C and I could see the blue light flashing, but I'm not sure how to access the logs so I don't have any other way to diagnose what the error is.
Happy to do further troubleshooting with some guidance!