• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Fake AP на Raspberry Pi (Часть 1)

Здравствуй, дорогой читатель!

Предисловие:

В этой статье постараюсь подробно и одновременно кратко описать процесс создания фейковой WiFi-точки для сбора данных на Raspberry Pi. Буду использовать Raspberry Pi 3B+, но процесс создания не будет отличаться на других версиях одноплатника. Также можно использовать любой другой ПК с Linux на базе Debian.

Возможно, у тебя уже появился вопрос: "Зачем вообще эта статья, если можно скачать утилиту для FakeAP и не заморачиваться?". Ответ простой: функционал и понимание того, как работают подобные устройства. В самодельной версии функционала будет намного больше и ты, также, будешь знать, как все это дело работает и настраивается. Также можно будет потренироваться в тестировании этой AP на защищенность, при этом легально. А уязвимости будут. Много уязвимостей, которые дадут тебе боевой опыт.

В ИБ, программировании я новичок и это моя первая статья на форуме, будут ошибки, неточности или пробелы в подаче информации, поэтому адекватная критика приветствуется. Также постараюсь отвечать на каждый вопрос.

Статья написана для новичков. Она поможет разобраться в устройстве AP на Linux, локальном сервере и файловой системе Linux, а также даст некоторые знания в веб-программировании.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Буду использовать одноплатник Raspberry Pi 3B+, но ты можешь использовать любую другую вверсию этого одноплатника или вообще использовать десктопный Linux на базе Debian. Процесс не будет различаться. Разве что тебе может потребоваться обзавестись внешним WiFi адаптером с возможностью поддержки режима точки доступа (Access Point (AP))

1589199066750.png


Устанавливаем образ Raspbian на micro SD и запускаем малину. Графическая оболочка нам не потребуется, поэтому рекомендую скачать образ без нее, чтобы не занимать лишнее место и не тратить ресурсы одноплатника впустую.

Все команды будут выполнять от имени суперпользователя, поэтому пропиши сразу sudo su или перед каждой командой прописывай sudo.

Первым делом - обновление:

Bash:
apt update && apt upgrade -y

Первое обновление может занять от получаса, можешь сходить пока за чайком.

После обновления установим некоторые компоненты:

Bash:
apt install hostapd
- программа для создания самой точки доступа.
Bash:
apt install dnsmasq
- dhcp и dns в одном флаконе.

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 на безопасность.

До встречи! :)
 
Последнее редактирование:

BAO

Red Team
11.09.2019
69
56
BIT
24
Хорошая статья. Спасибо автору, прямо вспомнил далекий 2015, когда делал fake AP на 2ой малинке. Инет раздавал через usb модем. Тогда я кажется использовал sslsplit. В итоге симку залочил оператор по причине, что тариф не предусматривает раздачу интернета))))) Потом пришлось прикручивать аунтификацию по номеру телефона, т.к. запретили Wi-Fi без шифрования в чистом виде. Давай продолжение! Тогда sslstrip работал кривовато, либо я не до конца разобрался и пошёл по пути sslsplit.)
 
Последнее редактирование:

BAO

Red Team
11.09.2019
69
56
BIT
24
useradd -r dnsmasq # Создание пользователя с именем dnsmasq
groupadd -r -g dnsmasq dnsmasq # Добавление его в группу dnsmasq
Поправьте, если ошибаюсь, но кажется сначала группа создаётся, а потом в нее пользователь добавляется? Нет?

groupadd -r dnsmasq # Создание группы с именем dnsmasq
useradd -r -g dnsmasq dnsmasq # Добавление его в группу dnsmasq
 

BAO

Red Team
11.09.2019
69
56
BIT
24
От себя добавлю: если будете строить точку, где планируется большой, постоянный траффик и Вы его будете логировать - ставить на малину хорошее охлаждение, иначае 30-40 минут и будет завис от перегрева. Ну или ставить в хорошее прохладное место =) если планируете закинуть малину в рюкзак, начать работу по фейк ап - перегреется быстро.
мой вариант охлаждения. Раньше стоял радиатор от 2060
 

Вложения

  • IMG_8849.JPG
    IMG_8849.JPG
    128,2 КБ · Просмотры: 80
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!