Kali Linux 2021.1でA2SVを使用しSSL等の脆弱性を自動的に検出する

スポンサーリンク

Kali Linux 2021.1でA2SVを使用しSSL等の脆弱性を自動的に検出することについて解説しています。

A2SV(https://github.com/hahwul/a2sv)は、オープンソースPythonツールです。CCSインジェクション、HeartBleed、FREAK、Logjam、CRIME、Anonymous Cipher、SSL v2 Drown、SSL v3 POODLEを含むSSL脆弱性を自動的にスキャンすることができます。

なお、サイバーセキュリティ対策や情報セキュリティ教育が目的でツールを利用しますので、悪用・違法行為が目的はございません。ツールを利用することで発生したトラブルや損失、損害(ウイルス感染など)に対して、一切責任を負いません。

■PC環境

Windows 10 Pro

VirtualBox6.1

Kali Linux 2021.1(Debian (64-bit))

■Kali Linuxを起動する

クリックすると、Kali Linuxが起動します。起動後、ログイン画面が表示されますのでユーザIDとパスワードを入力し「Log in」ボタンをクリックします。

クリックすると、Kali Linuxにログインすることができました。

ログイン後、上部メニューになる「ターミナルエミュレーター」をクリックし、ターミナルを起動します。

$sudo su

起動後、上記のコマンドを入力し、Enterキーを押します。スーパーユーザ(root)権限に切り替えます。

■A2SVのインストール

#git clone https://github.com/hahwul/a2sv.git

切り替えた後に、上記のコマンドを入力し、Enterキーを押します。リポジトリをクローンします。

Cloning into 'a2sv' ... remote: Enumerating objects: 620, done. remote: Total 620 (delta 0), reused o (delta o), pack-reused 620 Receiving objects: 100% (620/620), 157.72 KiB 863.00 KiB/s, done. Resolving deltas: 100% (370/370), done.
#cd a2sv

クローン後、上記のコマンドを入力し、Enterキーを押します。「a2sv」ディレクトリに移動します。

#pip install argparse
#pip install netaddr
#apt-get install openssl

移動後、上記のそれぞれのコマンドを入力し、Enterキーを押していきます。依存関係を手動でインストールします。「Successfully installed」と表示されれば、完了となります。「Requirement already satisfied」と表示されると、すでにインストールはされています。

依存関係を手動でインストールすれば、インストールは完了となります。

■A2SVのインストール確認

#python a2sv.py -h

完了後、上記のコマンドを入力し、Enterキーを押します。インストールの確認のために、ヘルプを表示してみます。

python: can't open file '/root/Desktop/a2sva2sv.py': [Errno 2] No such file or directory Traceback (most recent call last): File "/root/Desktop/softwarez/a2sv/a2sv.py", line 18, in <module> from M_freak import * File "/root/Desktop/softwarez/a2sv/module/M_freak.py", line 11, in <module> import netaddr ImportError: No module named netaddr

Enterキーを押すと、上記のエラーが表示されましたので、これを解決してみます。このエラーの原因は、A2SVのツールがPython2で機能するので、今回のKaliLinuxにインストールされている「python 2.7.18」で、このPythonのライブラリ内にnetaddrというライブラリがインストールされていないことが原因です。

また通常のように「pip install netaddr」とpip経由でインストールしようとすると、勝手にKaliLinuxにインストールされているPython”3”の方にインストールしてしまい、「python 2.7.18」にはインストールされないようになっています。これを改善するために、Python2のためにpip2をインストールします。

# curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
# python get-pip.py

インストールの方法は、上記のコマンドを入力し、Enterキーを押します。この時、「ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.」というエラーが発生する場合があります。

#pip2 install --upgrade pip setuptools

その場合は、上記のコマンドを入力し、Enterキーを押します。

#python get-pip.py

その後、再び、上記のコマンドを入力し、Enterキーを押します。これでPython2のためにpip2のインストールは完了となります。

#pip2 install netaddr

完了後、上記のコマンドを入力し、Enterキーを押します。pip2で依存関係をインストールします。

#python a2sv.py -h

インストール後、再び上記のコマンドを入力し、Enterキーを押します。

Enterキーを押すと、今度はヘルプが表示されましたので、これでインストールの確認は完了です。

■WebサイトでのCCSインジェクション(CCS Injection)の可能性を評価

#python a2sv.py -t xxx.com<ドメイン名,もしくはIPアドレス> -m ccs

完了後、WebサイトでのCCSインジェクション(CCS Injection)の可能性を評価しますので、上記のコマンドを入力し、Enterキーを押します。今回はセキュリティ教育のために、当サイト(https://laboratory.kazuuu.net/)を指定してみます。

Enterキーを押すと、CCSインジェクション(CCS Injection)脆弱性のスキャンが開始されます。

開始後、REPORT(レポート)が出力されます。レポートの「Vulnerability脆弱性)」の「CCS Injection」項目に、「State(状態)」が表示されます。今回の指定した当サイトは「Not Vulnerable(脆弱性は検出されず,脆弱性はない)」と出力されました。

その後、A2SVは起動が終了します。

■全ての脆弱性の可能性を自動的にスキャンする

#python a2sv.py -t xxx.com<ドメイン名,もしくはIPアドレス>

今回は、CCSインジェクション(CCS Injection)脆弱性のスキャンを行いましたが、全て(SSL/TLSなど)の脆弱性の可能性を自動的にスキャンしたい場合は、上記のコマンドを入力し、Enterキーを押します。Enterキーを押すと、スキャンが行われ、結果がレポートとして出力されます。