セキュリティ ブログ

2024年 9月5日公開

ペネトレーションテストツールとは ~侵入後活動編~

ペネトレーションテストを実施する際、検査員は攻撃の段階や目的、検査対象システムの環境に合わせて様々なツールを駆使して検査を行います。本記事では検査対象システムに侵入した後の「侵入後活動フェーズ」で一般的によく使用されるツールを紹介し、各ツールの概要やペネトレーションテストにおける活用例などを解説します。
侵入後活動フェーズでは活動内容を六つの段階に分けて紹介します。また、その他としてパスワードクラックツールや侵入後活動フェーズで利用される攻撃手法についても紹介します。

イメージ

はじめに

ペネトレーションテスト(Penetration Test)とは、実際の攻撃者視点でシステムへの侵入を試み、実在する脆弱性を悪用することでどういう被害が発生するかを検証するテスト手法の一種です。侵入テスト、ペネトレ、ペンテストなどと呼ばれることもあります。
ペネトレーションテストの概要については以下の記事で詳しく説明しているため、そちらをご参照ください。
ペネトレーションテストとは?知っておきたいペネトレの基本

前回の記事「ペネトレーションテストツールとは ~侵入編~」では、ペネトレーションテストで検査対象システムへ侵入するまでの「侵入フェーズ」でよく使用されるツールを解説しました。
今回は後半パートとして、検査対象システムに侵入した後の「侵入後活動フェーズ」でよく使用されるツールを解説していきます。

※本記事で紹介するツールは悪用厳禁です!!
事前に許可を得ていないシステムに対して攻撃を行うと、不正アクセス禁止法に違反する可能性があります。

※また、本記事で紹介するツールは執筆時点の情報に基づいています。実際に使用する際は最新の情報を確認し、ご自身の責任でご使用ください。

ペネトレーションテストの流れ

前回の記事でも紹介しましたが、改めてペネトレーションテストの全体的な流れを紹介します。
下図は外部から侵入し、社内の機密情報(テスト用ファイル)を持ち出すシナリオ例です。

イメージ

これはあくまでも一例で、実際は事前にテストの種類やゴール設定、禁止事項などを決めた後にシナリオを考えます。

【侵入フェーズ】

①インターネット上から、検査対象システムに関する公開情報(公開を意図していない情報も含む)を収集する。
②Webサイトやサーバーに対して脆弱性スキャンを行い、サーバー内部へ侵入できそうな脆弱性を探す。見つけた脆弱性を実際に悪用し、侵入に成功すると侵入後活動フェーズへ移行する。

【侵入後活動フェーズ】

③侵入後、遠隔操作用のプログラムをサーバー内部に設置する。
④検査員があらかじめ準備していたC&Cサーバー (*1) と③で設置したプログラムの通信を確立し、遠隔操作を開始する。
⑤侵入したシステム内を探索して脆弱性を探したり、さらなる攻撃に役立つような情報を収集する。
⑥侵入したアカウントの権限が一般ユーザーなどの場合、管理者権限への昇格を試行する。
⑦内部ネットワークのサーバーやほかの端末への侵入を試行する。
⑧事前に用意されていたテスト用の機密ファイルを探し、C&Cサーバーへ転送する。

以上が全体的な流れの一例です。次の章からは侵入後活動フェーズの各段階で使用されるツールを紹介していきます。

(*1) 「Command and Control Server」の略称で、C2サーバーとも呼ばれる。攻撃者(検査員)が侵入したサーバーを遠隔操作するために使用される。

侵入後活動フェーズで使用されるツール

③遠隔操作プログラムの設置

検査対象サーバーに侵入した後は、C&Cサーバーとの通信を行う遠隔操作プログラムを設置します。
ここでは遠隔操作プログラムの設置に関連するツールを紹介します。

MSFvenom

【概要】

MSFVenom(Metasploit Framework Venom)は、Metasploit (*2) のモジュールの一つで、コマンドでペイロード (*3) を生成することが可能なツールです。
ペイロードのカスタマイズ性が高く、ペイロードをエンコードしたり、様々なファイル形式で生成したりすることが可能です。

【ペネトレーションテストでの活用】

脆弱性を悪用した攻撃を行うためのペイロードを生成する際や、遠隔操作プログラムを設置する際に活用されます。

活用例:

  • ・ 任意の脆弱性を悪用するペイロードの生成
  • ・ C&Cサーバーとの通信を行う遠隔操作プログラムの作成&設置
  • ・ ペイロードをエンコードすることによるセキュリティソフト等からの検出回避

【無償/有償】

無償のオープンソースソフトウェアです。

(*2) Metasploitについては前回の記事の「そのほかの便利ツール」の項目で解説しているので、詳しくは下記リンクをご参照ください。
https://www.dit.co.jp/lp/penetrationtool1/#H3Metasploit

(*3) 悪意のある動作を実行するコードのこと


④C&Cサーバーとの通信の確立

検査員があらかじめ用意しておいたC&Cサーバーと、検査対象サーバー上に設置した遠隔操作プログラムとの通信を確立し、遠隔操作を開始します。
ここでは遠隔操作を行うために使用されるツールを紹介します。

Empire

【概要】

Empireは、Metasploitと同様のペネトレーションテスト用の統合ツールで、PowerShellおよびPythonベースのエージェントを使用しています。
Metasploitと比較すると、Windows環境での動作や侵入後の活動に特化しています。

【ペネトレーションテストでの活用】

侵入後にC&Cサーバーとの通信を確立させる際や、その後の様々な活動を行う際に活用されます。

活用例:

  • ・ 遠隔操作プログラムとC&Cサーバーとの通信の確立
  • ・ 内部情報の収集、権限昇格、横展開などの実行

【無償/有償】

無償のオープンソースソフトウェアです。

Cobalt Strike

【概要】

Cobalt Strikeは、Empireと同様のペネトレーションテスト用の統合ツールで、ビーコンと呼ばれるエージェントを使用して持続的な攻撃活動を実行します。
Empireとは異なり商用ツールのため有料ですが、侵入後の様々な活動を行うための機能が豊富な点や、GUIで操作可能な点が特徴的です。

【ペネトレーションテストでの活用】

侵入後にC&Cサーバーとの通信を確立させる際や、その後の様々な活動を行う際に活用されます。

活用例:

  • ・ 遠隔操作プログラムとC&Cサーバーとの通信の確立
  • ・ 内部情報の収集、権限昇格、横展開なども可能

【無償/有償】

有償の商用ツールで、ライセンスを購入する必要があります。


⑤内部情報の収集

侵入したシステム内を探索し、権限昇格やほかの端末への横展開など、さらなる攻撃を行うための情報を収集します。
ここでは、内部情報の収集を行うためのツールを紹介します。

WinEnum / LinEnum

【概要】

WinEnumおよびLinEnumは、それぞれWindowsとLinux上の様々な情報を収集するMetasploitのモジュールです。
特に権限昇格に役立つ情報を収集できます。

【ペネトレーションテストでの活用】

権限昇格を行うための情報を収集する際に活用されます。

活用例:

  • ・ システム情報の収集と解析
  • ・ 権限昇格に利用可能な脆弱性や設定ミスの検出

【無償/有償】

無償のオープンソースソフトウェアです。

WinPEAS / LinPEAS

【概要】

WinPEAS(Windows Privilege Escalation Awesome Scripts)およびLinPEAS(Linux Privilege Escalation Awesome Scripts)は、それぞれWindowsとLinux環境における権限昇格に関する脆弱性や設定ミスなどの情報を収集するツールです。
WinEnum/LinEnumと同様のツールですが、重要な情報は赤文字で表示するなど、視覚的に分かりやすいように工夫されています。

【ペネトレーションテストでの活用】

権限昇格を行うための情報を収集する際に活用されます。

活用例:

  • ・ システム情報の収集と解析
  • ・ 権限昇格に利用可能な脆弱性や設定ミスの検出

【無償/有償】

無償のオープンソースソフトウェアです。

BloodHound / SharpHound

【概要】

BloodHoundは、Active Directoryの環境を解析し、攻撃経路を可視化するツールです。SharpHoundは、BloodHoundで解析するためのデータを収集するツールで、ネットワーク内の端末や権限の関係をマッピングするためのデータを収集します。
これらのツールを活用することで、権限昇格や横展開をどのように行うかを分析できます。

【ペネトレーションテストでの活用】

Active Directory環境内の攻撃経路を分析する際に活用されます。

活用例:

  • ・ ユーザー、グループ、コンピュータの関係データを収集・解析
  • ・ ネットワーク内の攻撃経路の可視化と分析
  • ・ 権限昇格および横展開の可能性を分析

【無償/有償】

無償のオープンソースソフトウェアです。

Mimikatz

【概要】

Mimikatzは、Windowsのメモリからパスワードや認証情報を抽出するためのツールです。
権限昇格や横展開を行う際にもよく利用されます。

【ペネトレーションテストでの活用】

Windowsの端末から認証情報を抽出する際に活用されます。

活用例:

  • ・ メモリからパスワードやハッシュの抽出
  • ・ 抽出した情報を利用したPass-the-Hash攻撃 (*4) やPass-the-Ticket攻撃 (*5) などの実行

【無償/有償】

無償のオープンソースソフトウェアです。

(*4) パスワードのハッシュを窃取して認証に利用する攻撃手法のこと。元のパスワードを知らずとも認証を突破することができる。
(*5) Kerberos認証で使用される正規のチケットを窃取し、認証に利用する攻撃手法のこと。

Responder

【概要】

Responderは、ネットワーク上で流れる認証情報をキャプチャするツールです。
ネットワーク上で偽の認証サーバーをホストし、クライアントがその偽のサーバーに接続しようとした際の認証情報をキャプチャします。特にLink-Local Multicast Name Resolution(LLMNR)、NetBIOS Name Service(NBT-NS)、mDNS(Multicast DNS)プロトコルを悪用します。

【ペネトレーションテストでの活用】

ネットワーク上で流れる認証情報をキャプチャする際に活用されます。

活用例:

  • ・ ネットワーク上で流れる認証情報(ハッシュ)の取得
  • ・ 取得したハッシュをパスワードクラックツールで解析し、元のパスワードを特定する

【無償/有償】

無償のオープンソースソフトウェアです。


⑥権限昇格

侵入したアカウントの権限が一般ユーザーなどの場合、管理者権限への昇格を試行します。
ここでは、権限昇格を行う際に使用されるツールを紹介します。

Windows-Exploit-Suggester / Linux-Exploit-Suggester

【概要】

Windows-Exploit-Suggesterは、Windowsのパッチの適用情報から既知の脆弱性を特定し、利用可能な攻撃コードや手法を提案するツールです。Linux-Exploit-Suggesterは、Linuxのカーネルバージョンなどから既知の脆弱性を特定します。
Windowsの場合は、Systeminfoコマンドなどで取得したシステム情報を入力するだけで調べられるため、検査員の端末上で検索を行うことが可能です。
これらのツールで権限昇格を行うための脆弱性を特定し、提案された攻撃コードを利用することで権限昇格を行えます。

【ペネトレーションテストでの活用】

権限昇格に限らず、侵入した端末上に存在する脆弱性を特定し、利用可能な攻撃コードを調べる際に活用されます。

活用例:

  • ・ パッチの適用情報などを基に、端末上に存在する脆弱性を特定する
  • ・ 特定した脆弱性を悪用するための攻撃コードの調査

【無償/有償】

無償のオープンソースソフトウェアです。


⑦横展開

侵入したネットワーク内に存在するほかのサーバーや端末への侵入を試行し、侵害範囲を広げていきます。
ここでは、横展開を行う際に使用されるツールを紹介します。

PsExec

【概要】

PsExecは、Microsoftが提供しているSysinternalsツールセットの一つで、リモートの端末上でコマンドを実行するためのツールです。
本来はシステム管理者がリモート端末を管理するために使用されるツールですが、ペネトレーションテストや実際の攻撃時にもよく利用されます。インストールや設定が簡単で、すぐに利用できる点が特徴的です。

【ペネトレーションテストでの活用】

リモートの端末上で任意のコマンドを実行し、情報収集や横展開を行う際に活用されます。

活用例:

  • ・ リモートの端末上で任意のコマンドやプログラムの実行
  • ・ 任意のファイルの転送

【無償/有償】

無償のオープンソースソフトウェアです。


⑧情報の持ち出し

最終的な標的とする端末に侵入した後は、事前に用意されているテスト用の機密ファイルを探し、検査員のC&Cサーバーへ転送します。
ここでは、情報を持ち出す際に使用されるツールを紹介します。

SCP(※コマンド)

【概要】

SCPは、SSHを利用してファイル転送を行うコマンド(プロトコル)です。
通常業務で使用されることが多いため、セキュリティソフトによる検出がされにくいです。そのため、ペネトレーションテストや実際の攻撃時にもよく利用されます。

【ペネトレーションテストでの活用】

侵入後に情報を持ち出す際や、侵入した端末に攻撃ツールなどを持ち込む際に活用されます。

活用例:

  • ・ テスト用の機密ファイルの持ち出し
  • ・ 侵入した端末に攻撃ツールなどの持ち込み

【無償/有償】

Linux等にはデフォルトでSCPコマンドがインストールされており、WindowsにはSCPを利用するためのフリーソフトが多く公開されているため、無償で利用可能です。


その他

ここでは、上記の③~⑧の特定の段階には当てはまりませんが、侵入後活動フェーズでよく利用されるパスワードクラックツールや手法を紹介します。

John the Ripper

【概要】

John the Ripperは、オフラインのパスワードクラックツールで、様々なハッシュ形式に対してパスワード解析を行うことが可能です。
ほかのツールと比較すると、様々なルールベースでのパスワードクラックが可能な点が特徴的です。

【ペネトレーションテストでの活用】

パスワードハッシュを解析し、元のパスワードを特定する際に活用されます。

活用例:

  • ・ 総当たり攻撃や辞書攻撃によるパスワード解析
  • ・ 特定のルールベースによるパスワード解析

【無償/有償】

無償のオープンソースソフトウェアです。

Hashcat

【概要】

Hashcatは、オフラインのパスワードクラックツールで、様々なハッシュ形式に対してパスワード解析を行うことが可能です。
ほかのツールと比較すると、CPUおよびGPUを利用しており、処理が高速な点が特徴的です。

【ペネトレーションテストでの活用】

パスワードハッシュを解析し、元のパスワードを特定する際に活用されます。

活用例:

  • ・ 総当たり攻撃や辞書攻撃によるパスワード解析
  • ・ 特定のルールベースによるパスワード解析

【無償/有償】

無償のオープンソースソフトウェアです。

Crunch

【概要】

Crunchは、指定した条件に基づいた単語リストを生成するツールです。
使用する文字列や文字種、文字数などを指定し、大規模な単語リストを効率的に生成することが可能です。パスワードクラックツールと組み合わせることで、効率的なパスワードクラックが行えます。

【ペネトレーションテストでの活用】

パスワードクラックなどを行うための単語リストを生成する際に活用されます。

活用例:

  • ・ 使用する文字列や文字種、文字数など、特定のパターンに基づいた単語リストの生成
  • ・ 生成した単語リストを用いたパスワードクラックの実行

【無償/有償】

無償のオープンソースソフトウェアです。

Living Off the Land(※手法)

【概要】

Living Off the Landは、環境寄生型攻撃や現地調達型攻撃とも呼ばれるテクニックで、侵入した端末にデフォルトで存在しているツールやスクリプトを利用する手法です。
正規のツールを攻撃に利用するため、セキュリティソフトによる検出を回避しやすい特徴があります。
LOLBAS(Living Off The Land Binaries and Scripts)プロジェクト(https://lolbas-project.github.io/)では、Living Off the Landで利用される正規の実行ファイルやスクリプトのリストをまとめて公開しており、実際に攻撃を行う際の参考になります。

【ペネトレーションテストでの活用】

侵入先の正規のツールを悪用することで、セキュリティソフトによる検出を避けながら様々な活動を行うことができます。

活用例:

  • ・ 内部情報の収集と持ち出し
  • ・ ファイルのダウンロードや実行
  • ・ 権限昇格や横展開の実行
  • ・ スケジュールタスクの作成による定期的なスクリプトの実行

【無償/有償】

侵入した端末上に存在するツールやスクリプトを利用する手法のため、無償です。

まとめ

本記事では、ペネトレーションテストで検査対象システムに侵入した後の「侵入後活動フェーズ」でよく使われるツールを紹介しました。
ペネトレーションテストを実施する際は、ここで紹介したような様々なツールを駆使して検査を行います。
ただし、これらのツールだけで検査を行えるわけではなく、実際はLiving Off the Landのように侵入した端末に元々インストールされている正規のツールを利用したり、検査員が自らスクリプトやツールを開発したりして対応する場合もあります。
効果的なペネトレーションテストを実施するためには、様々な状況に応じてツールを使い分け、臨機応変に対応することが重要です。

【関連ソリューション】