Kali Linuxは今年で10周年を迎えました。これを記念して、このLinuxペネトレーションテスト用ディストリビューションは、オープンソースのセキュリティツール群に防御セキュリティツールを追加しました。
Kali Purpleが、オープンソースのペンテストでKali Linuxが果たしてきた役割を、防御向けのオープンソースセキュリティツールでも果たせるかは、まだ分かりませんが、SIEM、インシデント対応、侵入検知などを対象とする100種類を超えるオープンソースツールの追加により、これらの防御ツールの知名度が高まることは間違いありません。
現時点でKaliが主に知られているのは、約600種類のオープンソースのペンテストツールです。これにより、ペンテスターは攻撃用セキュリティツールを幅広くまとめて簡単にインストールできます。
この記事では主に、この強力なOSを使ってペンテストを実行する方法と、避けるべきミスについて説明します。あらかじめインストールされているツールをいくつか取り上げ、Kali Linuxで実現できることを概説します。このガイドは、一般的なペンテストのフェーズを実践例とともに紹介し、ベストプラクティスを示すものですが、完全なプロ向けペンテスト手法の代わりにはなりません。
関連記事:
- オープンソースのペネトレーションテストツール24選
- ペネトレーションテストとは?完全ガイドと手順
- 10ステップでペネトレーションテストプログラムを実装する方法
- ペンテストフレームワークとは?代表的な7つのフレームワークを解説
Kali Linuxとは?
Kali Linuxは、15年の歴史を持つ非公開セキュリティ企業Offensive Security(OffSec)が保守する、人気のペンテスト用ディストリビューションです。Kaliには、スキャナーやスニッファーをはじめ、さまざまな攻撃ツールが含まれています。
このOSは、ペンテストセッション全体を支えられるほか、より特定の攻撃にも対応します。ペンテスト用ディストリビューションはほかにも数多くありますが、Kaliはプロフェッショナルが最も推奨するディストリビューションです。
実際、あらかじめインストールされているパッケージの多くは単体パッケージとしても利用できますが、Kaliはプロの利用を想定した高品質なソリューションを組み込み、保守しています。
このOSの理念は、業界の最良の基準に従いながら、比較的簡単にアップデートできる包括的なツールボックスを提供することです。
Kaliはペンテスト専用に作られています。そのため、マシンをペンテスト専用にする場合や仮想マシンで実行する場合を除き、メインOSとしてインストールするのは避けたほうがよいでしょう。
2023年のKali Linuxの新機能?
2023年にはこれまでに四半期リリースが3回あり、なかでも最初のリリースが最も大きな動きとなりました。
Kali 2023.1は、3月にリリースされ、新しいカーネルバージョンと8つの新パッケージを導入しました。その中には、さまざまな文字列やハッシュを細かく正確に解析、復号、デコードできる、非常に便利なインターフェースのCyberChefも含まれています。
このリリースには、DebianベースのディストリビューションであるKaliで、PythonとそのPIPパッケージマネージャーがDebianの次期Stableリリースで動作するようにする一時的なパッチも含まれていました。Nvidiaドライバーと一部のGPUモデルの不具合によって、影響を受けるすべてのLinuxデバイスが遅くなったり、フリーズしたりする可能性があり、修正が予定されていました。
しかし、Kali Linux 2023.1における最大の変更は、防御セキュリティ向けのPurple Editionが追加されたことです。これについては後ほど詳しく説明します。
Kali 2023.2は5月30日にリリースされ、Hyper-V VMイメージが追加されました。設定が不要なため、ユーザーにとってははるかに使いやすいはずです。このほかの変更に加え、2023.2では13個の新ツールも追加されました。その中には、コンテナ関連ツールやSBOMツール、Evilginxの中間者攻撃フレームワーク、オープンソースのフィッシングツールキットGoPhish、オープンソースのインシデント対応プラットフォームTheHiveなど、興味深いツールが含まれています。
Kaliの第3四半期リリース、2023.3Kali Autopilotは8月23日に公開され、主な焦点はDebian 12のリリースに合わせたKali内部インフラの変更でした。Kali Purpleとともに登場した自動攻撃フレームワークであるKali Autopilotには、刷新されたGUIなどの新機能が追加されました。
Kali Linux 2023.3では、クラウドやコンテナのセキュリティから自動ペンテストツールまで、9つの新ツールも追加され、現在は積極的にサポートされていない2つのツールが置き換えられました。
Kaliは初心者向けか?
Kaliは誰でも利用できます。無料かつオープンソースなので、誰でもダウンロードできます。まずは自分で試してみて、その後にドキュメントやチュートリアルを読むとよいでしょう。
では、初心者が始めるのに適しているのでしょうか。Kali自体は初心者にも使いやすいものですが、プロのペンテストは即興でできるものではありません。効果的に実施するには、知識と計画が必要です。
優れたペンテスターになるために必要なものを、以下に示します。
- ペンテストの基礎知識:法的側面、スコープ、基本的な手順(受動的偵察、ネットワーク探索、列挙、権限昇格など)、侵害後の活動、永続化
- ネットワーク層(OSIモデル、IP、サブネットなど)に関する知識
- WindowsおよびLinuxシステムに関する知識
- Pythonおよびいくつかのプログラミング言語(Go、C、C++、Rubyなど)の習熟。私見ではこれは必須ですが、異なる意見を持つセキュリティ専門家もいるでしょう
人によって習得の速さは異なりますが、知っておくべきツールや概念は非常に多いため、学習能力や速度にかかわらず時間がかかります。
まずはここから:Kali Linuxのインストール方法
Kali Linuxのインストールは驚くほど簡単です。「Get Kali」ページには、事前設定済みのイメージやすぐに使える仮想マシンなど、さまざまなインストール方法が掲載されています。
仮想マシンは、手軽に試すのに最適です。OSがどのようなものか確認するだけでも、ぜひ試してみてください。
ほとんどのOSがサポートされており、Dockerコンテナのほか、AndroidやRaspberry Piにも対応しています。たとえばWindowsユーザーは、Windows Subsystem(WSL2)を使ってKaliをインストールできます。
ただし、ベアメタルへのインストールは初心者には推奨されません。
外付けドライブにISOイメージを書き込めば、そのドライブから起動して、選んだデバイスにKaliをインストールできます。
デバイスにインストールせず、ライブディストリビューションを使ってKaliをライブモードで実行することもできます。
Kali Linuxで避けるべきミス
適切な知識がなければ、どれほど優れたツールを使っていても、何も考えずに適用できる魔法のレシピはないため、ペンテストは失敗する可能性が高いでしょう。
さらに、攻撃ツールはリクエストとともに複数のプローブやヘッダーを送信することがあり(スキャンや探索の際など)、セキュリティツールによって検知・ブロックされる可能性があります。KaliがIPアドレスや痕跡を自動的に隠してくれるわけではない点にも注意してください。VPNを使ったり、トラフィックを取得して別のサブネットに転送するユーティリティをインストールしたり、proxychainsを設定したりすることは可能です。
セットアップや運用には、Linodeのような外部プラットフォームを活用することもできます。
ただし、まったくの初心者であれば、ツールを急いで使い始めず、まずはJuice Shopなど、サイバーセキュリティの学習を支援する目的で作られた脆弱なアプリケーションを攻撃対象にした、無料のオープンソースプロジェクトから始めることをお勧めします。
その後、より高度な手法を学んだり、専門的なオンライン研修プログラムに投資したりするとよいでしょう(この記事の最後のセクションを参照)。
ペンテストの対象はサーバーやWebアプリだけではない
ペネトレーションテストは、標的システムへの実際の攻撃を再現するものです。これはWebアプリだけに限らず、幅広いテストや手順を含む広い概念であり、組織は定期的なペンテストを活用してセキュリティを改善し、重大な脆弱性を修正できます。
とは異なり、脆弱性評価では、ペンテストにエクスプロイトが含まれます。つまり攻撃者として、テスト前に定めたルールに従い、実際にシステムをハッキングするのです。最終的な目標は、推奨事項を提示する優れたレポートを作成することです。
ペンテストは網羅的な分析ではないことにも注意してください。おそらく時間は限られており、目的を達成するには動作するエクスプロイトが1つあればよいからです。
ペンテストは、アプリやデータベースをホストする脆弱なサーバーへのハッキングに限られません。テストすべき攻撃経路はほかにも複数あり、以下がその例です。
- ネットワークの侵害
- ソーシャルエンジニアリング(フィッシングなど)
- メモリ破壊
- Wi-Fi攻撃
Kaliは幅広いペンテストに対応するツールを備えた、すばらしいツールボックスです。多くのWebサーバーには脆弱性があり、攻撃者に広い攻撃対象領域をさらしているため、Webアプリは学習に適しています。組織はネットワークをパブリックに公開しなければならないからです。
ただし、必要であり、かつ契約に含まれている場合は、ペンテスターが物理的な攻撃を実施することもあります。
法的側面を軽視しない
法律はどこでも同じではないため、同じ手順が合法となる国もあれば、違法となる国もあります。EUと米国を比較すると、特にその違いが明らかです。
私の知る限り、「エシカルハッキング」は法的に保護された資格ではありません。正当なセキュリティ研究者が、重大な脆弱性を実証した後に訴えられた例もあります。
スコープは、ペンテストと実際の攻撃を区別するうえで不可欠です。もちろん、ペンテストを実施するには通常、法的合意である明示的な同意が必要ですが、スコープも作業開始前に極めて正確に定義しなければなりません。
最後に、許可なく職場にKali Linuxをインストールすることも、賠償責任などの問題を招きます。このディストリビューションには組織を危険にさらしかねない機密性の高いプログラムが含まれており、雇用を危うくする可能性もあります。
Kali Linuxを使う:ツールを探す
Kali Linuxには、さまざまな目的に使えるKali Linuxのツールが文字通り数百種類あります。初心者は、定番の繰り返し行う作業向けに非常に人気のあるパッケージから始めるか、セキュリティの専門家にお気に入りのツールを尋ねるとよいでしょう。
ツール一覧は手がかりになりますが、初心者には分かりにくいこともあります。ここでは、ペンテストの作業と、それに適したKali Linuxのツールを紹介します。
- OSINT:情報収集にはMaltego、受動的偵察にはDmitryを使用
- ソーシャルエンジニアリング:SET(Social Engineer Toolkit)を使用
- ナレッジベース:exploitdbを使用
- ペンテストフレームワーク:Metasploit Frameworkを使用
- ポートスキャン:Nmapを使って標的ネットワークをスキャンし、NdiffでNmapのスキャン結果を比較する(たとえば、閉じたポートや開いたポートを確認する)
- ワイヤレスペンテスト:Aircrack-ngでWi-Fiをクラックし、BettercapでWi-FiやBLE(Bluetooth Low Energy)デバイスの偵察とMitM攻撃を行う
- パケットスニッフィング:Scapyでパケットを操作する。EttercapもMitM攻撃の実施に非常に優れており、Wiresharkは必須のツールだ
- URLのブルートフォース:GobusterまたはDirBusterでURL(ディレクトリ、ファイル、DNS)をスキャンし、Niktoでサーバーの脆弱性を検出する
- Webファジング:Wfuzzを使用
- Webハッキング:BeEFを使って、ブラウザやBurp SuiteでXSSなどの脆弱性を悪用し、リクエストを傍受する
- SQLインジェクション:sqlmapを使って脆弱なデータベースをクラックする
- WordPressスキャン:WPscanを使用
- リモートからのログインのブルートフォース:Hydra(グラフィカルインターフェース向けのHydra GTK)を使用
- パスワードのブルートフォース:John The Ripperを使用
- Active Directory:Mimikatz、Impacketを使用
この一覧からは、各ツールの使い方や、目的を達成するための適切な組み合わせまでは分かりません。ただし、インストール後のKali Linuxではパッケージがカテゴリー別に整理されるため、役立つ文脈やラベルが加わります。
カテゴリーは通常、「情報収集」や「ポストエクスプロイテーション」など、ペンテストの典型的なフェーズに対応していますが、「パスワード攻撃」のような繰り返し行う作業に対応するものもあります。
インタラクティブメニューを開くだけです。

ペンテストフレームワークの使用
Metasploit Frameworkは、スキャンや探索からエクスプロイト、さらにはポストエクスプロイテーションまで、作業の多くの段階をサポートできます。
Kaliでは、インタラクティブメニューを開くか、ターミナルで「msfconsole」と入力するだけでコンソールを起動できます。

コンソールは詳細な情報を出力するため、エクスプロイトが成功したかどうかをすぐに確認できます。私の経験では、このインターフェースは高度なペイロード機能と、非常に異なるハッキングモジュールを標準化された方法で使用する手段を提供します。
フレームワークを使う必要はありませんが、同様の結果を得るには、ほかにインストールされている複数のリソースを組み合わせなければなりません。手動設定(リスナーなど)や、その他の反復的な手順を好まないのであれば、コンソールは優れた選択肢です。
もちろん、別のツールが必要になるケースもあります。
関連記事Metasploit Framework入門:ペンテストチュートリアル
Kali Linuxをペンテストに使う方法
Kali Linuxには、7つのペンテストの手順それぞれを実行するための多くの選択肢があります。ここでは、それらの手順を順に確認し、特に役立つと感じたKaliのツールを紹介します。
ステップ1:スコープと目標の定義
明確な目標とスコープは、ペンテストを成功させるうえで重要です。テスト中に適用するスコープとルールは、あなたと組織が定めます。これにより、誤解が生じず、明確な目標を設定できます。
顧客はおそらく、テストに関する次の3つの一般的なアプローチから1つを選ぶことになります。
- ブラックボックス:標的への事前のアクセスや情報なしに作業し、通常は初期アクセスの獲得に重点を置く
- グレーボックス:進行を速め、より深いテストを可能にするため、資格情報や内部情報の一部を与えられる中間的なアプローチ
- ホワイトボックス:通常はより長期間にわたるテストで、ポストエクスプロイテーションや永続化など後半のフェーズに重点を置き、権限昇格、内部関係者による攻撃、ラテラルムーブメントに対するシステムの耐性を検証する
すべての組織に、相当な時間と予算を必要とするホワイトボックステストが必要とは限りませんが、必要になる場合もあります。
このステップでは、タイムラインやその他の法的条件についても話し合う必要があります。顧客には、許可されることと許可されないことを詳細に説明してもらうことが重要です その内容を、あなたと顧客が署名する文書に記載します。
無差別な攻撃のほうが初心者には現実的に見えるかもしれませんが、実際には、ペンテスターが使用する特定のIPアドレスをホワイトリストに登録することも珍しくありません。方法論を定義する必要があります。
ステップ2:偵察とOSINT
偵察、つまり「recon」には、受動的なものと能動的なものがあります。
たとえば、OSINT(Open-source Intelligence)は間接的に情報を収集する方法ですが、Nmapでは標的ネットワークにプローブを送信して能動的にスキャンします。
Kaliには、Maltego(コミュニティエディションは無料で利用可能)のような強力なOSINTツールがあります。これらのプログラムは、調査の整理と自動化に役立ちます。
いずれにしても、ペンテストでは通常、受動的な偵察と能動的な偵察の両方が必要になります。

ステップ3:スキャンと探索
スキャン対象のIPアドレスやURLがあるとします。たとえば、従来のNmapコマンドを使って、攻撃対象となり得るサービスやホストを探索できます。
nmap -oN nmapscan.txt -v -A {IP/URL}-vオプションは「verbose」を意味し、-Aは「aggressive scan」を意味します。後者は処理が遅くなり、標的により多くのプローブを送信しますが、ここでは実際のケースではないため問題ありません。-oNオプションは、重要な結果を含む出力をテキストファイルにエクスポートするためのものです。
サーバーが脆弱なデータベースシステムをホストしていることが分かれば、そこを攻撃します。
ステップ4:不正アクセスの獲得とエクスプロイト
脆弱なデータベースへのSQLインジェクションは、リモートコード実行(RCE)につながる可能性があります。
標的データベースにsqlmapで悪意のあるSQLクエリを注入できれば、ファイルを書き込んでサーバー上で任意のコマンドを実行できる典型的な脆弱性を悪用できます。
多くのエクスプロイトでは、リバースシェルをアップロードします。これは基本的に、自分のマシンと標的サーバーの間に「コールバック」チャネルを確立するものです。
そのようなシェルを特権ユーザー(管理者など)として開ければ、セッションでも同じ権限を取得できます。
rootアカウントは最高レベルの権限を付与するため、検知されずにほぼあらゆる操作を実行できます。これはポストエクスプロイテーションに最適です。
ステップ5:ポストエクスプロイテーション
脆弱性を悪用してネットワークを侵害した後は、侵害による影響とリスクを証明するため、顧客に対して、そのネットワークで何ができるかを示したい場合があります。
Metasploitにはこの目的のためのモジュールが数多くありますが、Kali Linuxのインタラクティブメニューを開けば、利用可能なポストエクスプロイテーションツールの一覧をすべて確認できます。

Windows/Active Directory環境であれば、Kaliにはそのためのパッケージが複数あります。たとえば、Kerberoastingやパスワードダンプに使える小型ながら強力なユーティリティのMimikatzや、攻撃用スクリプトのセットであるImpacketなどです。
作業概要や組織の規模によっては、さらにアクセスを取得し、侵害したばかりのシステムから別のシステムへ移動しなければならない場合があります。
この手法をピボッティングと呼びます。アクセスを維持し、標的インフラのさらに深部へ侵入できることを実証する必要がある場合もあります。
ステップ6:後始末
標的ネットワークは、作業を開始する前の元の状態に戻さなければなりません。つまり、一時アカウント、スクリプト、その他システムに加えた変更をすべて削除します。
このフェーズは、CTF(Capture The Flagイベント)では通常省略されます。目的が攻撃手法の練習だからです。しかし、現実の環境では、ペンテスターはあらゆる痕跡を消さなければなりません。
ステップ7:報告と推奨事項の提示
このステップでは、直前に悪用した脆弱性、盗まれた可能性のあるデータ、状況を改善するための推奨事項(技術的なアドバイスを含む)を記載したレポートを作成します。
レポートはペンテストの核心であり、作業の価値を文字どおり決定する重要な文書です。組織がネットワークの安全確保に向けて具体的な判断を下せるよう、内容に意味があり、読みやすいものでなければなりません。
次の項目を含めることができます。
- 情報収集に使用した手法
- 不正アクセスの獲得に使用した手法
- 脅威モデルとリスクレベル
- 盗まれたデータと資格情報の推定価値
最も関連性の高い対策を優先しなければなりません。詳しくはHackersploitによるこのチュートリアルをご覧ください。
Kali Linuxのオープンソース代替製品
Kali Linuxには、検討に値する代替製品がいくつかあります。
Parrot OS Security Edition
Parrot OS Securityは、デフォルト設定が豊富で、初心者にも非常に使いやすいはずです。ただし、アーカイブをダウンロードする際は注意してください。Parrotには、ペンテストを目的としていない「home edition」も用意されています。
必要なのは「security」エディションです。home editionをインストールしてからペンテストツールを追加することもできますが、securityエディションのほうが簡単です。
Parrotの気に入っている点は、使いやすさとプライバシー重視のアプローチ(テレメトリーなし、匿名サーフィン、プロキシ)です。
「Hack The Box Edition」についても触れておく価値があります。初心者がCTF(HTBプラットフォーム上など)用のマシンをすばやくセットアップできるようにすることを目的としていますが、ほかの目的のラボやトレーニング環境を構築するためにも利用できます。
Black Arch Linux
Archは「本物のユーザー向け」であり、初心者には向かないと読んだことがあるかもしれません。多くのほかのLinuxディストリビューションと比べ、インストールがより技術的だと言われているためです。
しかし、それは正確ではありません。最新バージョンは、最初期のものと比べてはるかに簡単にインストールできます。現在では「スリム」版もダウンロードできます。
すでにArchを使っている場合は、インストールをBlack Archに、専用インストーラーを使って数分で「アップグレード」できます。
Linuxユーザーは、UbuntuやDebianなどのほかのディストリビューションとは大きく異なる中核理念や、セキュリティパッケージの最新バージョンを入手できる点を評価するかもしれません。

Kali Purple Edition
Kaliの「Purple」エディションは最近リリースされ、防御的セキュリティ向けのYaraやDefectDojoなど、人気の高いパッケージを多数搭載しています。フォレンジックやリバースエンジニアリング用のツールも幅広く用意されています。
チームは、NISTサイバーセキュリティフレームワークの原則である、識別、保護、検知、対応、復旧に沿った専用メニューを追加しました。
この取り組みはまだ初期段階にあるため、標準版で提供される事前構成済みのVMや充実したサポートは利用できないことに注意してください。
もちろん、現時点で現在の作業環境をPurpleへ移行すべきではありません。このエディションはまだ成熟していないため、それはかなり無謀な行為です。
ただし、テストするには十分安定しており、避けられないバグや見落としがあるとはいえ、防御側の担当者はこの新しいフレーバーをきっと評価するでしょう。
OffSecが新たな分野を開拓しているのは興味深いことです。Purpleエディションは、防御的セキュリティを担うBlueチームとPurpleチームを対象としており、レッドとブルーという両方の世界を組み合わせたものです。
Kali Purpleの詳細については、公式Wikiをご覧ください。

Kali Linuxのトレーニングリソース
Kali Linuxには努力と時間が必要です。キャリアにしたいのであれば、定期的に練習し、この分野のプロフェッショナルから学ぶことが重要です。倫理的ハッキングの認定資格も役に立つでしょう。
次のリンクは、多くのスキルを身につけるのに役立つでしょう。
結論:Kali Linux
Kali Linuxは、ペンテスターやペンテスターを目指す人にとって極めて重要なツールキットとして高い評価を得るにふさわしいものです。組織がWebに公開されたものか内部のものかを問わず、極めて重要なデータを保有しているなら、悪意ある攻撃者に先を越される前に脆弱性を見つけるため、ペンテストを採用すべきサイバーセキュリティのベストプラクティスです。Kali Linuxは、始めるのに最適な環境です。
さらに読む:
この記事は2023年4月7日にJulien Mauryが作成し、eSecurity Planet EditorのPaul Shreadによって2023年10月5日に更新されました。





