FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Marlen am 14 Februar 2019, 20:34:40

Titel: WLAN Sniffer an MQTT
Beitrag von: Marlen am 14 Februar 2019, 20:34:40
Hallo,

ich bin zufällig auf dieses Projekt gestoßen:
https://github.com/SensorsIot/Wi-Fi-Sniffer-as-a-Human-detector (https://github.com/SensorsIot/Wi-Fi-Sniffer-as-a-Human-detector)

Hab das gleich mal auf einen WEMOS geflasht. Scheint soweit auch zu laufen, nur bekomme ich nichts in FHEM rein!

Ich hab in FHEM eine MQTT-Broker (den brauch ich ja schon für andere Sonoff's).

Im Serial Monitor seh ich z.B. das:

IP address:
192.168.178.45
Connecting to MQTT...
connected

number of devices: 32
{
  "MAC": [
    "c0:25:06:e4:55:4c",
    "88:71:e5:b0:8a:cf",
    "c0:25:06:e4:55:4a",
    "b8:27:eb:cd:ca:99",
    "5c:f6:dc:a4:b6:ec",
    "78:11:dc:eb:83:06",
    "b4:9d:0b:5d:37:a5",
    "84:f3:eb:b1:96:82",
    "da:a1:19:de:0e:f9",
    "da:a1:19:9a:7d:c0",
    "da:a1:19:a2:ca:d7",
    "da:a1:19:11:55:78",
    "da:a1:19:85:5a:d9",
    "00:08:22:ee:b4:10",
    "da:a1:19:33:b8:6a",
    "da:a1:19:14:94:0a",
    "da:a1:19:6e:87:20",
    "da:a1:19:18:2f:79",
    "da:a1:19:d3:41:89",
    "da:a1:19:3c:9d:bc",
    "da:a1:19:4d:b4:71",
    "da:a1:19:0a:b5:45",
    "da:a1:19:1f:2a:83",
    "da:a1:19:cf:13:60",
    "da:a1:19:ff:33:f3",
    "da:a1:19:48:dc:c7",
    "da:a1:19:ab:22:df",
    "da:a1:19:af:8d:c9",
    "da:a1:19:84:2e:33",
    "da:a1:19:e3:58:ec",
    "da:a1:19:b3:65:0d",
    "da:a1:19:f8:21:63"
  ]
}Successfully published


Was muss ich jetzt in FHEM machen, dass ich da was rein bekomme??

LG
   Marlen
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 21:01:45
Hi Marlen,

welchen Broker nimmst Du denn?

Erstmal müsste geprüft werden, ob überhaupt etwas ankommt:

mosquitto_pub -h $IP_deines_MQTT_BROKER -p 1883 -t sniffer/#

(Port oben im Beispiel 1883 und keine Benutzerauthentisierung, ggf. mosquitto_pub nachinstallieren)

Falls das MQTT-Topic ein anderes ist, erst einmal mit folgenden Beispiel gucken:

mosquitto_pub -h $IP_deines_MQTT_BROKER -p 1883 -t \#

Falls dann immer noch nichts zu sehen ist, würde ich einen sniffer - bspw. tcpdump - anschmeissen:

sudo tcpdump -i $INTERFACE-NAME -v -n -e -X -s 0 'host $IP_DEINES_ESPs'

(Beispiel oben falls Du sudo benutzen solltest, das Interface ist dann bspw. eth0 oder wlan0, die IP findest Du in den DHCP Logs oder Du ggf. in der seriellen Konsole des ESPs - ggf. Code anpassen. Das Ganze auch auf dem Broker ausführen).

Mit dem Dump würden wir sicherstellen, ob es überhaupt in irgendeiner Art $Input gibt.

Später müsste ggf. noch das JSON angepasst / abgegriffen werden.

Viele Grüße,
dmq
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 14 Februar 2019, 21:18:27
Da kommt ...
pi@raspberrypi:~ $ mosquitto_pub -h $192.168.178.150 -p 1883 -t \#
Error: Both topic and message must be supplied.
mosquitto_pub is a simple mqtt client that will publish a message on a single topic and exit.
mosquitto_pub version 1.3.4 running on libmosquitto 1.3.4.


???
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 21:28:33
Zitatmosquitto_pub -h $192.168.178.150 -p 1883 -t \#

Mach mal bitte das $-Zeichen vor der IP Weg.
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 21:35:12
Übrigens auch ein cooles Projekt, welches ich leider noch nicht zum laufen gebracht habe:

https://github.com/ETS-PoliTO/esp32-sniffer

Das basiert auf einem ESP32 ist multitasking-fähig und stellt auch die Probe-Requests parallel per mqtt da. Die MAC-Adressen von vielen Geräten werden ja randomisiert so dass ein Tracking nicht ohne weiteres möglich ist. Die Probe-Request sind allerdings ein wiedererkennbarer Faktor. Falls ein Einbrecher ein Mobilfunkgerät dabei hat, könnte man so ggf. sehen, mit welchen WLAN sie oder er verbunden war. Das Projekt von Andreas Spiess ist aber bestimmt auch anpassbar - der ESP32 hat allerdings mehr Power und mit dem Multitasking kann man einen Sniffer Task und einen sendenen Task "gleichzeitig" laufen lassen.
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 14 Februar 2019, 21:37:59
Zitat von: dmq am 14 Februar 2019, 21:28:33
Mach mal bitte das $-Zeichen vor der IP Weg.

Hab ich gerade auch bemerkt, geht aber auch nicht!

pi@raspberrypi:~ $ mosquitto_pub -h 192.168.178.150 -p 1883 -t \#
Error: Both topic and message must be supplied.
mosquitto_pub is a simple mqtt client that will publish a message on a single topic and exit.
mosquitto_pub version 1.3.4 running on libmosquitto 1.3.4.



Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 14 Februar 2019, 21:41:27
Zitat von: dmq am 14 Februar 2019, 21:35:12
Das basiert auf einem ESP32 ist multitasking-fähig und stellt auch die Probe-Requests parallel per mqtt da. Die MAC-Adressen von vielen Geräten werden ja randomisiert so dass ein Tracking nicht ohne weiteres möglich ist. Die Probe-Request sind allerdings ein wiedererkennbarer Faktor. Falls ein Einbrecher ein Mobilfunkgerät dabei hat, könnte man so ggf. sehen, mit welchen WLAN sie oder er verbunden war. Das Projekt von Andreas Spiess ist aber bestimmt auch anpassbar - der ESP32 hat allerdings mehr Power und mit dem Multitasking kann man einen Sniffer Task und einen sendenen Task "gleichzeitig" laufen lassen.

Dachte die MAC ist fest.... :-\
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Wuppi68 am 14 Februar 2019, 21:46:12
das Topic lautet:

Sniffer

also auf Sniffer subscriben .... und wenn dort nix kütt noch in der pubsub die Änderungen machen und neu kompilieren

hier der Auszug aus dem Repository

if (client.publish("Sniffer", jsonString) == 1) Serial.println("Successfully published");
  else {
    Serial.println();
    Serial.println("!!!!! Not published. Please add #define MQTT_MAX_PACKET_SIZE 2048 at the beginning of PubSubClient.h file");
    Serial.println();
  }
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 22:13:35
Wuppi hat recht "Sniffer" und nicht wie von mir geschrieben "sniffer".

ZitatDachte die MAC ist fest....

In bestimmten, immer weniger werdenden, Geräten ist die auch noch fest.

Bei Apple seit IOS8 nicht mehr:

https://nabla-c0d3.github.io/blog/2015/06/16/ios9-security-privacy/

Beim Androiden (oder Abkömmling) kam es dann etwas später dazu.



Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 22:17:38
Ich hatte noch einen Parameter vergessen.

Setze mal bitte noch ein -d + -v ein also bspw.:

mosquitto_sub -d -v -h 127.0.0.1 -p 1883 -t /Sniffer/#
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 14 Februar 2019, 22:28:51
Ahhhh......
pi@raspberrypi:~ $ mosquitto_sub -d -v -h 192.168.178.150 -p 1883 -t /Sniffer/#
Client mosqsub/17337-raspberry sending CONNECT
Client mosqsub/17337-raspberry received CONNACK
Client mosqsub/17337-raspberry sending SUBSCRIBE (Mid: 1, Topic: /Sniffer/#, QoS: 0)
Client mosqsub/17337-raspberry received SUBACK
Subscribed (mid: 1): 0
Client mosqsub/17337-raspberry received PUBLISH (d0, q0, r0, m0, 'Sniffer', ... (689 bytes))
Sniffer {"MAC":["c0:25:06:e4:55:4c","88:71:e5:b0:8a:cf","60:01:94:9d:7c:b7","40:b4:cd:e1:fb:98","20:16:d8:a9:b1:a1","c0:25:06:e4:55:4a","5c:f6:dc:a4:b6:ec","22:16:d8:a9:b1:a1","b8:27:eb:cd:ca:99","84:f3:eb:b1:96:82","78:11:dc:eb:83:06","00:bb:3a:53:c1:6b","b4:9d:0b:58:a5:2c","b4:9d:0b:5d:37:a5","da:a1:19:2d:8c:d7","da:a1:19:92:0a:38","da:a1:19:af:3a:b0","00:08:22:ee:b4:10","da:a1:19:d1:6e:57","da:a1:19:b9:ab:b2","da:a1:19:28:a1:8a","da:a1:19:75:b6:1d","da:a1:19:f4:7b:f0","da:a1:19:8a:34:52","da:a1:19:d9:4c:a8","da:a1:19:08:8d:67","da:a1:19:88:1a:ff","da:a1:19:8e:1d:fd","da:a1:19:6c:9e:f9","da:a1:19:2b:57:15","da:a1:19:91:0a:72","da:a1:19:26:85:3c","da:a1:19:59:11:13","da:a1:19:b4:45:20"]}


Was brauch ich jetzt in FHEM um das irgendwie weiter zu verarbeiten?

LG
  Marlen
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: dmq am 14 Februar 2019, 22:51:35
Sehr gut  ;D

Das kommt ein bißchen darauf an, welchen Broker (Mosquitto, MQTT2 von fhem, ...) Du hast? Da die Sonoffs ja schon einsetzt, kannst Du als Beispiel nehmen und dann folgendes Reading als Attribut anlegen.

autoSubscribeReadings Sniffer/+/#

Ggf. muss Du aber auch noch mit expandJSON arbeiten. Oder Du schreibst den ESP-Code so um, dass es kein JSON sendet - expandJSON ist wahrscheinlich schneller zu erreichen(?).

https://fhem.de/commandref.html#expandJSON

Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 15 Februar 2019, 15:02:42
Hab Mosquitto und gestern wohl einen Fehler bei der Anlage des device, der Broker ging ständig disconnected...connected.....
Hat jemand hier Ahnung wie man die SSID noch bekommt, das die Handys suchen?

LG
  Marlen


Gesendet von meinem Aquaris U Plus mit Tapatalk

Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Wuppi68 am 15 Februar 2019, 19:46:33
Zitat von: Marlen am 15 Februar 2019, 15:02:42
Hab Mosquitto und gestern wohl einen Fehler bei der Anlage des device, der Broker ging ständig disconnected...connected.....
Hat jemand hier Ahnung wie man die SSID noch bekommt, das die Handys suchen?

LG
  Marlen


Gesendet von meinem Aquaris U Plus mit Tapatalk

die Handkes machen das was Du mit dem Sniffer machen willst ... nur verbinden die sich dann mit dem WLAN wenn das entsprechende Beacon gekommen ist
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Marlen am 21 Februar 2019, 19:58:50
O.k. hab das mit den Sniffer wieder seien lassen!

Aber jetzt bin auch auf der Suche nach einen anderen Verwendung für mein WEMOS D1 mini.

Ich hab es jetzt geschaft, per http get z.B. eine Dummy in FHEM zu ändern.

Aber wie kann ich z.B. einen Dummy in FHEM durch den WEMOS abfragen?
Oder einfach durch FHEM am WEMOS einen Ausgang schalten?

LG
  Marlen
Titel: Antw:WLAN Sniffer an MQTT
Beitrag von: Edi77 am 10 April 2020, 03:21:49
Hallo,

Zu dem Thema hätte ich noch eine Frage in dem MQTT Device  steht da MAC_1 MAC_2 MAC_3 ....... usw.

Wenn ich jetzt eine spezielle Mac suchen will sollte das doch mit

define MQTT2_ESP_Scanner_1_F1_doif DOIF ([MQTT2_ESP_Scanner_1:MAC.*] eq "11:22:33:44:55:66") (set MQTT2_ESP_Scanner_1_F11_dummy on) DOELSE (set MQTT2_ESP_Scanner_1_F11_dummy off)

doch funktionieren?
Wo liegt mein Denkfehler?