Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Доброго времени суток. Статья не станет откровением для тех, кто работает / работал сетевиком, но будет полезна и интересна людям, не связанных с этой сферой.
Целью статьи будет получить максимальное количество информации о деятельности людей в личной сети.
Статья написана исключительно с целью обезопасить людей, не разбирающихся в этом вопросе. Перехват чужих данных может быть незаконным.
Для начала действий нам понадобится:
Компьютер (вероятно, ноутбук) с сетевой картой и установленным Debian (подойдет любой другой дистрибутив Linux, либо вовсе другое семейство ОС, но тогда инструкции в статье могут не совпадать).
Wireshark.
Nmcli.
Источник, обеспечивающий компьютеру доступ в Интернет, отличный от Wi-Fi (подойдет проводное соединение, либо банальный USB-модем на телефоне).
Набор ресурсов можно существенно сократить, но в этом случае, понадобится рутированный Android, а результат будет, как правило, хуже, поэтому, этот вариант мы не будем рассматривать.
Когда мы определились с набором инструментов можно приступать. Тут стоит объяснить, что именно мы будет делать. Необходимо будет превратить компьютер в точку доступа, чтобы трафик от устройств шел сначала к компьютеру, а уже потом дальше по цепи. Это позволит перехватывать пакеты и получать из них информацию. Теоретически, реализовать эту схему можно прямо на роутере, но тогда придется столкнуться, в ряде случаев, с огромным количеством проблем, связанных с прошивкой роутера, поэтому, легче заставить весь трафик идти через личный компьютер.
Для начала, отключаем компьютер от Wi-Fi сети.
Далее нужно получить имя сетевого интерфейса. В Debian получить это имя можно следующей командой:
ifconfig
Если /usr/sbin не добавлен в переменную PATH, то необходимо выполнить следующую команду вместо первой:
/usr/sbin/ifconfig
Команда вернет много текста, среди этих строк нужно найти имя сетевого интерфейса. В моем ноутбуке сетевой интерфейс называется так: wlp2s0. В других компьютерах имя этого интерфейса может отличаться, но все равно будет похоже на имя, указанное выше.
Далее необходимо создать саму сеть. У нас есть достаточное количество данных для этого процесса. Выполняем, предварительно заменив wlp2s0 на название своего сетевого интерфейса, а wifi - на название своей сети. Обратите внимание, что название сети должно кодироваться не более, чем 32-я байтами. Если Вы используете только английские символы, то 1 символ кодируется 1 байтом и можно использовать длину сети до 32-х символов. Если Вы используете символы иного алфавита, то 1 символ кодируется 2 байтами и можно использовать длину сети до 16-и символов.
INTERFACE="wlp2s0"
NAME="wifi"
nmcli con add type wifi ifname $INTERFACE con-name $NAME autoconnect yes ssid $NAME
nmcli con modify $NAME 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method share
nmcli con up $NAME
Команды выше поднимут сеть без шифрования, если же нам потребуется создать сеть с шифрованием, то следует выполнить следующие команды, предварительно, по аналогии с первым вариантом, заменив переменные INTERFACE и NAME, а также указать в переменную PASSWORD Ваш пароль. Обратите внимание, что длина пароля должна быть от 8-и символов.
INTERFACE="wlp2s0"
NAME="wifi"
PASSWORD="12345678"
nmcli con add type wifi ifname $INTERFACE con-name $NAME autoconnect yes ssid $NAME
nmcli con modify $NAME 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method share
nmcli con modify $NAME wifi-sec.key-mgmt wpa-psk
nmcli con modify $NAME wifi-sec.psk $PASSWORD
nmcli con up $NAME
Тут следует обратить внимание на опасную вещь, которая грозит почти каждому телефону и ноутбуку. Современные устройства по-умолчанию не подключаются к любым открытым сетям, они подключаются только лишь к знакомым сетям. Но этот механизм можно обмануть. Если знать к каким сетям подключалось устройство (а очень много устройств подключались к сетям в метро, кафе, аэропортах и т.д.), то можно создать сеть со знакомым для телефона названием и знакомым паролем (если пароля нет, то без пароля) и телефон сразу подключится к сети (при условии, что Wi-Fi включен и нет подключения к другой сети).
Созданная нами сеть будет работать и бить настолько далеко, насколько позволяет сетевая карта нашего компьютера. Чем сильнее сетевая карта, тем, соотвественно, дальше сигнал бьет. Но вот только есть одна проблема. Ни у компьютера на котором запущена сеть, ни у устройств, подключенных к компьютеру не будет доступа в Интернет. Чтобы решить эту проблему нужно подключить к компьютеру провод или USB-модем (его поддерживают почти все современные смартфоны). После подключения доступ в Интернет появится.
Поздравляем! Мы создали рабочую сеть! В любой момент ее можно отключить и удалить этой командой, заменив wifi на имя Вашей сети.
nmcli connection delete id "wifi"
Теперь, допустим, что кто-то подключился к этой сети. Запустим Wireshark, указав наш сетевой интерфейс. Далее надо сделать небольшую настройку. Переходим в "Редактирование" - "Параметры" - "Name Resolution". Далее надо поставить галочки на: "Resolve MAC addresses", "Resolve transport names", "Resolve network (IP) addresses" и "Use an external network name resolver".
Теперь наш компьютер захватывает все пакеты. Параллельно этому процессу будем настраивать фильтры.
В поле фильтра введем tcp. Если кто-то подключен к нашей сети, то пойдет много пакетов. И отправитель и получатель будет представлен в виде IP адреса, но IP сайтов Wireshark будет превращать в читабельные имена (например, google.com), а IP тех, кто подключен к сети будут, как правило, похожи на Ваш (Ваш можно узнать через тот же ifconfig). Если нас заинтересует какой-то конкретный клиент сети, то фильтр стоит изменить на tcp and ip.src == x.x.x.x, где x.x.x.x - заинтересовавший нас клиент. Таким образом, можно полностью просматривать с какими сайтами общаются клиенты сети.
Помимо этого, в Wireshark есть еще очень много функционала, но к счастью большая часть этого функционала (среди них воровство логинов и паролей, просмотр медиа и т.д.) работает только на устаревшем http, когда почти весь Интернет перешел уже на шифрованный https, где получить данные пакетов, практически, невозможно.
В качестве защиты можно использовать привычные средства вроде Tor или VPN.
Спасибо за чтение.