本文へ移動
cccskills
無料GitHub で公開

fingerprinting

Identify exact technology stack, frameworks, versions, and CMS on live hosts. Use when the user has a live host list and needs to know what's running before choosing vuln classes to test.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md7.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Tech Stack Fingerprinting

Knowing it's Spring Boot 2.5 → CVE-2022-22965 candidate. Knowing it's "Java" → useless.

When to invoke

Trigger phrases:

  • "what's running on X"
  • "fingerprint this host"
  • "tech stack of target"
  • "version of framework"

What we identify

LayerSignalsTools
Web serverNginx, Apache, IIS, Caddyhttpx, nmap, headers
Backend langNode, Python, Java, .NET, Go, PHP, Rubyheaders, cookies, errors
FrameworkExpress, Django, Spring, Rails, Laravel, FastAPIerror pages, default routes
CMSWordPress, Drupal, Joomla, Ghostpaths, scripts, meta
FrontendReact, Vue, Angular, Svelte, Next.jsJS files, bundle structure
API styleREST, GraphQL, gRPC, SOAPendpoints, schemas
Cloud providerAWS, GCP, Azure, Cloudflare, FastlyDNS, headers, error pages
WAFCloudflare, Akamai, Imperva, AWS WAFheaders, behavior
Dependenciesnpm, JS libraries, CDN versionsretire.js

Step-by-Step Workflow

1. Quick scan with httpx

# tech-detect uses Wappalyzer logic
echo "https://app.target.com" | httpx -tech-detect -title -web-server -status-code -json | jq .

# Bulk on alive hosts:
cat live.txt | httpx -tech-detect -web-server -json | tee tech-detected.jsonl

Output sample:

{
  "url": "https://app.target.com",
  "tech": ["React", "Next.js:13.4", "Cloudflare", "Webpack"],
  "webserver": "cloudflare",
  "title": "Target App"
}

2. Deep scan with WhatWeb

# WhatWeb has wider plugin DB than httpx
whatweb -v --color=never -a 3 "https://app.target.com"

# Aggression levels:
#  1 = passive (just GET /)
#  3 = standard (default)
#  4 = heavy (lots of requests)

3. Header forensics

# Manual but precise:
curl -sI "https://app.target.com" | grep -iE "server|x-powered-by|x-aspnet|x-runtime|via|cf-ray|x-amz-|x-azure-"

# Examples of what to look for:
# X-Powered-By: PHP/7.4.3
# X-AspNet-Version: 4.0.30319
# X-Runtime: 0.045821 → Ruby on Rails
# Server: nginx/1.18.0 (Ubuntu)
# Via: 1.1 vegur → Heroku
# X-Vercel-Id → Vercel hosting
# X-Amz-Cf-Id → AWS CloudFront

4. Cookie fingerprinting

curl -sI "https://app.target.com" | grep -i "set-cookie"

# Cookie names reveal stack:
# PHPSESSID → PHP
# JSESSIONID → Java
# .AspNet.ApplicationCookie → ASP.NET
# _csrf, _session → Rails
# laravel_session → Laravel
# connect.sid → Express
# session → Flask/generic
# next-auth.session-token → Next.js + NextAuth

5. Error page fingerprinting

# Common error-page paths to fingerprint stack
for path in "/foo/bar" "/api/random-uuid" "/404-this-doesnt-exist" "/.env" "/server-status"; do
    echo "=== $path ==="
    curl -s "https://app.target.com$path" | head -30
    echo
done

# Look for:
# - "Whitelabel Error Page" → Spring Boot
# - "Application Error" + heroku → Heroku app
# - "Cannot GET /foo" → Express
# - "DEBUG = True" Django stack trace → DEBUG mode (CRITICAL bug!)
# - "Internal Server Error" + Werkzeug → Flask

6. Frontend stack from JS bundle

# Get JS file URLs
curl -s "https://app.target.com" | grep -oE 'src="[^"]+\.js"' | sed 's/src="//;s/"$//'

# Check for framework fingerprints:
# react-dom.production.min.js → React
# vue.runtime.min.js → Vue
# @angular/core → Angular
# next/router → Next.js
# nuxt → Nuxt
# svelte → Svelte
# remix-run → Remix

# retire.js — find outdated JS libs
retire --jsrepo https://retirejs.github.io/retire.js/repository/jsrepo.json --js https://app.target.com

7. Nuclei tech-detect templates

# nuclei has hundreds of tech-detect templates
nuclei -u "https://app.target.com" -tags tech -silent

# Targeted: known versionable software
nuclei -u "https://app.target.com" -t http/technologies/ -silent

# Look for version disclosure
nuclei -u "https://app.target.com" -tags version -silent

8. Cloud / CDN detection

# DNS shows CNAME → CDN/provider
dig +short "app.target.com"

# Common CNAMEs:
# *.cloudfront.net → AWS CloudFront
# *.azureedge.net → Azure CDN
# *.fastly.net → Fastly
# *.cloudflare.com → Cloudflare (often via A record + IPs in CF range)
# *.ngrok.io → ngrok (developer tunnel — interesting!)
# *.herokuapp.com → Heroku
# *.vercel.app → Vercel
# *.netlify.app → Netlify
# *.s3.amazonaws.com → S3 bucket (check ownership = takeover candidate)
# *.github.io → GitHub Pages (takeover candidate)

9. WAF detection

# wafw00f
pip install wafw00f
wafw00f "https://app.target.com"

# Manual:
# - 403 with "challenge" page → Cloudflare
# - 403 + cf-ray header → Cloudflare
# - 403 + akamai-x-cache header → Akamai
# - 406 + X-Iinfo → Imperva
# - 403 + X-Sucuri-ID → Sucuri

Output template

target: app.target.com
fingerprint_date: 2026-06-02

infrastructure:
  cdn: Cloudflare
  ip: 104.21.x.x (CF IP)
  origin_ip: unknown (CF protected)
  waf: Cloudflare WAF

web_server:
  product: nginx
  version: 1.18 (inferred from defaults)
  os: Ubuntu 20.04 LTS

backend:
  language: Node.js
  framework: Next.js 13.4
  evidence: |
    - X-Powered-By: Next.js
    - JS bundle: _next/static/
    - Headers: x-vercel-id (suggests Vercel hosting backed by Next.js)

frontend:
  framework: React 18.2
  bundler: Webpack 5
  state_mgmt: Redux Toolkit (from JS analysis)

api:
  style: REST + GraphQL
  rest_base: /api/v3
  graphql_endpoint: /api/graphql
  evidence: discovered in main.js bundle

authentication:
  type: NextAuth.js with custom OAuth provider
  cookie: next-auth.session-token
  jwt: yes (verified via JWT decoding)

cms: none

interesting_tech:
  - GraphQL endpoint exposed (introspection?)
  - NextAuth handles session — check JWT signing
  - Vercel serverless — different attack surface (cold starts, env vars)
  - WebSocket on /api/ws — possible RT data exchange

Tech → vuln class lookup

Use this to decide what to hunt next:

Tech FoundTry These Skills
WordPressnuclei wordpress templates, wpscan, REST API authcheck
GraphQL[[graphql]] — introspection, batching, depth
JWT in cookies[[jwt-attacks]] — alg=none, key confusion
OAuth visible[[oauth-oidc]] — redirect_uri, state
File upload UI[[file-upload]]
Multi-tenant URLs[[idor-hunting]]
Search/filter inputs[[sqli]], [[ssti]]
URL fetcher / webhook[[ssrf]]
Spring BootCVE checks (RCE history), actuator endpoints
Old DrupalCVE-2018-7600 Drupalgeddon, etc.
Old WordPress pluginsnuclei wordpress-CVEs templates
Outdated jQueryretire.js → CVEs
Exposed Swagger/OpenAPIAPI enumeration goldmine

Cross-references

  • [[asset-discovery]] — runs before this
  • [[js-analysis]] — deeper JS endpoint mining
  • [[content-discovery]] — fuzz paths based on tech
  • [[nuclei]]-style scanning — match templates to fingerprinted stack

Common pitfalls

  1. Trusting Server: header alone. It's often reverse-proxy, not the actual app.
  2. Missing JS-based SPA detection. SPA = different attack surface.
  3. Not checking all origin endpoints. Same domain may have multiple stacks behind path-based routing.
  4. Treating Cloudflare as the app. WAF can mislead — try origin IP if findable.
  5. Skipping the error pages. Stack traces > Wappalyzer fingerprints any day.

Pro tips

  • Bring up devtools in the browser. Network tab shows headers + cookies in seconds.
  • Note _next/, __nuxt/, _remix/ paths. They signal SSR frameworks → unique bug classes.
  • Save fingerprint to loot/<target>/fingerprint.yaml. Re-use for re-tests.
  • Run fingerprinting weekly on active targets. Tech stack updates create new attack windows.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Probe subdomain list with httpx/dnsx/naabu to identify live hosts, open ports, status codes, titles, and basic fingerprints. Use after subdomain-enum produces a sub list. Output feeds into fingerprinting and content discovery.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

Hunt full Account Takeover (ATO) by chaining lower-severity findings — IDOR-to-email-disclosure, password-reset-token-theft, OAuth-redirect-uri abuse, response-manipulation, cookie scope, CRLF in Set-Cookie, race-condition on signup. Use when the user wants to escalate small findings to ATO or thinks an ATO path exists.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

Hunt authentication and authorization bypasses — forced browsing, path traversal in auth, header injection, JWT downgrade, OAuth state confusion, role manipulation. Use when an endpoint returns 401/403 but appears reachable.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

Write Bugcrowd-format reports — VRT (Vulnerability Rating Taxonomy) mapping, P1-P5 severity, impact-led writing, and Bugcrowd-specific submission etiquette. Use AFTER triage-validation passes for Bugcrowd programs.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

Hunt business logic flaws — race conditions, workflow state bypass, parameter pollution affecting logic, coupon/discount abuse, refund logic, multi-step process bypass, integer overflow, negative quantities, double-spend. Use when looking for non-CVE bugs that require understanding the app's intended workflow.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

Hunt web cache poisoning, CDN cache poisoning, and cache deception attacks. Use when target uses a CDN (Cloudflare, Akamai, Fastly, AWS CloudFront) or has Varnish/nginx caches and you want to identify cache key flaws that let attackers serve malicious content to other users.

日本語の概要は準備中です。原文の説明を表示しています。

0xGhostCAT/claude-ai-cyber-security-skills422026年6月3日 更新

0xGhostCAT のスキルをすべて見る

このスキルの問題を報告する