You are here: Home » Атаки на пароли » 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
  • umbraco_crack : Взлом хешей паролей Umbraco HMAC-SHA1
  • tcp_fuzz : Фаззинг TCP служб
  • dummy_test : Модуль тестирования

Особенности 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 | ...]
  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 прокси для использования (host:port)
  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] 

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     : тип хранилища ключей для тестирования

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.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             | файлы хранилища ключей| http://www.oracle.com/technetwork/java/javase/|     6 |
--------------------------------------------------------------------------------------------------
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

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

Близкие программы:

Рекомендуемые статьи: