[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71C5TA2CCK692X34CE1EXR9":3,"skill-same:01M71C5TA2CCK692X34CE1EXR9":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":14,"repositoryHtmlUrl":32,"repositoryHomepageUrl":6,"ownerHtmlUrl":33,"ownerBlogUrl":6,"ownerDescription":34,"updatedAt":35,"install":36,"resources":49},"01M71C5TA2CCK692X34CE1EXR9","cloud-containers-pod",null,"Cloud Containers Pod.","DCx7C5\u002Fai-marketplace","DCx7C5","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F42419559?v=4","01M71C01G2AZV3NTNGWAWSHJPP","DC","01M71C01GQW6G50S2BYMS7PP3E",0,"MIT","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-containers-pod\u002FSKILL.md",[],[19,20,21,22,23],"containers","cloud","cloud containers","cloud containers pod","cybersecurity","2026-11-10 10:12:30",false,"---\nname: cloud-containers-pod\ndescription: \"Cloud Containers Pod.\"\ndomain: cybersecurity\n---\n\n-|\n| enforce | Reject pods violating policy | Production enforcement |\n| audit | Log violations to audit log | Pre-enforcement assessment |\n| warn | Show warnings to user | Developer feedback |\n\n## Implementation\n\n### Apply to Namespace via Labels\n\n```yaml\n# Restricted enforcement with audit and warn\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: production\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: restricted\n    pod-security.kubernetes.io\u002Fenforce-version: v1.28\n    pod-security.kubernetes.io\u002Faudit: restricted\n    pod-security.kubernetes.io\u002Faudit-version: v1.28\n    pod-security.kubernetes.io\u002Fwarn: restricted\n    pod-security.kubernetes.io\u002Fwarn-version: v1.28\n```\n\n```yaml\n# Baseline enforcement for staging\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: staging\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: baseline\n    pod-security.kubernetes.io\u002Fenforce-version: v1.28\n    pod-security.kubernetes.io\u002Faudit: restricted\n    pod-security.kubernetes.io\u002Faudit-version: v1.28\n    pod-security.kubernetes.io\u002Fwarn: restricted\n    pod-security.kubernetes.io\u002Fwarn-version: v1.28\n```\n\n```yaml\n# Privileged for system namespaces\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: kube-system\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: privileged\n```\n\n### Apply Labels with kubectl\n\n```bash\n# Set restricted enforcement\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Fenforce=restricted \\\n  pod-security.kubernetes.io\u002Fenforce-version=v1.28 \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n\n# Set baseline enforcement\nkubectl label namespace staging \\\n  pod-security.kubernetes.io\u002Fenforce=baseline \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n\n# Check current labels\nkubectl get namespace production -o jsonpath='{.metadata.labels}' | jq .\n```\n\n## Dry-Run Testing\n\n```bash\n# Test what would happen with restricted policy on a namespace\nkubectl label --dry-run=server --overwrite namespace staging \\\n  pod-security.kubernetes.io\u002Fenforce=restricted\n\n# Output shows existing pods that would violate the policy\n# Warning: existing pods in namespace \"staging\" violate the new PodSecurity enforce level \"restricted:latest\"\n```\n\n## Cluster-Wide Defaults (AdmissionConfiguration)\n\n```yaml\n# \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\napiVersion: apiserver.config.k8s.io\u002Fv1\nkind: AdmissionConfiguration\nplugins:\n  - name: PodSecurity\n    configuration:\n      apiVersion: pod-security.admission.config.k8s.io\u002Fv1\n      kind: PodSecurityConfiguration\n      defaults:\n        enforce: baseline\n        enforce-version: latest\n        audit: restricted\n        audit-version: latest\n        warn: restricted\n        warn-version: latest\n      exemptions:\n        usernames: []\n        runtimeClasses: []\n        namespaces:\n          - kube-system\n          - kube-public\n          - kube-node-lease\n          - calico-system\n          - gatekeeper-system\n          - monitoring\n          - falco\n```\n\n### Apply to API Server\n\n```bash\n# Add to kube-apiserver manifests\n# \u002Fetc\u002Fkubernetes\u002Fmanifests\u002Fkube-apiserver.yaml\nspec:\n  containers:\n  - command:\n    - kube-apiserver\n    - --admission-control-config-file=\u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n    volumeMounts:\n    - name: psa-config\n      mountPath: \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n      readOnly: true\n  volumes:\n  - name: psa-config\n    hostPath:\n      path: \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n      type: File\n```\n\n## Compliant Pod Examples\n\n### Restricted-Compliant Pod\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: restricted-pod\n  namespace: production\nspec:\n  securityContext:\n    runAsNonRoot: true\n    runAsUser: 1000\n    runAsGroup: 3000\n    fsGroup: 2000\n    seccompProfile:\n      type: RuntimeDefault\n  automountServiceAccountToken: false\n  containers:\n    - name: app\n      image: myregistry\u002Fmyapp:v1.0.0\n      securityContext:\n        allowPrivilegeEscalation: false\n        readOnlyRootFilesystem: true\n        capabilities:\n          drop:\n            - ALL\n      resources:\n        limits:\n          cpu: 500m\n          memory: 256Mi\n        requests:\n          cpu: 100m\n          memory: 128Mi\n      volumeMounts:\n        - name: tmp\n          mountPath: \u002Ftmp\n  volumes:\n    - name: tmp\n      emptyDir: {}\n```\n\n### Baseline-Compliant Pod\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: baseline-pod\n  namespace: staging\nspec:\n  containers:\n    - name: app\n      image: myregistry\u002Fmyapp:v1.0.0\n      securityContext:\n        allowPrivilegeEscalation: false\n      resources:\n        limits:\n          cpu: 500m\n          memory: 256Mi\n```\n\n## Migration from PodSecurityPolicy\n\n### Step 1: Audit Current State\n```bash\n# Check existing PSPs\nkubectl get psp\n\n# Check which service accounts use which PSP\nkubectl get clusterrolebinding -o json | \\\n  jq '.items[] | select(.roleRef.name | startswith(\"psp-\")) | {name: .metadata.name, subjects: .subjects}'\n```\n\n### Step 2: Map PSP to PSA Profiles\n```bash\n# For each namespace, determine required PSA level\nfor ns in $(kubectl get ns -o jsonpath='{.items[*].metadata.name}'); do\n  echo \"Namespace: $ns\"\n  kubectl label --dry-run=server namespace $ns \\\n    pod-security.kubernetes.io\u002Fenforce=restricted 2>&1 | head -5\ndone\n```\n\n### Step 3: Apply PSA Labels (Audit First)\n```bash\n# Start with audit mode\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n```\n\n### Step 4: Review and Fix Violations\n```bash\n# Check audit logs for violations\nkubectl get events --field-selector reason=FailedCreate -A\n```\n\n### Step 5: Enable Enforcement\n```bash\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Fenforce=restricted\n```\n\n## Monitoring\n\n```bash\n# Check PSA violations in events\nkubectl get events --all-namespaces --field-selector reason=FailedCreate\n\n# Check audit logs\nkubectl logs -n kube-system kube-apiserver-* | grep \"pod-security.kubernetes.io\"\n\n# List namespace PSA labels\nkubectl get namespaces -L pod-security.kubernetes.io\u002Fenforce\n```\n\n## Best Practices\n\n1. **Start with audit+warn** before enforce to assess impact\n2. **Use dry-run** to test enforcement before applying\n3. **Exempt system namespaces** (kube-system, monitoring) in cluster defaults\n4. **Pin version** (enforce-version) for predictable behavior across upgrades\n5. **Set cluster-wide baseline** as default, then restrict specific namespaces\n6. **Combine with Gatekeeper** for additional custom policies beyond PSA\n7. **Use restricted profile** for all production workloads\n8. **Document exemptions** with clear justification\n","-|\n| enforce | Reject pods violating policy | Production enforcement |\n| audit | Log violations to audit log | Pre-enforcement assessment |\n| warn | Show warnings to user | Developer feedback |\n\n## Implementation\n\n### Apply to Namespace via Labels\n\n```yaml\n# Restricted enforcement with audit and warn\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: production\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: restricted\n    pod-security.kubernetes.io\u002Fenforce-version: v1.28\n    pod-security.kubernetes.io\u002Faudit: restricted\n    pod-security.kubernetes.io\u002Faudit-version: v1.28\n    pod-security.kubernetes.io\u002Fwarn: restricted\n    pod-security.kubernetes.io\u002Fwarn-version: v1.28\n```\n\n```yaml\n# Baseline enforcement for staging\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: staging\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: baseline\n    pod-security.kubernetes.io\u002Fenforce-version: v1.28\n    pod-security.kubernetes.io\u002Faudit: restricted\n    pod-security.kubernetes.io\u002Faudit-version: v1.28\n    pod-security.kubernetes.io\u002Fwarn: restricted\n    pod-security.kubernetes.io\u002Fwarn-version: v1.28\n```\n\n```yaml\n# Privileged for system namespaces\napiVersion: v1\nkind: Namespace\nmetadata:\n  name: kube-system\n  labels:\n    pod-security.kubernetes.io\u002Fenforce: privileged\n```\n\n### Apply Labels with kubectl\n\n```bash\n# Set restricted enforcement\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Fenforce=restricted \\\n  pod-security.kubernetes.io\u002Fenforce-version=v1.28 \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n\n# Set baseline enforcement\nkubectl label namespace staging \\\n  pod-security.kubernetes.io\u002Fenforce=baseline \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n\n# Check current labels\nkubectl get namespace production -o jsonpath='{.metadata.labels}' | jq .\n```\n\n## Dry-Run Testing\n\n```bash\n# Test what would happen with restricted policy on a namespace\nkubectl label --dry-run=server --overwrite namespace staging \\\n  pod-security.kubernetes.io\u002Fenforce=restricted\n\n# Output shows existing pods that would violate the policy\n# Warning: existing pods in namespace \"staging\" violate the new PodSecurity enforce level \"restricted:latest\"\n```\n\n## Cluster-Wide Defaults (AdmissionConfiguration)\n\n```yaml\n# \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\napiVersion: apiserver.config.k8s.io\u002Fv1\nkind: AdmissionConfiguration\nplugins:\n  - name: PodSecurity\n    configuration:\n      apiVersion: pod-security.admission.config.k8s.io\u002Fv1\n      kind: PodSecurityConfiguration\n      defaults:\n        enforce: baseline\n        enforce-version: latest\n        audit: restricted\n        audit-version: latest\n        warn: restricted\n        warn-version: latest\n      exemptions:\n        usernames: []\n        runtimeClasses: []\n        namespaces:\n          - kube-system\n          - kube-public\n          - kube-node-lease\n          - calico-system\n          - gatekeeper-system\n          - monitoring\n          - falco\n```\n\n### Apply to API Server\n\n```bash\n# Add to kube-apiserver manifests\n# \u002Fetc\u002Fkubernetes\u002Fmanifests\u002Fkube-apiserver.yaml\nspec:\n  containers:\n  - command:\n    - kube-apiserver\n    - --admission-control-config-file=\u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n    volumeMounts:\n    - name: psa-config\n      mountPath: \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n      readOnly: true\n  volumes:\n  - name: psa-config\n    hostPath:\n      path: \u002Fetc\u002Fkubernetes\u002Fpsa-config.yaml\n      type: File\n```\n\n## Compliant Pod Examples\n\n### Restricted-Compliant Pod\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: restricted-pod\n  namespace: production\nspec:\n  securityContext:\n    runAsNonRoot: true\n    runAsUser: 1000\n    runAsGroup: 3000\n    fsGroup: 2000\n    seccompProfile:\n      type: RuntimeDefault\n  automountServiceAccountToken: false\n  containers:\n    - name: app\n      image: myregistry\u002Fmyapp:v1.0.0\n      securityContext:\n        allowPrivilegeEscalation: false\n        readOnlyRootFilesystem: true\n        capabilities:\n          drop:\n            - ALL\n      resources:\n        limits:\n          cpu: 500m\n          memory: 256Mi\n        requests:\n          cpu: 100m\n          memory: 128Mi\n      volumeMounts:\n        - name: tmp\n          mountPath: \u002Ftmp\n  volumes:\n    - name: tmp\n      emptyDir: {}\n```\n\n### Baseline-Compliant Pod\n\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n  name: baseline-pod\n  namespace: staging\nspec:\n  containers:\n    - name: app\n      image: myregistry\u002Fmyapp:v1.0.0\n      securityContext:\n        allowPrivilegeEscalation: false\n      resources:\n        limits:\n          cpu: 500m\n          memory: 256Mi\n```\n\n## Migration from PodSecurityPolicy\n\n### Step 1: Audit Current State\n```bash\n# Check existing PSPs\nkubectl get psp\n\n# Check which service accounts use which PSP\nkubectl get clusterrolebinding -o json | \\\n  jq '.items[] | select(.roleRef.name | startswith(\"psp-\")) | {name: .metadata.name, subjects: .subjects}'\n```\n\n### Step 2: Map PSP to PSA Profiles\n```bash\n# For each namespace, determine required PSA level\nfor ns in $(kubectl get ns -o jsonpath='{.items[*].metadata.name}'); do\n  echo \"Namespace: $ns\"\n  kubectl label --dry-run=server namespace $ns \\\n    pod-security.kubernetes.io\u002Fenforce=restricted 2>&1 | head -5\ndone\n```\n\n### Step 3: Apply PSA Labels (Audit First)\n```bash\n# Start with audit mode\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Faudit=restricted \\\n  pod-security.kubernetes.io\u002Fwarn=restricted\n```\n\n### Step 4: Review and Fix Violations\n```bash\n# Check audit logs for violations\nkubectl get events --field-selector reason=FailedCreate -A\n```\n\n### Step 5: Enable Enforcement\n```bash\nkubectl label namespace production \\\n  pod-security.kubernetes.io\u002Fenforce=restricted\n```\n\n## Monitoring\n\n```bash\n# Check PSA violations in events\nkubectl get events --all-namespaces --field-selector reason=FailedCreate\n\n# Check audit logs\nkubectl logs -n kube-system kube-apiserver-* | grep \"pod-security.kubernetes.io\"\n\n# List namespace PSA labels\nkubectl get namespaces -L pod-security.kubernetes.io\u002Fenforce\n```\n\n## Best Practices\n\n1. **Start with audit+warn** before enforce to assess impact\n2. **Use dry-run** to test enforcement before applying\n3. **Exempt system namespaces** (kube-system, monitoring) in cluster defaults\n4. **Pin version** (enforce-version) for predictable behavior across upgrades\n5. **Set cluster-wide baseline** as default, then restrict specific namespaces\n6. **Combine with Gatekeeper** for additional custom policies beyond PSA\n7. **Use restricted profile** for all production workloads\n8. **Document exemptions** with clear justification\n",{"name":5,"domain":23,"description":7},"main","a91f1293287ffa9f4f1b8f486cd6e835a1568c84","skills\u002Fcloud-containers-pod","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace","https:\u002F\u002Fgithub.com\u002FDCx7C5","#Python","2026-09-01 11:21:00",{"source":8,"skillName":5,"commands":37,"prompt":47,"zipAvailable":48},[38,41,44],{"tool":39,"command":40},"npx","npx skills add DCx7C5\u002Fai-marketplace --skill cloud-containers-pod",{"tool":42,"command":43},"bunx","bunx skills add DCx7C5\u002Fai-marketplace --skill cloud-containers-pod",{"tool":45,"command":46},"pnpm","pnpm dlx skills add DCx7C5\u002Fai-marketplace --skill cloud-containers-pod","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-containers-pod\u002FSKILL.md",true,[50],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"index.json","REFERENCE","参考文档",480,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fcloud-containers-pod\u002Findex.json",[57,82,105,127,149,165],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":24},"01M71HAPZ01KQ30RKTB0FFSQ05","services-wmi-persistence-detect","Detect WMI event subscription persistence by enumerating ActiveScriptEventConsumer, CommandLineEventConsumer, and permanent subscriptions in the WMI repository.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fpersistence\u002Fdetect\u002FSKILL.md",[],[64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,23,81],"services","detect","services wmi persistence detect","wmi","persistence","de","cm","process","activescript","event","subscriptions","commandline-consumer","repository","subscription","event-subscription","t1546.003","forensics","process-forensics",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":24},"01M71HAK6JTTTS229T17WJMMCG","services-wmi-exec-exploit","Perform lateral movement across Windows networks using WMI-based remote execution techniques including Impacket wmiexec.py, CrackMapExec, and native WMI commands for stealthy post-exploitation during red team engagements.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fservices\u002Fwmi\u002Fexec\u002Fexploit\u002FSKILL.md",[],[89,64,90,67,91,92,93,23,94,95,96,97,98,99,69,100,101,102,103,104],"exploit","services wmi exec exploit","exec","remote","traffic","Bash","analysis","team","across","crackmapexec","native","command","lateral movement","read","lateral-movement","Impacket",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":24},"01M71HAG6MHKNQV8KDZKMT4886","registry-artifact-extract","Extract and analyze Windows Registry hives to uncover user activity, installed software, autostart entries, and evidence of system compromise.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fregistry\u002Fartifact\u002Fextract\u002FSKILL.md",[],[112,113,114,115,116,117,23,94,118,95,119,120,69,102,121,122,123,124,125,126],"artifact","registry","registry artifact extract","extract","evidence-collection","artifact-analysis","collection","analyze","uncover","software","activity","digital-forensics","windows-registry","regripper","sonnet",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":24},"01M71HACR4A8XTWTTSXK4124AA","processes-token-impersonate-detect","Detect Windows token impersonation and privilege abuse including SeImpersonatePrivilege exploitation via Potato attacks and token stealing techniques.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Ftoken\u002Fimpersonate\u002Fdetect\u002FSKILL.md",[],[65,134,135,136,137,138,139,70,140,23,81,141,142,143,144,145,146,147,148,69],"processes token impersonate detect","token","processes","attacks","windows","escalation","techniques","privilege-escalation","seimpersonate","token-impersonation","printspoofer","exploitation","potato","impersonation","via",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":24},"01M71HAABSB4Z6QFSXEG00R4RK","processes-thread-injection-detect","Detect Windows thread injection techniques including CreateRemoteThread, QueueUserAPC, NtCreateThreadEx, and thread hijacking via process memory analysis.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fthread\u002Finjection\u002Fdetect\u002FSKILL.md",[],[156,157,65,158,136,138,159,70,160,140,23,81,95,161,162,163,164,148,69,71],"thread","processes thread injection detect","injection","memory","process-injection","api","apc-injection","thread-injection","nt-api",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":24},"01M71HA7H311V5G14WMX58HQSS","processes-hollow-technique-detect","Detect process hollowing (RunPE) by identifying processes with mismatched image paths between PEB and VAD tree, or unmapped PE headers in memory.","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fwindows\u002Fprocesses\u002Fhollow\u002Ftechnique\u002Fdetect\u002FSKILL.md",[],[172,65,136,173,159,70,174,175,23,81,176,177,178,179,180,181,69,71,182,183],"processes hollow technique detect","tree","memory-forensics","process-hollow","peb","runpe","image","pe-header","in memory","with","mismatched","headers"]