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キーを押すと、スキャンが行われ、結果がレポートとして出力されます。