Сбор mac адресов wifi своими руками

Wi-Fi радар для сбора MAC-адресов

Wi-Fi

Сегодня для отслеживания и анализа целевой аудитории, интернет-маркетологи используют не только данные из счетчиков посетителей, но и более продвинутые методы, например сбор MAC-адресов при помощи Wi-Fi сенсора.

Такое устройство можно разместить в кафе, гостинице, кинотеатре, чтобы собрать информацию о посетителях. Статистика показывает, что более 50% пользователей не отключают функцию Wi-Fi на своих смартфонах, что позволяет их отслеживать в режиме реального времени.

Зачем компании собирают MAC-адреса своих клиентов?

Сбор MAC-адресов мобильных устройств активно используется в маркетинге для формирования портрета клиента. Маркетолог выгружает список MAC-адресов в сервис Яндекс.Аудитории, и тем самым, создает сегмент обезличенных пользователей.

После добавления собранных MAC-адресов, сервис подбирает всю известную информацию о владельце устройства (интересы, геолокации, поведение) и формирует список анонимных ID для настройки рекламных кампаний в агрегаторах Яндекса (Директ, Дисплей). В дальнейшем этот сегмент используется для таргетирования рекламных предложений.

Мониторинг MAC-адресов в беспроводных сетях может быть незаконным, особенно в сетях, которыми вы не владеете. Пожалуйста, ознакомьтесь с законами вашей страны. Материал опубликован в ознакомительных целях.

Запуск Wi-Fi радара

Скрипт, который будет работать на базе нашего сенсора, вычисляет количество людей поблизости, используя смартфоны в качестве прокси. Телефоны находящиеся в зоне покрытия определяются на основе фрейм-запросов, так называемых probe request.

Возможное использование howmanypeoplearearound включает в себя: мониторинг окружения и пешеходного движения, сбор MAC-адресов. Вероятно, он был разработан для использования на миниатюрных устройствах, например Raspberry Pi etc.

Подготовка рабочей среды

Для запуска скрипта нам потребуется:

Любая антенна с поддержкой Monitor Mode (режима мониторинга):

Установка Python 3

sudo apt-get install python3

Python и установщик пакетов pip, должен быть установлен на вашем компьютере. Я использую Ubuntu 18.04, в которой Python уже предустановлен и не хватает только установщика pip:

Установка pip для Python 2.7

sudo apt install python-pip

Установка pip для Python 3

sudo apt install python3-pip

Установка tshark

Если на компьютере не установлен Wireshark, выполните:

sudo add-apt-repository ppa:wireshark-dev/stable sudo apt-get update sudo apt-get install wireshark

Если установлен, выполните команду для установки tshark:

sudo apt-get install tshark

Затем обновите его для запуска без получения полномочий root:

sudo dpkg-reconfigure wireshark-common
sudo usermod -a -G wireshark $ sudo newgrp wireshark

Установка скрипта

pip install howmanypeoplearearound

В новых версиях Ubuntu при установке pip могут возникнуть проблемы, как решить проблему Unable to locate package, читайте по ссылке.

Читайте также:  How to use wifi in laptop

Мониторинг устройств

Подключаем антенну к компьютеру и выполняем команду:

Первый запуск скрипта

Выбираем адаптер для сканирования, кладем рядом с собой устройство, а лучше несколько, с включенной функцией Wi-Fi:

Выбор адаптера для сканирования

Ожидаем окончания операции:

Результат сканирования

Скрипт определил поблизости 6 мобильных устройств. Но, где найти или как вывести MAC-адреса?

Чтобы выгрузить их, воспользуемся флагами из справки, например:

howmanypeoplearearound -o test.json -s 100

После окончания сканирования, находим в домашней директории файл test.json

Результат сбора MAC-адресов

test.json

Точность сканирования

Точность сканирования устройств зависит от того, как часто смартфон проверяет связь с сетью Wi-Fi (что происходит каждые 1–10 минут, если Wi-Fi не отключен).

Ошибки при запуске

Если не работают команды или встречается ошибка «command not found», выполните:

python3 -m pip install --upgrade --no-cache-dir howmanypeoplearearound

Источник

Сбор mac адресов wifi своими руками

сеть

+7 (499) 322-96-38

Wi-Fi радар сделает проходящих мимо людей вашими клиентами.
Сбор базы клиентов настройка рекламы только на ваших клиентов.
Или догнать людей рекламой в интернете после посещения вашей промо-точки.
И все хотят на этом заработать, а мы поделимся как это сделать самим .

Будем использовать:

WiFi адаптер с режимом монитора TL-WN722N
Существует несколько возможных USB WiFi адаптеров, которые поддерживают режим монитора. Лично я предпочитаю TL-WN722N или TN722N, который стоит всего ~ 10 долларов и прекрасно работает с каждой моделью Raspberry Pi.

Про настройку Rasspberry Pi рассказывать не будем об этом и так весь интернет пестрит.
Установка
Качаем образ Raspbian Buster Lite

Проверяем наличие модуля wifi в нашем случае это wlxf81a670f1236

pi@raspberrypi:~ $ ifconfig
enxb827eb9f99f0: flags=4163 mtu 1500
inet 192.168.1.40 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::b8e9:2be2:cf04:6ef3 prefixlen 64 scopeid 0x20
ether b8:27:eb:9f:99:f0 txqueuelen 1000 (Ethernet)
RX packets 110 bytes 26029 (25.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 66 bytes 10826 (10.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlxf81a670f1236: flags=4099 mtu 1500
ether f8:1a:67:0f:12:36 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

pi@raspberrypi:~ $ iw dev
phy#0
Interface wlxf81a670f1236
ifindex 3
wdev 0x1
addr f8:1a:67:0f:12:36
type managed
txpower 20.00 dBm

Читайте также:  Kali linux wifi уровень сигнала

Добавляем в директории /etc/network/ в файл interfaces

allow-hotplug wlxf81a670f1236
iface wlxf81a670f1236 inet manual
pre-up iw wlxf81a670f1236 interface add mon0 type monitor
pre-up iw dev wlxf81a670f1236 del
pre-up ifconfig mon0 up

Перезагружаем Raspberry PI

Получили устройство mon0 в режиме мониторинга

pi@raspberrypi:~ $ iw dev
phy#0
Interface mon0
ifindex 4
wdev 0x2
addr f8:1a:67:0f:12:36
type monitor
channel 1 (2412 MHz), width: 20 MHz (no HT), center1: 2412 MHz
txpower 20.00 dBm

Устанавливаем Python3

sudo apt-get install -y python3

Устанавливаем tshark

sudo apt-get install -y tshark
Then update it so it can be run as non-root:

Устанавливаем wireshark

sudo apt-get install -y wireshark
sudo dpkg-reconfigure wireshark-common
Выбираем (select YES)

Затем обновите его, чтобы его можно было запускать без полномочий root:

sudo usermod -a -G wireshark $USER

Вам нужно будет выйти и снова войти в систему, чтобы изменения вступили в силу.

Устанавливаем дополнительный пакет howmanypeoplearearound для python3

sudo pip install howmanypeoplearearound

Первый запуск
pi@raspberrypi:~ $ howmanypeoplearearound

Ошибки при запуске
Если не работают команды или встречается ошибка «command not found», выполните:

python3 -m pip install —upgrade —no-cache-dir howmanypeoplearearound

Программа спросит с каким адапрером бедем работать

Вывод работы программы на экран

Specify WiFi adapter (use ifconfig to determine): wlan1
Using wlan1 adapter and scanning for 60 seconds.
[==================================================] 100% 0s left
There are about 5 people around.

Запускаем howmanypeoplearearound для работы с конкретным wifi адаптером и записью в файл test.json
howmanypeoplearearound -o test.json -a mon0
Using mon0 adapter and scanning for 60 seconds.
[==================================================] 100% 0s left
There are about 9 people around.

В комплекте идет анализатор который генерит index.html

pi@raspberrypi:~ $ howmanypeoplearearound —analyze test.json
Wrote index.html
Open browser to http://localhost:8001
Type Ctl+C to exit

Но бывают проблемы. Не открываеться через браузер.
В папке /home/pi/.local/lib/python3.7/site-packages/howmanypeoplearearound в файле analysis.py

httpd = HTTPServer((‘localhost’, port), SimpleHTTPRequestHandler)

изменить на
httpd = HTTPServer((», port), SimpleHTTPRequestHandler)

В процессе работы наткнулся на проблему что не все телефоны попадают в список.

Помогло наличие дополнительных комманд

pi@raspberrypi:~ $ howmanypeoplearearound -o test.json -a mon0 -v

Получили вывод на экран
20:e8:82:92:85:ba zte corporation False
74:2f:68:3a:2f:cf AzureWave Technology Inc. False
26:2f:68:3a:2f:cf Not in OUI False
84:c9:b2:0d:86:00 D-Link International False
78:31:2b:e9:dc:f8 zte corporation False
5c:77:76:c8:XX:XX TCT mobile ltd False
d4:ca:6d:84:32:4f Routerboard.com False
f4:b8:a7:de:ed:09 zte corporation False
2c:d0:5a:c6:e8:f2 Liteon Technology Corporation False
a0:0b:ba:fe:9a:b1 SAMSUNG ELECTRO MECHANICS CO., LTD. False
10:01:22:00:3a:01 Not in OUI False
20:55:31:1f:ee:66 Samsung Electronics Co.,Ltd True
a4:e9:75:1e:b6:df Apple, Inc. True
60:6c:66:40:f0:6f Intel Corporate False
a4:50:46:c6:58:ca Xiaomi Communications Co Ltd True
6c:00:6b:f2:33:89 Samsung Electronics Co.,Ltd True
80:35:c1:54:00:d9 Xiaomi Communications Co Ltd True
cc:4b:73:59:20:7e AMPAK Technology, Inc. False
d4:ca:6d:63:43:a3 Routerboard.com False
60:ab:67:ba:e9:00 Xiaomi Communications Co Ltd True
cc:03:fa:88:12:cb Technicolor CH USA Inc. False
b0:52:16:14:c1:95 Hon Hai Precision Ind. Co.,Ltd. False
00:b5:d0:f5:e6:45 Samsung Electronics Co.,Ltd True
e4:77:23:f1:99:3c zte corporation False
4c:4e:03:ce:XX:XX TCT mobile ltd False
00:f4:8d:94:7c:53 Liteon Technology Corporation False
4c:cc:6a:ae:71:01 Micro-Star INTL CO., LTD. False
[
«company»: «Samsung Electronics Co.,Ltd»,
«rssi»: -89.0,
«mac»: «20:55:31:1f:ee:66»
>,
«company»: «Apple, Inc.»,
«rssi»: -78.0,
«mac»: «a4:e9:75:1e:b6:df»
>,
«company»: «Xiaomi Communications Co Ltd»,
«rssi»: -81.1875,
«mac»: «a4:50:46:c6:58:ca»
>,
«company»: «Samsung Electronics Co.,Ltd»,
«rssi»: -88.0,
«mac»: «6c:00:6b:f2:33:89»
>,
«company»: «Xiaomi Communications Co Ltd»,
«rssi»: -78.14285714285714,
«mac»: «80:35:c1:54:00:d9»
>,
«company»: «Xiaomi Communications Co Ltd»,
«rssi»: -76.125,
«mac»: «60:ab:67:ba:e9:00»
>,
«company»: «Samsung Electronics Co.,Ltd»,
«rssi»: -86.8,
«mac»: «00:b5:d0:f5:e6:45»
>
]

Читайте также:  My money is my wifi

Как изменить параметр False на True
Так как выделенные mac адреса точно рабочие
5c:77:76:c8:XX:XX TCT mobile ltd False
4c:4e:03:ce:XX:XX TCT mobile ltd False

В файле есть список компаний разрешенных на обработку
/home/pi/.local/lib/python3.7/site-packages/howmanypeoplearearound/__main__.py

cellphone = [
‘Motorola Mobility LLC, a Lenovo Company’,
‘GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD’,
‘Huawei Symantec Technologies Co.,Ltd.’,
‘Microsoft’,
‘HTC Corporation’,
‘Samsung Electronics Co.,Ltd’,
‘SAMSUNG ELECTRO-MECHANICS(THAILAND)’,
‘BlackBerry RTS’,
‘LG ELECTRONICS INC’,
‘Apple, Inc.’,
‘LG Electronics’,
‘OnePlus Tech (Shenzhen) Ltd’,
‘TCT mobile ltd’,
‘Xiaomi Communications Co Ltd’,
‘LG Electronics (Mobile Communications)’]

Мы добавили не достающую TCT mobile ltd
Правильность написания из файла
http://standards-oui.ieee.org/oui/oui.txt

Так же есть еще возможности по добавлению своих mac адресов
howmanypeoplearearound —targetmacs macs.txt
И macs.txt:
1A:DC:5C:8E:15:7B

Но на этом Мы не остановились, больно много интересного вокруг этой темы.
И так во первых как заставить работать данный скрипт постоянно и не выводить на экран никакой информации, да еще писать в указанное место.

nohup /usr/bin/python3 /home/pi/.local/bin/howmanypeoplearearound -o /home/pi/test.json -a mon0 —loop >/dev/null 2>/dev/null &

Но все равно чегото не хватает.

jq-for-parsing-json поможет нам в решении данной задачи.

wget https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz
tar xfvz jq-1.5.tar.gz
cd jq-1.5
./configure && make && sudo make install

Данные запросы помогут нам получить данные в нужных форматах
Получим данные для записи в MySQL

Или просто списком запишем в файл

cat test.json | jq -r ‘.cellphones[] | «\(.mac)»‘ > mac.txt

Ну и надо как-то забирать информацию

sudo pip install http
nohup /usr/bin/python3 -m http.server 8000 —directory /home/pi/ >/dev/null 2>/dev/null &

Удачи Всем, если придумали что то еще пишите нам на почту. Мы повесим как продолжение от вашего имени.

Источник

Оцените статью
Adblock
detector