KaliLinuxでHydraを使用してWebベースのログインページをクラックする

Crack Web Based Login Page With Hydra Kali Linux



パスワードは、技術的には、リソースへの認証またはアクセスを取得するために使用される文字の秘密の文字列として定義されます。それは秘密にされ、それらのリソースへのアクセスを許可されていない他の人から隠されなければなりません。パスワードは、コンピューティングの初期の頃からコンピューターで使用されてきました。初めての共有システムの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

サービス

Webベースのログインページをクラックする

サービス 詳細 ハイドラ クラゲ 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 tfUNametfUPass 必要なパラメータです。以下に見られるように:

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を使用することもできます。