[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71FBRHE7DBMP2SR9NTMBX7Y":3,"skill-same:01M71FBRHE7DBMP2SR9NTMBX7Y":57},{"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":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":14,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":6,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M71FBRHE7DBMP2SR9NTMBX7Y","net-capture-net",null,"- Public PCAPs for Practice: https:\u002F\u002Fwww.netresec.com\u002F?","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\u002Fnet-capture-net\u002FSKILL.md",[],[19,20,21,22,23,24],"capture","net capture net","cybersecurity","https","public","for","2026-11-10 10:12:30",false,"---\nname: net-capture-net\ndescription: \"- Public PCAPs for Practice: https:\u002F\u002Fwww.netresec.com\u002F?\"\ndomain: cybersecurity\n---\n\n# Performing Network Packet Capture Analysis\n\n## Overview\n\nNetwork packet captures (PCAP\u002FPCAPNG files) represent the ultimate source of truth about network activity and provide irrefutable evidence of communications between hosts. PCAP files log every packet transmitted over a network segment, making them vital for forensic investigations involving data exfiltration, command-and-control communications, lateral movement, malware delivery, and unauthorized access. Wireshark is the primary tool for interactive analysis, while tshark provides command-line capabilities for automated processing and scripting. Modern PCAPNG format supports additional metadata including interface descriptions, capture comments, precise timestamps, and per-packet annotations.\n\n## When to Use\n\n- When conducting security assessments that involve performing network packet capture analysis\n- When following incident response procedures for related security events\n- When performing scheduled security testing or auditing activities\n- When validating security controls through hands-on testing\n\n## Prerequisites\n\n- Wireshark 4.x with protocol dissectors\n- tshark command-line tool (included with Wireshark)\n- tcpdump for capture and basic filtering\n- Python 3.8+ with scapy and pyshark libraries\n- Sufficient disk space for PCAP files (can be multi-GB)\n\n## Capture Techniques\n\n### tcpdump\n\n```bash\n# Capture all traffic on interface eth0\ntcpdump -i eth0 -w capture.pcap\n\n# Capture with rotation (100MB files, keep 10)\ntcpdump -i eth0 -w capture_%Y%m%d_%H%M%S.pcap -C 100 -W 10\n\n# Capture specific host traffic\ntcpdump -i eth0 host 192.168.1.100 -w host_traffic.pcap\n\n# Capture specific port traffic\ntcpdump -i eth0 port 443 -w https_traffic.pcap\n\n# Capture with BPF filter for suspicious ports\ntcpdump -i eth0 'port 4444 or port 8080 or port 1337' -w suspicious.pcap\n```\n\n### Wireshark Display Filters\n\n```\n# HTTP traffic\nhttp\n\n# DNS queries\ndns\n\n# SMB file transfers\nsmb2\n\n# Specific IP communication\nip.addr == 192.168.1.100\n\n# Failed TCP connections\ntcp.flags.syn == 1 && tcp.flags.ack == 0\n\n# Large data transfers (potential exfiltration)\ntcp.len > 1000\n\n# Specific protocol by port\ntcp.port == 4444\n\n# TLS handshakes (SNI extraction)\ntls.handshake.type == 1\n\n# HTTP POST requests\nhttp.request.method == \"POST\"\n\n# DNS queries to suspicious TLDs\ndns.qry.name contains \".xyz\" or dns.qry.name contains \".top\"\n\n# Beaconing detection (regular intervals)\nframe.time_delta_displayed > 55 && frame.time_delta_displayed \u003C 65\n```\n\n### tshark Analysis Commands\n\n```bash\n# Extract HTTP URLs from capture\ntshark -r capture.pcap -Y \"http.request\" -T fields -e http.host -e http.request.uri\n\n# Extract DNS queries\ntshark -r capture.pcap -Y \"dns.flags.response == 0\" -T fields -e dns.qry.name | sort -u\n\n# Extract file transfers (HTTP objects)\ntshark -r capture.pcap --export-objects http,exported_files\u002F\n\n# Extract SMB file transfers\ntshark -r capture.pcap --export-objects smb,smb_files\u002F\n\n# Protocol hierarchy statistics\ntshark -r capture.pcap -z io,phs\n\n# Conversation statistics\ntshark -r capture.pcap -z conv,tcp\n\n# Extract TLS SNI (Server Name Indication)\ntshark -r capture.pcap -Y \"tls.handshake.type == 1\" -T fields -e tls.handshake.extensions_server_name\n\n# Top talkers by bytes\ntshark -r capture.pcap -z endpoints,ip -q\n\n# Extract credentials (FTP, HTTP Basic)\ntshark -r capture.pcap -Y \"ftp.request.command == USER || ftp.request.command == PASS || http.authorization\" -T fields -e ftp.request.arg -e http.authorization\n```\n\n## Python PCAP Analysis\n\n```python\nfrom scapy.all import rdpcap, IP, TCP, UDP, DNS, DNSQR, Raw\nimport os\nimport sys\nimport json\nfrom collections import defaultdict, Counter\nfrom datetime import datetime\n\nclass PCAPForensicAnalyzer:\n    \"\"\"Forensic analysis of PCAP files using Scapy.\"\"\"\n\n    def __init__(self, pcap_path: str, output_dir: str):\n        self.pcap_path = pcap_path\n        self.output_dir = output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        self.packets = rdpcap(pcap_path)\n\n    def get_conversations(self) -> list:\n        \"\"\"Extract unique IP conversations with byte counts.\"\"\"\n        convos = defaultdict(lambda: {\"packets\": 0, \"bytes\": 0})\n        for pkt in self.packets:\n            if IP in pkt:\n                key = tuple(sorted([pkt[IP].src, pkt[IP].dst]))\n                convos[key][\"packets\"] += 1\n                convos[key][\"bytes\"] += len(pkt)\n\n        return [\n            {\"src\": k[0], \"dst\": k[1], \"packets\": v[\"packets\"], \"bytes\": v[\"bytes\"]}\n            for k, v in sorted(convos.items(), key=lambda x: x[1][\"bytes\"], reverse=True)\n        ]\n\n    def extract_dns_queries(self) -> list:\n        \"\"\"Extract all DNS queries from the capture.\"\"\"\n        queries = []\n        for pkt in self.packets:\n            if DNS in pkt and pkt[DNS].qr == 0 and DNSQR in pkt:\n                queries.append({\n                    \"query\": pkt[DNSQR].qname.decode(errors=\"replace\").rstrip(\".\"),\n                    \"type\": pkt[DNSQR].qtype,\n                    \"src\": pkt[IP].src if IP in pkt else \"unknown\"\n                })\n        return queries\n\n    def detect_beaconing(self, threshold_seconds: float = 5.0) -> list:\n        \"\"\"Detect potential beaconing activity based on regular intervals.\"\"\"\n        ip_timestamps = defaultdict(list)\n        for pkt in self.packets:\n            if IP in pkt and TCP in pkt:\n                key = (pkt[IP].src, pkt[IP].dst, pkt[TCP].dport)\n                ip_timestamps[key].append(float(pkt.time))\n\n        beacons = []\n        for key, times in ip_timestamps.items():\n            if len(times) \u003C 5:\n                continue\n            deltas = [times[i+1] - times[i] for i in range(len(times)-1)]\n            if deltas:\n                avg_delta = sum(deltas) \u002F len(deltas)\n                variance = sum((d - avg_delta) ** 2 for d in deltas) \u002F len(deltas)\n                if variance \u003C threshold_seconds and avg_delta > 1:\n                    beacons.append({\n                        \"src\": key[0], \"dst\": key[1], \"port\": key[2],\n                        \"avg_interval\": round(avg_delta, 2),\n                        \"variance\": round(variance, 4),\n                        \"connection_count\": len(times)\n                    })\n        return sorted(beacons, key=lambda x: x[\"variance\"])\n\n    def get_protocol_distribution(self) -> dict:\n        \"\"\"Get protocol distribution statistics.\"\"\"\n        protocols = Counter()\n        for pkt in self.packets:\n            if TCP in pkt:\n                protocols[f\"TCP\u002F{pkt[TCP].dport}\"] += 1\n            elif UDP in pkt:\n                protocols[f\"UDP\u002F{pkt[UDP].dport}\"] += 1\n        return dict(protocols.most_common(50))\n\n    def generate_report(self) -> str:\n        \"\"\"Generate comprehensive PCAP analysis report.\"\"\"\n        report = {\n            \"analysis_timestamp\": datetime.now().isoformat(),\n            \"pcap_file\": self.pcap_path,\n            \"total_packets\": len(self.packets),\n            \"conversations\": self.get_conversations()[:50],\n            \"dns_queries\": self.extract_dns_queries()[:200],\n            \"potential_beacons\": self.detect_beaconing(),\n            \"protocol_distribution\": self.get_protocol_distribution()\n        }\n\n        report_path = os.path.join(self.output_dir, \"pcap_forensic_report.json\")\n        with open(report_path, \"w\") as f:\n            json.dump(report, f, indent=2)\n\n        print(f\"[*] Total packets: {report['total_packets']}\")\n        print(f\"[*] Conversations: {len(report['conversations'])}\")\n        print(f\"[*] DNS queries: {len(report['dns_queries'])}\")\n        print(f\"[*] Potential beacons: {len(report['potential_beacons'])}\")\n        return report_path\n\ndef main():\n    if len(sys.argv) \u003C 3:\n        print(\"Usage: python process.py \u003Cpcap_file> \u003Coutput_dir>\")\n        sys.exit(1)\n    analyzer = PCAPForensicAnalyzer(sys.argv[1], sys.argv[2])\n    analyzer.generate_report()\n\nif __name__ == \"__main__\":\n    main()\n```\n\n## References\n\n- Wireshark Documentation: https:\u002F\u002Fwww.wireshark.org\u002Fdocs\u002F\n- PCAP Analysis Mastery: https:\u002F\u002Finsanecyber.com\u002Fmastering-pcap-review\u002F\n- SANS Network Forensics: https:\u002F\u002Fwww.sans.org\u002Fcyber-security-courses\u002Fnetwork-forensics\u002F\n- Public PCAPs for Practice: https:\u002F\u002Fwww.netresec.com\u002F?page=PcapFiles\n","# Performing Network Packet Capture Analysis\n\n## Overview\n\nNetwork packet captures (PCAP\u002FPCAPNG files) represent the ultimate source of truth about network activity and provide irrefutable evidence of communications between hosts. PCAP files log every packet transmitted over a network segment, making them vital for forensic investigations involving data exfiltration, command-and-control communications, lateral movement, malware delivery, and unauthorized access. Wireshark is the primary tool for interactive analysis, while tshark provides command-line capabilities for automated processing and scripting. Modern PCAPNG format supports additional metadata including interface descriptions, capture comments, precise timestamps, and per-packet annotations.\n\n## When to Use\n\n- When conducting security assessments that involve performing network packet capture analysis\n- When following incident response procedures for related security events\n- When performing scheduled security testing or auditing activities\n- When validating security controls through hands-on testing\n\n## Prerequisites\n\n- Wireshark 4.x with protocol dissectors\n- tshark command-line tool (included with Wireshark)\n- tcpdump for capture and basic filtering\n- Python 3.8+ with scapy and pyshark libraries\n- Sufficient disk space for PCAP files (can be multi-GB)\n\n## Capture Techniques\n\n### tcpdump\n\n```bash\n# Capture all traffic on interface eth0\ntcpdump -i eth0 -w capture.pcap\n\n# Capture with rotation (100MB files, keep 10)\ntcpdump -i eth0 -w capture_%Y%m%d_%H%M%S.pcap -C 100 -W 10\n\n# Capture specific host traffic\ntcpdump -i eth0 host 192.168.1.100 -w host_traffic.pcap\n\n# Capture specific port traffic\ntcpdump -i eth0 port 443 -w https_traffic.pcap\n\n# Capture with BPF filter for suspicious ports\ntcpdump -i eth0 'port 4444 or port 8080 or port 1337' -w suspicious.pcap\n```\n\n### Wireshark Display Filters\n\n```\n# HTTP traffic\nhttp\n\n# DNS queries\ndns\n\n# SMB file transfers\nsmb2\n\n# Specific IP communication\nip.addr == 192.168.1.100\n\n# Failed TCP connections\ntcp.flags.syn == 1 && tcp.flags.ack == 0\n\n# Large data transfers (potential exfiltration)\ntcp.len > 1000\n\n# Specific protocol by port\ntcp.port == 4444\n\n# TLS handshakes (SNI extraction)\ntls.handshake.type == 1\n\n# HTTP POST requests\nhttp.request.method == \"POST\"\n\n# DNS queries to suspicious TLDs\ndns.qry.name contains \".xyz\" or dns.qry.name contains \".top\"\n\n# Beaconing detection (regular intervals)\nframe.time_delta_displayed > 55 && frame.time_delta_displayed \u003C 65\n```\n\n### tshark Analysis Commands\n\n```bash\n# Extract HTTP URLs from capture\ntshark -r capture.pcap -Y \"http.request\" -T fields -e http.host -e http.request.uri\n\n# Extract DNS queries\ntshark -r capture.pcap -Y \"dns.flags.response == 0\" -T fields -e dns.qry.name | sort -u\n\n# Extract file transfers (HTTP objects)\ntshark -r capture.pcap --export-objects http,exported_files\u002F\n\n# Extract SMB file transfers\ntshark -r capture.pcap --export-objects smb,smb_files\u002F\n\n# Protocol hierarchy statistics\ntshark -r capture.pcap -z io,phs\n\n# Conversation statistics\ntshark -r capture.pcap -z conv,tcp\n\n# Extract TLS SNI (Server Name Indication)\ntshark -r capture.pcap -Y \"tls.handshake.type == 1\" -T fields -e tls.handshake.extensions_server_name\n\n# Top talkers by bytes\ntshark -r capture.pcap -z endpoints,ip -q\n\n# Extract credentials (FTP, HTTP Basic)\ntshark -r capture.pcap -Y \"ftp.request.command == USER || ftp.request.command == PASS || http.authorization\" -T fields -e ftp.request.arg -e http.authorization\n```\n\n## Python PCAP Analysis\n\n```python\nfrom scapy.all import rdpcap, IP, TCP, UDP, DNS, DNSQR, Raw\nimport os\nimport sys\nimport json\nfrom collections import defaultdict, Counter\nfrom datetime import datetime\n\nclass PCAPForensicAnalyzer:\n    \"\"\"Forensic analysis of PCAP files using Scapy.\"\"\"\n\n    def __init__(self, pcap_path: str, output_dir: str):\n        self.pcap_path = pcap_path\n        self.output_dir = output_dir\n        os.makedirs(output_dir, exist_ok=True)\n        self.packets = rdpcap(pcap_path)\n\n    def get_conversations(self) -> list:\n        \"\"\"Extract unique IP conversations with byte counts.\"\"\"\n        convos = defaultdict(lambda: {\"packets\": 0, \"bytes\": 0})\n        for pkt in self.packets:\n            if IP in pkt:\n                key = tuple(sorted([pkt[IP].src, pkt[IP].dst]))\n                convos[key][\"packets\"] += 1\n                convos[key][\"bytes\"] += len(pkt)\n\n        return [\n            {\"src\": k[0], \"dst\": k[1], \"packets\": v[\"packets\"], \"bytes\": v[\"bytes\"]}\n            for k, v in sorted(convos.items(), key=lambda x: x[1][\"bytes\"], reverse=True)\n        ]\n\n    def extract_dns_queries(self) -> list:\n        \"\"\"Extract all DNS queries from the capture.\"\"\"\n        queries = []\n        for pkt in self.packets:\n            if DNS in pkt and pkt[DNS].qr == 0 and DNSQR in pkt:\n                queries.append({\n                    \"query\": pkt[DNSQR].qname.decode(errors=\"replace\").rstrip(\".\"),\n                    \"type\": pkt[DNSQR].qtype,\n                    \"src\": pkt[IP].src if IP in pkt else \"unknown\"\n                })\n        return queries\n\n    def detect_beaconing(self, threshold_seconds: float = 5.0) -> list:\n        \"\"\"Detect potential beaconing activity based on regular intervals.\"\"\"\n        ip_timestamps = defaultdict(list)\n        for pkt in self.packets:\n            if IP in pkt and TCP in pkt:\n                key = (pkt[IP].src, pkt[IP].dst, pkt[TCP].dport)\n                ip_timestamps[key].append(float(pkt.time))\n\n        beacons = []\n        for key, times in ip_timestamps.items():\n            if len(times) \u003C 5:\n                continue\n            deltas = [times[i+1] - times[i] for i in range(len(times)-1)]\n            if deltas:\n                avg_delta = sum(deltas) \u002F len(deltas)\n                variance = sum((d - avg_delta) ** 2 for d in deltas) \u002F len(deltas)\n                if variance \u003C threshold_seconds and avg_delta > 1:\n                    beacons.append({\n                        \"src\": key[0], \"dst\": key[1], \"port\": key[2],\n                        \"avg_interval\": round(avg_delta, 2),\n                        \"variance\": round(variance, 4),\n                        \"connection_count\": len(times)\n                    })\n        return sorted(beacons, key=lambda x: x[\"variance\"])\n\n    def get_protocol_distribution(self) -> dict:\n        \"\"\"Get protocol distribution statistics.\"\"\"\n        protocols = Counter()\n        for pkt in self.packets:\n            if TCP in pkt:\n                protocols[f\"TCP\u002F{pkt[TCP].dport}\"] += 1\n            elif UDP in pkt:\n                protocols[f\"UDP\u002F{pkt[UDP].dport}\"] += 1\n        return dict(protocols.most_common(50))\n\n    def generate_report(self) -> str:\n        \"\"\"Generate comprehensive PCAP analysis report.\"\"\"\n        report = {\n            \"analysis_timestamp\": datetime.now().isoformat(),\n            \"pcap_file\": self.pcap_path,\n            \"total_packets\": len(self.packets),\n            \"conversations\": self.get_conversations()[:50],\n            \"dns_queries\": self.extract_dns_queries()[:200],\n            \"potential_beacons\": self.detect_beaconing(),\n            \"protocol_distribution\": self.get_protocol_distribution()\n        }\n\n        report_path = os.path.join(self.output_dir, \"pcap_forensic_report.json\")\n        with open(report_path, \"w\") as f:\n            json.dump(report, f, indent=2)\n\n        print(f\"[*] Total packets: {report['total_packets']}\")\n        print(f\"[*] Conversations: {len(report['conversations'])}\")\n        print(f\"[*] DNS queries: {len(report['dns_queries'])}\")\n        print(f\"[*] Potential beacons: {len(report['potential_beacons'])}\")\n        return report_path\n\ndef main():\n    if len(sys.argv) \u003C 3:\n        print(\"Usage: python process.py \u003Cpcap_file> \u003Coutput_dir>\")\n        sys.exit(1)\n    analyzer = PCAPForensicAnalyzer(sys.argv[1], sys.argv[2])\n    analyzer.generate_report()\n\nif __name__ == \"__main__\":\n    main()\n```\n\n## References\n\n- Wireshark Documentation: https:\u002F\u002Fwww.wireshark.org\u002Fdocs\u002F\n- PCAP Analysis Mastery: https:\u002F\u002Finsanecyber.com\u002Fmastering-pcap-review\u002F\n- SANS Network Forensics: https:\u002F\u002Fwww.sans.org\u002Fcyber-security-courses\u002Fnetwork-forensics\u002F\n- Public PCAPs for Practice: https:\u002F\u002Fwww.netresec.com\u002F?page=PcapFiles\n",{"name":5,"domain":21,"description":7},"main","a91f1293287ffa9f4f1b8f486cd6e835a1568c84","skills\u002Fnet-capture-net","https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace","https:\u002F\u002Fgithub.com\u002FDCx7C5","#Python","2026-09-01 11:21:00",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add DCx7C5\u002Fai-marketplace --skill net-capture-net",{"tool":43,"command":44},"bunx","bunx skills add DCx7C5\u002Fai-marketplace --skill net-capture-net",{"tool":46,"command":47},"pnpm","pnpm dlx skills add DCx7C5\u002Fai-marketplace --skill net-capture-net","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fnet-capture-net\u002FSKILL.md",true,[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"index.json","REFERENCE","参考文档",499,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Fnet-capture-net\u002Findex.json",[58,83,106,128,150,166],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":25},"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",[],[65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,21,82],"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":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":25},"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",[],[90,65,91,68,92,93,94,21,95,96,97,98,99,100,70,101,102,103,104,105],"exploit","services wmi exec exploit","exec","remote","traffic","Bash","analysis","team","across","crackmapexec","native","command","lateral movement","read","lateral-movement","Impacket",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":25},"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",[],[113,114,115,116,117,118,21,95,119,96,120,121,70,103,122,123,124,125,126,127],"artifact","registry","registry artifact extract","extract","evidence-collection","artifact-analysis","collection","analyze","uncover","software","activity","digital-forensics","windows-registry","regripper","sonnet",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":25},"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",[],[66,135,136,137,138,139,140,71,141,21,82,142,143,144,145,146,147,148,149,70],"processes token impersonate detect","token","processes","attacks","windows","escalation","techniques","privilege-escalation","seimpersonate","token-impersonation","printspoofer","exploitation","potato","impersonation","via",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":25},"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",[],[157,158,66,159,137,139,160,71,161,141,21,82,96,162,163,164,165,149,70,72],"thread","processes thread injection detect","injection","memory","process-injection","api","apc-injection","thread-injection","nt-api",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":25},"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",[],[173,66,137,174,160,71,175,176,21,82,177,178,179,180,181,182,70,72,183,184],"processes hollow technique detect","tree","memory-forensics","process-hollow","peb","runpe","image","pe-header","in memory","with","mismatched","headers"]