13.02.2018

Настройка платформы Raspberry Pi и Kali Linux для работы с Wi-Fi сетями

image

Raspberry Pi представляет собой компьютер миниатюрного размера, который может взламывать Wi-Fi, клонировать ключ-карты, проникать в ноутбуки и даже клонировать действующую Wi-Fi сеть.

Автор: SADMIN/Null Byte

Raspberry Pi представляет собой компьютер миниатюрного размера, который может взламывать Wi-Fi, клонировать ключ-карты, проникать в ноутбуки и даже клонировать действующую Wi-Fi сеть таким образом, что пользователь, вместо настоящей сети, будет подключаться к платформе Raspberry Pi. Кроме того, Raspberry Pi позволяет глушить Wi-Fi в домах, отслеживать сотовые телефоны, перехватывать информацию полицейских сканнеров, транслировать сигнал для FM-радиостанций и даже осуществлять пуск ракет.

Такой богатый функционал доступен благодаря огромному сообществу разработчиков, сделавших тысячи билдов для Kali Linux и Raspberry Pi. Вы можете приобрести Raspberry Pi 3 по цене меньшей, чем стоимость бака газа, и, таким образом, в вашем распоряжении окажется мощное, гибкое и эффективное кибер-оружие.

Рисунок 1: Нужно кибер-оружие, которое подойдет в любой ситуации? Попробуйте назвать альтернативное устройство, которое умещается в карман и позволяет создавать поддельную точку доступа в Чехии

Естественно, важно отделять мух от котлет и избегать использования систем, которые позволяют вас опознать, как, например, уникальное оборудование. Не у всех есть доступ к суперкомпьютеру или к мощной игровой системе, однако для полноценной платформы на базе Kali Linux подобное не потребуется.

Количество проданных экземпляров Raspberry Pi насчитывается около 10 миллионов, и любой свободно может заказать это устройство за 35 долларов. Сей факт серьезно затрудняет обнаружение деятелей, осуществляющих атаку, коими могут быть и группа хакеров, спонсируемая государством, и очень любознательный подросток, находящийся в школьном компьютерном классе.

Думайте как хакер

У Raspberry Pi есть несколько уникальных характеристик, за счет которых этот инструмент занимает достойное место в арсенале пентестера. Во-первых, Raspberry Pi стоит довольно дешево, а стоимость отдельных компонентов не превышает стоимости набора Лего. Во-вторых, Raspberry Pi небольшого размера и может быть легко замаскирован от посторонних глаз. В-третьих, за счет того, что по умолчанию эта платформа работает на базе операционной системы Kali Linux, Raspberry Pi обладает гибкостью и позволяет запускать множество утилит, начиная от клонирования бэйджей и заканчивая скриптами для взлома Wi-Fi. Меняя SD карту и добавляя или удаляя компоненты, как в случае с беспроводным адаптером, который способен к инъекции пакетов, на базе Raspberry Pi можно собрать устройство под любую задачу.

Рисунок 2: Raspberry Pi + проектор = Kali Linux на большом экране

Возможности Raspberry Pi

Во-первых, важно иметь обоснованные ожидания при выборе Raspberry Pi в качестве платформы для выполнения различных хакерских задач. Raspberry Pi – это не супер компьютер, который обладает огромными вычислительными ресурсами. Эта платформа не подходит для задач, где нужен мощный процессор (например, для брутфорса WPA-паролей), или во время ресурсоемких сетевых атак, поскольку скорость соединения слишком маленькая. С другой стороны, задачи, требующие много ресурсов, можно решать на более мощных компьютерах, а Raspberry Pi использоваться в качестве сборщика информации.

Рисунок 3: Пример настройки Raspberry Pi для создания помех в Wi-Fi сети

На базе моего опыта могу сказать, что Raspberry Pi работает особенно хорошо при атаках на Wi-Fi сети. Из-за небольшого размера и огромного набора хакерских утилит для Kali Linux платформа Raspberry Pi идеально подходит для разведки и атак на Wi-Fi сети. Наша сборка Kali Linux заточена под анонимный аудит проводных и беспроводных сетей.

Базовые компоненты системы для атаки

Далее будут представлены компоненты системы, используемой для атаки. Также будет объяснено, зачем нужны эти компоненты. Если вы только начинаете знакомство с Raspberry Pi, рекомендую этот набор от CanaKit, который содержит практически все, что может понадобиться новичку.

· Raspberry Pi: Raspberry Pi 3 – платформа, которая координирует и управляет всеми остальными компонентами. Низкое энергопотребление и хорошая гибкость позволяет этой платформе работать на базе любой другой операционной системы Linux (помимо Kali).

Рисунок 4: Raspberry Pi 3

· Беспроводная карта для контроля и управления (C2): цель беспроводной C2 карты – автоматическое подключение Raspberry Pi к командной телефонной точке доступа или к вашей домашней сети. Эта карта позволяет удаленно и незаметно управлять Raspberry Pi через SSH или VNC. В Raspberry Pi 3 уже встроенная Wi-Fi карта. В Raspberry Pi 2 можно добавить беспроводной сетевой адаптер.

· Беспроводная карта, используемая для атаки: беспроводная карта для атаки представляет собой Wi-Fi адаптер совместимый с Kali Linux и умеющий инжектировать пакеты. В зависимости от требований может использоваться антенна ближнего / дальнего радиуса действия или направленная антенна. Более подробно о том, как выбрать беспроводной адаптер, рассказано в этой статье.

· Карты со сборками операционных систем: На карте micro SD находится операционная система и мозг компьютера, который можно сконфигурировать под любые нужды. Создав несколько разных карт можно быстро менять конфигурацию и функционал Raspberry Pi посредством замены карты и компонентов.

· Компьютер: компьютер понадобится для загрузки и копирования прошивки на SD-карту.

· Источник питания: Raspberry Pi использует стандартный источник питания Micro-USB. То есть подойдет практически любой зарядник от телефонов на базе Android или аккумуляторная батарея. Кроме того, можно использовать более энергоемкие батареи, если требуется длительное исследование или выполнение ресурсоемких операций.

Рисунок 5: Мой набор для Raspberry Pi

· Ethernet-кабель (необязательно): Ethernet-кабель позволяет обойти беспроводную аутентификацию посредством прямого подключения к локальным сетям, к которым у вас есть физический доступ. Во время специализированных атак наподобие PoisonTap также можно пользоваться преимуществом Ethernet-интерфейсов для проникновения на компьютеры.

· Bluetooth-клавиатура (необязательно): Bluetooth клавиатура полезна в тех случаях, если у вас есть HDMI-соединение.

· Корпус (необязательно): для защиты платы желательно иметь корпус.

Режимы работы платформы

Во время написания этой статьи я рассматривал два основных режима, в которых может функционировать Raspberry Pi. Первый режим – когда Raspberry Pi подключен к экрану через HDMI, а мышь и клавиатура через беспроводное соединение. Второй режим – когда Raspberry Pi управляется удаленно через SSH при помощи ноутбука или смартфона. Подключив Raspberry Pi к телефону или другой, управляемой нами, точке доступа, у нас будет доступ к устройству и в то же время мы сможем работать «в поле».

Рисунок 6: Два режима работы: Верхний рисунок – лабораторный вариант. Платформа подключена к монитору и управляется через беспроводную клавиатуру и мышь. Нижний рисунок – полевой вариант. Платформа управляется через SSH при помощи ноутбука или смартфона

Конфигурация платформы

В этой статье я покажу все шаги, необходимые для настройки Raspberry Pi 3 в качестве базовой платформы для хакинга в связке с Kali Linux. Мы рассмотрим, как выбрать сборку для установки, записать дисковые образ на карту micro SD и последующие действия. Чтобы все работало корректно, мы обновим Kali Linux до последней версии, изменим стандартные SSH-ключи и выполним остальные настройки, как например замену пароля администратора.

Рисунок 7: Raspberry Pi во время работы с подключением к HDMI

Существует множество способов настройки Kali для Raspberry Pi 3. В некоторых случаях используются сенсорные панели, в других – доступ осуществляется через сетевое соединение без подключения клавиатуры и монитора. Кроме того, можно использовать внутреннюю Wi-Fi карту для создания точки доступа и удаленного управления. При выборе сборки я исключил варианты, требующие больших энергозатрат, сенсорные экраны или дополнительное оборудование, и остановился на версии, которая оптимизирована под два различных сценария, связанных с контролем и управлением платформы (С2).

Шаг 1: Загрузка образа Kali Linux для Raspberry Pi

Заходим на сайт Offensive Security и загружаем самый последний образ Kali Linux для Raspberry Pi. На момент написания статьи последняя версия образа "RaspberryPi 2 / 3" была 2.1.2.

Рисунок 8: Список образов Kali Linux для платформы Raspberry Pi

Шаг 2: Запись образа на карту Micro SD

Для записи образа на SD карту вы можете использовать утилиту ApplePiBaker или Etcher. Иногда во время загрузки могут возникать ошибки. Мы рассмотрим, как избежать ошибок при записи образа через терминал на Маке.

В терминале Мака, прежде чем вставить SD карту, введите следующую команду:

df -h

В результате отобразится список дисков, подключенных к системе. Вставьте SD карту, еще раз запустите эту команду и обратите внимание на имя появившейся файловой системы, которое должно выглядеть примерно так "/dev/disk2s1". Будьте внимательный и не перепутайте имена файловых систем в последующих шагах иначе можете перезаписать информацию на жестком диске.

Рисунок 9: Доступные диски

Для загрузки образа на карту будем использовать команду dd.

Рисунок 10: Справка для команды dd. Для ознакомления с остальными опциями выполните команду man dd

Вначале размонтируем раздел, на который будет записываться образ, при помощи следующей команды. Вместо x подставьте нужное значение:

sudo diskutil unmount /dev/diskX

Теперь мы готовы загрузить образ. Введите, но пока не запускайте, следующую команду sudo dd bs=1m if= и далее укажите путь образу Kali Linux, который вы хотите записать на карту. Вы можете переместить образ диска в окно, чтобы увидеть путь к файлу. Далее введите пробел, затем of=/dev/rdisk и букву диска, соответствующую SD карте.

Если имени диска присутствует буква «s» (например, rdisk2s1) не добавляйте «s» и последующий номер. Таким образом, имя «rdisk2s1» должно выглядеть как «rdisk2». В итоге должна получиться следующая команда:

sudo dd bs=1m if=Путь к образу of=/dev/rdiskX

Далее нажмите Enter и дождитесь завершения процесса записи. Обратите внимание, что команда dd в процессе работы не выводит никакой информации. Сообщения выводятся только в случае возникновения ошибок или по завершению работы. Чтобы отлеживать состояние процесса нажмите комбинацию клавиш Ctrl T. После окончания записи вы увидите количество байт переданных во время работы команды.

Рисунок 11: На запись образа потребовалось 1131 секунда

Шаг 3: Первоначальная загрузка Kali Linux

После завершения записи вставьте SD карту в Raspberry Pi, подсоединитесь к разъему HDMI и подключите Bluetooth-клавиатуру. Включите питание для первоначальной загрузки Kali Linux. Чтобы появился рабочий стол, введите логин «root» и пароль «toor».

Рисунок 12: Raspberry Pi с картой с образом Kali Linux, разъемами HDMI и Ethernet, Bluetooth-приемником и вторичным беспроводным адаптером

Из-за процесса авторизации будут возникать проблемы во время автономного управления, поэтому в дальнейшем мы отключим необходимость ввода логина и пароля, что позволит нам подключить Raspberry Pi и тут же начать удаленное управление без подключенного экрана.

Рисунок 13: Первая загрузка Kali Linux

Шаг 4: Обновление Kali Linux

Kali Linux собран на базе дистрибутива Debian, заточен под нужды пентестера и совместим с наиболее полезными утилитами, предназначенными для исследования и взлома Wi-Fi сетей. Кроме того, этот дистрибутив достаточно гибок, что позволяет поддерживать огромное количество специализированных сборок. Kali Linux поддерживается командой Offensive Security, и чтобы все утилиты работали корректно, необходимо обновиться до последней версии.

Перед обновлением необходимо увеличить размер установленной системы до размера раздела при помощи следующей команды:

resize2fs /dev/mmcblk0p2

В правом верхнем углу рабочего стола вы увидите опцию для подключения близлежащей беспроводной сети. Для получения обновлений нужно подключиться к телефону или любой другой точке доступе, у которой есть подключение к интернету. В окне терминала введите следующие команды:

apt-get update
apt-get upgrade
apt-get dist-upgrade

Теперь ваша система обновлена до последней версии. Установите более сложный пароль для суперпользователя при помощи следующей команды:

passwd root

Далее введите новые пароль.

Шаг 5: Устанавливаем сервер OpenSSH

Для коммуникации с Raspberry Pi через компьютер или телефон мы должны уметь авторизоваться в системе. Для решения этой задачи мы будем использовать SSH, чтобы подключиться через Wi-Fi соединение, которое доступно для Raspberry Pi. SSH или Secure Shell представляет собой сетевой протокол, позволяющий удаленный запуск команд на устройстве. Таким образом, нам не нужно подключать монитор для взаимодействия с Raspberry Pi.

Для установки сервера openSSH и обновления уровней запуска, чтобы SSH стартовал во время загрузки, выполните следующие команды в терминале:

apt-get install openssh-server
update-rc.d -f ssh remove
update-rc.d -f ssh defaults

Стандартные ключи открывают большую дыру в системе, поскольку доступны для подбора каждому встречному. Меняем ключи при помощи следующей команды:

cd /etc/ssh/
mkdir insecure_old
mv ssh_host* insecure_old
dpkg-reconfigure openssh-server

Команды выше сохранят старые SSH-ключи в другой папке и сгенерируют новые. Теперь проблема решена. Проверяем авторизацию под именем суперпользователя:

nano /etc/ssh/sshd_config

Откроется папка с конфигурацией SSH. Меняем строку:

PermitRootLogin without-password

На строку:

PermitRootLogin yes

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

Рисунок 14: Редактирование файла с настройками sshd_config

Перезапускаем службу SSH при помощи следующей команды:

sudo service ssh restart
update-rc.d -f ssh enable 2 3 4 5

Чтобы проверить работоспособность SSH, используем следующую команды для проверки, что служба запущена:

sudo service ssh status

Рисунок 15: Если служба работает корректно, мы должны увидеть нечто похожее

В противном случае для запуска службы используйте следующую команду:

sudo service ssh start

Если SSH все равно не работает, попробуйте воспользоваться утилитой raspi-config, которая предназначена для релиза Jessie, но в Kali тоже будет работать. Вначале нужно клонировать репозитарий. Введите команду sudo mount /dev/mmcblk0p1 /boot для подключения загрузочного раздела, зайдите (при помощи команды cd) в директорию и выполните команду sudo bash raspi-config.

Шаг 6: Создание нового сообщения дня (MOTD)

Естественно, успешность ваших действий напрямую зависит от крутизны сообщения дня, которое появляется после успешной авторизации и обычно приправлено ASCII-графикой.

Для изменения сообщения дня введите команду:

Nano /etc/motd

Удалите старое содержимое и вставьте то, что вы хотите видеть после успешного ввода логина и пароля.

Рисунок 16: Сообщение дня в виде ASCII-графики

После внесения изменений сохраните файл (Ctrl O) и выйдите из редактора (Ctrl X).

Шаг 7: Проверка авторизации через SSH

Пробуем авторизоваться с нашего домашнего компьютера или ноутбука. Вначале нужно подключить Raspberry Pi к домашней / рабочей беспроводной сети, в которой находится компьютер. В Raspberry Pi в терминале запускаем команду ifconfig для выяснения IP-адреса:

ifconfig

У некоторых людей возникают ошибки при выполнении этой команды. Если у вас схожая ситуация, попробуйте запустить команду sudo apt-get install net-tools и проверьте, установлен ли у вас пакет net-tools. Затем повторно запустите ifconfig.

Рисунок 17: Выяснение IP-адреса

Затем, используя найденный IP-адрес, введите на компьютере следующую команду:

ssh root@(IP-адрес)

Вы должны увидеть сообщение дня!

Рисунок 18: После успешной авторизации через SSH выводится MOTD

Кроме того, если вы работаете в Маке, можете воспользоваться утилитой arp-scan для просмотра всех устройств, доступных в сети, если нужно найти IP-адрес Raspberry Pi через персональный компьютер.

Шаг 8: Настройка автоматической авторизацию

Иногда нужно войти в систему под именем пользователя отличным от root. Создадим нового пользоваться WHT (имя можно выбрать другое) с правами суперпользователя, запустив следующую команду:

useradd -m WHT -G sudo -s /bin/bash

В качестве пароля устанавливаем нечто более безопасное, чем «toor»:

passwd WHT

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

nano /etc/lightdm/lightdm.conf

Удаляем # в этих строках:

autologin-user=root
autologin-user-timeout=0

Рисунок 19: Содержимое файла lightdm.conf (строки, подлежащие редактированию, выделены зеленым цветом)

Сохраняем файл и выходим из редактора (Ctrl X). Далее вводим следующую команду:

nano /etc/pam.d/lightdm-autologin

Переходим к строке 11:

# Allow access without authentication
auth required pam_succeed_if.so user != root quiet_success
auth required pam_permit.so

И меняем вышеуказанный строки на следующие:

# Allow access without authentication
###auth required pam_succeed_if.so user != root quiet_success
auth required pam_permit.so

Рисунок 20: Содержимое файла lightdm-autologin

Сохраняем файл, выходим из редактора и в терминале вводим команду reboot для перезагрузки Raspberry Pi.

Тестирование сборки

Чтобы удостовериться, что система работает корректно, должны быть выполнены следующие условия:

1. Устройство запускается, и выполняется авторизация без запроса пароля. Во время загрузки запускается SSH. Доступно удаленное управление.

2. Устройство подключается к командной точке доступа, посредством которой осуществляется удаленное управление (эта процедура выполняется по умолчанию во время первоначального подключения).

3. Успешно запускается скрипт besside-ng в связке с атакующей антенной и выполняется инжектирование пакетов (подробное руководство).

4. Raspberry Pi завершает работу без порчи данных на карте micro SD (повторная загрузка происходит успешно).

Если все вышеуказанные условия выполнены, ваша система готова к работе.

Рисунок 21: Использование утилиты Fluxion в связке с Raspberry Pi и проектором