@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.
Files changed (345) hide show
  1. package/ATTRIBUTION.md +93 -0
  2. package/package.json +1 -1
  3. package/sbom.cdx.json +1 -0
  4. package/skills/compliance/aegis-native/brutaler-anwalt/.claude-plugin/plugin.json +108 -0
  5. package/skills/compliance/aegis-native/brutaler-anwalt/CHANGELOG.md +878 -0
  6. package/skills/compliance/aegis-native/brutaler-anwalt/README.md +9 -3
  7. package/skills/compliance/aegis-native/brutaler-anwalt/SKILL.md +93 -14
  8. package/skills/compliance/aegis-native/brutaler-anwalt/commands/audit.md +193 -0
  9. package/skills/compliance/aegis-native/brutaler-anwalt/commands/avv-redline.md +246 -0
  10. package/skills/compliance/aegis-native/brutaler-anwalt/commands/az-verify.md +155 -0
  11. package/skills/compliance/aegis-native/brutaler-anwalt/commands/cold-start.md +157 -0
  12. package/skills/compliance/aegis-native/brutaler-anwalt/commands/dsar-respond.md +180 -0
  13. package/skills/compliance/aegis-native/brutaler-anwalt/commands/health.md +50 -0
  14. package/skills/compliance/aegis-native/brutaler-anwalt/commands/simulate.md +158 -0
  15. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/post_write.py +315 -0
  16. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/prompt_submit.py +144 -0
  17. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/session_start.py +57 -0
  18. package/skills/compliance/aegis-native/brutaler-anwalt/hooks/triggers.json +191 -0
  19. package/skills/compliance/aegis-native/brutaler-anwalt/references/INDEX.md +102 -0
  20. package/skills/compliance/aegis-native/brutaler-anwalt/references/abmahn-templates.md +1 -1
  21. package/skills/compliance/aegis-native/brutaler-anwalt/references/aegis-integration.md +60 -5
  22. package/skills/compliance/aegis-native/brutaler-anwalt/references/audit-patterns.md +745 -11
  23. package/skills/compliance/aegis-native/brutaler-anwalt/references/az-auffuellung-batch1.md +468 -0
  24. package/skills/compliance/aegis-native/brutaler-anwalt/references/bgh-urteile.md +106 -30
  25. package/skills/compliance/aegis-native/brutaler-anwalt/references/branchenrecht.md +247 -2
  26. package/skills/compliance/aegis-native/brutaler-anwalt/references/checklisten.md +75 -2
  27. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-aufsichtsbehoerden-taetigkeitsberichte-2024.md +310 -0
  28. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-bussgeld-argumentations-layer.md +598 -0
  29. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-dsk-beschluesse.md +346 -0
  30. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/audit-relevance.md +76 -0
  31. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AGG/paragraphs.md +115 -0
  32. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/audit-relevance.md +58 -0
  33. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/AMG/paragraphs.md +95 -0
  34. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/audit-relevance.md +60 -0
  35. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ArbZG/paragraphs.md +90 -0
  36. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/audit-relevance.md +73 -0
  37. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/BetrVG/paragraphs.md +114 -0
  38. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/audit-relevance.md +72 -0
  39. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DDG/paragraphs.md +103 -0
  40. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/audit-relevance.md +65 -0
  41. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/DiGAV/paragraphs.md +102 -0
  42. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/audit-relevance.md +66 -0
  43. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ElektroG/paragraphs.md +108 -0
  44. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/audit-relevance.md +80 -0
  45. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/FernUSG/paragraphs.md +102 -0
  46. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/audit-relevance.md +89 -0
  47. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GeschGehG/paragraphs.md +107 -0
  48. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/audit-relevance.md +62 -0
  49. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/GwG/paragraphs.md +119 -0
  50. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/audit-relevance.md +70 -0
  51. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HWG/paragraphs.md +125 -0
  52. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/audit-relevance.md +70 -0
  53. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/HinSchG/paragraphs.md +116 -0
  54. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/INDEX.md +152 -0
  55. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/audit-relevance.md +64 -0
  56. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/KWG/paragraphs.md +110 -0
  57. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/audit-relevance.md +63 -0
  58. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/LFGB/paragraphs.md +90 -0
  59. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/audit-relevance.md +61 -0
  60. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/MPDG/paragraphs.md +96 -0
  61. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/audit-relevance.md +54 -0
  62. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/NachwG/paragraphs.md +82 -0
  63. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/audit-relevance.md +76 -0
  64. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/PAngV/paragraphs.md +86 -0
  65. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/audit-relevance.md +84 -0
  66. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/RDG/paragraphs.md +114 -0
  67. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/audit-relevance.md +92 -0
  68. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/TDDDG/paragraphs.md +91 -0
  69. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/audit-relevance.md +85 -0
  70. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/UrhG-UrhDaG/paragraphs.md +166 -0
  71. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/audit-relevance.md +71 -0
  72. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VDuG/paragraphs.md +102 -0
  73. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VERIFICATION-NOTES.md +111 -0
  74. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/audit-relevance.md +65 -0
  75. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VVG/paragraphs.md +101 -0
  76. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/audit-relevance.md +62 -0
  77. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/VerpackG/paragraphs.md +120 -0
  78. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/audit-relevance.md +64 -0
  79. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/WpHG/paragraphs.md +120 -0
  80. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/audit-relevance.md +68 -0
  81. package/skills/compliance/aegis-native/brutaler-anwalt/references/de-statute-tier1/ZAG/paragraphs.md +110 -0
  82. package/skills/compliance/aegis-native/brutaler-anwalt/references/dsgvo.md +55 -8
  83. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-edpb-guidelines.md +505 -0
  84. package/skills/compliance/aegis-native/brutaler-anwalt/references/eu-eugh-dsgvo-schadensersatz.md +223 -0
  85. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BDSG/audit-relevance.md +31 -0
  86. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BFSG/audit-relevance.md +39 -0
  87. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/BGB/audit-relevance.md +42 -0
  88. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DDG/audit-relevance.md +28 -0
  89. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/DSGVO/audit-relevance.md +35 -0
  90. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/articles.md +4 -1
  91. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/audit-relevance.md +139 -0
  92. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/gpai-pflichten.md +102 -0
  93. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/hochrisiko-annex-iii.md +134 -0
  94. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/sanktionen-art-99.md +97 -0
  95. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/transparenz-art-50.md +120 -0
  96. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/AI-Act-2024-1689/uebergangsfristen.md +109 -0
  97. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CER-2022-2557/articles.md +42 -0
  98. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CRA-2024-2847/articles.md +87 -0
  99. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSDDD-2024-1760/articles.md +43 -0
  100. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/CSRD-2022-2464/articles.md +42 -0
  101. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DGA-2022-868/articles.md +53 -0
  102. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DMA-2022-1925/articles.md +55 -0
  103. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/articles.md +164 -0
  104. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DORA-2022-2554/audit-relevance.md +86 -0
  105. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/articles.md +3 -0
  106. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/audit-relevance.md +110 -0
  107. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/notice-and-action.md +138 -0
  108. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/small-platform-pflichten.md +109 -0
  109. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/trusted-flaggers.md +77 -0
  110. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/DSA-2022-2065/vlop-vlose.md +130 -0
  111. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/articles.md +102 -0
  112. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/Data-Act-2023-2854/audit-relevance.md +77 -0
  113. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/articles.md +124 -0
  114. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/MiCA-2023-1114/audit-relevance.md +85 -0
  115. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/NIS2-2022-2555/articles.md +101 -0
  116. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/ProdHaftRL-2024-2853/articles.md +68 -0
  117. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/EU-Verordnungen/eIDAS-2024-1183/articles.md +43 -0
  118. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/KWG.md +52 -0
  119. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/PSD2.md +67 -0
  120. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/Finance/ZAG.md +50 -0
  121. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/GlueStV/articles.md +86 -0
  122. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HGB-AO/audit-relevance.md +27 -0
  123. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/HinSchG/articles.md +96 -0
  124. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/JuSchG-JMStV/articles.md +86 -0
  125. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/KritisDachG/articles.md +39 -0
  126. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/LkSG/articles.md +90 -0
  127. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/DiGAV.md +60 -0
  128. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/IVDR-2017-746.md +51 -0
  129. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/MedTech/MDR-2017-745.md +85 -0
  130. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/NIS2UmsuCG-BSIG/articles.md +53 -0
  131. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/StGB/relevante-paragraphen.md +157 -0
  132. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/audit-relevance.md +33 -0
  133. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TDDDG/paragraphs.md +3 -2
  134. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/TKG/articles.md +73 -0
  135. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/audit-relevance.md +39 -0
  136. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/UWG/paragraphs.md +71 -3
  137. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VERIFICATION-STATUS.md +266 -0
  138. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/VSBG/audit-relevance.md +37 -0
  139. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/articles.md +92 -0
  140. package/skills/compliance/aegis-native/brutaler-anwalt/references/gesetze/ePrivacy-RL-2002-58/audit-relevance.md +62 -0
  141. package/skills/compliance/aegis-native/brutaler-anwalt/references/it-recht.md +115 -9
  142. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/INDEX.md +1 -1
  143. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/ai/anthropic-dpa.md +87 -0
  144. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/cookie-banner-pattern.md +202 -0
  145. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/dse-section-pattern.md +198 -0
  146. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/astro/tracking-server-endpoint.md +193 -0
  147. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/auth0-tom.md +92 -0
  148. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/auth/clerk-tom.md +84 -0
  149. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/auth-cookies-pattern.md +295 -0
  150. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/cookie-banner-pattern.md +318 -0
  151. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/django/gdpr-cleanup-celery.md +339 -0
  152. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/cookie-banner-pattern.md +237 -0
  153. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/gdpr-routes-pattern.md +256 -0
  154. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/express/helmet-csp-pattern.md +207 -0
  155. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/agb-versioning-pattern.md +305 -0
  156. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/cookie-banner-pattern.md +287 -0
  157. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/gdpr-models-pattern.md +290 -0
  158. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/laravel/tracking-config-pattern.md +263 -0
  159. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/auth-pattern.md +265 -0
  160. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/cookie-banner-pattern.md +255 -0
  161. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/gdpr-cleanup-cron.md +244 -0
  162. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nest/tracking-interceptor.md +239 -0
  163. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/api-route-bearer-auth.md +103 -0
  164. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/dynamic-rendering-headers.md +83 -0
  165. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/nextjs/env-driven-tracking.md +135 -0
  166. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/cookie-banner-pattern.md +294 -0
  167. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/devise-dsgvo-pattern.md +262 -0
  168. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/rails/gdpr-anonymization-pattern.md +283 -0
  169. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/consent-gate-pattern.md +99 -0
  170. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/react/cookie-banner-pattern.md +204 -0
  171. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/cms-pii-pattern.md +301 -0
  172. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/strapi/notice-and-action-plugin.md +371 -0
  173. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/cookie-banner-pattern.md +234 -0
  174. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/dse-section-pattern.md +231 -0
  175. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/svelte/sveltekit-server-hooks-pattern.md +217 -0
  176. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/google-analytics-consent.md +129 -0
  177. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/tracking/posthog-consent.md +79 -0
  178. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/cookie-banner-pattern.md +208 -0
  179. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/dse-i18n-pattern.md +204 -0
  180. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/nuxt-vs-vue-only-pattern.md +197 -0
  181. package/skills/compliance/aegis-native/brutaler-anwalt/references/stack-patterns/vue/tracking-pinia-pattern.md +211 -0
  182. package/skills/compliance/aegis-native/brutaler-anwalt/references/strafrecht-steuer.md +1 -1
  183. package/skills/compliance/aegis-native/brutaler-anwalt/references/streitwerte.json +176 -0
  184. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/DSFA-template.md +80 -0
  185. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates/VVT-template-file-upload.md +98 -0
  186. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-EN-international.md +267 -0
  187. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Audit-Klausel-Varianten.md +148 -0
  188. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-CH-revDSG.md +127 -0
  189. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module2-controller-processor.md +180 -0
  190. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-SCC-module3-processor-subprocessor.md +144 -0
  191. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-Sub-Processor-List.md +114 -0
  192. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-TOMs.md +197 -0
  193. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-anhang-UK-IDTA.md +131 -0
  194. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/AVV-standard-DE.md +288 -0
  195. package/skills/compliance/aegis-native/brutaler-anwalt/references/templates-avv-layer/Joint-Controller-Vertrag-Art-26.md +265 -0
  196. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/health-check.sh +190 -48
  197. package/skills/compliance/aegis-native/brutaler-anwalt/scripts/test-triggers.sh +145 -0
  198. package/skills/compliance/aegis-native/brutaler-anwalt/settings.json +90 -0
  199. package/skills/defensive/permoon-fork/README.md +40 -0
  200. package/skills/defensive/permoon-fork/multi-model-consolidation/SKILL.md +47 -0
  201. package/skills/defensive/permoon-fork/multi-model-severity/SKILL.md +34 -0
  202. package/skills/defensive/permoon-fork/multi-model-system-prompt/SKILL.md +40 -0
  203. package/skills/foundation/aegis-native/aegis-handover-writer/SKILL.md +1 -1
  204. package/skills/foundation/aegis-native/aegis-quality-gates/SKILL.md +1 -1
  205. package/skills/offensive/airecon-fork/ctf-crypto/SKILL.md +260 -0
  206. package/skills/offensive/airecon-fork/ctf-crypto-modern-ciphers/SKILL.md +688 -0
  207. package/skills/offensive/airecon-fork/ctf-forensics/SKILL.md +253 -0
  208. package/skills/offensive/airecon-fork/ctf-forensics-network/SKILL.md +480 -0
  209. package/skills/offensive/airecon-fork/ctf-heap-advanced/SKILL.md +336 -0
  210. package/skills/offensive/airecon-fork/ctf-pwn/SKILL.md +294 -0
  211. package/skills/offensive/airecon-fork/ctf-pwn-rop-and-shellcode/SKILL.md +392 -0
  212. package/skills/offensive/airecon-fork/ctf-reversing/SKILL.md +284 -0
  213. package/skills/offensive/airecon-fork/frameworks-django/SKILL.md +268 -0
  214. package/skills/offensive/airecon-fork/frameworks-dotnet/SKILL.md +280 -0
  215. package/skills/offensive/airecon-fork/frameworks-express/SKILL.md +266 -0
  216. package/skills/offensive/airecon-fork/frameworks-fastapi/SKILL.md +193 -0
  217. package/skills/offensive/airecon-fork/frameworks-flask/SKILL.md +297 -0
  218. package/skills/offensive/airecon-fork/frameworks-laravel/SKILL.md +260 -0
  219. package/skills/offensive/airecon-fork/frameworks-nextjs/SKILL.md +230 -0
  220. package/skills/offensive/airecon-fork/frameworks-php/SKILL.md +271 -0
  221. package/skills/offensive/airecon-fork/frameworks-rails/SKILL.md +269 -0
  222. package/skills/offensive/airecon-fork/frameworks-spring/SKILL.md +245 -0
  223. package/skills/offensive/airecon-fork/frameworks-wordpress/SKILL.md +348 -0
  224. package/skills/offensive/airecon-fork/payloads-command-injection/SKILL.md +459 -0
  225. package/skills/offensive/airecon-fork/payloads-http-parameter-pollution/SKILL.md +129 -0
  226. package/skills/offensive/airecon-fork/payloads-ldap-injection/SKILL.md +100 -0
  227. package/skills/offensive/airecon-fork/payloads-lfi/SKILL.md +485 -0
  228. package/skills/offensive/airecon-fork/payloads-sqli/SKILL.md +419 -0
  229. package/skills/offensive/airecon-fork/payloads-ssrf/SKILL.md +125 -0
  230. package/skills/offensive/airecon-fork/payloads-ssti/SKILL.md +443 -0
  231. package/skills/offensive/airecon-fork/payloads-xss/SKILL.md +447 -0
  232. package/skills/offensive/airecon-fork/payloads-xxe/SKILL.md +172 -0
  233. package/skills/offensive/airecon-fork/postexploit-ad-credential-attacks/SKILL.md +306 -0
  234. package/skills/offensive/airecon-fork/postexploit-container-escape/SKILL.md +299 -0
  235. package/skills/offensive/airecon-fork/postexploit-credential-dumping/SKILL.md +249 -0
  236. package/skills/offensive/airecon-fork/postexploit-lateral-movement/SKILL.md +194 -0
  237. package/skills/offensive/airecon-fork/postexploit-linux-privesc/SKILL.md +252 -0
  238. package/skills/offensive/airecon-fork/postexploit-netexec-workflow/SKILL.md +302 -0
  239. package/skills/offensive/airecon-fork/postexploit-pivoting/SKILL.md +205 -0
  240. package/skills/offensive/airecon-fork/postexploit-windows-privesc/SKILL.md +210 -0
  241. package/skills/offensive/airecon-fork/protocols-active-directory/SKILL.md +314 -0
  242. package/skills/offensive/airecon-fork/protocols-dns/SKILL.md +203 -0
  243. package/skills/offensive/airecon-fork/protocols-ftp/SKILL.md +159 -0
  244. package/skills/offensive/airecon-fork/protocols-graphql/SKILL.md +648 -0
  245. package/skills/offensive/airecon-fork/protocols-kerberos/SKILL.md +168 -0
  246. package/skills/offensive/airecon-fork/protocols-ldap/SKILL.md +245 -0
  247. package/skills/offensive/airecon-fork/protocols-rdp/SKILL.md +186 -0
  248. package/skills/offensive/airecon-fork/protocols-smb/SKILL.md +191 -0
  249. package/skills/offensive/airecon-fork/protocols-smtp-imap/SKILL.md +263 -0
  250. package/skills/offensive/airecon-fork/protocols-snmp/SKILL.md +147 -0
  251. package/skills/offensive/airecon-fork/protocols-ssh/SKILL.md +287 -0
  252. package/skills/offensive/airecon-fork/reconnaissance-asn-whois-osint/SKILL.md +236 -0
  253. package/skills/offensive/airecon-fork/reconnaissance-ctf-methodology/SKILL.md +435 -0
  254. package/skills/offensive/airecon-fork/reconnaissance-dorking/SKILL.md +182 -0
  255. package/skills/offensive/airecon-fork/reconnaissance-exposed-devtools-detection/SKILL.md +513 -0
  256. package/skills/offensive/airecon-fork/reconnaissance-full-recon/SKILL.md +305 -0
  257. package/skills/offensive/airecon-fork/reconnaissance-internal-pentest/SKILL.md +202 -0
  258. package/skills/offensive/airecon-fork/reconnaissance-javascript-analysis/SKILL.md +167 -0
  259. package/skills/offensive/airecon-fork/reconnaissance-js-internal-hostname-intelligence/SKILL.md +391 -0
  260. package/skills/offensive/airecon-fork/reconnaissance-monitoring-secrets-exposure/SKILL.md +394 -0
  261. package/skills/offensive/airecon-fork/reconnaissance-shodan-censys/SKILL.md +279 -0
  262. package/skills/offensive/airecon-fork/reconnaissance-subdomain-enum/SKILL.md +952 -0
  263. package/skills/offensive/airecon-fork/technologies-cicd-attacks/SKILL.md +283 -0
  264. package/skills/offensive/airecon-fork/technologies-cloud-security/SKILL.md +299 -0
  265. package/skills/offensive/airecon-fork/technologies-docker-container/SKILL.md +266 -0
  266. package/skills/offensive/airecon-fork/technologies-elasticsearch/SKILL.md +226 -0
  267. package/skills/offensive/airecon-fork/technologies-firebase-firestore/SKILL.md +213 -0
  268. package/skills/offensive/airecon-fork/technologies-frida-hooking/SKILL.md +387 -0
  269. package/skills/offensive/airecon-fork/technologies-gitlab-github/SKILL.md +259 -0
  270. package/skills/offensive/airecon-fork/technologies-jenkins/SKILL.md +256 -0
  271. package/skills/offensive/airecon-fork/technologies-kubernetes-pentest/SKILL.md +281 -0
  272. package/skills/offensive/airecon-fork/technologies-memcached/SKILL.md +230 -0
  273. package/skills/offensive/airecon-fork/technologies-mobile-app-pentesting/SKILL.md +105 -0
  274. package/skills/offensive/airecon-fork/technologies-mongodb/SKILL.md +257 -0
  275. package/skills/offensive/airecon-fork/technologies-nginx-apache/SKILL.md +280 -0
  276. package/skills/offensive/airecon-fork/technologies-observability-stack-attacks/SKILL.md +501 -0
  277. package/skills/offensive/airecon-fork/technologies-redis/SKILL.md +236 -0
  278. package/skills/offensive/airecon-fork/technologies-supabase/SKILL.md +270 -0
  279. package/skills/offensive/airecon-fork/technologies-tomcat/SKILL.md +232 -0
  280. package/skills/offensive/airecon-fork/tools-advanced-fuzzing/SKILL.md +351 -0
  281. package/skills/offensive/airecon-fork/tools-browser-automation/SKILL.md +300 -0
  282. package/skills/offensive/airecon-fork/tools-caido/SKILL.md +776 -0
  283. package/skills/offensive/airecon-fork/tools-code-review/SKILL.md +71 -0
  284. package/skills/offensive/airecon-fork/tools-dalfox/SKILL.md +189 -0
  285. package/skills/offensive/airecon-fork/tools-hashcat-john/SKILL.md +258 -0
  286. package/skills/offensive/airecon-fork/tools-impacket/SKILL.md +227 -0
  287. package/skills/offensive/airecon-fork/tools-install/SKILL.md +202 -0
  288. package/skills/offensive/airecon-fork/tools-metasploit/SKILL.md +270 -0
  289. package/skills/offensive/airecon-fork/tools-nmap/SKILL.md +211 -0
  290. package/skills/offensive/airecon-fork/tools-nuclei/SKILL.md +175 -0
  291. package/skills/offensive/airecon-fork/tools-reporting/SKILL.md +47 -0
  292. package/skills/offensive/airecon-fork/tools-scripting/SKILL.md +1939 -0
  293. package/skills/offensive/airecon-fork/tools-semgrep/SKILL.md +202 -0
  294. package/skills/offensive/airecon-fork/tools-source-audit/SKILL.md +308 -0
  295. package/skills/offensive/airecon-fork/tools-sqlmap/SKILL.md +137 -0
  296. package/skills/offensive/airecon-fork/tools-tool-catalog/SKILL.md +320 -0
  297. package/skills/offensive/airecon-fork/tools-wapiti/SKILL.md +293 -0
  298. package/skills/offensive/airecon-fork/vulnerabilities-2fa-bypass/SKILL.md +219 -0
  299. package/skills/offensive/airecon-fork/vulnerabilities-account-takeover/SKILL.md +223 -0
  300. package/skills/offensive/airecon-fork/vulnerabilities-api-schema-exposure/SKILL.md +849 -0
  301. package/skills/offensive/airecon-fork/vulnerabilities-api-testing/SKILL.md +278 -0
  302. package/skills/offensive/airecon-fork/vulnerabilities-auth-workflow/SKILL.md +252 -0
  303. package/skills/offensive/airecon-fork/vulnerabilities-authentication-jwt/SKILL.md +158 -0
  304. package/skills/offensive/airecon-fork/vulnerabilities-bfla/SKILL.md +156 -0
  305. package/skills/offensive/airecon-fork/vulnerabilities-blind-xss/SKILL.md +111 -0
  306. package/skills/offensive/airecon-fork/vulnerabilities-business-logic/SKILL.md +313 -0
  307. package/skills/offensive/airecon-fork/vulnerabilities-cors/SKILL.md +242 -0
  308. package/skills/offensive/airecon-fork/vulnerabilities-crlf-injection/SKILL.md +146 -0
  309. package/skills/offensive/airecon-fork/vulnerabilities-csrf/SKILL.md +200 -0
  310. package/skills/offensive/airecon-fork/vulnerabilities-csrf-advanced-bypass/SKILL.md +536 -0
  311. package/skills/offensive/airecon-fork/vulnerabilities-deserialization/SKILL.md +363 -0
  312. package/skills/offensive/airecon-fork/vulnerabilities-dom-based-vulnerabilities/SKILL.md +105 -0
  313. package/skills/offensive/airecon-fork/vulnerabilities-exploitation/SKILL.md +286 -0
  314. package/skills/offensive/airecon-fork/vulnerabilities-grpc/SKILL.md +123 -0
  315. package/skills/offensive/airecon-fork/vulnerabilities-host-header-injection/SKILL.md +169 -0
  316. package/skills/offensive/airecon-fork/vulnerabilities-http-smuggling/SKILL.md +411 -0
  317. package/skills/offensive/airecon-fork/vulnerabilities-idor/SKILL.md +705 -0
  318. package/skills/offensive/airecon-fork/vulnerabilities-information-disclosure/SKILL.md +867 -0
  319. package/skills/offensive/airecon-fork/vulnerabilities-insecure-file-uploads/SKILL.md +190 -0
  320. package/skills/offensive/airecon-fork/vulnerabilities-jwt-attacks/SKILL.md +270 -0
  321. package/skills/offensive/airecon-fork/vulnerabilities-kubernetes/SKILL.md +252 -0
  322. package/skills/offensive/airecon-fork/vulnerabilities-mass-assignment/SKILL.md +788 -0
  323. package/skills/offensive/airecon-fork/vulnerabilities-nosql-injection/SKILL.md +204 -0
  324. package/skills/offensive/airecon-fork/vulnerabilities-oauth-misconfig/SKILL.md +220 -0
  325. package/skills/offensive/airecon-fork/vulnerabilities-oauth-saml/SKILL.md +163 -0
  326. package/skills/offensive/airecon-fork/vulnerabilities-open-redirect/SKILL.md +167 -0
  327. package/skills/offensive/airecon-fork/vulnerabilities-password-reset-poisoning/SKILL.md +66 -0
  328. package/skills/offensive/airecon-fork/vulnerabilities-path-traversal/SKILL.md +192 -0
  329. package/skills/offensive/airecon-fork/vulnerabilities-privilege-escalation/SKILL.md +320 -0
  330. package/skills/offensive/airecon-fork/vulnerabilities-prototype-pollution/SKILL.md +242 -0
  331. package/skills/offensive/airecon-fork/vulnerabilities-race-conditions/SKILL.md +192 -0
  332. package/skills/offensive/airecon-fork/vulnerabilities-rce/SKILL.md +240 -0
  333. package/skills/offensive/airecon-fork/vulnerabilities-sensitive-file-pii-exposure/SKILL.md +589 -0
  334. package/skills/offensive/airecon-fork/vulnerabilities-spring4shell/SKILL.md +86 -0
  335. package/skills/offensive/airecon-fork/vulnerabilities-sql-injection/SKILL.md +313 -0
  336. package/skills/offensive/airecon-fork/vulnerabilities-ssrf/SKILL.md +183 -0
  337. package/skills/offensive/airecon-fork/vulnerabilities-ssti/SKILL.md +344 -0
  338. package/skills/offensive/airecon-fork/vulnerabilities-subdomain-takeover/SKILL.md +160 -0
  339. package/skills/offensive/airecon-fork/vulnerabilities-supply-chain/SKILL.md +125 -0
  340. package/skills/offensive/airecon-fork/vulnerabilities-unhandled-exception-differential/SKILL.md +742 -0
  341. package/skills/offensive/airecon-fork/vulnerabilities-waf-detection/SKILL.md +90 -0
  342. package/skills/offensive/airecon-fork/vulnerabilities-web-cache-poisoning/SKILL.md +233 -0
  343. package/skills/offensive/airecon-fork/vulnerabilities-websocket/SKILL.md +180 -0
  344. package/skills/offensive/airecon-fork/vulnerabilities-xss/SKILL.md +316 -0
  345. package/skills/offensive/airecon-fork/vulnerabilities-xxe/SKILL.md +222 -0
@@ -0,0 +1,167 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ # JavaScript Endpoint & Secret Extraction
4
+
5
+ Use this playbook when analyzing any web application that serves JavaScript files.
6
+ Modern SPAs (React, Vue, Angular, Next.js) expose almost all API routes and sometimes secrets inside JS bundles.
7
+
8
+ ---
9
+
10
+ ## STEP 1 — Collect All JavaScript File URLs
11
+
12
+ ```bash
13
+ # From browser_action output (saved to output/js_files.txt):
14
+ cat output/js_files.txt
15
+
16
+ # OR: extract from raw HTML if browser_action wasn't used:
17
+ curl -sk https://TARGET/ | grep -oP '(?<=src=")[^"]+\.js[^"]*' | sed 's|^/|https://TARGET/|' | tee output/js_files.txt
18
+
19
+ # Also check for chunk manifest / lazy-loaded bundles:
20
+ curl -sk https://TARGET/ | grep -oP '(?<=src=")[^"]+' | grep -E '\.(js|chunk)' | tee -a output/js_files.txt
21
+ curl -sk https://TARGET/asset-manifest.json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); [print(v) for v in d.values() if '.js' in str(v)]"
22
+ curl -sk https://TARGET/webpack-manifest.json 2>/dev/null | python3 -c "import sys,json; [print(v) for k,v in json.load(sys.stdin).items() if '.js' in str(v)]"
23
+ ```
24
+
25
+ ---
26
+
27
+ ## STEP 2 — Download All JS Files
28
+
29
+ ```bash
30
+ mkdir -p output/js_files
31
+ while IFS= read -r url; do
32
+ [ -z "$url" ] && continue
33
+ # Resolve relative URLs
34
+ [[ "$url" != http* ]] && url="https://TARGET${url}"
35
+ fname=$(echo "$url" | md5sum | cut -d' ' -f1).js
36
+ curl -sk "$url" -o "output/js_files/$fname" && echo "Downloaded: $url -> $fname"
37
+ done < output/js_files.txt
38
+ echo "Total JS files: $(ls output/js_files/*.js 2>/dev/null | wc -l)"
39
+ ```
40
+
41
+ ---
42
+
43
+ ## STEP 3 — Extract API Endpoints
44
+
45
+ ```bash
46
+ # Pattern 1: quoted string paths starting with / or /api
47
+ grep -roh '"\(/[a-zA-Z0-9_/.-]\{2,80\}\)"' output/js_files/ 2>/dev/null \
48
+ | tr -d '"' | sort -u | grep -E '^/(api|v[0-9]|auth|user|admin|account|order|product|data|graphql)' \
49
+ | tee output/js_extracted_endpoints.txt
50
+
51
+ # Pattern 2: single-quoted paths
52
+ grep -roh "'\(/[a-zA-Z0-9_/.-]\{2,80\}\)'" output/js_files/ 2>/dev/null \
53
+ | tr -d "'" | sort -u | grep -E '^/(api|v[0-9]|auth|user|admin)' \
54
+ >> output/js_extracted_endpoints.txt
55
+
56
+ # Pattern 3: template literals with path
57
+ grep -roh '`/[a-zA-Z0-9_/.-]\{2,60\}`' output/js_files/ 2>/dev/null \
58
+ | tr -d '`' | sort -u >> output/js_extracted_endpoints.txt
59
+
60
+ # Pattern 4: fetch/axios/http calls (finds dynamic routes)
61
+ grep -roh 'fetch\s*([^)]\{5,120\})' output/js_files/ 2>/dev/null | head -30 >> output/js_extracted_endpoints.txt
62
+ grep -roh 'axios\.[a-z]\+\s*([^)]\{5,120\})' output/js_files/ 2>/dev/null | head -30 >> output/js_extracted_endpoints.txt
63
+
64
+ # Deduplicate and show results
65
+ sort -u output/js_extracted_endpoints.txt | head -50
66
+ echo "Total unique endpoints found: $(sort -u output/js_extracted_endpoints.txt | wc -l)"
67
+ ```
68
+
69
+ ---
70
+
71
+ ## STEP 4 — Scan for Secrets & Hardcoded Credentials
72
+
73
+ ```bash
74
+ # API keys and tokens
75
+ grep -roh 'api[_-]\?key[^"'"'"'`]\{0,10\}["\`'"'"'][A-Za-z0-9_\-]\{16,64\}' \
76
+ output/js_files/ -i 2>/dev/null | head -20 | tee output/js_secrets.txt
77
+
78
+ # Auth tokens and secrets
79
+ grep -roh '\b\(secret\|token\|password\|passwd\|auth\|credential\)[^"'"'"'`]\{0,15\}["\`'"'"'][A-Za-z0-9_=+/\-]\{8,100\}' \
80
+ output/js_files/ -i 2>/dev/null | head -20 >> output/js_secrets.txt
81
+
82
+ # AWS keys
83
+ grep -roh 'AKIA[A-Z0-9]\{16\}' output/js_files/ 2>/dev/null | head -5 >> output/js_secrets.txt
84
+ grep -roh '"aws[^"]\{0,20\}": *"[A-Za-z0-9/+]\{40\}"' output/js_files/ -i 2>/dev/null >> output/js_secrets.txt
85
+
86
+ # Internal URLs / backend hosts
87
+ grep -roh 'https\?://[a-zA-Z0-9._-]\{4,80\}' output/js_files/ 2>/dev/null \
88
+ | grep -v -E 'cdn\.|static\.|fonts\.|analytics\.|google\.|facebook\.' \
89
+ | sort -u | tee output/js_internal_urls.txt
90
+
91
+ # Show found secrets
92
+ echo "=== Secrets found ==="
93
+ cat output/js_secrets.txt
94
+ echo "=== Internal URLs ==="
95
+ head -20 output/js_internal_urls.txt
96
+ ```
97
+
98
+ ---
99
+
100
+ ## STEP 5 — Next.js / React Router Route Extraction
101
+
102
+ ```bash
103
+ # Next.js: page routes from main-*.js
104
+ grep -roh '"pathname":"[^"]\{1,80\}"' output/js_files/ 2>/dev/null \
105
+ | grep -oP '(?<=pathname":")[^"]+' | sort -u | tee output/js_nextjs_routes.txt
106
+
107
+ # React Router: look for route definitions
108
+ grep -roh 'path:\s*["\'"'"'][^"'"'"']\{1,80\}["\'"'"']' output/js_files/ 2>/dev/null \
109
+ | grep -oP '(?<=path: ["\'"'"'])[^"'"'"']+' | sort -u >> output/js_nextjs_routes.txt
110
+
111
+ # Angular: routerLink / loadChildren
112
+ grep -roh 'routerLink:\s*["\'"'"'][^"'"'"']\{1,80\}["\'"'"']' output/js_files/ 2>/dev/null | head -20
113
+ grep -roh 'loadChildren.*\.module' output/js_files/ 2>/dev/null | head -10
114
+
115
+ # Webpack chunk IDs → download extra chunks
116
+ grep -roh '"[0-9]\{1,4\}":"[a-f0-9]\{8,16\}"' output/js_files/ 2>/dev/null \
117
+ | python3 -c "
118
+ import sys, json, re
119
+ chunks = {}
120
+ for line in sys.stdin:
121
+ m = re.findall(r'\"(\d+)\":\"([a-f0-9]{8,16})\"', line)
122
+ chunks.update(m)
123
+ for cid, chash in list(chunks.items())[:20]:
124
+ print(f'Chunk {cid}: TARGET/static/js/{cid}.{chash}.chunk.js')
125
+ " | tee output/js_webpack_chunks.txt
126
+ ```
127
+
128
+ ---
129
+
130
+ ## STEP 6 — Test Discovered Endpoints
131
+
132
+ ```bash
133
+ # Load discovered endpoints and probe each one:
134
+ while IFS= read -r endpoint; do
135
+ [ -z "$endpoint" ] && continue
136
+ response=$(curl -sk -o /dev/null -w "%{http_code}" "https://TARGET${endpoint}")
137
+ [ "$response" != "404" ] && echo "[$response] $endpoint"
138
+ done < output/js_extracted_endpoints.txt | tee output/js_live_endpoints.txt
139
+
140
+ # Test with authentication cookie (if you have one):
141
+ while IFS= read -r endpoint; do
142
+ [ -z "$endpoint" ] && continue
143
+ response=$(curl -sk -b output/cookies.txt -o /dev/null -w "%{http_code}" "https://TARGET${endpoint}")
144
+ [ "$response" != "404" ] && echo "[$response] $endpoint"
145
+ done < output/js_extracted_endpoints.txt | tee output/js_authed_endpoints.txt
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Key Patterns to Look For
151
+
152
+ **Unauthenticated API routes** — endpoints that return 200 without a cookie/token
153
+ **Admin/internal routes** — `/api/admin`, `/internal/`, `/_/`, `/debug/`
154
+ **IDOR candidates** — routes containing `{id}`, `:id`, `[id]`, or numeric path segments
155
+ **File operations** — `/upload`, `/download`, `/export`, `/import`
156
+ **State-changing ops** — POST/PUT/DELETE endpoints (note them for CSRF/IDOR testing)
157
+ **Hardcoded credentials** — any `password:`, `secret:`, `apiKey:` values in plain text
158
+
159
+ ## Common Frameworks Quick Reference
160
+
161
+ | Framework | Bundle Pattern | Route Location |
162
+ |-----------|---------------|----------------|
163
+ | Next.js | `_next/static/chunks/` | `pathname:"..."` in main-*.js |
164
+ | React CRA | `static/js/main.*.js` | React Router: `path="..."` |
165
+ | Vue CLI | `js/app.*.js` | vue-router: `path: '...'` |
166
+ | Angular | `main.*.js` | `loadChildren`, `routerLink` |
167
+ | Webpack | `*.chunk.js` | Chunk manifest |
@@ -0,0 +1,391 @@
1
+ <!-- aegis-local: forked 2026-05-04 from pikpikcu/airecon@9a21453459d87eefb012ea355c79b593d0d3c0cc (MIT-licensed); attribution preserved, see ATTRIBUTION.md -->
2
+
3
+ ---
4
+ name: js-internal-hostname-intelligence
5
+ description: Deep JavaScript bundle analysis focused on extracting internal hostnames, fleet/cluster naming conventions, obfuscated infrastructure references, and non-API internal service URLs that reveal backend topology
6
+ ---
7
+
8
+ # JavaScript Bundle — Internal Hostname & Infrastructure Intelligence
9
+
10
+ Standard JS analysis extracts API endpoints and secrets. This skill goes deeper: extracting **internal hostnames** that reveal backend infrastructure topology, fleet naming conventions, internal service mesh references, and obfuscated hostnames (hex-encoded, base64-encoded, or split across variables).
11
+
12
+ **Why this matters:** Internal hostnames in JS bundles are almost always unintentional leaks. They reveal:
13
+ - Internal service names that are publicly routable (misconfigured cluster ingress)
14
+ - Fleet/Kubernetes namespace naming conventions (`.fleet.live.`, `.dev.solo.`, `.internal.`)
15
+ - Backend service URLs that can be probed directly
16
+ - Infrastructure geography (region names, availability zones embedded in hostnames)
17
+
18
+ ---
19
+
20
+ ## STEP 1 — Broad Internal URL Extraction (Beyond API Paths)
21
+
22
+ ```bash
23
+ # Standard JS analysis only extracts API paths. This extracts ALL URLs including internal ones.
24
+ # Download JS files first (see javascript_analysis.md STEP 1-2)
25
+
26
+ # Extract ALL https:// URLs, including non-CDN internal ones
27
+ grep -roh 'https\?://[a-zA-Z0-9._:/-]\{6,150\}' output/js_files/ 2>/dev/null \
28
+ | sed 's/["\`'"'"'].*$//' \
29
+ | sort -u \
30
+ | tee output/js_all_urls.txt
31
+
32
+ # NOW: Split into external (known CDN/tracking) vs internal (potentially sensitive)
33
+ grep -vE '(cdn\.|static\.|fonts\.|analytics\.|google\.|facebook\.|twitter\.|cloudflare\.|amazonaws\.com/cdn|jsdelivr\.|unpkg\.|w3\.org|schema\.org|mozilla\.|apple\.|microsoft\.|github\.com$|npmjs\.)' \
34
+ output/js_all_urls.txt \
35
+ | sort -u \
36
+ | tee output/js_internal_candidate_urls.txt
37
+
38
+ echo "=== Internal URL candidates ==="
39
+ cat output/js_internal_candidate_urls.txt
40
+ echo "Total: $(wc -l < output/js_internal_candidate_urls.txt)"
41
+ ```
42
+
43
+ ---
44
+
45
+ ## STEP 2 — Fleet & Cluster Naming Convention Detection
46
+
47
+ Infrastructure domains follow predictable patterns. Detect them:
48
+
49
+ ```bash
50
+ # Kubernetes fleet / internal cluster patterns
51
+ grep -iE '\.(fleet|cluster|internal|k8s|kube|svc|local|mesh|private|corp|intra)\.' \
52
+ output/js_internal_candidate_urls.txt | tee output/js_fleet_hostnames.txt
53
+
54
+ # Environment-tagged hostnames (live/prod/staging/dev/solo/sandbox)
55
+ grep -iE '\.(live|prod|staging|dev|sandbox|qa|uat|test|solo|preview)\.' \
56
+ output/js_internal_candidate_urls.txt >> output/js_fleet_hostnames.txt
57
+
58
+ # Naming patterns: service-name.namespace.cluster.tld
59
+ grep -oE '[a-z][a-z0-9-]{2,40}\.[a-z]{2,20}\.[a-z]{2,20}\.[a-z]{2,10}' \
60
+ output/js_internal_candidate_urls.txt \
61
+ | grep -vE '\.(com|net|org|io|co)\.[a-z]{2}$' \
62
+ >> output/js_fleet_hostnames.txt
63
+
64
+ sort -u output/js_fleet_hostnames.txt | tee output/js_fleet_hostnames_dedup.txt
65
+ echo "Fleet/cluster hostnames found: $(wc -l < output/js_fleet_hostnames_dedup.txt)"
66
+ ```
67
+
68
+ ---
69
+
70
+ ## STEP 3 — Obfuscated Hostname Detection
71
+
72
+ Developers sometimes hex-encode or encode infrastructure hostnames to obscure them:
73
+
74
+ ```python
75
+ # tools/decode_obfuscated_hostnames.py
76
+ """
77
+ Detect and decode obfuscated hostnames in JS bundles.
78
+ Common patterns:
79
+ - Hex-encoded: "6f74656c" → "otel"
80
+ - Base64-encoded: "b3RlbA==" → "otel"
81
+ - Split strings: "ot" + "el" assembled at runtime
82
+ - Reversed: "leto" → "otel"
83
+ - ROT13: "bgrj" → "otel"
84
+ """
85
+ import os, re, binascii, base64, codecs
86
+
87
+ js_dir = "output/js_files"
88
+ results = []
89
+
90
+ for fname in os.listdir(js_dir):
91
+ if not fname.endswith('.js'):
92
+ continue
93
+ with open(f"{js_dir}/{fname}", 'r', errors='ignore') as f:
94
+ content = f.read()
95
+
96
+ # Pattern 1: Hex-encoded strings that decode to valid hostname parts
97
+ hex_candidates = re.findall(r'"([0-9a-f]{6,32})"', content)
98
+ for h in hex_candidates:
99
+ try:
100
+ decoded = binascii.unhexlify(h).decode('ascii')
101
+ # Only keep if decoded result looks like a hostname component
102
+ if re.match(r'^[a-z][a-z0-9-]{2,20}$', decoded):
103
+ results.append(f"HEX: {h} → {decoded}")
104
+ except Exception:
105
+ pass
106
+
107
+ # Pattern 2: Base64 strings that decode to hostnames
108
+ b64_candidates = re.findall(r'"([A-Za-z0-9+/]{8,50}={0,2})"', content)
109
+ for b in b64_candidates:
110
+ try:
111
+ decoded = base64.b64decode(b).decode('ascii')
112
+ if re.match(r'^[a-z][a-z0-9.-]{4,60}$', decoded):
113
+ results.append(f"B64: {b} → {decoded}")
114
+ except Exception:
115
+ pass
116
+
117
+ # Pattern 3: Subdomain that is hex-encoded (e.g., "6f74656c-http.target.com")
118
+ hex_subdomain = re.findall(r'([0-9a-f]{6,16})-[a-z]{2,10}\.[a-z0-9.-]+\.[a-z]{2,6}', content)
119
+ for h in hex_subdomain:
120
+ try:
121
+ decoded = binascii.unhexlify(h).decode('ascii')
122
+ results.append(f"HEX-SUBDOMAIN: {h} → {decoded} (likely: {decoded}-*.<domain>)")
123
+ except Exception:
124
+ pass
125
+
126
+ for r in sorted(set(results)):
127
+ print(r)
128
+
129
+ if not results:
130
+ print("[*] No obfuscated hostnames detected")
131
+ ```
132
+
133
+ ```bash
134
+ python3 tools/decode_obfuscated_hostnames.py | tee output/js_obfuscated_hostnames.txt
135
+ ```
136
+
137
+ ---
138
+
139
+ ## STEP 4 — Probe All Internal Hostname Candidates
140
+
141
+ ```python
142
+ # tools/probe_internal_hosts.py
143
+ """
144
+ Probe every internal hostname candidate extracted from JS bundles.
145
+ Test for HTTP/HTTPS accessibility on standard ports.
146
+ Record: status code, response size, Content-Type, Server header, response body preview.
147
+ """
148
+ import urllib.request, urllib.error, ssl, re, time
149
+
150
+ ctx = ssl.create_default_context()
151
+ ctx.check_hostname = False
152
+ ctx.verify_mode = ssl.CERT_NONE
153
+
154
+ results = []
155
+
156
+ with open("output/js_internal_candidate_urls.txt") as f:
157
+ urls = [line.strip() for line in f if line.strip() and line.startswith("http")]
158
+
159
+ print(f"Probing {len(urls)} internal URL candidates...")
160
+
161
+ for url in urls:
162
+ # Normalize to just the base URL (no path) for initial probe
163
+ base_match = re.match(r'(https?://[a-zA-Z0-9._:-]+)', url)
164
+ if not base_match:
165
+ continue
166
+ base_url = base_match.group(1)
167
+
168
+ for probe_url in [url, base_url]:
169
+ try:
170
+ req = urllib.request.Request(
171
+ probe_url,
172
+ headers={"User-Agent": "Mozilla/5.0", "Accept": "application/json, text/html"}
173
+ )
174
+ with urllib.request.urlopen(req, timeout=8, context=ctx) as r:
175
+ body = r.read(500).decode('utf-8', 'ignore')
176
+ ct = r.headers.get('Content-Type', '')
177
+ server = r.headers.get('Server', '')
178
+ results.append({
179
+ 'status': r.status, 'url': probe_url,
180
+ 'ct': ct[:50], 'server': server[:30],
181
+ 'body': body[:200].replace('\n', ' ')
182
+ })
183
+ print(f"[{r.status}] {probe_url}")
184
+ print(f" Content-Type: {ct[:60]}")
185
+ print(f" Server: {server}")
186
+ print(f" Body: {body[:150]}")
187
+ break # Don't probe base_url if full URL worked
188
+ except urllib.error.HTTPError as e:
189
+ body = e.read(300).decode('utf-8', 'ignore')
190
+ results.append({'status': e.code, 'url': probe_url, 'body': body[:100]})
191
+ # Non-404/non-connection errors are interesting
192
+ if e.code not in (404, 400):
193
+ print(f"[{e.code}] {probe_url}: {body[:120]}")
194
+ break
195
+ except Exception as ex:
196
+ # Connection refused / DNS fail → not publicly accessible
197
+ pass
198
+ time.sleep(0.3)
199
+
200
+ # Write results
201
+ import json
202
+ with open("output/js_internal_hosts_probe.txt", "w") as f:
203
+ for r in results:
204
+ f.write(json.dumps(r) + "\n")
205
+
206
+ # Highlight interesting findings
207
+ print("\n=== INTERESTING FINDINGS (non-404, public access) ===")
208
+ for r in results:
209
+ if r['status'] not in (404, 400, 0) and r['status'] < 500:
210
+ print(f"[{r['status']}] {r['url']}: {r.get('ct','')} | {r.get('body','')[:100]}")
211
+ ```
212
+
213
+ ```bash
214
+ python3 tools/probe_internal_hosts.py
215
+ ```
216
+
217
+ ---
218
+
219
+ ## STEP 5 — Analyze Error Message Patterns for Infrastructure Intelligence
220
+
221
+ Error responses from internal services leak more than external services:
222
+
223
+ ```python
224
+ # tools/error_intelligence.py
225
+ """
226
+ Internal services often return verbose errors that reveal:
227
+ - Framework name and version (e.g., Javalin, Spring Boot, Express)
228
+ - Internal service names referenced in stack traces
229
+ - Database connection strings in error bodies
230
+ - Authentication mechanisms (JWT issuer, OAuth server URLs)
231
+ - Internal API versioning and routing conventions
232
+ """
233
+ import urllib.request, urllib.error, ssl, json
234
+
235
+ ctx = ssl.create_default_context()
236
+ ctx.check_hostname = False
237
+ ctx.verify_mode = ssl.CERT_NONE
238
+
239
+ def extract_error_intelligence(url, params_to_test=None):
240
+ """
241
+ Send malformed requests to trigger verbose errors.
242
+ Tests: missing params, wrong types, extra fields, empty body.
243
+ """
244
+ intelligence = {}
245
+
246
+ test_vectors = [
247
+ # Missing required params → often reveals param names
248
+ {"method": "GET", "path": url, "headers": {"Accept": "application/json"}},
249
+ # Wrong content type → may reveal accepted types
250
+ {"method": "POST", "path": url, "body": "invalid_json{{{",
251
+ "headers": {"Content-Type": "text/plain", "Accept": "application/json"}},
252
+ # Empty JSON body → may reveal required fields
253
+ {"method": "POST", "path": url, "body": "{}",
254
+ "headers": {"Content-Type": "application/json", "Accept": "application/json"}},
255
+ # Null bytes → often triggers framework error
256
+ {"method": "GET", "path": url + "?test=\x00", "headers": {}},
257
+ ]
258
+
259
+ for vec in test_vectors:
260
+ body_data = vec.get("body", "").encode() if vec.get("body") else None
261
+ req = urllib.request.Request(
262
+ vec["path"],
263
+ data=body_data,
264
+ headers=vec.get("headers", {}),
265
+ method=vec["method"]
266
+ )
267
+ try:
268
+ with urllib.request.urlopen(req, timeout=8, context=ctx) as r:
269
+ body = r.read(1000).decode('utf-8', 'ignore')
270
+ print(f"[{r.status}] {vec['method']} {url}: {body[:200]}")
271
+ except urllib.error.HTTPError as e:
272
+ body = e.read(1000).decode('utf-8', 'ignore')
273
+ print(f"[{e.code}] {vec['method']} {url}:")
274
+
275
+ # Parse error for intelligence
276
+ try:
277
+ err_json = json.loads(body)
278
+ # Javalin pattern
279
+ if "javalin.io" in str(err_json.get("type", "")):
280
+ intelligence["framework"] = "Javalin (Kotlin/Java)"
281
+ intelligence["error_message"] = err_json.get("title", "")
282
+ print(f" FRAMEWORK: Javalin detected")
283
+ print(f" ERROR: {err_json.get('title')}")
284
+ # Spring Boot actuator pattern
285
+ if "timestamp" in err_json and "path" in err_json:
286
+ intelligence["framework"] = "Spring Boot"
287
+ # Express/Node pattern
288
+ if err_json.get("name") == "BadRequestError":
289
+ intelligence["framework"] = "Express.js"
290
+ except Exception:
291
+ pass
292
+
293
+ # Progressive param disclosure (e.g., "Missing X parameter")
294
+ import re
295
+ missing_params = re.findall(r'[Mm]issing\s+([a-zA-Z_-]+)\s+param', body)
296
+ required_params = re.findall(r'[Rr]equired.*param.*?["\']([a-zA-Z_-]+)["\']', body)
297
+ all_params = missing_params + required_params
298
+ if all_params:
299
+ intelligence.setdefault("required_params", []).extend(all_params)
300
+ print(f" PARAM DISCLOSURE: {all_params}")
301
+ except Exception as ex:
302
+ pass
303
+
304
+ return intelligence
305
+
306
+ # Load probe results and analyze non-404 endpoints
307
+ with open("output/js_internal_hosts_probe.txt") as f:
308
+ for line in f:
309
+ try:
310
+ r = json.loads(line)
311
+ if r.get("status", 404) not in (404, 0):
312
+ print(f"\n=== Analyzing {r['url']} ===")
313
+ intel = extract_error_intelligence(r['url'])
314
+ if intel:
315
+ print(f"Intelligence: {json.dumps(intel, indent=2)}")
316
+ except Exception:
317
+ pass
318
+ ```
319
+
320
+ ```bash
321
+ python3 tools/error_intelligence.py | tee output/js_error_intelligence.txt
322
+ ```
323
+
324
+ ---
325
+
326
+ ## STEP 6 — Cross-Reference Internal Hostnames with Subdomains
327
+
328
+ ```bash
329
+ # Check if any internally-referenced hostnames are also public subdomains
330
+ # This finds cases where "internal" services are accidentally internet-facing
331
+
332
+ # Extract just hostnames from internal candidates
333
+ grep -oE '[a-zA-Z0-9][a-zA-Z0-9._-]{4,80}' output/js_internal_candidate_urls.txt \
334
+ | grep -v '/' \
335
+ | sort -u > output/js_hostname_candidates.txt
336
+
337
+ # Cross-reference against our subdomain list
338
+ while IFS= read -r hostname; do
339
+ if grep -q "$hostname" output/subdomains.txt 2>/dev/null; then
340
+ echo "[IN SCOPE] $hostname is both in JS bundles AND in subdomains list"
341
+ fi
342
+ done < output/js_hostname_candidates.txt | tee output/js_subdomain_crossref.txt
343
+
344
+ # Also resolve any new internal hostnames that aren't in our subdomain list
345
+ python3 -c "
346
+ import socket, sys
347
+ with open('output/js_hostname_candidates.txt') as f:
348
+ for hostname in f:
349
+ hostname = hostname.strip()
350
+ if not hostname or '.' not in hostname:
351
+ continue
352
+ try:
353
+ ip = socket.gethostbyname(hostname)
354
+ print(f'[RESOLVES] {hostname} -> {ip}')
355
+ except socket.gaierror:
356
+ pass
357
+ " | tee output/js_new_resolving_hosts.txt
358
+ ```
359
+
360
+ ---
361
+
362
+ ## Key Patterns to Identify
363
+
364
+ **Fleet/Cluster naming (indicates internal Kubernetes/container infrastructure):**
365
+ - `.fleet.live.<company>.net` — production Kubernetes fleet
366
+ - `.fleet.staging.<company>.net` — staging fleet
367
+ - `<service>.dev.solo.<company>.com` — individual developer cluster
368
+ - `<service>.<namespace>.svc.cluster.local` — internal K8s DNS (not publicly routable but leaks topology)
369
+ - `<service>-<env>.<company>.internal` — internal DNS zone
370
+
371
+ **Environment indicators in hostnames:**
372
+ - `dev`, `staging`, `qa`, `uat`, `sandbox`, `preview` — non-production environments
373
+ - `solo`, `personal`, `test` — individual developer environments (highest risk of being exposed)
374
+ - `live`, `prod` — production (highest value targets)
375
+
376
+ **Service type indicators:**
377
+ - `otel`, `telemetry`, `tracing`, `metrics` — observability infrastructure
378
+ - `billing`, `payment`, `checkout` — payment infrastructure
379
+ - `auth`, `sso`, `login`, `oauth` — authentication infrastructure
380
+ - `api-internal`, `internal-api`, `backend` — internal API services
381
+
382
+ ---
383
+
384
+ ## Pro Tips
385
+
386
+ 1. **The goldmine is in service-worker.js and webpack chunk manifests** — these load lazily and often contain backend configuration not present in the main bundle.
387
+ 2. **Check `__NEXT_DATA__` in server-rendered pages** — Next.js embeds the initial page props as JSON, which may include internal API responses with full hostnames.
388
+ 3. **Source maps (.js.map files)** — Unstrip the bundle and find commented-out internal URLs and debug configurations.
389
+ 4. **React Native / Expo bundles** — Mobile apps served from CDNs often contain more sensitive infrastructure URLs than web apps.
390
+ 5. **Service worker registration URLs** — `navigator.serviceWorker.register()` paths reveal versioned bundle URLs.
391
+ 6. **Cross-reference with historical URLs** — `output/historical_urls.txt` from Wayback Machine often has older versions of JS bundles that leaked more before the team cleaned them up.