вторник, 4 февраля 2014 г.

gnuplot заметки

Определить стили для линий [gnuplot demo]

set style line номер-стиля lt тип lc rgb цвет lw толщина-линии

set style line 1 lt 1 lc rgb "orangered" lw 2
set style line 2 lt 1 lc rgb "#006400" lw 2

plot data.csv using 2:4 title "Заголовок" with line linestyle 1

Чтение данных из файлов

Использовать первую строку файла как заголовок для графика:
set key autotitle columnhead
Произвести вычисления над данными, например умножить данные из второго столбца на 100:
plot "test.data" using 1:(100*$2)
Можно объявить свою функцию:
foo(x) = x*100
plot "test.data" using 1:(foo($2))
Использовать тернарный оператор (если?то:иначе):
plot 'test.data' using 1:($2>0?1:0)
Читать каждые N строк в файле:
plot "test.dat" every 2
Разделитель для данных в строке
set datafile separator ","

Запустить скрипт с параметрами

Например передать в скрипт имя файла с данными [SO]:

В консоли:
$ gnuplot -e "filename='foo.data'" foo.plg
В скрипте foo.plg:
if (!exists("filename")) filename='default.dat'
plot filename
pause -1

 

Текст


Кирилица в eps: необходимо добавить adobeglyphnames в следующию строку

set terminal postscript eps size 5,3 enhanced color font "Arial,12" adobeglyphnames


Греческий алфавит: {/Symbol a}, {/Symbol b}, - альфа, бета, ...
Индексы: X_1 - X1, Х^1 - X1

Алсо

В linux можно воспользоватся коммандой cut чтобы вывести на экран определённые столбцы -f из файла, разделённые -d пробелом:
cut -f 1,2,4 -d ' ' test.data

Ссылки

сайт посвящённый gnuplot
много примеров, хороших и разных [en] 

пятница, 23 августа 2013 г.

THC Hydra

THC Hydra - это сетевой брутфорсер. Поддерживает TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL, REXEC, RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP и др.
Существует версия как для Linux  так и для Windows. Краткую справку можно получить запустив программу без параметров.

Параметры


-l login или -L file - логин или файл с логинами;
-p password или -P file - тоже самое для паролей;
-C file - использование одного файла с записями вида логин:пароль, используется вместо первых двух параметров;
-M file   - список серверов;
 -e [n|s|r] - опции перебора паролей, n - проверка пустого пароля, s - проверять логины совпадающие с паролями, r подставлять в качестве пароля логин;
-vV - verbose mode. Выводить информацию о действия программы (тестируемые пары логин-пароль, информацию о потоках и т.п.);
-f - остановить выполнение программы как только будет найдена первая подходящая пара логин-пароль;
-o file - сохранять найденные пары логин-пароль в файл;
-s port - использовать указанные порт. Применяется, если сервис находится на нестандартном порту;
-t tasks - число параллельных подключений (по-умолчанию 16);
срвер
сервис 

Иногда при большом количестве потоков hydra может и не обнаружить пароль, даже если он присутствует в словаре.

Примеры

Атака на telnet
hydra -l admin -p qwerty 192.168.1.1 telnet










Перебор паролей по по http: 
hydra -l admin -P /usr/share/wordlists/dirb/others/common_pass.txt -vV -s 80 192.168.1.1 http-get /
...



-vV - выводим все перебираемые пароли;
http-get - метод авторизации;
/ - страница на которой должна происходить авторизация;

Брут smtp
hydra smtp.mail-server.com smtp -l username@mail-server.com -P some_wordlist -S -s 465 -vV
-S - подключатся по SSL.
Иногда в качестве логина можно использовать адрес электронной почты без доменного имени, т.е. до @.

Генерация паролей [stackexchange]

Гидра умеет генерировать пароли прямо во время перебора. Параметры генерации описываются после опции -x мин.длинна:макс.длинна:набор-символов.
hydra -l user_name -V -x 4:4:aA1 ip_address ssh
Будут сгенерированы пароли длинной 4 символа, которые могут состоять из:
a - строчные буквы латинского алфавита
А - прописные буквы латинского алфавита
1 - цифры

Ссылки


вторник, 14 мая 2013 г.

Crunch – Как создать словарь для брута

Пример:
crunch 8 8 -f lalpha-numeric -o 8alpha-num
8 - минимальная длинна слова;
8 - максимальная длинна слова;
-f lalpha-numeric - буквы анг.алфавита в нижнем регистре и цифры;
Остальные наборы символов можно просмотреть в файле charset.lst, найти его можно здесь: /usr/share/crunch.
-o 8alpha-num - имя файла в который будет записан словарь.
Третьим параметром можно просто перечислить символы из которых будут составлены слова:
crunch 4 4 0123456789abcdef -o 4hex
Задать шаблон (-t):
crunch 6 6 -t qwerty%%%%
@ – строчные буквы;
, – заглавные буквы;
% – цифры;
^ – спец. символы.


Вместо комбинации символов использовать комбинацию слов (-p)
crunch 10 10 -p abc 123 pass

Also

***
Разбить файл на 8 частей
split -n 8 file
***
Разбить файл на части, не более 50000 строк в каждой
split -l 50000 file
***
Преобразовать первую букву в каждой строке файла в верхний регистр (explanation):
sed  's/^\(.\)/\U\1/' file > File
***
Если есть база паролей в формате, например email:password то так можно отделить одно от другого
cat passwords | cut -d ':' -f 2
Утилита cut отделит поля в каждой строке по двоеточию (-d ':') и выведет только второе -f 2
***
Предположим, что из файла с парами логин-пароль извлечены исключительно пароли.
Ибо пароли повторяются то покажем содержимое файла удалив дубликаты
cat passwords | sort | uniq 
Отсортировать список слов по популярности.
cat passwords | sort | uniq -c | sort -nr | sed 's/^ *//' | cut -d ' ' -f 2
unic -c - сосчитает (-c) сколько раз слово попадалось в словаре и на выходе выдаст что-то вроде 39177 qwerty, затем
sort -nr отсортирует получившиеся строки по числу (-n - рассматривать строки как числа) вхождений в порядке убывания (-r);
sed 's/^ *//' удалит образовавшиеся после вывода предыдущей команды пробелы в начале каждой строки;
cut -d ' ' -f 2 наконец выведет только пароль, без указания его частот.

***
Брутфорсер Jonh The Ripper  обладает замечательной функцией преобразовывать словари согласно так называемым правилам. Модифицируя слово несколькими способами (смена регистра, добавление префикса, замена одних символов на другие и т.д.) можно значительно увеличить объём словаря. Кроме того, John можно использовать и для создания словарей. http://nahlogin.blogspot.ru/2014/09/john-ripper.html

***

Например сгенерировать словарь состоящий из календарных дат (без учёта числа дней в месяце):
echo -e {1920..2015}.{01..12}.{01..31}\\n | tr -d " " > dates.lst
ключ -e позволяет интерпретировать символ конца строки \n, tr удаляет (-d) пробелы образующиеся перед датой в выводе первой программы.
Следующее выражение сгенерирует все комбинации пар слов в указанном порядке:
echo -e {alpha, beta}-{one, two}\\n | tr -d " " > dates.lst

Ссылки

Как декодировать дамп в Wireshark если известен WEP\WPA ключ?


Включить "wireless toolbar" через меню View.

dot11-wireless-toolbar.png

Добавить ключи.
Для WPA выбрать WPA-PWD, ввести пароль и SSID (имя сети).
Для WEP необходимо вводить не непосредственно пароль, а ключ представленный в шестнадцатеричном виде.
В настройках preferences -> protocols -> IEEE 802.11 должна быть включена расшифровка пакетов Enable decryption.

Выбрать режим Wireshark или Driver:
dot11-key-management.png

Важное замечание. Для расшифровки WPA требуется не только пара пароль-SSID но и польностью перехваченный handshake, с использованием которого Wireshark и вычисляет ключ.
Применив фильтр "eapol" можно посмотреть присутствуют ли все 4 последовательных пакета "рукопожатия" в трафике.

Возможно придётся поиграть с значением параметров Assume Packets Have FCS and Ignore the Protection bit в настройках протокола IEEE 802.11 (preferences -> protocols -> IEEE 802.11).

Алсо
Фильтр  wlan.fc.type_subtype != 0x08 скроет широковещательные пакеты точки доступа (beacon frames) 

by wireshark wiki

вторник, 20 ноября 2012 г.

Git

Что есть Git
 http://ru.wikipedia.org/wiki/Git


Начало

Создать init репозиторий в текущем каталоге
git init 
Будет создан скрытый каталог .git, содежащий информацию о репозитарии. Однако git пока не отслеживает изменения в файлах каталога.
Их нужно добавить add в список отслеживания т.н. индекс:
git add <имя_файла_или_папки>
или
git add .
. - означает, что добавить необходимо все файлы которые есть.
Дополнительный параметр -i позволяет выбрать файлы для индексирования в интерактивном режиме.


Если репозиторий уже существует, например по адресу https://my@repo/myproject.git то его можно скопировать clone себе командой
git clone https://my@repo/myproject.git
Удалить rm файлы с диска
 git rm <файл>
Удалить файлы из индекса (отслеживания)
 git rm --cached <файл>
Git будет часто напоминать о не отслеживаемых файлах, в каталоге репозитория. Имена этих файлов можно добавить в спосок исключений:
.git\info\exclude - файл с описанием типов файлов и папок не включаемых в репозиторий

После того, как файлы репозитария были изменены нужно зафиксировать эти изменения в git.
зафиксировать commit сделанные изменения
git commit -am "примечание"
поместить push все изменения в главное хранилище
git push
достать pull из главного хранилища
git pull
 Наконец самый полезный параметр --help 
git <вот-об-этой-команде-я-и-хочу-что-то-узнать> --help


Коммиты (фиксации)

Сделать коммит.
git commit -am "примечание"
-a  сделать коммит для всех файлов, если необходимо - неявно выполнить git add и git rm, для новых файлов и удалённых соответственно
-m "note"  добавить комментарий к коммиту
log Показать историю коммитов
git log
Последнее выглядит куда приятнее если использовать текстовый интерфейс для Git под названием tig:

 

 

 

 

 

 

 

 

 

Редактирование коммитов 

 

Дополнить (--amend) коммит изменениями.
Если коммит был сделан преждевременно, то можно внести изменения и после и добавить их в него, не создавая нового:
git commit -a --amend

Удалить (reset) последний коммит (но не изменения) (--soft)
git reset --soft HEAD^

Удалить последний коммит и последние изменения (--hard)
git reset --hard HEAD^

Все коммиты имеют SHA1 хэш, например  9effa6ec863ea18823ca69bfae1d1f0ac610e544
Используя хэш можно обратиться к конкретному коммиту (вместо последнего HEAD^). Обычно требуется только первые 4 цифры хэша для идентификации коммита (здесь это 9eff).
Удалить reset все коммиты после заданного
git reset --hard <хэш_фиксации> [файл для которого будет выполнена команда]
Переключится checkout на определённый коммит
git checkout <хэш_фиксации> [файл для которого будет выполнена команда]
Вернуть файл на состоние последнего коммита
git checkout -- file.txt

 

Ветки

master - название основной ветки по-умолчанию.
посмотреть список веток branch
git branch
-a или --all - посмотреть список всех веток, в том числе и хранимых в главном хранилище.
Cоздать новую ветку. Ветка будет создана как копия текущей.
git branch <имя_ветки>
-d или --delete - удалить ветку
-m или --move переименовать ветвь, например
git branch -m <имя_ветки> <новое_имя_ветки>
переключится на ветку
git checkout <имя_ветки>
-b - с этим параметром переключение происходит вместе с созданием новой ветки


Конфликты

Если в ветках, слияние которых происходит редактировались одни и те же части файлов - происходит конфликт. Git, тем не мение, помещает все изменения в один и тот же файл, однако отделяет изменения активной ветки
и той, с которой происходит слияние таким образом
<<<<<<< HEAD 
изменения в текущей ветке
======= 
изменения ветки с которой происходит слияние
>>>>>>> d918d23958841041e2f75b9cbfafc93e9a9a1321 
Оставить "их" или "наш" файл:

git checkout --theirs -- path/to/conflicted-file.txt
git checkout --ours -- path/to/conflicted-file.txt

Алсо

head     ссылка на последнюю фиксацию в текущей ветке
HEAD     текущая ветка. точнее, ...
origin     главный репозиторий по-умолчанию. ...

рассказать о себе
git config --global user.name "Your Name"
git config --global user.email you@example.com
Если опустить ключ --global в вышеприведённых командах то изменения коснутся только данного репозитория.

***
Сделать слияние определённых файлов из разных веток - SO
 

Примеры

Создать репозиторий
git init
# смотрим что есть в папке
git status
# при желании добавляем в файл .git/info/exclude исключения, файлы (или каталоги) которые не должны отслеживаться гитом
git add .
git commit -am "..."
git checkout -b develop_branch
репозиторий уже есть...
git clone https://sotona@bitbucket.org/sotona/p.git
git checkout -b my_branch
# делаем  какие-нибудь изменения
git commit -am "какое нибудь информативное описание"[link]
# ещё несколько изменений-фиксаций
...
# теперь наконец-то есть чем похвалиться, зальём изменения (и заодно новую ветку) в главное хранилище.
git push origin rz_consts 
# ещё несколько фиксаций и выталкиваний (какое-то дурацкое слово)
...
# похоже в этой ветке все задуманные изменения сделаны и к тому же работают. Пора объединить её с главной (master) веткой 
git checkout master
git merge my_branch
# отлично, заливаем всё в главное хранилище
git push origin master

Типичный сценарий работы с git.
Предполагается, что существуют две ветки: master, где должна содержатся рабочая версия кода и develop - ветка, в которую вносятся изменения.

На ветке develop. Внести изменения в отслеживаемые файлы.
Зафиксировать изменения в git
git commit -am "комментарий к изменениям"
Убедится, что код с внесенными изменениями работает.
Переключится на ветку master и объединить её с develop.
git checkout master
git merge develop

Вернутся в ветку develop для внесения новых изменений.
git checkout develop

Git GUI


Ссылки

codeschool: git (интерактивное введение в git)
Правила хорошего тона при работе с git в многопользовательском окружении
Обзорные:
http://habrahabr.ru/post/60030/
http://habrahabr.ru/post/60347/
Отладка с помощью Git
Магия Git - хорошая онлайн-книга о Git
Немного отвлечённое
Стиль именования коммитов

Aircrack-ng

Методология получения пароля

Здесь и далее речь пойдёт о wifi сетях защищённых паролем одним паролем для всех клиентов (WPA-PSK). Хотя, есть и другие способы защитить сеть.
1. Для прослушивания эфира понадобится перевести карту в режим монитора (monitor), чтобы можно было беспрепятственно прослуживать, а самое главное записывать происходящее в эфире (на частоте wifi).
2. В этом режиме нужно будет поймать так называемое четырхэтапное (четырёхсторонее) рукопожатие происходящее в момент подключения клиента к точке доступа. 
3. Далее, получив эти пакеты, можно делать предположения о пароле - брутфорсить.

Самые интересные это этапы 2 и 3.
Этап 1. Каждый клиент использует свой ключ (Pairwise Transient Key — кратковременный парный ключ) для шифрования. Этот ключ создаётся в момент подключения к ТД и меняется при каждом подключении. Он зависит от:
-  Pairwise Master Key — главный парный ключ, который зависит от:
--  пароля,
-- названия сети;
- MAC клиента;
- MAC точки доступа;
- A-nonce - случайная строка сгенерированная ТД;
- S-nonce - случайная строка сгенерированная клиентом.

Механизм создания PMK, PTK и MIC.
Механизм создания PMK, PTK и MIC.


Таким образом, обычно кроме пароля атакующему неизвестны A-nonce и S-nonce, которыми ТД и клиент обмениваются при подключении последнего в начале четырёхстороннего рукопожатия. Именно ради них и нужно либо ждать подключения клиента, либо принуждать его к переподключению. Наконец нужно знать MIC, который передаётся клиентом вместе с S-nonce. Кроме того, нужно знать имя сети, он содержится в beacon frame.

Для брута пароля необходимы три WiFi кадра
Первый кадр - beacon frame не содержит ничего примечательного кроме имени сети.

Второй кадр: точка дочтупа отправляет A-nonce

Тритий кадр: клиент отвечает фреймом содежащим S-nonce и MIC


4 way handshake
4 way handshake

Когда вся необходимая информация собранна, остаётся к уже известным данным добавлять различные пароли и проверять их на пригодность.

Этап 3.
Чтобы подбирать пароль, нужно знать как проверить его на пригодность. Здесь это происходит путём сравнения MIC (Message Integrity Code - код целостности сообщения) переданного по wifi сети и вычисленного при брутфорсе. MIC зависит помимо прочего и от PTK, а значит перебирая пароли можно получать разные MIC и сравнивать их с перехваченным.

Подробнее о генерации ключей и о методе перебора можно почитать здесь.

Сперва последует некоторая воводно-подготовительная часть, а далее уже сам процесс проверки сети на защищённость. Причём, будут рассмотрены аспекты касающиеся в основном aircrack.

Режимы работы wifi карты [link]

Managed - управляемый режим (по-умолчанию). Устройство работает как клиент с точкой доступа.
Ad-Hoc - устройство является самостоятельной ячейкой одноранговой сети;
Master - Мастер (узел является мастером синхронизации или работает как Точка Доступа),
Repeater — Повторитель (узел перенаправляет пакеты между другими беспроводными узлами)
Secondary - Вторичный (узел выступает в качестве резервного мастера/повторителя),
Monitor — Контроль (узел связан со всеми ячейками и пассивно мониторит все пакеты на частоте)
Auto - Автоматический. 

iwconfig покажет режим работы wifi карты:
wlan0    IEEE 802.11  ESSID:"my_network" 
          Mode:Managed  Frequency:2.412 GHz  Access Point: 11:22:33:45:67:89  
          Bit Rate=1 Mb/s   Tx-Power=20 dBm  
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=56/70  Signal level=-54 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:157   Missed beacon:0

Aircrack-ng

Aircrack-ng можно найти в LiveCD на основе Silitaz (сборка разработчиков Aircrack-ng), в Kali linux (ранее Backtrack) или установить отдельно. Имеются версии для Windows и Linux. Последняя предпочтительнее. Разработчики предлагают ещё образ для VMware, который работает исключительно с USB WiFi картами.
Все операции выполняются от имени суперпользователя. Далее будет рассмотрена версия aircrack-ng 1.2.
Best Compatible USB Wireless Adapter for BackTrack 5, Kali Linux and Aircrack-ng

Подготовка 

Посмотреть список сетевых устройств
airmon-ng
Перевести Wi-Fi карту в режим монитора. Здесь и далее имя wifi карты wlan0
airmon-ng start wlan0
таким же образом, только командой stop можно остановить монитор на сетевой карте.
По-умолчанию имя монитора wlan0mon, используем теперь его.
Некоторые программы могут вмешиватся в работу адаптера. Их список можно просмотреть:
airmon-ng check
 и при необходимости сделать попыку завершить их работу:
airmon-ng check kill
Проверить, поддерживает ли карта инъекцию пакетов (injection_test) [подробнее, doc]
aireplay-ng -9 wln0mon

Поменяем mac адрес карты, для этого отключаем её
ifconfig wlan0mon down
поменять MAC адрес сетевой карты на рандомный (-r) или какой-то определённый (-m 00:31:41:59:26:53)

macchanger wlan0mon -r
или
ifconfig wlan0mon hw ether 00:00:00:00:aa:bb
включаем сетевую карту
ifconfig mon0 up

Увеличение мощности WiFi сигнала

Не все карты поддерживают изменение мощности в руном режиме. Ограничения на мощность сигнала описаны в файле /lib/crda/regulatory.bin (просмотреть командой regdbdump /lib/crda/regulatory.bin), для России как и для многих других стран, мощность ограничена 20дБ:
country RU:
    (2402.000 - 2482.000 @ 40.000), (N/A, 20.00)
Для Белиза ограничения иные:
country BZ:
    (2402.000 - 2482.000 @ 40.000), (N/A, 30.00)
Поэтому просто сменив регион, можно установив большую мощность передаваемого (tx - transmit) радиосигнала.

ifconfig wlan0 down – выключаем интерфейс
macchanger -r wlan0 – меняем MAC
iw reg set BZ – выставляем регион Белиз
iwconfig wlan0 txpower 30 – увеличиваем мощность
ifconfig wlan0 up – поднимаем интерфейс
***

Метод перехвата handshake (WEP, WPA, WPA2)

Самый простой способ. Необходимо перехватить момент авторизации клиента, получить т.н. handshake и используя последний подобрать пароль уже в офлайне. Ждать пока один из клиентов сети подключится к ней не обязательно, можно отключить его от сети и подождать  переподключения, как правило оно происходит автоматически. Подробнее, но на английском: http://www.aircrack-ng.org/doku.php?id=cracking_wpa

1. Промониторить доступные WiFi сети:
airodump-ng <interface>
Например, --wps показать информацию о WPS, о производителе (-M) и времени (--uptime) работы точки доступа:
airodump-ng --wps -M --uptime wlan0mon
 CH  3 ][ Elapsed: 15 mins ][ 2015-09-02 10:16 ][                                                                                                
 PWR  Beacons    #Data, #/s  CH  MB   ENC  CIPHER AUTH        UPTIME  WPS                ESSID                       MANUFACTURER            
                                                                                                                                                                
 E9:78:B0:BE:EF:38  -55     2057       98    0   5  54e. WPA2 CCMP   PSK    0d 03:24:58  1.0 ETHER,LAB,PBC  TP-LINK_BEEF38              TP-LINK TECHNOLOGIES CO 
 60:B3:4E:1A:08:6E  -59      992        3    0   1  54e  WPA2 CCMP   PSK    0d 05:08:05                     kv29                        SAGEMCOM                
 7D:51:A2:6D:3B:B3  -81     1045        0    0   5  54e. WPA2 CCMP   PSK    0d 01:27:42                     SoftAP                      Unknown                 
                                                                                                                                                               
 BSSID              STATION            PWR   Rate    Lost    Frames  Probe                                                                                     
                                                                                                                                                                
 (not associated)   8C:27:16:E7:65:86  -85    0 - 1      0        1                                                                                             
 (not associated)   9C:C5:E4:E6:D9:57  -88    0 - 1      0        9                                                                                             
 (not associated)   00:10:3B:24:B5:92  -70    0 - 1      0       61                                                                                             
 (not associated)   D7:4A:00:11:51:91  -93    0 - 1      0       49  Ivanov                                                                                
 E9:78:B0:BE:EF:38  8C:D1:07:BE:80:5F  -71    0e- 1e     0       37                                                                                             
 E9:78:B0:BE:EF:38  0C:BD:51:27:74:08  -65    0 - 1      0        8  
Следить за конкретной точкой доступа и клиентами удобнее, если перейти в режим выделения <TAB> и там уже выделить интересующую точку доступа, автоматически будут подсвечены и подключенный к ней клиенты. Клавишей M устанавливается постоянная "подсветка" цветом ТД и подключенных устройств. Отсортировать таблицу по определённому полю можно последовательным нажатием клавиши S.
2. Начать запись перехваченных пакетов сети в файл:
airodump-ng -c <chanel_number> -w <out-file> --bssid <bssid> <interface>
-c  номер прослушиваемого канала.
Сетевая карта в один момент времени способна прослушивать только один канал. Если в параметрах airodump-ng не указать конкретного канала, то карта будет слушать весь эфир, уделяя каждому отдельному каналу время и игнорируя данные передаваемые на других каналах.
-w  имя файла, куда будут сохранены пакеты.
--bssid - bssid точки доступа.

***
В случае если во время перехвата пакетов возникает ошибка "fixed channel -1" , то её можно попытаться исправить передав ключ --ignore-negative-one. Такой же ключ нужно передать и программе airoplay-ng. [askubuntu],[kali]

3. параллельно процессу перехвата пакетов:
посылка пакетов деаутентификации
airoplay-ng -0 5 -a <bssid> <interface>
-0     режим отсылки пакетов деаутентификации
-a     bssid точки доступа
-с     ssid клиента, кого следует деаутентифицировать (необязательный параметр)

4. Ждать получения handshake.
Пакеты деаутентификации посылаются напрямую клиентам, а они как правило имеют меньший радиус "слышимости" чем точка доступа. Проследить получение клиентом пакетов можно по количеству ответных ACK  пакетов от него.
возможно стоит поэкспериментировать со скоростью работы карты iwconfig <interface>  rate auto [1MB, 2MB, 11MB, 54MB, etc] чтобы она совпадала со скоростью работы точки доступа.

Иногда airodump-ng не сообщает о получении handshake, поэтому стоит время от времени проверять cap файл на наличие handshake.

Самый простой способ это сделать, открыть файл например с помощью wireshark и применить фильтр eapol.
Например:
tshark -r n-01.cap -Y "eapol"

Для брута пароля необходимо два первых последовательных пакета"рукопожатия" (производимого с ТД за 4 шага). В них содержатся случайные строки сгенерированные клиентом и ТД - A-nonce и S-nonce, которые необходимы для генерации ключа PTK, а также MIC который используется для подбора пароля.



Более быстрый, но чуть менее надежный (с практической точки зрения) результат может дать программа cowpatty:
cowpaty -c -r <cap_file> 
Вполне возможно, что данных для брута в cap файле достаточно, но cowpatty вполне справедливо может отметить, что handshake не полный.

Выдернуть только необходимые для брута пакеты из дампа способна утилита wpaclean, тем самым избавив от необходимости работы с возможно объёмным cap файлом:
wpaclean <новый-pcap-файл> <pcap-файл>

5. Если handshake получен, то приступить к подбору пароля
aircrack-ng <dump-file.cap> -w <pass_dict>
 <dump> - имя файла с дампом.
 -w  имя файла со словарём паролей.
вместе c Backtrack поставляется словарь, найти его можно здесь: /root/pentest/passwords/wordlists, aircrack-ng тоже содержит в директории_исходных_кодов\test\password.lst словарь.

Предварительно можно запустить бенчмарк для измерения скорости подбора:
aircrack-ng -S
а также показать сведенья о процессоре:
aircrack-ng -u
Для генерации собственного своего словаря можно использовать crunch.

Если есть необходимость применить правила трансформации для паролей из словаря, то можно использовать John The Ripper через конвейер:
/opt/john/john --stdout -w:wordlist.lst --rules | aircrack-ng handshake -b 11:22:22:22:22:22 -w -

JohnTheRipper-Jumbo тоже подойдёт для перебора. Однако нужно конвертировать handshake из pcap файла в понятный для John формат с помощью программы wpapcap2john, что поставляется вместе с версией сообщества JTR-Jumbo (git, ветка bleeding jumbo):
/opt/john/wpapcap2john dump.cap > handshake.john
/opt/john/john lar-handshake.john --format=wpapsk
Кроме использования правил, John может похвастаться возможностью сохранять состояние перебора, позволяя продолжить его в дальнейшем с того же места, где работа была прервана. 

Увеличить производительность брута поможет GPU. Для этого Windows можно использовать Elcomsoft Wireless Security Auditor, Linux - pyrit, но наверное лучшая программа для этого кросплатформенный oclHashcat.

 

 Fake authentation

airodump-ng -c <channel> -w <out_file> --bssid <bssid> <interface> # dumping...
# making fake authentication
aireplay-ng -l 0 -a <bssid> -h <my_ssid> <interface>
#start airplay-ng in ARP request replay mode (-3 )
aireplay-ng -3 -b <bssid> -h <my_ssid> <interface>
#cracking the password
aircrack-ng -n <64 or 128 or ..> --bssid <bssid> <cap file>


...

Защита wifi

SoftPerfect WiFi Guard (Windows, MacOS) производит сканирование сети с определённым интервалом. Предупреждает о подключении незнакомого устройства, показывает список WiFi клиентов.
SoftPerfect WiFi Guard
SoftPerfect WiFi Guard

waidps (python script). В число возможностей программы входит обнаружение атак и подозрительной активности в WiFi сетях. Ведёт логирование и предупреждает об атаках. Во время работы переводит WiFi адаптер в режим монитора.

 
пример вывода waidps.

(изображение с syworks.blogspot.ru)



 

Алсо

Тест скорости подбора паролей WPA (-S )
aircrack-ng -S
Подключение к wifi сети из командной строки
С использованием утилиты сходящей в состав Network Manager - nmcli [using nmcli], [also].
С программой довольно просто работать, ибо по двойному табу она показывает возможные команды. Кроме того, в руководстве есть примеры использования.
Просмотрим список доступных сетей:
nmcli dev wifi
SSID                              BSSID               РЕЖИМ            ЧАСТОТА    СКОРОСТЬ   СИГНАЛ   БЕЗОПАСНОСТЬ АКТИВЕН
'network1'                  C1:B0:C1:f6:AD:09   Инфраструктура   2417 МГц   54 МБ/с    69       WPA2       нет    
'network2'                  F0:37:AA:CF:F8:66   Инфраструктура   2462 МГц   54 МБ/с    62       WPA2       нет 
Этот способ можно использовать и для того, что сравнить уровень сигнала на нескольких картах одновременно. В этом случае, для каждого адаптера будет отображаться своя таблица.

Подключимся к новой сети с SSID "Cafe Hotspot 1" используя пароль caffeine
nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"

***
При подключении к сети MAC адрес карты может поменяться на дефолтный, поэтому перед сменой адреса карты следует отключать службу
network-manager: 

service network-manager stop
Другой путь - в настройках подключения Network Manager'a в поле cloned MAC указать вновь присвоенный карте MAC адрес.
***
Смена hostname: askubuntu.com


***
Подробная информация об адаптерах [askubuntu]
lshw -C network
или
iw list
***
Включение режима точки доступа WiFi карты с использование hostapd
habrahabr.ru
Стоит отметить, что hostapd игнорирует комментарии только в отдельных строках. Для проверки конфига ТД следует запускать не демон (service hostapd start), а использовать комманду (-dd для подробного вывода)
hostapd -dd <файл конфигурации>
Нормальной работе hostapd может мешать NetworkManager, поэтому следует либо его отключить либо добавать MAC адрес интерфейса в исключения.  [help.ubuntu]

Другие утилиты
Airodump-NG Scan Visualizer - поможет просмотреть CVS файл и поиграться с хранящимися там данными о сетях. В том числе покажет информацию о подключённых клиентах, уровне сигнала, шифровании перехваченных пакетах и т.п.

"Zero Security: A". Horst - утилита для анализа Wi-Fi сетей
Waidps – средство обнаружения атак в Wi-Fi сетях

Python

С помощью пакеты Scapy можно довольно легко анализировать сетевые пакеты. Wifi - пакет с нехитрым названием и функционалом похожим на iwlist: сканирование сетей и подключение к ним.
Violent Python - A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers, TJ O'Connor

Другие атаки
Использование reaver для восстановления PIN-кода WPS
Модификация форка Reaver — t6x — для использования атаки Pixie Dust
Фальшивый хотспот Wifiphisher автоматически собирает пароли

Отправка сообщения по окончанию процесса перебора
Процесс подбора пароля ожидаемо может быть долгим, поэтому логичным будет как-то информировать пользователя об его окончании. Самый простой путь - добавить комманду через точку с запятой после вызова aircrack:
aircrack-ng dump.cap -w wordlist; notify-send "John complited"
Обыкновенный вывод уведомления на экран программой notify-send не подходит, то можно отправить XMPP сообщение программой sendxmpp или емейл программой mailx. [linux notes]

Если возникает необходимость настроить отправку сообщения когда aircrack-ng уже запущен и нет желания прерывать его работу, то можно воспользоваться простеньким однострочным скриптом:
while [ `pidof aircrack-ng` ]; do sleep 10; done; notify-send "..."
Скрипт будет выполнять команду sleep 10, до тех пор пока он может получить pid процесса с именем aircrack-ng. Затем, когда pid не будет получен (процесс aircrack-ng завершится) выполнится следующая комманда - notify-send. Разумеется для корректной работы скрипта нужно чтобы работал только один экземпляр процесса aircrack-ng.

Ссылки