ローカルの HTTPS サーバーをセットアップする
このステップでは、Python の組み込み http.server モジュールを使用して、SSL/TLS を有効にしたシンプルな HTTPS サーバーをセットアップします。これにより、Hydra の SSL 機能をテストするための安全なサーバー環境をシミュレートできます。
まず、自己署名証明書とキーを生成する必要があります。この証明書は、クライアント(Hydra)とサーバー間の通信を暗号化するために使用されます。ターミナルを開き、~/project ディレクトリに移動します。
cd ~/project
次に、openssl コマンドを使用して証明書とキーを生成します。
openssl req -new -x509 -keyout key.pem -out cert.pem -days 365 -nodes
証明書に関するいくつかの情報を入力するように求められます。ほとんどのフィールドは Enter キーを押して空白のままにすることができます。ただし、コモンネームは必須で、localhost を入力できます。
Generating a RSA private key
+++++
writing new private key to 'key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:localhost
Email Address []:
このコマンドにより、key.pem(秘密鍵)と cert.pem(証明書)の 2 つのファイルが作成されます。
次に、HTTPS サーバー用の Python スクリプトを作成しましょう。nano テキストエディタを使用してスクリプトを作成および編集します。
nano https_server.py
以下のコードをエディタにコピーして貼り付けます。
import http.server
import ssl
import os
## Create the HTTP server
httpd = http.server.HTTPServer(('127.0.0.1', 443), http.server.SimpleHTTPRequestHandler)
## Create SSL context
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain(certfile='cert.pem', keyfile='key.pem')
## Wrap the socket with SSL
httpd.socket = ssl_context.wrap_socket(httpd.socket, server_side=True)
print("Serving HTTPS on 127.0.0.1 port 443 (https://127.0.0.1:443/) ...")
httpd.serve_forever()
nano でファイルを保存するには、以下の手順を実行します。
Ctrl + X を押して終了します。
Y を押して保存を確認します。
Enter を押してファイル名を確認します。
これで、以下のコマンドを使用して HTTPS サーバーを実行できます。
python3 https_server.py
以下のような出力が表示されるはずです。
Serving HTTPS on 127.0.0.1 port 443 (https://127.0.0.1:443/) ...
このターミナルウィンドウを実行したままにしておきます。これがあなたの HTTPS サーバーです。次のステップでは、Hydra を使用して認証をクラックしようとします。
重要: HTTPS サーバーが実行されている元のターミナルウィンドウを実行したままにしておいてください。次のステップで必要になるため、閉じないでください。