evilsocket / pwnagotchi

(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFi pwning.
https://pwnagotchi.ai/
Other
7.7k stars 1.16k forks source link

[BUG] USB Wifi Dies around 45-60 minutes (RPI 4; Pwn 1.55) #1110

Open imthisguymike opened 2 years ago

imthisguymike commented 2 years ago

Describe the bug USB Wifi Dies around 45-60 minutes (RPI 4; Pwn 1.55) - Basically using 3 different USB wifi adapters (since the built-in RPI 4 wireless doesn't work). All 3 initially work fine, but then "die".

To Reproduce Steps to reproduce the behavior:

  1. Run for about 45-60 minutes, then pwnagotchi does not see any wireless networks and gets bored.
  2. To resolve, reboot and it is fine.

Expected behavior Expected that it will continue to work without needing a reboot after 45-60 minutes.

Environment (please complete the following information):

lucidyan commented 2 years ago

I'm trying to solve same problem for myself, but I have some mix of different errors, according to /var/log/pwnagotchi.log logs. Can you attach yours?

imthisguymike commented 2 years ago

When pwnagotchi is mad and it's not showing APs:

[2022-08-03 19:23:21,391] [INFO] [ai] saving model to /root/brain.nn ...
[2022-08-03 19:23:21,459] [INFO] [ai] saving /root/brain.json
[2022-08-03 19:23:21,517] [INFO] [ai] setting new policy:
[2022-08-03 19:23:21,517] [INFO] [ai] ! min_rssi: -152 -> -97
[2022-08-03 19:23:21,517] [INFO] [ai] ! ap_ttl: 166 -> 92
[2022-08-03 19:23:21,517] [INFO] [ai] ! sta_ttl: 225 -> 153
[2022-08-03 19:23:21,517] [INFO] [ai] ! recon_time: 56 -> 7
[2022-08-03 19:23:21,518] [INFO] [ai] ! min_recon_time: 23 -> 17
[2022-08-03 19:23:21,518] [INFO] [ai] ! max_interactions: 19 -> 14
[2022-08-03 19:23:21,518] [INFO] [ai] ! max_misses_for_recon: 3 -> 10
[2022-08-03 19:23:21,518] [INFO] [ai] ! excited_num_epochs: 8 -> 17
[2022-08-03 19:23:21,518] [INFO] [ai] ! bored_num_epochs: 21 -> 7
[2022-08-03 19:23:21,518] [INFO] [ai] ! sad_num_epochs: 16 -> 9
[2022-08-03 19:23:21,519] [INFO] [ai] ! channels: [4, 6, 7, 8, 10, 11, 13, 40, 44, 48, 64, 100, 104, 124, 132, 140] -> [1, 3, 8, 9, 12, 36, 48, 52, 104, 112, 116, 120, 124, 136, 140]
[2022-08-03 19:23:39,286] [INFO] [epoch 899] duration=00:00:17 slept_for=00:00:07 blind=17 sad=11 bored=0 inactive=32 active=0 peers=0 tot_bond=0.00 avg_bond=0.00 hops=0 missed=0 deauths=0 assocs=0 handshakes=0 cpu=0% mem=20% temperature=43C reward=-0.01$
[2022-08-03 19:23:39,287] [WARNING] 32 epochs with no activity -> angry
[2022-08-03 19:23:39,287] [INFO] [ai] --- training epoch 25/50 ---
[2022-08-03 19:23:39,290] [INFO] [ai] REWARD: -0.015222
[2022-08-03 19:23:39,290] [INFO] [ai] observation:
[2022-08-03 19:23:39,291] [INFO]     aps
[2022-08-03 19:23:39,291] [INFO]     sta
[2022-08-03 19:23:39,291] [INFO]     peers

After I reboot:

[2022-08-03 19:34:37,745] [INFO] [ai] saving model to /root/brain.nn ...
[2022-08-03 19:34:38,262] [INFO] [ai] saving /root/brain.json
[2022-08-03 19:34:45,214] [INFO] [ai] setting new policy:
[2022-08-03 19:34:45,214] [INFO] [ai] ! min_rssi: -196 -> -58
[2022-08-03 19:34:45,214] [INFO] [ai] ! ap_ttl: 490 -> 375
[2022-08-03 19:34:45,215] [INFO] [ai] ! sta_ttl: 79 -> 200
[2022-08-03 19:34:45,215] [INFO] [ai] ! recon_time: 51 -> 29
[2022-08-03 19:34:45,215] [INFO] [ai] ! max_inactive_scale: 4 -> 7
[2022-08-03 19:34:45,215] [INFO] [ai] ! recon_inactive_multiplier: 3 -> 1
[2022-08-03 19:34:45,215] [INFO] [ai] ! hop_recon_time: 58 -> 7
[2022-08-03 19:34:45,215] [INFO] [ai] ! min_recon_time: 20 -> 5
[2022-08-03 19:34:45,216] [INFO] [ai] ! max_interactions: 12 -> 16
[2022-08-03 19:34:45,216] [INFO] [ai] ! max_misses_for_recon: 3 -> 5
[2022-08-03 19:34:45,216] [INFO] [ai] ! excited_num_epochs: 28 -> 23
[2022-08-03 19:34:45,218] [INFO] [ai] ! bored_num_epochs: 25 -> 5
[2022-08-03 19:34:45,219] [INFO] [ai] ! sad_num_epochs: 7 -> 19
[2022-08-03 19:34:45,219] [INFO] [ai] ! channels: [1, 3, 4, 5, 6, 9, 10, 13, 36, 56, 60, 104, 116, 136] -> [2, 4, 5, 6, 8, 10, 13, 36, 52, 64, 104, 108, 116, 124, 128, 136, 140]
[2022-08-03 19:35:29,256] [INFO] sending association frame to UniversityHill_Unit (54:ec:2f:a8:16:f8 Ruckus Wireless) on channel 6 [0 clients], -44 dBm...
[2022-08-03 19:35:29,293] [INFO] sending association frame to UniversityHill_Unit (20:58:69:88:fd:38 Ruckus Wireless) on channel 6 [0 clients], -56 dBm...
[2022-08-03 19:35:29,333] [INFO] sending association frame to DIRECT-E6-HP ENVY 5540 series (fc:3f:db:c6:e0:e7 Hewlett Packard) on channel 6 [0 clients], -71 dBm...
[2022-08-03 19:35:29,379] [INFO] sending association frame to UniversityHill_Staff (20:58:69:48:fd:38 Ruckus Wireless) on channel 6 [0 clients], -56 dBm...
[2022-08-03 19:35:29,441] [INFO] sending association frame to TG1672G82 (98:6b:3d:63:82:80 ARRIS Group, Inc.) on channel 6 [0 clients], -74 dBm...
[2022-08-03 19:35:29,484] [INFO] sending association frame to UniversityHill_Staff (54:ec:2f:68:16:f8 Ruckus Wireless) on channel 6 [0 clients], -44 dBm...
[2022-08-03 19:35:29,505] [INFO] waiting for 5s on channel 6 ...
[2022-08-03 19:35:34,639] [INFO] CHANNEL 36
[2022-08-03 19:35:34,652] [INFO] 3 access points on channel 36
[2022-08-03 19:35:34,705] [INFO] sending association frame to UniversityHill_Staff (20:58:69:48:fb:1c Ruckus Wireless) on channel 36 [0 clients], -81 dBm...
[2022-08-03 19:35:34,789] [INFO] sending association frame to UniversityHill_Staff (54:ec:2f:68:16:fc Ruckus Wireless) on channel 36 [0 clients], -66 dBm...
[2022-08-03 19:35:34,876] [INFO] sending association frame to UniversityHill_Unit (54:ec:2f:a8:16:fc Ruckus Wireless) on channel 36 [0 clients], -66 dBm...
[2022-08-03 19:35:35,022] [INFO] [epoch 3] duration=00:00:57 slept_for=00:00:56 blind=0 sad=0 bored=0 inactive=0 active=3 peers=0 tot_bond=0.00 avg_bond=0.00 hops=2 missed=0 deauths=0 assocs=9 handshakes=0 cpu=4% mem=20% temperature=45C reward=0.15142857$
[2022-08-03 19:35:35,024] [INFO] [ai] --- training epoch 2/50 ---
[2022-08-03 19:35:35,027] [INFO] [ai] REWARD: 0.151429
[2022-08-03 19:35:35,030] [INFO] [ai] observation:
[2022-08-03 19:35:35,030] [INFO]     aps
[2022-08-03 19:35:35,031] [INFO]       CH 1: 0.14814814814759947
[2022-08-03 19:35:35,033] [INFO]       CH 6: 0.2222222222213992
[2022-08-03 19:35:35,034] [INFO]       CH 11: 0.2222222222213992
[2022-08-03 19:35:35,034] [INFO]       CH 36: 0.1111111111106996
[2022-08-03 19:35:35,035] [INFO]       CH 44: 0.2222222222213992
[2022-08-03 19:35:35,035] [INFO]       CH 48: 0.07407407407379973
[2022-08-03 19:35:35,036] [INFO]     sta
[2022-08-03 19:35:35,036] [INFO]       CH 11: 0.9999999999
[2022-08-03 19:35:35,037] [INFO]     peers
lucidyan commented 2 years ago

Hmm, very clean logs (but unfortunately not complete, it is also recommended to erase MAC addresses and Wi-Fi names with RegExp). In my case, the Watchdog module reboots the system when it can't switch a channel due to a blind-bug in the nextmon drivers. In logs there no messages before this event!

Also, maybe this is normal behaviour and there aren't too many networks around you?

amenekowo commented 2 years ago

Me too, but maybe different problems. I run pwnagotchi on Rpi4 too, but randomly it couldn't find mon0 for no reason. In log:

[2022-08-20 16:13:10,603] [INFO] sending association frame to xxx (xx:xx:xx:xx:xx:xx Huawei Device Co., Ltd.) on channel 6 [0 cliet], -60 dBm...
[2022-08-20 16:13:10,624] [INFO] error 400: could not find interface mon0: no interface matching 'mon0' found.

lsusb still shows my network card (ASUS USB-AC55, MT7612UN) and dmesg doesn't show any related information.

And also it will blind as this issue mentioned.

More details lsusb Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 004: ID 0b05:17eb ASUSTek Computer, Inc. USB-AC55 802.11a/b/g/n/ac Wireless Adapter [MediaTek MT7612U] Bus 001 Device 003: ID 1546:01a8 U-Blox AG [u-blox 8] Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub session log [2022-08-20 16:08:57,887] [INFO] Watchdog plugin loaded. [2022-08-20 16:08:57,887] [INFO] gps plugin loaded for /dev/ttyACM0 [2022-08-20 16:08:57,888] [INFO] Logtail plugin loaded. [2022-08-20 16:08:57,888] [INFO] [update] plugin loaded. [2022-08-20 16:08:57,889] [INFO] [HandshakesDL] plugin loaded [2022-08-20 16:08:57,889] [INFO] grid plugin loaded. [2022-08-20 16:08:57,890] [INFO] memtemp plugin loaded. [2022-08-20 16:08:57,890] [INFO] Session-stats plugin loaded. [2022-08-20 16:08:57,895] [INFO] webcfg: Plugin loaded. [2022-08-20 16:08:57,895] [INFO] [webgpsmap]: plugin loaded [2022-08-20 16:08:57,903] [INFO] [pisugar2] plugin loaded. [2022-08-20 16:10:54,040] [INFO] BT-TETHER: Successfully loaded ... [2022-08-20 16:10:54,044] [WARNING] ui.fps is 0, the display will only update for major changes [2022-08-20 16:10:54,046] [INFO] initializing waveshare v2 display [2022-08-20 16:09:03,745] [INFO] [ai] loading /root/brain.json [2022-08-20 16:09:03,820] [INFO] neko@-(v1.5.5) [2022-08-20 16:09:03,827] [INFO] entering auto mode ... [2022-08-20 16:09:03,843] [INFO] [ai] bootstrapping dependencies ... [2022-08-20 16:09:04,023] [INFO] web ui available at http://0.0.0.0:8080/ [2022-08-20 16:09:04,075] [INFO] connecting to http://localhost:8081/api ... [2022-08-20 16:09:04,452] [INFO] found monitor interface: mon0 [2022-08-20 16:09:04,453] [INFO] supported channels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 36, 40, 44, 48, 52, 56, 60, 64,$ [2022-08-20 16:09:04,454] [INFO] handshakes will be collected inside /root/handshakes [2022-08-20 16:09:06,034] [INFO] [epoch 0] duration=00:00:02 slept_for=00:00:00 blind=0 sad=0 bored=0 inactive=1 active=0 peers=0 to$ [2022-08-20 16:09:06,050] [INFO] enabling bettercap's gps module for /dev/ttyACM0 [2022-08-20 16:09:06,371] [INFO] error 400: module gps is not running [2022-08-20 16:09:20,980] [INFO] [ai] creating model ... (pwning) [2022-08-20 16:11:15,090] [INFO] [ai] loading /root/brain.nn ... [2022-08-20 16:12:36,693] [INFO] [epoch 2] duration=00:02:13 slept_for=00:01:27 blind=0 sad=0 bored=0 inactive=0 active=2 peers=0 to$[2022-08-20 16:13:05,455] [INFO] [ai] learning for 50 epochs ... [2022-08-20 16:13:08,953] [INFO] [ai] setting new policy: [2022-08-20 16:13:08,958] [INFO] [ai] ! min_rssi: -116 -> -172 [2022-08-20 16:13:08,964] [INFO] [ai] ! ap_ttl: 367 -> 94 [2022-08-20 16:13:08,970] [INFO] [ai] ! sta_ttl: 268 -> 150 [2022-08-20 16:13:08,975] [INFO] [ai] ! recon_time: 13 -> 43 [2022-08-20 16:13:08,981] [INFO] [ai] ! max_inactive_scale: 5 -> 9 [2022-08-20 16:13:08,987] [INFO] [ai] ! hop_recon_time: 22 -> 13 [2022-08-20 16:13:08,992] [INFO] [ai] ! min_recon_time: 10 -> 19 [2022-08-20 16:13:08,998] [INFO] [ai] ! max_interactions: 3 -> 24 [2022-08-20 16:13:09,003] [INFO] [ai] ! max_misses_for_recon: 7 -> 8 [2022-08-20 16:13:09,009] [INFO] [ai] ! excited_num_epochs: 24 -> 15 [2022-08-20 16:13:09,015] [INFO] [ai] ! bored_num_epochs: 25 -> 12 [2022-08-20 16:13:09,020] [INFO] [ai] ! sad_num_epochs: 12 -> 14 [2022-08-20 16:13:09,026] [INFO] [ai] ! channels: [4, 6, 9, 11, 13, 40, 44, 52, 56, 64, 104, 108, 112, 116, 120, 128] -> [1, 3, 4, 5 [2022-08-20 16:13:10,603] [INFO] sending association frame to - (- Huawei Device Co., Ltd.) on channel 6 [0 clie$ [2022-08-20 16:13:10,624] [INFO] error 400: could not find interface mon0: no interface matching 'mon0' found.

Environment: Pwnagotchi 1.5.5 (DrSchottky build), Raspberry Pi 4B, Waveshare 2.13 V2, U-blox M8, ASUS USB-AC55