jpskill.com
🛠️ 開発・MCP コミュニティ

nuclei-scanner

ウェブサイトやインフラの脆弱性を、テンプレートを使って効率的に検査し、セキュリティ上の問題点や設定ミスを自動で見つけ出すことで、脆弱性診断やセキュリティテストを支援するSkill。

📜 元の英語説明(参考)

Scan web applications and infrastructure for vulnerabilities with Nuclei — template-based security scanner. Use when someone asks to "scan for vulnerabilities", "security scan my website", "Nuclei scanner", "find CVEs", "automated security testing", "vulnerability assessment", or "check for misconfigurations". Covers template scanning, custom templates, CI integration, and severity-based reporting.

🇯🇵 日本人クリエイター向け解説

一言でいうと

ウェブサイトやインフラの脆弱性を、テンプレートを使って効率的に検査し、セキュリティ上の問題点や設定ミスを自動で見つけ出すことで、脆弱性診断やセキュリティテストを支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o nuclei-scanner.zip https://jpskill.com/download/15182.zip && unzip -o nuclei-scanner.zip && rm nuclei-scanner.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15182.zip -OutFile "$d\nuclei-scanner.zip"; Expand-Archive "$d\nuclei-scanner.zip" -DestinationPath $d -Force; ri "$d\nuclei-scanner.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して nuclei-scanner.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → nuclei-scanner フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Nuclei Scanner

概要

Nuclei は、ProjectDiscovery による高速なテンプレートベースの脆弱性スキャナです。Nuclei は、モノリシックなスキャナを実行する代わりに、YAML テンプレートを使用します。各テンプレートは、特定の脆弱性、設定ミス、または露出をチェックします。コミュニティは、CVE、デフォルトの認証情報、公開されたパネル、設定ミスなどを網羅する 8000 以上のテンプレートを維持しています。CI、スクリプト化されたパイプライン、または手動評価で実行できます。

使用する場面

  • デプロイ前の Web アプリケーションのセキュリティ評価
  • 既知の CVE および設定ミスに関するインフラストラクチャのチェック
  • CI/CD パイプラインでの継続的なセキュリティスキャン
  • バグ報奨金偵察および脆弱性発見
  • コンプライアンスチェック(公開された管理パネル、デフォルトの認証情報、SSL の問題)

手順

セットアップ

# Go 経由でインストール
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# またはバイナリをダウンロード
curl -sL https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_linux_amd64.zip -o nuclei.zip
unzip nuclei.zip

# テンプレートを更新 (8000 以上のコミュニティテンプレート)
nuclei -update-templates

基本的なスキャン

# すべてのテンプレートを使用して単一のターゲットをスキャン
nuclei -u https://example.com

# 特定の重大度でスキャン
nuclei -u https://example.com -severity critical,high

# ファイルから複数のターゲットをスキャン
nuclei -l targets.txt -severity critical,high,medium

# 特定のテンプレートカテゴリをスキャン
nuclei -u https://example.com -tags cve,misconfig,exposure

# レート制限付きでスキャン (丁寧なスキャン)
nuclei -u https://example.com -rate-limit 50 -concurrency 10

カスタムテンプレート

# templates/exposed-env.yaml — 公開された .env ファイルをチェック
id: exposed-env-file

info:
  name: Exposed .env File
  author: terminal-skills
  severity: high
  description: Checks if .env file is publicly accessible
  tags: misconfig,exposure

http:
  - method: GET
    path:
      - "{{BaseURL}}/.env"
    matchers-condition: and
    matchers:
      - type: word
        words:
          - "DB_PASSWORD"
          - "API_KEY"
          - "SECRET"
        condition: or
      - type: status
        status:
          - 200
# templates/api-key-leak.yaml — レスポンス内の API キーを検出
id: api-key-in-response

info:
  name: API Key Leaked in Response
  author: terminal-skills
  severity: medium
  tags: exposure,api

http:
  - method: GET
    path:
      - "{{BaseURL}}/api/config"
      - "{{BaseURL}}/api/settings"
      - "{{BaseURL}}/config.json"
    matchers:
      - type: regex
        regex:
          - "sk_live_[a-zA-Z0-9]{24}"     # Stripe live key
          - "AKIA[0-9A-Z]{16}"            # AWS access key
          - "ghp_[a-zA-Z0-9]{36}"         # GitHub token
    extractors:
      - type: regex
        regex:
          - "sk_live_[a-zA-Z0-9]{24}"
          - "AKIA[0-9A-Z]{16}"

CI/CD 統合

# .github/workflows/security-scan.yml
name: Security Scan
on:
  schedule:
    - cron: "0 6 * * 1"  # Weekly Monday 6 AM
  workflow_dispatch:

jobs:
  nuclei-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: projectdiscovery/nuclei-action@main
        with:
          target: https://myapp.com
          flags: "-severity critical,high -tags cve,misconfig"
          output: nuclei-report.txt

      - name: Alert on findings
        if: success()
        run: |
          if [ -s nuclei-report.txt ]; then
            echo "⚠️ Vulnerabilities found!"
            cat nuclei-report.txt
            # Send to Slack/email
          fi

プログラムによる使用法 (Go/Python)

# scan.py — Python から Nuclei を実行し、結果を解析
import subprocess
import json

def run_nuclei_scan(target: str, severity: str = "critical,high") -> list[dict]:
    """Nuclei スキャンを実行し、構造化された結果を返します。"""
    result = subprocess.run(
        ["nuclei", "-u", target, "-severity", severity, "-json", "-silent"],
        capture_output=True, text=True,
    )

    findings = []
    for line in result.stdout.strip().split("\n"):
        if line:
            findings.append(json.loads(line))

    return findings

# 使用法
findings = run_nuclei_scan("https://example.com")
for f in findings:
    print(f"[{f['info']['severity']}] {f['info']['name']} — {f['matched-at']}")

例 1: デプロイ前のセキュリティチェック

ユーザープロンプト: 「公開する前に、ステージングサイトに重大な脆弱性や設定ミスがないかスキャンしてください。」

エージェントは、重大度「critical/high」のテンプレートで Nuclei を実行し、公開されたファイル、デフォルトの認証情報、既知の CVE をチェックし、修正手順を含むレポートを生成します。

例 2: 内部 API 用のカスタムテンプレート

ユーザープロンプト: 「認証なしで内部管理エンドポイントにアクセスできるかどうかをチェックする Nuclei テンプレートを作成してください。」

エージェントは、管理エンドポイントにアクセスし、認証ヘッダーなしで 200 ステータスをチェックし、公開された管理パネルにフラグを立てる YAML テンプレートを作成します。

ガイドライン

  • 常に承認を得る — 自分が所有している、またはテストする書面による許可を得ているターゲットのみをスキャンしてください
  • -severity critical,high から始める — 最初に重要なことに焦点を当てます
  • スキャンのレート制限-rate-limit 50 でターゲットに過負荷をかけないようにします
  • -tags を使用してターゲットを絞ったスキャンを行うcvemisconfigexposuredefault-login
  • 自動化のための JSON 出力 — 解析可能な結果を得るための -json フラグ
  • アプリのカスタムテンプレート — コミュニティテンプレートは一般的です。アプリ固有のチェックを作成してください
  • テンプレートを定期的に更新するnuclei -update-templates で新しい CVE チェックを取得します
  • JS アプリのヘッドレステンプレート — 一部のチェックにはブラウザレンダリングが必要です
  • ピーク時には本番環境をスキャンしない — トラフィックの少ない時間帯にスキャンをスケジュールします
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Nuclei Scanner

Overview

Nuclei is a fast, template-based vulnerability scanner by ProjectDiscovery. Instead of running monolithic scanners, Nuclei uses YAML templates — each one checks for a specific vulnerability, misconfiguration, or exposure. Community maintains 8000+ templates covering CVEs, default credentials, exposed panels, misconfigurations, and more. Runs in CI, scripted pipelines, or manual assessments.

When to Use

  • Security assessment of web applications before deployment
  • Checking infrastructure for known CVEs and misconfigurations
  • Continuous security scanning in CI/CD pipelines
  • Bug bounty reconnaissance and vulnerability discovery
  • Compliance checks (exposed admin panels, default credentials, SSL issues)

Instructions

Setup

# Install via Go
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Or download binary
curl -sL https://github.com/projectdiscovery/nuclei/releases/latest/download/nuclei_linux_amd64.zip -o nuclei.zip
unzip nuclei.zip

# Update templates (8000+ community templates)
nuclei -update-templates

Basic Scanning

# Scan a single target with all templates
nuclei -u https://example.com

# Scan with specific severity
nuclei -u https://example.com -severity critical,high

# Scan multiple targets from a file
nuclei -l targets.txt -severity critical,high,medium

# Scan specific template categories
nuclei -u https://example.com -tags cve,misconfig,exposure

# Scan with rate limiting (respectful scanning)
nuclei -u https://example.com -rate-limit 50 -concurrency 10

Custom Templates

# templates/exposed-env.yaml — Check for exposed .env files
id: exposed-env-file

info:
  name: Exposed .env File
  author: terminal-skills
  severity: high
  description: Checks if .env file is publicly accessible
  tags: misconfig,exposure

http:
  - method: GET
    path:
      - "{{BaseURL}}/.env"
    matchers-condition: and
    matchers:
      - type: word
        words:
          - "DB_PASSWORD"
          - "API_KEY"
          - "SECRET"
        condition: or
      - type: status
        status:
          - 200
# templates/api-key-leak.yaml — Detect API keys in responses
id: api-key-in-response

info:
  name: API Key Leaked in Response
  author: terminal-skills
  severity: medium
  tags: exposure,api

http:
  - method: GET
    path:
      - "{{BaseURL}}/api/config"
      - "{{BaseURL}}/api/settings"
      - "{{BaseURL}}/config.json"
    matchers:
      - type: regex
        regex:
          - "sk_live_[a-zA-Z0-9]{24}"     # Stripe live key
          - "AKIA[0-9A-Z]{16}"            # AWS access key
          - "ghp_[a-zA-Z0-9]{36}"         # GitHub token
    extractors:
      - type: regex
        regex:
          - "sk_live_[a-zA-Z0-9]{24}"
          - "AKIA[0-9A-Z]{16}"

CI/CD Integration

# .github/workflows/security-scan.yml
name: Security Scan
on:
  schedule:
    - cron: "0 6 * * 1"  # Weekly Monday 6 AM
  workflow_dispatch:

jobs:
  nuclei-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: projectdiscovery/nuclei-action@main
        with:
          target: https://myapp.com
          flags: "-severity critical,high -tags cve,misconfig"
          output: nuclei-report.txt

      - name: Alert on findings
        if: success()
        run: |
          if [ -s nuclei-report.txt ]; then
            echo "⚠️ Vulnerabilities found!"
            cat nuclei-report.txt
            # Send to Slack/email
          fi

Programmatic Usage (Go/Python)

# scan.py — Run Nuclei from Python and parse results
import subprocess
import json

def run_nuclei_scan(target: str, severity: str = "critical,high") -> list[dict]:
    """Run Nuclei scan and return structured results."""
    result = subprocess.run(
        ["nuclei", "-u", target, "-severity", severity, "-json", "-silent"],
        capture_output=True, text=True,
    )

    findings = []
    for line in result.stdout.strip().split("\n"):
        if line:
            findings.append(json.loads(line))

    return findings

# Usage
findings = run_nuclei_scan("https://example.com")
for f in findings:
    print(f"[{f['info']['severity']}] {f['info']['name']} — {f['matched-at']}")

Examples

Example 1: Pre-deployment security check

User prompt: "Before we go live, scan our staging site for any critical vulnerabilities or misconfigurations."

The agent will run Nuclei with critical/high severity templates, check for exposed files, default credentials, known CVEs, and generate a report with remediation steps.

Example 2: Custom template for internal API

User prompt: "Write a Nuclei template that checks if our internal admin endpoints are accessible without auth."

The agent will create a YAML template that hits admin endpoints, checks for 200 status without auth headers, and flags exposed admin panels.

Guidelines

  • Always get authorization — only scan targets you own or have written permission to test
  • Start with -severity critical,high — focus on what matters first
  • Rate limit scans-rate-limit 50 to avoid overwhelming targets
  • Use -tags for targeted scanscve, misconfig, exposure, default-login
  • JSON output for automation-json flag for parseable results
  • Custom templates for your app — community templates are generic; write app-specific checks
  • Update templates regularlynuclei -update-templates gets new CVE checks
  • Headless templates for JS apps — some checks require browser rendering
  • Never scan production during peak hours — schedule scans for low-traffic windows