Kali Linux セキュリティツールの探索

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、ペネトレーションテストやサイバーセキュリティのタスクに不可欠な Kali Linux の主要なセキュリティツールの操作方法と活用方法を学びます。この実践的なセッションでは、dpkg -l によるインストール済みツールの確認、msfconsole を使用した Metasploit フレームワークの起動、nmap によるネットワークスキャンの実行、nikto による Web サーバーのスキャン、man ページによるツール・ドキュメントへのアクセス、およびコマンド実行結果のファイル保存について順を追って説明します。

初心者向けに設計されたこの実験は、LabEx VM 上の管理されたコンテナ環境で Kali Linux へのステップバイステップの入門ガイドを提供します。ターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続され、すぐに練習を開始できる状態になります。

dpkg -l によるインストール済みツールの確認

最初のステップでは、dpkg -l コマンドを使用して、Kali Linux システムにプリインストールされているツールやパッケージを確認する方法を学びます。これは、ペネトレーションテストやシステム管理において、どのようなソフトウェアが利用可能かを把握するための、基本的かつ不可欠なスキルです。

LabEx VM 環境でターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されます。手動でコンテナを起動したりシェルに入ったりする必要はありません。環境はすでに準備されています。

まず、インストールされているすべてのパッケージをリスト表示するコマンドを実行してみましょう。ターミナルに次のコマンドを入力して Enter キーを押します。

dpkg -l

このコマンドは、インストールされているすべてのパッケージの名前、バージョン、アーキテクチャ、および簡単な説明を含む詳細なリストを表示します。

期待される出力(例:実際の出力は異なる場合があります):

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                           Version              Architecture Description
+++-==============================-====================-============-========================================================
ii  adduser                        3.118                all          add and remove users and groups
ii  apt                            2.2.4                amd64        commandline package manager
ii  base-files                     11.1+deb11u7         amd64        Debian base system miscellaneous files
...

この出力は、各パッケージのステータス(ii はインストール済みを意味します)とその他の詳細を示しています。リストが長いため、ターミナル内をスクロールします。上下の矢印キーやマウスホイールを使用して内容を確認できます。

出力を扱いやすくするために、特定のツールを検索してフィルタリングすることができます。例えば、apt に関連するパッケージを見つけるには、次のコマンドを入力して Enter キーを押します。

dpkg -l | grep apt

期待される出力(例:実際の出力は異なる場合があります):

ii  apt                            2.2.4                              amd64        commandline package manager

これにより、名前に apt が含まれるパッケージのみが表示されます。このテクニックは、後のステップで使用するツールを素早く見つけるのに役立ちます。システムでどのようなツールが利用可能かを理解することは、特定のセキュリティタスクに取り組む前の基礎となるステップです。

Metasploit のインストールと msfconsole の起動

Kali Linux で利用可能なツールを確認したところで、次は最も強力なペネトレーションテストフレームワークの一つである Metasploit を、msfconsole コマンドを使って起動してみましょう。このステップでは、システムツールの理解を深め、セキュリティテストの主要なプラットフォームに触れます。

Metasploit は、ターゲットシステムに対するエクスプロイト(脆弱性攻撃)の開発、テスト、実行に使用されるフレームワークです。msfconsole はそのコマンドラインインターフェースであり、フレームワークとの対話、設定の構成、さまざまなセキュリティタスクの実行を可能にします。

まず、パッケージリストを更新し、必要なパッケージをインストールして、Metasploit がインストールされていることを確認します。Kali Linux コンテナのターミナルで次のコマンドを入力し、それぞれ Enter キーを押してください。

apt update
apt install -y metasploit-framework

これらのコマンドはパッケージリストを更新し、Metasploit がまだ存在しない場合はインストールします。インストールが完了するまで待ちます。システムによっては数分かかる場合があります。

インストールが完了したら、次のコマンドを入力して Enter キーを押し、Metasploit コンソールを起動します。

msfconsole

このコマンドを初めて実行するときは、データベースのセットアップやモジュールの読み込みが行われるため、初期化に時間がかかることがあります。そのままお待ちください。

期待される出力(例:実際の出力は異なる場合があります):

Metasploit Framework
...
msf6 >

msf6 > というプロンプトは、現在 Metasploit コンソール内におり、フレームワークを操作できる状態であることを示しています。数字(例:6)は Metasploit のバージョンを表しています。

Metasploit console prompt

現時点では、Metasploit で特定のタスクを実行する必要はありません。msf6 > プロンプトで次のコマンドを入力して Enter キーを押し、コンソールを終了します。

exit

これで標準のターミナルプロンプトに戻ります。msfconsole の起動と終了に慣れることは、今後の学習で探索する多くのペネトレーションテスト活動において非常に重要です。

Nmap のインストールと基本的なスキャンの実行

Metasploit を起動した後は、ネットワーク探索とセキュリティ監査のための多機能ツールである nmap を使用したネットワークスキャンに焦点を当てます。このステップでは、システム上のオープンポートやサービスを特定する方法を学びます。これはペネトレーションテストにおける重要なスキルです。

nmap(Network Mapper の略)は、パケットを送信して応答を分析することで、ネットワーク上のホストやサービスを検出するために使用されます。ターゲットシステムで何がアクセス可能かを表示することで、潜在的な脆弱性を特定するのに役立ちます。

まず、Kali Linux コンテナに nmap がインストールされていることを確認します。ターミナルで次のコマンドを入力して Enter キーを押し、パッケージリストを更新して nmap をインストールします。

apt install -y nmap

インストールが完了するまで数秒待ちます。インストールされたら、基本的なスキャンを実行する準備が整いました。許可なく外部システムをスキャンすることは非倫理的であるため、安全なターゲットとして localhost(自分自身のコンテナ)をスキャンします。

まず、コンテナ上で基本的な Web サーバーを起動しましょう。

apt install -y apache2
service apache2 start

次に、以下のコマンドを入力して Enter キーを押します。

nmap localhost

このコマンドは、ローカルシステム上のオープンポートとサービスを検出するためのデフォルトスキャンを実行します。

期待される出力(例:実際の出力は異なる場合があります):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

この出力において、Host is up はターゲットに到達可能であることを示しています。テーブルには、オープンポート(HTTP 用の 80/tcp など)、その状態(open はアクセス可能であることを意味します)、および関連するサービスがリストされています。この情報は、システムでどのようなサービスが実行されているかを理解するために不可欠です。localhost をスキャンすることで、安全に nmap の使用を練習し、将来のステップで行うより高度なネットワーク偵察タスクに備えることができました。

Nikto のインストールと Web 脆弱性スキャンの実行

nmap によるネットワークスキャンスキルを基礎として、このステップでは Web サーバーをスキャンして脆弱性や設定ミスを特定するツール nikto を紹介します。これは Web セキュリティテストの不可欠な部分です。

nikto は、古いソフトウェア、安全でないファイル、その他の潜在的なセキュリティ上の欠陥など、既知の問題について Web サーバーをチェックするオープンソースツールです。セキュリティの専門家によって、Web アプリケーションのセキュリティを評価するために広く使用されています。

まず、Kali Linux コンテナに nikto がインストールされていることを確認します。ターミナルで次のコマンドを入力して Enter キーを押し、インストールします。

apt install -y nikto

インストールが完了するまで数秒待ちます。インストール後、nikto の機能をデモンストレーションするために、安全なターゲットとして localhost をスキャンします。localhost で Web サーバーが動作していない場合でも、ツールがどのように接続を試みるかが表示されるため、学習には役立ちます。次のコマンドを入力して Enter キーを押します。

nikto -h localhost

-h オプションはスキャンするホストを指定します。この場合は localhost で、デフォルトの Web サーバーポート(通常は 80)をターゲットにします。

期待される出力(例:実際の出力は異なる場合があります):

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        80
---------------------------------------------------------------------------
+ End Time:           ...
---------------------------------------------------------------------------

この出力は、niktolocalhost 上の Web サーバーへの接続を試みていることを示しています。サーバーが動作していない場合は、上記のように接続不能であることが報告されます。サーバーがアクティブであれば、潜在的な脆弱性や設定ミスがリストアップされます。このステップは、Web アプリケーションのセキュリティ上の弱点を特定するための重要なスキルである、nikto を使用した Web 脆弱性スキャンの方法を理解するのに役立ちます。

man ページによるツール・ドキュメントへのアクセス

nmapnikto などのツールを使用した後は、さらに学習を深めるためにそれらのドキュメントにアクセスする方法を知っておくことが重要です。このステップでは、man ページを使用して、Kali Linux のコマンドやツールの詳細情報を探索する方法を学びます。

man ページ(manual ページの略)は、ほとんどの Linux ツールやコマンドに関する包括的なガイドです。詳細な説明、オプション、例、使用方法が記載されており、ツールを効果的に使用するために非常に貴重なリソースです。

man がまだインストールされていない場合は、インストールします。

apt install -y man

例として、nmapman ページにアクセスしてみましょう。ターミナルで次のコマンドを入力して Enter キーを押します。

man nmap

これにより、less のようなページャーインターフェースで nmap のマニュアルページが開き、詳細なドキュメントを読むことができます。

期待される出力(例:実際の出力は異なる場合があります):

NMAP(1)                          Nmap Reference Guide                         NMAP(1)

NAME
       nmap - Network exploration tool and security / port scanner

SYNOPSIS
       nmap [Scan Type...] [Options] {target specification}

DESCRIPTION
       Nmap ("Network Mapper") is an open source tool for network exploration and
       security auditing. It was designed to rapidly scan large networks, although
       it works fine against single hosts. Nmap uses raw IP packets in novel ways
       to determine what hosts are available on the network, what services (application name and version) those hosts are offering, what operating systems (and
       OS versions) they are running, what type of packet filters/firewalls are in
       use, and dozens of other characteristics.
...

上下の矢印キーを使用してドキュメント内を移動します。使用法、オプション、例などのセクションがあります。man ページを終了するには、q キーを押してターミナルプロンプトに戻ります。

man ページの使い方を学ぶことで、あらゆるツールの機能を自立して探索できるようになります。これは、セキュリティタスク中に参照が必要な多数のオプションを持つツールが多い Kali Linux において、特に有用です。

Nmap の出力をファイルにリダイレクトする

最後のステップでは、将来の参照のためにコマンドの出力をファイルに保存する方法を学びます。これは、先ほどの nmap の使用経験を活かし、結果を記録するための基本的な Linux スキルである「出力リダイレクト」を導入するものです。

Linux の出力リダイレクトを使用すると、コマンドの結果をターミナルに表示する代わりにファイルに保存できます。これは > 記号を使用して行われ、指定されたファイルに出力を書き込みます(ファイルが既に存在する場合は上書きされます)。

localhost に対して別の nmap スキャンを実行し、結果を nmap_scan.txt という名前のファイルに保存してみましょう。ターミナルで次のコマンドを入力して Enter キーを押します。

nmap localhost > /root/nmap_scan.txt

> 記号は、nmap localhost コマンドの出力を /root/nmap_scan.txt ファイルにリダイレクトします。スキャン結果はファイルに保存されるため、ターミナルには表示されません。

出力が保存されたことを確認するために、次のコマンドを入力して Enter キーを押し、ファイルの内容を表示します。

cat /root/nmap_scan.txt

期待される出力(例:実際の出力は異なる場合があります):

Starting Nmap 7.91 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT     STATE SERVICE
80/tcp   open  http
...
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

これにより、スキャン結果が /root/nmap_scan.txt に正常に保存されたことが確認できました。出力をファイルに保存することは、ペネトレーションテスト中に発見事項を記録するための実用的な方法であり、コマンドを再実行することなく、後で結果を確認したり共有したりすることができます。

まとめ

この実験では、ペネトレーションテストのための Kali Linux の主要なセキュリティツールの探索と使用方法を学びました。dpkg -l によるインストール済みツールの確認から始まり、msfconsole を使用した Metasploit のインストールと起動、nmap によるネットワークスキャンの実行、nikto による Web 脆弱性のスキャン、man ページによるツール・ドキュメントへのアクセス、そしてコマンド出力のファイルへの保存を行いました。これらの基礎的なスキルは、管理された環境におけるサイバーセキュリティとネットワーク分析のさらなる学習のための強固な土台となります。