Hydra

Install THC Hydra

The first step is to download and compile THC-Hydra (clean compile tested on Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) and MacOS).

Install hydra with the following commands:

$ git clone https://github.com/vanhauser-thc/thc-hydra
$ cd thc-hydra/
$ ./configure
$ make
$ make install

Note: For ssh module, you need to setup libssh (*not libssh2!) and for ssh v1 support, just add option in the cmake command line.

 Compiled without LIBSSH v0.4.x support, module is not available!

In order to install required libraries (xhydra), Ubuntu/Debian users need to run:

apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
                libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \
                firebird-dev libncp-dev

Exception:

  • Oracle, SAP R/3 and Apple Logging Protocols modules – you’ll need to download and install them from appropriate sources;
  • Other Linux derivates /BSD based systems – use the system software installer and find adequate libraries;
  • Other – download & install source libraries and compile them manually.

THC Hydra Commands

  • type . too see all available command line options or
  •  for a shorter version.
hydra  ] | ]    ]       [service://server]
  • – vrebose mode
  • – login name
  • – <password_file/wordlist>
  • – nsr, additional checks, “n” for null password, “s” try login as pass, “r” try the reverse login as pass
  • – <number of paralel connects>
  • – <max time to wait for response>
  • – : exit after first login/password pair found
  • – : OPTIONS – module specific options. See hydra -U <module> what options are available.

Hydra Password Cracker Examples

HTTP-POST-FORM:

$ hydra -l plague -P passList.txt -vV -f -t 5 192.168.1.100 http-post-form "/wp/Forum/login.php:log=^USER^&pwd=^PASS^:login_error"
  •  http-post-form : supported service
    • login_error: grep text from HTML form if login failed
    • log: form username input field name
    • pwd: form password input field name

FTP Example (WordList):

$ hydra -s 21 -V -l plague -P wordlist.txt -e s -t 10 -w 5 192.168.1.100 ftp

SSH Example(WordList):

$ hydra -s 22 -V -l plague -P wordlist.txt -t 10 -f 192.168.1.100 ssh

Telnet Example (WordList):

$ hydra -s 23 -V -l plague -P wordlist.txt -e ns -t 10 -w 5 -f -m 192.168.1.100 telnet

HTTP Login Example (WordList). For HTTPS set “https-get”:

$ hydra 192.168.1.1 http-get -v -V -l telekom -P wordlist.txt -e ns -t 5 -w 30 -m / -f

RDP Example (WordList):

$ hydra -t 4 -V -l plague -P wordlist.txt rdp://192.168.1.100

MySQL Example (WordList):

$ hydra -t 4 -V -f -l plague -e ns -P wordlist.txt 192.168.1.100 mysql

Restore Aborted Session

 file contains all necessary information for the session restore, which is written every 5 min. So, if hydra crashes or you just abort it with Control + C,  you’ll find all information in that file. NOTE: you can’t copy the  file to different platforms.

Scan/Crack Over a Proxy

The environment variable HYDRA_PROXY_HTTP defines the web proxy (*this works just for the http/www service!). Use the following syntax:

HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"
HYDRA_PROXY_HTTP="http://login:password@123.45.67.89:8080/"

You can use the HYDRA_PROXY variable to scan/crack for all other services with the same syntax:

HYDRA_PROXY=://proxy_addr:proxy_port

Interested in Network Scanning? Check out ZMap: Fast Internet Scanner.

Documentation

Upgrading and Changelog

New releases might introduce breaking changes. To help you identify and incorporate those changes, we document these
changes in UPGRADE.md and CHANGELOG.md.

Dependencies

You need Go 1.13+ with and (for the test suites):

  • Docker and Docker Compose
  • Makefile
  • NodeJS / npm

It is possible to develop ORY Hydra on Windows, but please be aware that all guides assume a Unix shell like bash or zsh.

Workflows

Install Tools

When cloning ORY Hydra, run . It will download several required dependencies. If you haven’t run the command
in a while it’s probably a good idea to run it again.

Running Tests

There are three types of tests you can run:

  • Short tests (do not require a SQL database like PostgreSQL)
  • Regular tests (do require PostgreSQL, MySQL, CockroachDB)
  • End to end tests (do require databases and will use a test browser)
Short Tests

Short tests run fairly quickly. You can either test all of the code at once:

go test -short ./...

or test just a specific module:

cd client; go test -short .
Regular Tests

Regular tests require a database set up. Our test suite is able to work with docker directly (using ory/dockertest)
but we encourage to use the Makefile instead. Using dockertest can bloat the number of Docker Images on your system
and are quite slow. Instead we recommend doing:

make test

Please be aware that recreates the databases every time you run . This can be annoying if
you are trying to fix something very specific and need the database tests all the time. In that case we
suggest that you initialize the databases with:

make resetdb
export TEST_DATABASE_MYSQL='mysql://root:secret@(127.0.0.1:3444)/mysql?parseTime=true&multiStatements=true'
export TEST_DATABASE_POSTGRESQL='postgres://postgres:secret@127.0.0.1:3445/postgres?sslmode=disable'
export TEST_DATABASE_COCKROACHDB='cockroach://root@127.0.0.1:3446/defaultdb?sslmode=disable'

Then you can run as often as you’d like:

go test -p 1 ./...

# or in a module:
cd client; go test .

E2E Tests

The runner will not show the Browser window, as it runs in the CI Mode (background). That makes debugging these
type of tests very difficult, but thankfully you can run the e2e test in the browser which helps with debugging! Just run:

./test/e2e/circle-ci.bash memory --watch

# Or for the JSON Web Token Access Token strategy:
# ./test/e2e/circle-ci.bash memory-jwt --watch

or if you would like to test one of the databases:

make resetdb
export TEST_DATABASE_MYSQL='mysql://root:secret@(127.0.0.1:3444)/mysql?parseTime=true&multiStatements=true'
export TEST_DATABASE_POSTGRESQL='postgres://postgres:secret@127.0.0.1:3445/postgres?sslmode=disable'
export TEST_DATABASE_COCKROACHDB='cockroach://root@127.0.0.1:3446/defaultdb?sslmode=disable'

# You can test against each individual database:
./test/e2e/circle-ci.bash postgres --watch
./test/e2e/circle-ci.bash memory --watch
./test/e2e/circle-ci.bash mysql --watch
# ...

Once you run the script, a Cypress window will appear. Hit the button «Run all Specs»!

The code for these tests is located in ./cypress/integration and
./cypress/support and
./cypress/helpers. The website you’re seeing is located in
./test/e2e/oauth2-client.

We embed the SQL files into the binary. If you make changes to any file, you need to run:

make sqlbin

You can build a development Docker Image using:

make docker
make docker
docker compose -f quickstart.yml up # ....

HOW TO COMPILE

To configure, compile and install hydra, just type:

If you use Ubuntu/Debian, this will install supplementary libraries needed
for a few optional modules (note that some might not be available on your distribution):

This enables all optional modules and features with the exception of Oracle,
SAP R/3, NCP and the apple filing protocol — which you will need to download and
install from the vendor’s web sites.

For all other Linux derivates and BSD based systems, use the system
software installer and look for similarly named libraries like in the
command above. In all other cases, you have to download all source libraries
and compile them manually.

JSON Schema

Here is an example of the JSON output. Notes on some of the fields:

  • — an array of zero or more strings that are normally printed
    to stderr at the end of the Hydra’s run. The text is very free form.
  • — indication if Hydra ran correctly without error (NOT if
    passwords were detected). This parameter is either the JSON value
    or depending on completion.
  • — How many username+password combinations discovered.
  • — Version of the schema, 1.00, 1.01, 1.11, 2.00,
    2.03, etc. Hydra will make second tuple of the version to always be two
    digits to make it easier for downstream processors (as opposed to v1.1 vs
    v1.10). The minor-level versions are additive, so 1.02 will contain more
    fields than version 1.00 and will be backward compatible. Version 2.x will
    break something from version 1.x output.

Version 1.00 example:

SSH

hydra -l root -M /path/to/ip/list.txt -P /path/to/passwordlist.txt ssh -t 4

Notice that with some services, we may need to use the recommended
number of tasks. In case of SSH if we use more than 4 tasks we may get
errors.

hydra 192.168.1.26 ssh2 -s 22 -P pass.txt -L users.txt -e ns -t 10
 # this will attack the system 192.168.1.26 on port 22
 # and will use as password file pass.txt while
 # for users the file users.txt
 # the process will use 10 threads at a time
hydra -l root -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 6 ssh://192.168.1.123
hydra -L logins.txt -P pws.txt -M targets.txt ssh
# tries the users from logins.txt and the paasswords from pws.txt
# on all the machines listed on targests.txt on the ssh port/service

MySQL and other databases

We can use hydra with many kinds of databases, anyway it is very important for
us to check that we have installed hydra with the adequate module to perform a
specific bruteforce.

IMPORTANT: if we did not install hydra with mysql5 support it will not work,
we can check the modules available by issuing a , if we just see
this means that our version will not be compatible with ,
while if we see then our version of hydra will be compatible also with
mysql5 databases.

hydra -L <your_username_file> -P <your_password_file> <IP> mysql -s 3306 -o output.txt

notice that this is equivalent to:

hydra -L <your_username_file> -P <your_password_file> <IP> mysql -o output.txt
 # by default mysql uses port 3306 so we do not need to specify it,
 # anyway it is fundamental to specify it if the mysql port is different

Documentation for API Endpoints

All URIs are relative to

Class Method HTTP request Description
AdminApi PUT /oauth2/auth/requests/consent/accept Accept a consent request
AdminApi PUT /oauth2/auth/requests/login/accept Accept a login request
AdminApi PUT /oauth2/auth/requests/logout/accept Accept a logout request
AdminApi POST /keys/{set} Generate a new JSON Web Key
AdminApi POST /clients Create an OAuth 2.0 client
AdminApi DELETE /keys/{set}/{kid} Delete a JSON Web Key
AdminApi DELETE /keys/{set} Delete a JSON Web Key Set
AdminApi DELETE /clients/{id} Deletes an OAuth 2.0 Client
AdminApi POST /oauth2/flush Flush Expired OAuth2 Access Tokens
AdminApi GET /oauth2/auth/requests/consent Get consent request information
AdminApi GET /keys/{set}/{kid} Fetch a JSON Web Key
AdminApi GET /keys/{set} Retrieve a JSON Web Key Set
AdminApi GET /oauth2/auth/requests/login Get a login request
AdminApi GET /oauth2/auth/requests/logout Get a logout request
AdminApi GET /clients/{id} Get an OAuth 2.0 Client.
AdminApi GET /version Get service version
AdminApi POST /oauth2/introspect Introspect OAuth2 tokens
AdminApi GET /health/alive Check alive status
AdminApi GET /clients List OAuth 2.0 Clients
AdminApi GET /oauth2/auth/sessions/consent Lists all consent sessions of a subject
AdminApi GET /metrics/prometheus Get snapshot metrics from the Hydra service. If you’re using k8s, you can then add annotations to your deployment like so:
AdminApi PUT /oauth2/auth/requests/consent/reject Reject a consent request
AdminApi PUT /oauth2/auth/requests/login/reject Reject a login request
AdminApi PUT /oauth2/auth/requests/logout/reject Reject a logout request
AdminApi DELETE /oauth2/auth/sessions/login Invalidates all login sessions of a certain user Invalidates a subject’s authentication session
AdminApi DELETE /oauth2/auth/sessions/consent Revokes consent sessions of a subject for a specific OAuth 2.0 Client
AdminApi PUT /keys/{set}/{kid} Update a JSON Web Key
AdminApi PUT /keys/{set} Update a JSON Web Key Set
AdminApi PUT /clients/{id} Update an OAuth 2.0 Client
PublicApi GET /oauth2/sessions/logout OpenID Connect Front-Backchannel enabled Logout
PublicApi GET /.well-known/openid-configuration OpenID Connect Discovery
PublicApi GET /health/ready Check readiness status
PublicApi POST /oauth2/token The OAuth 2.0 token endpoint
PublicApi GET /oauth2/auth The OAuth 2.0 authorize endpoint
PublicApi POST /oauth2/revoke Revoke OAuth2 tokens
PublicApi GET /userinfo OpenID Connect Userinfo
PublicApi GET /.well-known/jwks.json JSON Web Keys Discovery

Описание ngrok

Программа ngrok делает доступными в Глобальной сети локальные сервисы, даже если компьютер не имеет белого IP адреса и находится за NAT и файерволами. С помощью ngrok из Интернета будет доступен любой порт на вашем локальном компьютере будет доступен через безопасный туннель. Например, вы можете сделать так, чтобы ваш локальный веб-сервер стал доступным из Интернета по прямой ссылке без дополнительной настройке.

Как работает программа

Вы загружаете и запускаете программу на вашей машине и указываете порт сетевой службы, обычно это веб-сервер.

Программа подключается к облачной службе ngrok, которая выдаёт вам сгенерированный адрес (домен третьего уровня). Если открыть этот адрес в веб-браузере, то трафик будет перенаправлен на вашу локальную сетевую службу или на любой адрес, который вы указали.

Для чего подходит ngrok

  • Демонстрация веб-сайтов без развёртывания на реальном хостинге
  • Создание веб хуков на вашем компьютере для разработки ПО
  • Тестирование мобильных приложений, подключённых к локально работающему бэкэнду
  • Стабильные адреса для подключённых устройств, развёрнутых в полевых условиях
  • Запуск персональных облачных сервисов из вашего дома

Лицензия: Apache License

Инструкции по oclHashcat

  • Книга «Продвинутый взлом паролей с *Hashcat» на русском языке
  • Семейство программ *Hashcat: как научиться взламывать пароли, создавать и оптимизировать словари
  • Виды атак oclHashcat (Hashcat)
  • Как установить oclHashcat в Kali Linux. Описание oclHashcat и сравнение с Hashcat. Сравнительные бенчмарки в Linux и Windows
  • Базовое и продвинутое использование oclHashcat (Hashcat) для взлома WPA/WPA2 паролей из хендшейков
  • Взлом рукопожатий (handshake) с использованием графического процессора в Windows
  • Взлом паролей MS Office, PDF, 7-Zip, RAR, TrueCrypt, Bitcoin/Litecoin wallet.dat, htpasswd в oclHashcat

Documentation For Models

  • AcceptConsentRequest
  • AcceptLoginRequest
  • CompletedRequest
  • ConsentRequest
  • ConsentRequestSession
  • ContainerWaitOKBodyError
  • FlushInactiveOAuth2TokensRequest
  • GenericError
  • HealthNotReadyStatus
  • HealthStatus
  • JSONWebKey
  • JSONWebKeySet
  • JsonWebKeySetGeneratorRequest
  • LoginRequest
  • LogoutRequest
  • OAuth2Client
  • OAuth2TokenIntrospection
  • Oauth2TokenResponse
  • OpenIDConnectContext
  • PluginConfig
  • PluginConfigArgs
  • PluginConfigInterface
  • PluginConfigLinux
  • PluginConfigNetwork
  • PluginConfigRootfs
  • PluginConfigUser
  • PluginDevice
  • PluginEnv
  • PluginInterfaceType
  • PluginMount
  • PluginSettings
  • PreviousConsentSession
  • RejectRequest
  • UserinfoResponse
  • Version
  • VolumeUsageData
  • WellKnown

Примеры использования Mentalist

1.

Предположим, нам нужно создать словарь на основе существующего списка слов, в котором после слова идёт от 2 до 4 цифр и в котором все буквы «a» заменены на «@», а буквы «s» заменены на «$».

Запускаем программу:

mentalist

Обратите внимание, что по умолчанию уже выбран список английских слов. Удаляем его для этого нажимаем на знак «-».

Затем нажимаем знак «+» рядом с «Base Word», выбираем «Custom File…» и указываем желаемый для изменения словарь.

Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Append».

Затем нажимаем знак «+» рядом с «Append», затем выбираем «Numbers» и затем «User Defined…». Устанавливаем нужные нам параметры добавляемых цифр.

Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Substitution».

Затем нажимаем знак «+» рядом с «Substitution», затем выбираем «Replace All Instances…» и затем «User Defined…», ставим нужные галочки и переключаем на «All at Once».

Обратите внимание, что если вместо All at Once выбрать One at a Time, то будет делаться замена сначала первого символа и затем это слово будет отправляться далее по конвейеру, затем будет делаться замена во втором символе и слово вновь будет отправлено далее по конвейеру. То есть опция One at a Time увеличивает количество новых слов кратно — в соответствии с количеством замен.. Для сохранения нового словаря нажимаем Process, затем выбираем Full Wordlist.

Для сохранения нового словаря нажимаем Process, затем выбираем Full Wordlist.

2.

Допустим, теперь нам нужно создать словарь на основе женских имён, в которых буквы «a» заменены на символ «@». Причём нужно, чтобы были сохранены как оригинальные имена, так и с заменой символов. Затем после имени идёт тире. Затем вставляется дата в формате ДДММГГГГ.

Запускаем программу:

mentalist

Обратите внимание, что по умолчанию уже выбран список английских слов. Удаляем его для этого нажимаем на знак «-».. Затем нажимаем знак «+» рядом с «Base Word», выбираем «Common Names», затем «Women».

Затем нажимаем знак «+» рядом с «Base Word», выбираем «Common Names», затем «Women».

Затем нажимаем на знак «+» в правом верхнем углу и выбираем «No Substitution…».

Вновь нажимаем знак «+» рядом с «Substitution», затем выбираем «Replace All Instances…» и затем «User Defined…», ставим нужные галочки и переключаем на «All at Once».

Затем нажимаем на знак «+» в правом верхнем углу и выбираем «Append».

Затем нажимаем знак «+» рядом с «Append», затем выбираем «Special Characters…» и ставим галочку напротив символа «-»:

Теперь вновь нажимаем знак «+» рядом с «Append», затем выбираем «Numbers» и затем «Dates…». Устанавливаем желаемый диапазон и формат:

Получаем следующий результат, обратите внимание на примерное количество слов в новом словаре и размер словаря в мегабайтах:

Для сохранения нового словаря нажимаем Process, затем выбираем Full Wordlist.

Как взломать почту при помощи Hydra

Запускаем графическую оболочку скрипта hydra. Это многофункциональный брутфорсер паролей с помощью которого мы сейчас попробуем подобрать passдля одного из моих тестовых ящиков на mail.ru

В появившемся окне, на вкладке «Target» прописываем в строке «Single Target» адрес smtp-сервера исходящей почты нужного сервиса. Порт 465 и протокол выбираем соответственно SMTP. Ставим галочку использовать SSL-соединение. И отмечаем пункт, отвечающий за отображение результатов брутфорса в реальном времени.

В соседней вкладочке «Password» указываем ящик, на который будет производиться атака. В пункте Password листа указываем путь к словарю. Найти их довольно просто, в том же гугле, всего лишь стоит набрать словари для брута. На всякий случай ещё ставим галочку отвечающую за проверку логина в качестве возможного пароля и идём дальше.

В «Tuning» меняем метод на HTTP.

Во вкладке «Specific» пишем полной адрес почтового сервиса где расположен наш ящик.

Долгожданная последняя вкладка. Выдыхаем, и жмём на «Start». Перебор начался. В случае успешной попытки логина, прога выдаст соответствующее сообщение, говорящее о том, что валидный пароль к данной почте подобран.

Взлом занял около 5 минут. Примерно столько по времени брутятся все ящики, пароль от которых состоит из даты рождения, клички пса или номера мобильного телефона.

Буквально несколько лет назад электронку моего хорошего знакомого ломанули просто из-за красивого ника. И он очень долго и упорно доказывал майловскому саппорту, что ящик принадлежит ему уже много лет.

Благо, та история со счастливым концом. Ящик восстановили и передали в руки владельца. Но это только потому, что товарищ сам много лет проработал админом и имея врождённый дар красноречия смог убедить коллег из техподдержки.

А теперь задумайтесь, чтобы было, реши злоумышленник не палиться? Сливал бы по тихой грусти на внешний винт рабочие переписки. Договора, контракты, личные фотографии.

Затем продал бы эту историю в даркнете, а человек при этом так бы и не допёр, где таилась утечка. Поэтому, мой вам совет. Всегда устанавливайте на электронку мега-большой и сложный пароль.

В идеале сконфигурированный с помощью генератора случайных символов. И не забывайте менять его раз в 2-3 недели. Установите двухфакторную аутентификацию, чтобы заходить в ящик только после подтверждения на личном смартфоне.

Ну и до кучи, старайтесь не использовать электронку для решения жизненно-важных вопросов. Личная встреча куда надёжней и безопасней. Однако, увы таковая не всегда возможна. Особенно в наше тяжёлое время.

Как создать пароль для брута самостоятельно я показывал вам в этом видео:

https://youtube.com/watch?v=KTiT7I_DCGw

Установка oclHashcat

Установка в Kali Linux

Для работы программы необходимы драйверы графических карт:

  • пользователям NVidia нужен ForceWare 346.59 или более поздний
  • пользователям AMD нужен 14.9 или более поздний

Смотрите «Как установить драйвер AMD Catalyst 15.7 (ATI fglrx) на Kali Linux 2».

Далее

apt-get install oclhashcat

Установка oclHashcat в другие Linux

У вас должен быть установлен проприетарный (а не открытый) драйвер для вашей видеокарты.

  • oclHashcat для AMD
  • oclHashcat для NVidia

Распакуйте архив.

Запустите файл oclHashcat64.bin или oclHashcat32.bin в зависимости от битности вашей системы.

Установка в Windows

Как правило, в Windows уже установлен драйвер для видеокарты.

  • oclHashcat для AMD
  • oclHashcat для NVidia

Распакуйте архив.

Для запуска используйте файл oclHashcat64.exe или oclHashcat32.exe в зависимости от битности вашей системы.

Программу нужно запускать в командной строке. Для этого откройте окно командной строки (Win+X – выберите «Командная строка») и перетащите туда исполняемый файл.

Либо в открывшемся окне командой строки перейдите в требуемую папку:

cd C:\Users\Alex\Downloads\oclHashcat-1.37\

И в ней запустите требуемый файл:

oclHashcat64.exe -V

Словари…

Первое, что вам следует знать –  АБСОЛЮТНО ВСЕ приводимые в подобных статьях действия без ОЧЕНЬ хорошего словаря (для утилиты aircrack в том числе), при взломе пароля, включающего в себя бесчисленное количество всевозможных парольных комбинаций, не более, чем мышиная возня. Так что предупреждаю вас сразу: все ваши манипуляции могут оказаться бессмысленными, случись пользователю воспользоваться при защите своей беспроводной точки доступа произвольной комбинацией типа:

… что достигается просто бессмысленным “стучанием” пользователя по клавиатуре. Рассматриваемый здесь метод расшифровки ТД с классами шифрования WEP, WPA, WPA2 основан на брутфорс-атаке, то есть перебором по словарю. Увы, это и есть проблема подобных методик: словарь должен содержать в числе остальных придуманный жертвой пароль. Какова вероятность, что скачанный или составленный вами словарь будет содержать комбинацию, представленную выше? Маска сети неизвестна, брутфорсить придётся вслепую.

Ни aircrack – ng единым живы хакеры. Пароль, и не только от Wi-Fi, можно узнать и другими способами. Читайте и знакомьтесь: Wifiphisher

Без любого словаря – никак. Увы и ах. Предупреждаю заранее – избегайте стареньких забугорных словарей, датируемых эдак 2010-м годом. В сети их полно, и они равноценно бесполезны, и вы это сами поймёте. Что касается автора статьи, его редко подводил один-единственный словарь. Проблема для вас лишь в одном – только архив на “словарик” txt-формата весит около 14 Гбайт. Это, кстати, ещё и немного. Там сгенерировано космическое количество клавишных комбинаций, они отфильтрованы по наиболее часто встречающимся; авось и ваш пароль появится. Лишним было бы напоминать, что файлы подобного объёма следует качать отдельно, не в составе остальных закачек и с закрытыми браузерами. Было бы обидно, после долгого времени при попытке открыть парольный документ столкнуться с ошибкой открытия. Придётся скачивать снова…

Итак, принцип работы объясню. Если для WEP возможны и другие варианты, для взлома паролей WEP в кали утилит немало, то в случае с более мощной защитой типа WPA2 (сегодня самый распространённый тип защиты) возможен (в нашем случае в том числе) только вариант со словарём или брутфорс. Взлом WiFi при помощи airodump будет возможен только так и не иначе. Это единственный, но существенный минус метода. Это же касается и других методов перебора и подставления имеющегося в словаре пароля.

Установка ngrok

Установка в Kali Linux

wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/{4,}/ngrok-stable-linux-amd64.zip'`
unzip ngrok-stable-linux-amd64.zip
chmod +x ./ngrok
./ngrok -h

Установка в BlackArch

Программа предустановлена в BlackArch

sudo pacman -S ngrok

Установка в любой дистрибутив Linux

wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/{4,}/ngrok-stable-linux-amd64.zip'`
unzip ngrok-stable-linux-amd64.zip
chmod +x ./ngrok
./ngrok -h

Установка в Windows

Распакуйте скаченный архив, отройте командную строку и перейдите в папку с исполнимым файлом с помощью cd, например, у меня программа помещена в папку C:\Users\MiAl\Downloads\:

cd C:\Users\MiAl\Downloads\

Для проверки выведите справку командой:

.\ngrok -h

Информация об установке в другие операционные системы будет добавлена позже.

Перебор паролей веб-форм

Самый сложный вариант — это перебор паролей для веб-форм. Здесь нам нужно узнать что передает на сервер нужная форма в браузере, а затем передать в точности те же данные с помощью hydra. Вы можете посмотреть какие поля передает браузер с помощью перехвата в wireshark, tcpdump, в консоли разработчика и так далее. Но проще всего открыть исходный код формы и посмотреть что она из себя представляет. Далеко ходить не будем и возьмем форму WordPress:

Как видите, передаются два поля log и pwd, нас будут интересовать только значения полей input. Здесь несложно догадаться, что это логин и пароль. Поскольку форма использует метод POST для передачи данных, то нам нужно выбрать модуль http-post-form. Синтаксис строки параметров будет выглядеть вот так:

адрес_страницы:имя_поля_логина=^USER^&имя_поля_пароля=^PASS^&произвольное_поле=значение:строка_при_неудачном_входе

Строчка запуска программы будет выглядеть вот так:

Переменные ^USER^ и ^PASS^ содержат имя пользователя и пароль взятые из словаря, также, возможно, придется передать дополнительные параметры, они передаются также, только значения будут фиксированы. Заканчивается выражение строкой, которая присутствует на странице при неудачном входе. Скорость перебора может достигать 1000 паролей в минуту, что очень быстро.

JSON Schema

Here is an example of the JSON output. Notes on some of the fields:

  • — an array of zero or more strings that are normally printed
    to stderr at the end of the Hydra’s run. The text is very free form.
  • — indication if Hydra ran correctly without error (NOT if
    passwords were detected). This parameter is either the JSON value
    or depending on completion.
  • — How many username+password combinations discovered.
  • — Version of the schema, 1.00, 1.01, 1.11, 2.00,
    2.03, etc. Hydra will make second tuple of the version to always be two
    digits to make it easier for downstream processors (as opposed to v1.1 vs
    v1.10). The minor-level versions are additive, so 1.02 will contain more
    fields than version 1.00 and will be backward compatible. Version 2.x will
    break something from version 1.x output.

Version 1.00 example:

Hydra Description

A very fast network logon cracker which support many different services.

Currently this tool supports the following protocols: Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP,  HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.

Author: Van Hauser, Roland Kessler

License: AGPL-3.0

Ecosystem

We build Ory on several guiding principles when it comes to our architecture
design:

  • Minimal dependencies
  • Runs everywhere
  • Scales without effort
  • Minimize room for human and network errors

ORY’s architecture designed to run best on a Container Orchestration Systems
such as Kubernetes, CloudFoundry, OpenShift, and similar projects. Binaries are
small (5-15MB) and available for all popular processor types (ARM, AMD64, i386)
and operating systems (FreeBSD, Linux, macOS, Windows) without system
dependencies (Java, Node, Ruby, libxml, …).

ORY Hydra: OAuth2 & OpenID Connect Server

ORY Hydra is an OpenID Certified OAuth2 and
OpenID Connect Provider can connect to any existing identity database (LDAP, AD,
KeyCloak, PHP+MySQL, …) and user interface.

ORY Oathkeeper: Identity & Access Proxy

ORY Oathkeeper is a BeyondCorp/Zero Trust
Identity & Access Proxy (IAP) with configurable authentication, authorization,
and request mutation rules for your web services: Authenticate JWT, Access
Tokens, API Keys, mTLS; Check if the contained subject is allowed to perform the
request; Encode resulting content into custom headers (), JSON Web
Tokens and more!

ORY Keto: Access Control Policies as a Server

ORY Keto is a policy decision point. It uses a
set of access control policies, similar to AWS IAM Policies, in order to
determine whether a subject (user, application, service, car, …) is authorized
to perform a certain action on a resource.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *