У меня есть три идеи для вас. Все они имеют свою долю сложности, и вы можете смешивать и сочетать их по своему усмотрению. Первый, вероятно, самый простой, но наименее надежный (сам по себе).
1. Обнаружение пассивного MAC
Стандартным способом было бы отслеживать MAC-адреса, которые запрашивают адреса DHCP у маршрутизатора. Большинство маршрутизаторов имеют экран в стиле «Подключенные устройства», который показывает, кто подключается.
Это не автоматически, но вы можете (довольно легко) написать скрипт на Bash / Python, чтобы перетащить страницу маршрутизатора вниз, проанализировать MAC-адреса и проверить их по списку известных / разрешенных MAC-адресов.
Проблема здесь в том, что нет ничего мгновенного. Вы полагаетесь на маршрутизатор, чтобы обновить его страницу, и вы должны опрашивать это часто. Некоторым роутерам это не понравится. У меня дрянной маршрутизатор Edimax, который падает, если вы загружаете более 10 страниц в минуту (жалко!), Поэтому это может не сработать.
MAC-адреса также ужасно подделаны. macchangerнапример, позволит вам подделать ваш MAC-адрес в одной команде. Я думаю, что даже сетевой менеджер позволит вам сделать это. Если кто-то не хочет быть обнаруженным, он будет отслеживать сетевой трафик и подделывать одно из действительных (известных) устройств.
2. Активный нюхающий
Именно здесь мы отрываем колеса и копаемся. Вам понадобится запасной радиотранслятор, который может перехватывать трафик к маршрутизатору и обратно (в идеале, довольно близко к нему).
Короче говоря, вы подключаетесь airodump-ngи наблюдаете за людьми, подключенными к вашей сети. Должна быть предусмотрена возможность создания сценария для этого вывода, чтобы при появлении нового устройства и запуске вашей сети вы могли что- то сделать мгновенно .
Идея состоит в том, что вы запускаете это при загрузке (как root):
airmon-ng start wlan0
airodump-ng --bssid 00:1F:9F:14:6F:EB -w output --output-format csv mon0
Замените BSSID вашей точкой доступа.
Это приводит к автоматическому приращению файла, который можно анализировать на регулярной основе. В приведенной выше версии записывается файл значений, разделенных запятыми, который является довольно простым, но если вы довольны XML (Python может сделать его довольно простым), вы можете посмотреть netxmlформат вывода для airodump.
В любом случае, это дает вам регулярную информацию о том, какие устройства используют сеть (и сколько трафика они отправляют тоже). Это все так же подвержено ошибкам, как и использование таблицы ARP маршрутизатора, но оно работает.
Пока вы находитесь в беспорядочном режиме, если ваш скрипт обнаруживает клиента, которого, по его мнению, не должно быть в сети, вы можете использовать его tcpdumpдля траления пакетов и регистрации интересующих обменов (HTTP-запросов и т. Д.). Это больше программирование, но это может быть сделано.
3. Снятие отпечатков пальцев с nmap
Другой способ - это использовать сеть для клиентов nmap. Обычно вы можете подумать, что это не слишком вам поможет, если кто-то блокирует пинги, он может не появиться.
Я предлагаю вам использовать это в сочетании с любым из двух других методов. 1даст вам IP-адрес, чтобы вы могли Nmap напрямую. 2не даст вам IP, но даст вам знать, сколько клиентов nmapдолжно ожидать найти в данный момент времени. Убедитесь, что все ваши устройства доступны для пинга.
При nmapзапуске (например, sudo nmap -O 192.168.1.1/24он попытается найти хосты, а затем выполнит сканирование портов на них, чтобы выяснить, что они из себя представляют). Ваш контрольный список должен включать в себя, как каждое из ваших устройств должно реагировать на nmap.
Если вы хотите пойти еще дальше, вы можете запустить простой сервер на каждом из ваших компьютеров. Просто то, что приняло соединение, а затем отбросило его. Короче говоря: что-то для nmapпоиска. Если он обнаружит, что это открыто, это, вероятно, ваш компьютер.
4. Защитите свою сеть лучше
На самом деле вы должны сделать это первым, если вы беспокоитесь. Используйте WPA2 / AES. Никогда не используйте WEP (трещины примерно через пять минут).
Если вы все еще волнуетесь, кто-то может узнать ключ (WPA2 требует много данных и вычислительного времени для взлома), перейдите к модели RADIUS. Это структура аутентификации, которая устанавливает одноразовый ключ для каждого пользователя. PITA, чтобы настроить все же.
Но что делать ..?
Если бы я не был доволен вещами, я бы, наверное, вручную посмотрел airodump. Если бы я все еще не был счастлив, я бы начал снимать отпечатки пальцев с того, что видел. Хотя довольно сложно (ни в коем случае не невозможно) писать сценарии.
Самым простым для написания сценария будет очистка маршрутизатора с использованием отпечатков пальцев nmap. Коротко и просто.