Здравствуй, дорогой читатель!
Предисловие:
В этой статье постараюсь подробно и одновременно кратко описать процесс создания фейковой WiFi-точки для сбора данных на Raspberry Pi. Буду использовать Raspberry Pi 3B+, но процесс создания не будет отличаться на других версиях одноплатника. Также можно использовать любой другой ПК с Linux на базе Debian.
Возможно, у тебя уже появился вопрос: "Зачем вообще эта статья, если можно скачать утилиту для FakeAP и не заморачиваться?". Ответ простой: функционал и понимание того, как работают подобные устройства. В самодельной версии функционала будет намного больше и ты, также, будешь знать, как все это дело работает и настраивается. Также можно будет потренироваться в тестировании этой AP на защищенность, при этом легально. А уязвимости будут. Много уязвимостей, которые дадут тебе боевой опыт.
В ИБ, программировании я новичок и это моя первая статья на форуме, будут ошибки, неточности или пробелы в подаче информации, поэтому адекватная критика приветствуется. Также постараюсь отвечать на каждый вопрос.
Статья написана для новичков. Она поможет разобраться в устройстве AP на Linux, локальном сервере и файловой системе Linux, а также даст некоторые знания в веб-программировании.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Буду использовать одноплатник Raspberry Pi 3B+, но ты можешь использовать любую другую вверсию этого одноплатника или вообще использовать десктопный Linux на базе Debian. Процесс не будет различаться. Разве что тебе может потребоваться обзавестись внешним WiFi адаптером с возможностью поддержки режима точки доступа (Access Point (AP))
Устанавливаем образ Raspbian на micro SD и запускаем малину. Графическая оболочка нам не потребуется, поэтому рекомендую скачать образ без нее, чтобы не занимать лишнее место и не тратить ресурсы одноплатника впустую.
Все команды будут выполнять от имени суперпользователя, поэтому пропиши сразу sudo su или перед каждой командой прописывай sudo.
Первым делом - обновление:
Первое обновление может занять от получаса, можешь сходить пока за чайком.
После обновления установим некоторые компоненты:
- программа для создания самой точки доступа.
- dhcp и dns в одном флаконе.
dhcp - программа для определения ip-адресов в пределах локальной сети
dns - система доменов
На просторах интернета полно инструкций, в которых используется isc-dhcp-server. Но, попробовав dnsmasq, было решено отказаться от isc-dhcp-server, т.к. dnsmasq удобнее, легче настраивается и содержит dns сервер, который нам понадобиться.
Далее нам надо отредактировать конфигурационный файл нашей AP:
Закрываем файл сочетанием клавиш Ctrl+X и на вопрос о сохранении нажимаем Y.
Следующий шаг - настройка dns и dhcp, чтобы устройства могли подключиться и получить локальный ip-адресс.
ВНИМАНИЕ! Если ты настраиваешь одноплатник по SSH, не перезагружай малинку и не отключайся от сети.
Место нашего dhcp сервера займет dnsmasq и новый ip тебе никто не выдаст, пока не закончим настройку.
И прописываем там следующие настройки:
Пропишем dns серверы. Будем использовать гугловские:
После перезагрузки моей малинки, у меня почему-то сбрасывались записи в этом файле, поэтому пропишем запрет на перезапись файла:
Настройка dhcp:
Очистим файл /etc/dnsmasq.conf от стандартных записей. В файле будет много комментариев и инструкций, быстро очистить файл можно командой
Открывем этот файл для редактирования:
И прописываем там следующие настройки:
Сохрани и закрой файл.
Теперь добавим пользователя и группу для dnsmasq
Далее пропишем автозагрузку hostapd и dnsmasq
Перезагрузи устройство и попробуй подключиться к нему с помощью смартфона или ноутбука. Все должно работать.
Интернет роутер пока раздавать не умеет, даже если подключить к нему LAN-кабель. Статья получилась не маленькой и мост мы сделаем в следующей части, которую я напишу, если тебе понравится эта.
Если захочешь установить что-то на малинку, то надо включить проводной интерфейс и получить для него ip от домашнего роутера. Втыкай LAN-кабель в малинку и прописывай:
И там пропишем гугловские dns:
Проверь, получен ли интернет ping google.com
Теперь на устройстве активны два интерфейса со своим локальным ip-адресом (Именно об этом было написано раньше. Если бы интерфейсы имели одинаковый локальный ip, мы бы получили конфликт. А так ты можешь пользоваться интернетом с одного интерфейса и раздавать WiFi с другого. Но WiFi сеть не имеет никакого отношения к проводной и на ней не будет интернета (Пока)).
Надеюсь, тебе понравилась статья. Если есть какие-то замечания, дополнения или неточности в статье, напиши об этом в комментариях, пожалуйста.
Можешь протестировать самодельную AP на безопасность.
До встречи!
Предисловие:
В этой статье постараюсь подробно и одновременно кратко описать процесс создания фейковой WiFi-точки для сбора данных на Raspberry Pi. Буду использовать Raspberry Pi 3B+, но процесс создания не будет отличаться на других версиях одноплатника. Также можно использовать любой другой ПК с Linux на базе Debian.
Возможно, у тебя уже появился вопрос: "Зачем вообще эта статья, если можно скачать утилиту для FakeAP и не заморачиваться?". Ответ простой: функционал и понимание того, как работают подобные устройства. В самодельной версии функционала будет намного больше и ты, также, будешь знать, как все это дело работает и настраивается. Также можно будет потренироваться в тестировании этой AP на защищенность, при этом легально. А уязвимости будут. Много уязвимостей, которые дадут тебе боевой опыт.
В ИБ, программировании я новичок и это моя первая статья на форуме, будут ошибки, неточности или пробелы в подаче информации, поэтому адекватная критика приветствуется. Также постараюсь отвечать на каждый вопрос.
Статья написана для новичков. Она поможет разобраться в устройстве AP на Linux, локальном сервере и файловой системе Linux, а также даст некоторые знания в веб-программировании.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Буду использовать одноплатник Raspberry Pi 3B+, но ты можешь использовать любую другую вверсию этого одноплатника или вообще использовать десктопный Linux на базе Debian. Процесс не будет различаться. Разве что тебе может потребоваться обзавестись внешним WiFi адаптером с возможностью поддержки режима точки доступа (Access Point (AP))
Устанавливаем образ Raspbian на micro SD и запускаем малину. Графическая оболочка нам не потребуется, поэтому рекомендую скачать образ без нее, чтобы не занимать лишнее место и не тратить ресурсы одноплатника впустую.
Все команды будут выполнять от имени суперпользователя, поэтому пропиши сразу sudo su или перед каждой командой прописывай sudo.
Первым делом - обновление:
Bash:
apt update && apt upgrade -y
Первое обновление может занять от получаса, можешь сходить пока за чайком.
После обновления установим некоторые компоненты:
Bash:
apt install hostapd
Bash:
apt install dnsmasq
dhcp - программа для определения ip-адресов в пределах локальной сети
dns - система доменов
На просторах интернета полно инструкций, в которых используется isc-dhcp-server. Но, попробовав dnsmasq, было решено отказаться от isc-dhcp-server, т.к. dnsmasq удобнее, легче настраивается и содержит dns сервер, который нам понадобиться.
Далее нам надо отредактировать конфигурационный файл нашей AP:
Bash:
nano /etc/hostapd/hostapd.conf
Код:
interface=wlan0 # указываем имя нашего WiFi устройства
driver=nl80211 # Драйвер для него. Если вы используете внешний адаптер, драйвер может быть другим. Узнать название адаптера можно командой airmon-ng (Напишите в комментариях другие способы, подалуйста :) )
ssid=Имя_AP # Указывается без ковычек (Ковычки будут отображаться в названии AP)
hw_mode=g # Режим работы сетевой карты. Лучше указать его, даже если твоя WiFi-карта способна на лучший, т.к. не все устройства смогут подключиться к лучшему
channel=1 # Канал, на котором будет висеть точка доступа
maccaddr_acl=0 # Блокировка MAC адресов)
# Следующие настройки устанавливают шифрование и пароль на AP. Если ты хочешь получить открытую (Без пароля) AP, можно не записывать эти строки
wpa=2 # Шифрование WPA2
wpa_passphrase=password # Пароль для подключения к AP (Минимум 8 символов)
wpa_pairwise=TKIP
rsn_pairwise=CCMP
atuth_algs=1
Закрываем файл сочетанием клавиш Ctrl+X и на вопрос о сохранении нажимаем Y.
Следующий шаг - настройка dns и dhcp, чтобы устройства могли подключиться и получить локальный ip-адресс.
ВНИМАНИЕ! Если ты настраиваешь одноплатник по SSH, не перезагружай малинку и не отключайся от сети.
Место нашего dhcp сервера займет dnsmasq и новый ip тебе никто не выдаст, пока не закончим настройку.
Bash:
nano /etc/network/interfaces
И прописываем там следующие настройки:
Код:
auto wlan0 # Включаем наш WiFi модуль при загрузке системы
iface wlan0 inet static # Указываем, что должны получить статичный ip-адрес
addres 192.168.10.1 # IP-адрес, который ты хочешь получить (Указывай ip-адрес, который отличается от ip-адреса твоего доманего роутера, чтобы в будущем не было конфликтов)
netmask 255.255.255.0 # Маска сети (Будет изменяться четвертый байт)
gateway 192.168.10.1 # Шлюз
Пропишем dns серверы. Будем использовать гугловские:
Bash:
nano /etc/resolv.conf
Код:
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
После перезагрузки моей малинки, у меня почему-то сбрасывались записи в этом файле, поэтому пропишем запрет на перезапись файла:
Bash:
chattr +i /etc/resolv.conf
# Если захочешь изменить содержимое файла, пропиши:
chattr -i /etc/resolv.conf
# И после его редактирования поставь запрет на перезапись
chattr +i /etc/resolv.conf
Настройка dhcp:
Очистим файл /etc/dnsmasq.conf от стандартных записей. В файле будет много комментариев и инструкций, быстро очистить файл можно командой
Bash:
echo "" > /etc/dnsmasq.conf/ # Посылаем запись на "ничего" с функцией перезаписи и получаем пустой файл
Открывем этот файл для редактирования:
Код:
nano /etc/dnsmasq.conf
И прописываем там следующие настройки:
Код:
user=dnsmasq # Пользователь, который будет управлять dhcp. Пользователя мы создадим позже
group=dnsmasq # Рабочая группа пользователя
port=53 # Стандартный порт для DNS
cache-size=1024 # Число хранимых доменов в кэше
domain-needed
bogus-priv # Эти две строчки не дают обращаться к глобальному dns, а использовать локальные (Должно снизить нагрузку на наш сервер)
interface=wlan0 # Интерфейс, на котором будет работать dns
except-interface=ppp0 # Не использовать этот интерфейс. Чтобы не было багов и противоречий
dhcp-range=192.168.10.10,192.168.10.110,12h # Выдавать ip адреса в диапазоне от 192.168.10.10 до 192.168.10.110 и запоминать выданный ip и MAC адрес подключенного устройства 12 часов
dhcp-host=12:12:12:12:12:12,ignore #Блокировка устройств с таким MAC адресом. Строчек может быть несколько. Если не хочешь никого блокировать, можешь не записывать ее
dhcp-authoritative # Делает это устройство главным в локальной сети. Если планпланируешь сделать из устройства ретранслятор, не прописывай эту строчку. Но мы делаем сервер, чтобы потом можно было разместить фейковые сайты, поэтому прописываем
Сохрани и закрой файл.
Теперь добавим пользователя и группу для dnsmasq
Bash:
useradd -r dnsmasq # Создание пользователя с именем dnsmasq
groupadd -r -g dnsmasq dnsmasq # Добавление его в группу dnsmasq
Далее пропишем автозагрузку hostapd и dnsmasq
Bash:
systemctl enable hostapd
systemctl enable dnsmasq
Перезагрузи устройство и попробуй подключиться к нему с помощью смартфона или ноутбука. Все должно работать.
Интернет роутер пока раздавать не умеет, даже если подключить к нему LAN-кабель. Статья получилась не маленькой и мост мы сделаем в следующей части, которую я напишу, если тебе понравится эта.
Если захочешь установить что-то на малинку, то надо включить проводной интерфейс и получить для него ip от домашнего роутера. Втыкай LAN-кабель в малинку и прописывай:
Bash:
nano ./dhclient.conf # Создадим файл с настройками dns, т.к. старым программа не сможет воспользоваться
И там пропишем гугловские dns:
Код:
nameserver 8.8.8.8
nameserver 8.8.4.4
Bash:
ifconfig eth0 up # Если название твоего проводного интерфейса отличается, прописывай в команде имя своего интерфейса
dhclient -4 eth0 -s ./dhclient.conf
Проверь, получен ли интернет ping google.com
Теперь на устройстве активны два интерфейса со своим локальным ip-адресом (Именно об этом было написано раньше. Если бы интерфейсы имели одинаковый локальный ip, мы бы получили конфликт. А так ты можешь пользоваться интернетом с одного интерфейса и раздавать WiFi с другого. Но WiFi сеть не имеет никакого отношения к проводной и на ней не будет интернета (Пока)).
Надеюсь, тебе понравилась статья. Если есть какие-то замечания, дополнения или неточности в статье, напиши об этом в комментариях, пожалуйста.
Можешь протестировать самодельную AP на безопасность.
До встречи!
Последнее редактирование: