ハッカーはsslscanでサーバのSSL/TLS状態を調査する(Kali Linuxツール説明)
サーバのSSL/TLS状態を理解するためにまとめてみました。
このsslscanの動作確認は自分のドメインでテストを行っています。
【追加】 Youtubeに最新動画を掲載しました。
sslscanとは
sslscanは、指定されたターゲットに対して様々なテストを行い、SSL/TLSサーバーによって受け入れられたプロトコルと暗号の包括的なリストをセキュリティテストに役立つその他の情報とともに返すツールです。
機能
- ターゲットがSSLv2プロトコルをサポートしているかどうか
- NULL暗号、鍵長(40ビットまたは56ビット)に基づいた弱い暗号、強い暗号(AESなど)の利用可能性
- デジタル証明書がMD5署名されているかどうか
- 現在のSSL/TLSの再ネゴシエーション機能をチェック
ツールの場所
[Applications]→[01-Information Gathering]→[SSL Analysis]→[sslscan]
ツールと使用方法
sslscan [options] [host:port | host]
例 sslscan www.yahoo.co.jp
sslscan 127.0.0.1
sslscan [::1]
【実行イメージ】少し端折って整形しています。
┌──(root__kali)-[/home/kali]
└─# sslscan ******.com
Version: 2.0.7-static
OpenSSL 1.1.1j-dev xx XXX xxxx
Connected to ***.***.***.***
Testing SSL server ******.com on port 443 using SNI name ******.com
SSL/TLS Protocols:
SSLv2 disabled
SSLv3 disabled
TLSv1.0 disabled
TLSv1.1 disabled
TLSv1.2 enabled
TLSv1.3 enabled
TLS Fallback SCSV:
Server supports TLS Fallback SCSV
TLS renegotiation:
Session renegotiation not supported
TLS Compression:
Compression disabled
Heartbleed:
TLSv1.3 not vulnerable to heartbleed
TLSv1.2 not vulnerable to heartbleed
Supported Server Cipher(s):
Preferred TLSv1.3 256 bits TLS_AES_256_GCM_SHA384 Curve 25519 DHE 253
Accepted TLSv1.3 256 bits TLS_CHACHA20_POLY1305_SHA256 Curve 25519 DHE 253
Accepted TLSv1.3 128 bits TLS_AES_128_GCM_SHA256 Curve 25519 DHE 253
Preferred TLSv1.2 128 bits ECDHE-RSA-AES128-GCM-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits DHE-RSA-AES128-GCM-SHA256 DHE 2048 bits
Accepted TLSv1.2 128 bits AES128-GCM-SHA256
Accepted TLSv1.2 256 bits ECDHE-RSA-CHACHA20-POLY1305 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits DHE-RSA-CHACHA20-POLY1305 DHE 2048 bits
Accepted TLSv1.2 256 bits ECDHE-ARIA256-GCM-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits DHE-RSA-ARIA256-GCM-SHA384 DHE 2048 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-CCM8 DHE 2048 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-CCM DHE 2048 bits
Accepted TLSv1.2 128 bits ECDHE-ARIA128-GCM-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits DHE-RSA-ARIA128-GCM-SHA256 DHE 2048 bits
Accepted TLSv1.2 256 bits ECDHE-RSA-CAMELLIA256-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits DHE-RSA-CAMELLIA256-SHA256 DHE 2048 bits
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA256 DHE 2048 bits
Accepted TLSv1.2 128 bits ECDHE-RSA-CAMELLIA128-SHA256 Curve 25519 DHE 253
Accepted TLSv1.2 128 bits DHE-RSA-CAMELLIA128-SHA256 DHE 2048 bits
Accepted TLSv1.2 128 bits ECDHE-RSA-AES128-SHA Curve 25519 DHE 253
Accepted TLSv1.2 256 bits ARIA256-GCM-SHA384
Accepted TLSv1.2 128 bits AES128-CCM8
Accepted TLSv1.2 128 bits AES128-CCM
Accepted TLSv1.2 128 bits ARIA128-GCM-SHA256
Accepted TLSv1.2 256 bits CAMELLIA256-SHA256
Accepted TLSv1.2 128 bits AES128-SHA256
Accepted TLSv1.2 128 bits CAMELLIA128-SHA256
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-GCM-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits DHE-RSA-AES256-GCM-SHA384 DHE 2048 bits
Accepted TLSv1.2 256 bits AES256-GCM-SHA384
Accepted TLSv1.2 256 bits DHE-RSA-AES256-CCM8 DHE 2048 bits
Accepted TLSv1.2 256 bits DHE-RSA-AES256-CCM DHE 2048 bits
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA384 Curve 25519 DHE 253
Accepted TLSv1.2 256 bits DHE-RSA-AES256-SHA256 DHE 2048 bits
Accepted TLSv1.2 256 bits ECDHE-RSA-AES256-SHA Curve 25519 DHE 253
Accepted TLSv1.2 256 bits AES256-CCM8
Accepted TLSv1.2 256 bits AES256-CCM
Accepted TLSv1.2 256 bits AES256-SHA256
Accepted TLSv1.2 256 bits DHE-RSA-CAMELLIA256-SHA DHE 2048 bits
Accepted TLSv1.2 128 bits DHE-RSA-AES128-SHA DHE 2048 bits
Accepted TLSv1.2 128 bits DHE-RSA-CAMELLIA128-SHA DHE 2048 bits
Accepted TLSv1.2 256 bits CAMELLIA256-SHA
Accepted TLSv1.2 128 bits AES128-SHA
Accepted TLSv1.2 128 bits CAMELLIA128-SHA
Accepted TLSv1.2 128 bits DHE-RSA-SEED-SHA DHE 2048 bits
Accepted TLSv1.2 128 bits SEED-SHA
Accepted TLSv1.2 256 bits DHE-RSA-AES256-SHA DHE 2048 bits
Accepted TLSv1.2 256 bits AES256-SHA
Server Key Exchange Group(s):
TLSv1.3 128 bits secp256r1 (NIST P-256)
TLSv1.3 192 bits secp384r1 (NIST P-384)
TLSv1.3 260 bits secp521r1 (NIST P-521)
TLSv1.3 128 bits x25519
TLSv1.3 224 bits x448
TLSv1.2 128 bits secp256r1 (NIST P-256)
TLSv1.2 192 bits secp384r1 (NIST P-384)
TLSv1.2 260 bits secp521r1 (NIST P-521)
TLSv1.2 128 bits x25519
TLSv1.2 224 bits x448
SSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
RSA Key Strength: 2048
Subject: www.******.com
Altnames: DNS:******.com, DNS:www.******.com
Issuer: R3
Not valid before: Feb 16 04:27:27 2021 GMT
Not valid after: May 17 04:27:27 2021 GMT
オプション
–targets=<file>
A file containing a list of hosts to check.Hosts can be supplied with ports.(host:port)
チェックするホストのリストを含むファイル。ホストにはポートを指定できます。(host:port)
–sni-name=<name>
Hostname for SNI.
SNIのホスト名。
–ipv4, -4
Only use IPv4.
IPv4のみを使用してください。
–ipv6, -6
Only use IPv6.
IPv6のみを使用してください。
–show-certificate
Show full certificate information.
完全な証明書情報を表示します。
–show-client-cas
Show trusted CAs for TLS client auth.
TLSクライアント認証の信頼できるCAsを表示します。
–no-check-certificate
Don’t warn about weak certificate algorithm or keys.
弱い証明書アルゴリズムまたはキーについて警告しないでください。
–ocsp
Request OCSP response from server.
サーバーにOCSP応答を要求します。
–pk=<file>
A file containing the private key or a PKCS#12 file containing a private key/certificate pair.
秘密鍵を含むファイル、または秘密鍵と証明書のペアを含むPKCS#12ファイル。
–pkpass=<password>
The password for the private key or PKCS#12 file.
秘密鍵またはPKCS#12ファイルのパスワード。
–certs=<file>
A file containing PEM/ASN1 formatted client certificates.
PEM / ASN1形式のクライアント証明書を含むファイル。
–ssl2
Only check if SSLv2 is enabled.
SSLv2が有効になっているかどうかのみを確認してください。
–ssl3
Only check if SSLv3 is enabled.
SSLv3が有効になっているかどうかのみを確認してください。
–tls10
Only check TLSv1.0 ciphers.
TLSv1.0暗号のみをチェックしてください。
–tls11
Only check TLSv1.1 ciphers.
TLSv1.1暗号のみをチェックしてください。
–tls12
Only check TLSv1.2 ciphers.
TLSv1.2暗号のみをチェックしてください。
–tls13
Only check TLSv1.3 ciphers.
TLSv1.3暗号のみをチェックしてください。
–tlsall
Only check TLS ciphers. (all versions)
TLS暗号のみをチェックしてください。 (すべてのバージョン)
–show-ciphers
Show supported client ciphers.
サポートされているクライアント暗号を表示します。
–show-cipher-ids
Show cipher ids.
暗号IDsを表示します。
–show-times
Show handhake times in milliseconds.
ハンドヘイク時間をミリ秒単位で表示します。
–no-cipher-details
Disable EC curve names and EDH/RSA key lengths output.
EC曲線名とEDH / RSAキー長の出力を無効にします。
–no-ciphersuites
Do not check for supported ciphersuites.
サポートされている暗号スイートをチェックしないでください。
–no-compression
Do not check for TLS compression. (CRIME)
TLS圧縮をチェックしないでください。 (犯罪)
–no-fallback
Do not check for TLS Fallback SCSV.
TLSフォールバックSCSVをチェックしないでください。
–no-groups
Do not enumerate key exchange groups.
鍵交換グループを列挙しないでください。
–no-heartbleed
Do not check for OpenSSL Heartbleed. (CVE-2014-0160)
OpenSSLHeartbleedをチェックしないでください。 (CVE-2014-0160)
–no-renegotiation
Do not check for TLS renegotiation.
TLS再ネゴシエーションをチェックしないでください。
–show-sigs
Enumerate signature algorithms.
署名アルゴリズムを列挙します。
–starttls-ftp
STARTTLS setup for FTP.
FTP用のSTARTTLSセットアップ。
–starttls-imap
STARTTLS setup for IMAP.
IMAPのSTARTTLSセットアップ。
–starttls-irc
STARTTLS setup for IRC.
IRCのSTARTTLSセットアップ。
–starttls-ldap
STARTTLS setup for LDAP.
LDAP用のSTARTTLSセットアップ。
–starttls-mysql
STARTTLS setup for MYSQL.
MYSQLのSTARTTLSセットアップ。
–starttls-pop3
STARTTLS setup for POP3.
POP3のSTARTTLSセットアップ。
–starttls-psql
STARTTLS setup for PostgreSQL.
PostgreSQLのSTARTTLSセットアップ。
–starttls-smtp
STARTTLS setup for SMTP.
SMTPのSTARTTLSセットアップ。
–starttls-xmpp
STARTTLS setup for XMPP.
XMPPのSTARTTLSセットアップ。
–xmpp-server
Use a server-to-server XMPP handshake.
サーバー間XMPPハンドシェイクを使用します。
–rdp
Send RDP preamble before starting scan.
スキャンを開始する前にRDPプリアンブルを送信します。
–bugs
Enable SSL implementation bug work-arounds.
SSL実装のバグ回避策を有効にします。
–no-colour
Disable coloured output.
カラー出力を無効にします。
–sleep=<msec>
Pause between connection request. Default is disabled.
接続要求の間に一時停止します。 デフォルトは無効です。
–timeout=<sec>
Set socket timeout. Default is 3s.
ソケットタイムアウトを設定します。 デフォルトは3秒です。
–verbose
Display verbose output.
詳細な出力を表示します。
–version
Display the program version.
プログラムのバージョンを表示します。
–xml=<file>
Output results to an XML file. Use – for STDOUT.
結果をXMLファイルに出力します。 STDOUTには-を使用します。
–help
Display the help text you are now reading.
現在読んでいるヘルプテキストを表示します。
YouTubeに最新動画を掲載しました
「チャンネル登録」と「評価」よろしくお願いします。
sslscanツールのまとめ
sslscanはサーバのSSL/TLS状態が確認できるツールなのです。
なぜ必要かと言うと・・・
最近、ホームページのアドレスが「http://」から「https://」に変わりつつあります。
普段パソコンや携帯電話を使いインターネットでのお買い物をしていますよね。
このときハッカー(第三者)に個人情報が抜き取られたりするネット犯罪の可能性が高まっているのです。
ホームページで商品などを購入して個人情報を入力しますよね。
住所、名前、クレジットカード情報の番号など・・・このとき「http」のアドレスだとハッカー(第三者)に情報を「盗聴」や「改ざん」される危険があるからです。
しかし「https」のアドレスだと個人情報(住所、名前、クレジットカード情報)などの重要なデータを暗号化して、お店と通信をして安全に購入することが可能になります。
この通信方法はSSL/TLSというプロトコルを使っています。
※SSL(Secure Sockets Layer)
※TLS(Transport Layer Security)
もう少し細かい説明をすると、データの暗号化に「共通鍵暗号方式」と「公開鍵暗号方式」の両方を用いてハッカー(第三者)から盗聴や改ざんを防ぎます。