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

Kali LinuxKali LinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験(Lab)では、Kali Linux に搭載されている重要なセキュリティツールを操作し、ペネトレーションテストやサイバーセキュリティタスクに活用する方法を学びます。この実践的なセッションでは、dpkg -l を使用してプリインストールされたツールを表示し、msfconsole を使用して Metasploit framework を起動し、nmap でネットワークスキャンを実行し、nikto でウェブサーバーをスキャンし、man ページを介してツールのドキュメントにアクセスし、コマンド出力をファイルに保存する方法を順を追って説明します。初心者向けに設計されており、この実験(Lab)では、LabEx VM 上の制御されたコンテナ環境内での Kali Linux のステップバイステップの紹介を提供します。ターミナルを開くと、Kali Linux コンテナのシェルに自動的に接続され、すぐに練習を開始できます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kali(("Kali")) -.-> kali/KaliGroup(["Kali"]) kali/KaliGroup -.-> kali/term_ops("Kali Terminal") kali/KaliGroup -.-> kali/file_ctrl("File Management") kali/KaliGroup -.-> kali/pkg_ops("Package Management") kali/KaliGroup -.-> kali/nmap_ops("Nmap Tool") kali/KaliGroup -.-> kali/metasploit_ops("Metasploit Framework") kali/KaliGroup -.-> kali/vuln_scan("Vulnerability Scanning") kali/KaliGroup -.-> kali/nikto_ops("Nikto Scanner") subgraph Lab Skills kali/term_ops -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/file_ctrl -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/pkg_ops -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/nmap_ops -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/metasploit_ops -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/vuln_scan -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} kali/nikto_ops -.-> lab-552192{{"Kali Linux のセキュリティツールを探索する"}} end

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 が含まれるパッケージのみが表示されます。このテクニックは、後のステップで使用するツールをすばやく見つけるのに役立ちます。システムで使用できるツールを理解することは、特定のセキュリティタスクに取り組む前の基本的なステップです。

msfconsole を使用した Metasploit のインストールと起動

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

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

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

apt update
apt install -y metasploit-framework

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

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

msfconsole

このコマンドを初めて実行すると、データベースの設定とモジュールのロードが行われるため、初期化に時間がかかる場合があります。この処理中はしばらくお待ちください。

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

Metasploit Framework
...
msf6 >

msf6 > プロンプトは、Metasploit コンソール内にいて、フレームワークと対話する準備ができていることを示します。数字 (例:6) は、Metasploit のバージョンを表します。

20250411-14-17-22-4MAzqnbV.png

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

exit

これにより、標準のターミナルプロンプトに戻ります。msfconsole を起動して終了することで、このツールへのアクセスに慣れることができます。これは、今後の学習で探求する多くのペネトレーションテストアクティビティにとって非常に重要です。

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

Metasploit を起動したので、次はネットワーク検出とセキュリティ監査のための多用途ツールである nmap を使用したネットワークスキャンに焦点を当てましょう。このステップでは、システム上の開いているポートとサービスを識別する方法を紹介します。これは、ペネトレーションテストにおける重要なスキルです。

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

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

apt install -y nmap

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

コンテナ上で基本的なウェブサーバーを実行してみましょう。

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 を使用したネットワークスキャン(network scanning)のスキルを基に、このステップでは、Web サーバーをスキャンして脆弱性(vulnerability)と設定ミス(misconfiguration)を特定するツールである nikto を紹介します。これは、Web セキュリティテスト(web security testing)の重要な部分です。

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

まず、nikto が Kali Linux コンテナにインストールされていることを確認します。ターミナルに次のコマンドを入力し、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 アプリケーションのセキュリティ上の弱点を特定するための重要なスキルである、Web 脆弱性スキャンに nikto を使用する方法を理解するのに役立ちます。

man ページを使用したツールのドキュメントへのアクセス

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

man ページ (manual pages の略) は、ほとんどの Linux ツールとコマンドの包括的なガイドです。詳細な説明、オプション、例、および使用方法の手順を提供し、ツールを効果的に使用する方法を理解する上で非常に貴重です。

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

apt install -y man

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

man nmap

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

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

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 スキルである出力リダイレクト(output redirection)を紹介します。

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 に正常に保存されたことが確認されます。ファイルへの出力の保存は、ペネトレーションテスト(penetration testing)中に調査結果を文書化する実用的な方法であり、コマンドを再実行しなくても、後で結果を確認または共有できます。

まとめ

この実験(Lab)では、ペネトレーションテスト(penetration testing)のために、Kali Linux で不可欠なセキュリティツールを調査し、使用する方法を学びました。dpkg -l を使用してプリインストールされたツールを表示することから始め、msfconsole を使用して Metasploit をインストールして起動し、nmap でネットワークスキャンを実行し、nikto で Web 脆弱性(vulnerability)をスキャンし、man ページを介してツールのドキュメントにアクセスし、コマンド出力をファイルに保存しました。これらの基礎的なスキルは、管理された環境内でのサイバーセキュリティ(cybersecurity)とネットワーク分析(network analysis)におけるさらなる学習のための強固な基盤を提供します。