Hydra
Содержание:
- Install THC Hydra
- THC Hydra Commands
- Documentation
- HOW TO COMPILE
- JSON Schema
- SSH
- MySQL and other databases
- Documentation for API Endpoints
- Описание ngrok
- Инструкции по oclHashcat
- Documentation For Models
- Примеры использования Mentalist
- Как взломать почту при помощи Hydra
- Установка oclHashcat
- Словари…
- Установка ngrok
- Перебор паролей веб-форм
- JSON Schema
- Hydra Description
- Ecosystem
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
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.