[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71F5XY3FDTXCW8731X8KFNF":3,"skill-same:01M71F5XY3FDTXCW8731X8KFNF":101},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":74,"commitSha":75,"skillDirectory":76,"forksCount":14,"repositoryHtmlUrl":77,"repositoryHomepageUrl":6,"ownerHtmlUrl":78,"ownerBlogUrl":6,"ownerDescription":79,"updatedAt":80,"install":81,"resources":94},"01M71F5XY3FDTXCW8731X8KFNF","persistence-malware-analyze",null,"Use Sysinternals Autoruns to systematically identify and analyze malware persistence mechanisms across registry keys, scheduled tasks, services, drivers, and startup locations on Windows systems.","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\u002Fmalware\u002Fpersistence\u002Fmalware\u002Fanalyze\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"malware","persistence malware analyze","persistence","analyze","windows","isolation","sonnet","registry","read","de","across","conversion","tasks","analysis","Bash","scheduled","cybersecurity","content analysis","incident","cm","2026-11-10 10:12:30",false,"---\nname: persistence-malware-analyze\ndescription: Use Sysinternals Autoruns to systematically identify and analyze malware persistence mechanisms across registry keys, scheduled tasks, services, drivers, and startup locations on Windows systems.\ndomain: cybersecurity\nsubdomain: malware-analysis\ntags:\n- autoruns\n- persistence\n- malware-analysis\n- sysinternals\n- windows\n- registry\n- startup\n- incident-response\nd3fend_techniques:\n- Executable Denylisting\n- Execution Isolation\n- File Metadata Consistency Validation\n- Content Format Conversion\n- File Content Analysis\nnist_csf:\n- DE.AE-02\n- RS.AN-03\n- ID.RA-01\n- DE.CM-01\nmodel: sonnet\nmaxTurns: 20\ntools: [Read, Bash, Glob, Grep]\nmitre_attack:\n- T1547\n- T1053\n- T1543\n- T1546\n- T1046\n- T1047\ncapec: []\n---\n\n# Analyzing Malware Persistence with Autoruns\n\n## Overview\n\nSysinternals Autoruns extracts data from hundreds of Auto-Start Extensibility Points (ASEPs) on Windows, scanning 18+ categories including Run\u002FRunOnce keys, services, scheduled tasks, drivers, Winlogon entries, LSA providers, print monitors, WMI subscriptions, and AppInit DLLs. Digital signature verification filters Microsoft-signed entries. The compare function identifies newly added persistence via baseline diffing. VirusTotal integration checks hash reputation. Offline analysis via -z flag enables forensic disk image examination.\n\n\n## When to Use\n\n- When investigating security incidents that require analyzing malware persistence with autoruns\n- When building detection rules or threat hunting queries for this domain\n- When SOC analysts need structured procedures for this analysis type\n- When validating security monitoring coverage for related attack techniques\n\n## Prerequisites\n\n- Sysinternals Autoruns (GUI) and Autorunsc (CLI)\n- Administrative privileges on target system\n- Python 3.9+ for automated analysis\n- VirusTotal API key for reputation checks\n- Clean baseline export for comparison\n\n## Workflow\n\n### Step 1: Automated Persistence Scanning\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\n\"\"\"Automate Autoruns-based persistence analysis.\"\"\"\nimport subprocess\nimport csv\nimport json\nimport sys\n\n\ndef scan_and_analyze(autorunsc_path=\"autorunsc64.exe\", csv_path=\"scan.csv\"):\n    cmd = [autorunsc_path, \"-a\", \"*\", \"-c\", \"-h\", \"-s\", \"-nobanner\", \"*\"]\n    result = subprocess.run(cmd, capture_output=True, text=True, timeout=600)\n    with open(csv_path, 'w') as f:\n        f.write(result.stdout)\n    return parse_and_flag(csv_path)\n\n\ndef parse_and_flag(csv_path):\n    suspicious = []\n    with open(csv_path, 'r', errors='replace') as f:\n        for row in csv.DictReader(f):\n            reasons = []\n            signer = row.get(\"Signer\", \"\")\n            if not signer or signer == \"(Not verified)\":\n                reasons.append(\"Unsigned binary\")\n            if not row.get(\"Description\") and not row.get(\"Company\"):\n                reasons.append(\"Missing metadata\")\n            path = row.get(\"Image Path\", \"\").lower()\n            for sp in [\"\\temp\\\\\", \"\\appdata\\local\\temp\", \"\\users\\public\\\\\"]:\n                if sp in path:\n                    reasons.append(f\"Suspicious path\")\n            launch = row.get(\"Launch String\", \"\").lower()\n            for kw in [\"powershell\", \"cmd \u002Fc\", \"wscript\", \"mshta\", \"regsvr32\"]:\n                if kw in launch:\n                    reasons.append(f\"LOLBin: {kw}\")\n            if reasons:\n                row[\"reasons\"] = reasons\n                suspicious.append(row)\n    return suspicious\n\n\nif __name__ == \"__main__\":\n    if len(sys.argv) > 1:\n        results = parse_and_flag(sys.argv[1])\n        print(f\"[!] {len(results)} suspicious entries\")\n        for r in results:\n            print(f\"  {r.get('Entry','')} - {r.get('Image Path','')}\")\n            for reason in r.get('reasons', []):\n                print(f\"    - {reason}\")\n```\n\n## Validation Criteria\n\n- All ASEP categories scanned and cataloged\n- Unsigned entries flagged for investigation\n- Suspicious paths and LOLBin launch strings highlighted\n- Baseline comparison identifies new persistence mechanisms\n\n## References\n\n- [Sysinternals Autoruns](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fsysinternals\u002Fdownloads\u002Fautoruns)\n- [SANS - Offline Autoruns Revisited](https:\u002F\u002Fwww.sans.org\u002Fblog\u002Foffline-autoruns-revisited-auditing-malware-persistence\u002F)\n- [Hunting Malware with Autoruns](https:\u002F\u002Fnasbench.medium.com\u002Fhunting-malware-with-windows-sysinternals-autoruns-19cbfe4103c2)\n- [MITRE ATT&CK T1547 - Boot or Logon Autostart](https:\u002F\u002Fattack.mitre.org\u002Ftechniques\u002FT1547\u002F)\n","# Analyzing Malware Persistence with Autoruns\n\n## Overview\n\nSysinternals Autoruns extracts data from hundreds of Auto-Start Extensibility Points (ASEPs) on Windows, scanning 18+ categories including Run\u002FRunOnce keys, services, scheduled tasks, drivers, Winlogon entries, LSA providers, print monitors, WMI subscriptions, and AppInit DLLs. Digital signature verification filters Microsoft-signed entries. The compare function identifies newly added persistence via baseline diffing. VirusTotal integration checks hash reputation. Offline analysis via -z flag enables forensic disk image examination.\n\n\n## When to Use\n\n- When investigating security incidents that require analyzing malware persistence with autoruns\n- When building detection rules or threat hunting queries for this domain\n- When SOC analysts need structured procedures for this analysis type\n- When validating security monitoring coverage for related attack techniques\n\n## Prerequisites\n\n- Sysinternals Autoruns (GUI) and Autorunsc (CLI)\n- Administrative privileges on target system\n- Python 3.9+ for automated analysis\n- VirusTotal API key for reputation checks\n- Clean baseline export for comparison\n\n## Workflow\n\n### Step 1: Automated Persistence Scanning\n\n```python\n#!\u002Fusr\u002Fbin\u002Fenv python3\n\"\"\"Automate Autoruns-based persistence analysis.\"\"\"\nimport subprocess\nimport csv\nimport json\nimport sys\n\n\ndef scan_and_analyze(autorunsc_path=\"autorunsc64.exe\", csv_path=\"scan.csv\"):\n    cmd = [autorunsc_path, \"-a\", \"*\", \"-c\", \"-h\", \"-s\", \"-nobanner\", \"*\"]\n    result = subprocess.run(cmd, capture_output=True, text=True, timeout=600)\n    with open(csv_path, 'w') as f:\n        f.write(result.stdout)\n    return parse_and_flag(csv_path)\n\n\ndef parse_and_flag(csv_path):\n    suspicious = []\n    with open(csv_path, 'r', errors='replace') as f:\n        for row in csv.DictReader(f):\n            reasons = []\n            signer = row.get(\"Signer\", \"\")\n            if not signer or signer == \"(Not verified)\":\n                reasons.append(\"Unsigned binary\")\n            if not row.get(\"Description\") and not row.get(\"Company\"):\n                reasons.append(\"Missing metadata\")\n            path = row.get(\"Image Path\", \"\").lower()\n            for sp in [\"\\temp\\\\\", \"\\appdata\\local\\temp\", \"\\users\\public\\\\\"]:\n                if sp in path:\n                    reasons.append(f\"Suspicious path\")\n            launch = row.get(\"Launch String\", \"\").lower()\n            for kw in [\"powershell\", \"cmd \u002Fc\", \"wscript\", \"mshta\", \"regsvr32\"]:\n                if kw in launch:\n                    reasons.append(f\"LOLBin: {kw}\")\n            if reasons:\n                row[\"reasons\"] = reasons\n                suspicious.append(row)\n    return suspicious\n\n\nif __name__ == \"__main__\":\n    if len(sys.argv) > 1:\n        results = parse_and_flag(sys.argv[1])\n        print(f\"[!] {len(results)} suspicious entries\")\n        for r in results:\n            print(f\"  {r.get('Entry','')} - {r.get('Image Path','')}\")\n            for reason in r.get('reasons', []):\n                print(f\"    - {reason}\")\n```\n\n## Validation Criteria\n\n- All ASEP categories scanned and cataloged\n- Unsigned entries flagged for investigation\n- Suspicious paths and LOLBin launch strings highlighted\n- Baseline comparison identifies new persistence mechanisms\n\n## References\n\n- [Sysinternals Autoruns](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fsysinternals\u002Fdownloads\u002Fautoruns)\n- [SANS - Offline Autoruns Revisited](https:\u002F\u002Fwww.sans.org\u002Fblog\u002Foffline-autoruns-revisited-auditing-malware-persistence\u002F)\n- [Hunting Malware with Autoruns](https:\u002F\u002Fnasbench.medium.com\u002Fhunting-malware-with-windows-sysinternals-autoruns-19cbfe4103c2)\n- [MITRE ATT&CK T1547 - Boot or Logon Autostart](https:\u002F\u002Fattack.mitre.org\u002Ftechniques\u002FT1547\u002F)\n",{"name":5,"tags":44,"capec":50,"model":25,"tools":51,"domain":35,"maxTurns":55,"nist_csf":56,"subdomain":46,"description":7,"mitre_attack":61,"d3fend_techniques":68},[45,21,46,47,23,26,48,49],"autoruns","malware-analysis","sysinternals","startup","incident-response",[],[52,33,53,54],"Read","Glob","Grep",20,[57,58,59,60],"DE.AE-02","RS.AN-03","ID.RA-01","DE.CM-01",[62,63,64,65,66,67],"T1547","T1053","T1543","T1546","T1046","T1047",[69,70,71,72,73],"Executable Denylisting","Execution Isolation","File Metadata Consistency Validation","Content Format Conversion","File Content Analysis","main","a91f1293287ffa9f4f1b8f486cd6e835a1568c84","skills\u002Fmalware\u002Fpersistence\u002Fmalware\u002Fanalyze","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace","https:\u002F\u002Fgithub.com\u002FDCx7C5","#Python","2026-09-01 11:21:00",{"source":8,"skillName":5,"commands":82,"prompt":92,"zipAvailable":93},[83,86,89],{"tool":84,"command":85},"npx","npx skills add DCx7C5\u002Fai-marketplace --skill persistence-malware-analyze",{"tool":87,"command":88},"bunx","bunx skills add DCx7C5\u002Fai-marketplace --skill persistence-malware-analyze",{"tool":90,"command":91},"pnpm","pnpm dlx skills add DCx7C5\u002Fai-marketplace --skill persistence-malware-analyze","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fmalware\u002Fpersistence\u002Fmalware\u002Fanalyze\u002FSKILL.md",true,[95],{"path":96,"resourceType":97,"resourceTypeDesc":98,"sizeBytes":99,"sourceHtmlUrl":100},"index.json","REFERENCE","参考文档",691,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fmalware\u002Fpersistence\u002Fmalware\u002Fanalyze\u002Findex.json",[102,124,143,162,183,199],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":39},"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",[],[109,110,111,112,21,28,38,113,114,115,116,117,118,119,120,121,122,35,123],"services","detect","services wmi persistence detect","wmi","process","activescript","event","subscriptions","commandline-consumer","repository","subscription","event-subscription","t1546.003","forensics","process-forensics",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":39},"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",[],[131,109,132,112,133,134,135,35,33,32,136,29,137,138,28,139,140,27,141,142],"exploit","services wmi exec exploit","exec","remote","traffic","team","crackmapexec","native","command","lateral movement","lateral-movement","Impacket",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":39},"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",[],[150,26,151,152,153,154,35,33,155,32,22,156,28,27,157,158,159,160,161,25],"artifact","registry artifact extract","extract","evidence-collection","artifact-analysis","collection","uncover","software","activity","digital-forensics","windows-registry","regripper",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":39},"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",[],[110,169,170,171,172,23,173,38,174,35,123,175,176,177,178,179,180,181,182,28],"processes token impersonate detect","token","processes","attacks","escalation","techniques","privilege-escalation","seimpersonate","token-impersonation","printspoofer","exploitation","potato","impersonation","via",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":39},"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",[],[190,191,110,192,171,23,193,38,194,174,35,123,32,195,196,197,198,182,28,113],"thread","processes thread injection detect","injection","memory","process-injection","api","apc-injection","thread-injection","nt-api",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":39},"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",[],[206,110,171,207,193,38,208,209,35,123,210,211,212,213,214,215,28,113,216,217],"processes hollow technique detect","tree","memory-forensics","process-hollow","peb","runpe","image","pe-header","in memory","with","mismatched","headers"]