[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D23JSYZ2ESWCYRWCNRRG94":3,"skill-same:01M6D23JSYZ2ESWCYRWCNRRG94":86},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":40,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M6D23JSYZ2ESWCYRWCNRRG94","pentest-recon",null,"Mapping the attack surface of an authorized target: subdomains, open ports, running services and versions, the technology stack, and every input surface, passive sources before active ones, the quietest technique that answers the question. Read before enumerating a target.","enowdev\u002Fenowxcli","enowdev","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F179420349?v=4","01M6D1MVX2KC0X3Z9NESE7P22K","Enow Dev.","01M6D1MW1FMZGBDKWAJY4GQX81",67,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fpentest-recon\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"pentest","pentest recon","services","open","stack","ports","question","read","attack surface","technology","active","2026-11-10 10:12:30",false,"---\nname: pentest-recon\ndescription: \"Mapping the attack surface of an authorized target: subdomains, open ports, running services and versions, the technology stack, and every input surface, passive sources before active ones, the quietest technique that answers the question. Read before enumerating a target.\"\n---\n\n# Reconnaissance\n\nYour job is mapping, not exploiting. You enumerate what is exposed so the\ntesting stages and the final report can rely on it.\n\n**Scope first.** Work only against hosts, domains and addresses the engagement\nauthorizes. A target not on the list is out of bounds, stop and ask.\n\n## What to map\n\n- **Domains and hosts.** Subdomains (passive certificate-transparency and DNS\n  sources before brute force), the addresses they resolve to, and which are in\n  scope.\n- **Services and versions.** Open ports, the service on each, and its version.\n  Prefer a light `httpx`\u002Fbanner grab to an aggressive full scan; match the\n  intensity to the rules of engagement.\n- **The stack.** Server, framework, language, CDN, WAF, third-party components\n  and their versions, anything a known-vulnerability check can use later.\n- **The input surface.** Every endpoint, parameter, form field, header, cookie\n  and upload. This map is what the testing stages work from.\n\n## How\n\n- Passive before active: certificate transparency, DNS, public sources, and the\n  application's own responses tell you a great deal before you send a probe.\n- Record every finding with where and how you found it. Note anything that\n  looks sensitive or accidentally exposed (an open `.git`, a stack trace, a\n  debug endpoint) but do not exploit it, hand it to the right stage.\n- Stay within the rate limits. Loud recon gets the engagement noticed and can\n  knock over a fragile target.\n\nTools you might run through `bash` (only those installed and in scope):\n`dig`\u002F`host`, `httpx`, `nmap` (light), `whatweb`, `subfinder`. Record versions\nand the exact commands so the report is reproducible.\n","# Reconnaissance\n\nYour job is mapping, not exploiting. You enumerate what is exposed so the\ntesting stages and the final report can rely on it.\n\n**Scope first.** Work only against hosts, domains and addresses the engagement\nauthorizes. A target not on the list is out of bounds, stop and ask.\n\n## What to map\n\n- **Domains and hosts.** Subdomains (passive certificate-transparency and DNS\n  sources before brute force), the addresses they resolve to, and which are in\n  scope.\n- **Services and versions.** Open ports, the service on each, and its version.\n  Prefer a light `httpx`\u002Fbanner grab to an aggressive full scan; match the\n  intensity to the rules of engagement.\n- **The stack.** Server, framework, language, CDN, WAF, third-party components\n  and their versions, anything a known-vulnerability check can use later.\n- **The input surface.** Every endpoint, parameter, form field, header, cookie\n  and upload. This map is what the testing stages work from.\n\n## How\n\n- Passive before active: certificate transparency, DNS, public sources, and the\n  application's own responses tell you a great deal before you send a probe.\n- Record every finding with where and how you found it. Note anything that\n  looks sensitive or accidentally exposed (an open `.git`, a stack trace, a\n  debug endpoint) but do not exploit it, hand it to the right stage.\n- Stay within the rate limits. Loud recon gets the engagement noticed and can\n  knock over a fragile target.\n\nTools you might run through `bash` (only those installed and in scope):\n`dig`\u002F`host`, `httpx`, `nmap` (light), `whatweb`, `subfinder`. Record versions\nand the exact commands so the report is reproducible.\n",{"name":5,"description":7},"main","38293fe1b096e6bf3646c7344c38786ed688f464","crates\u002Fenowx-core\u002Fskills\u002Fpentest-recon",21,"https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli","https:\u002F\u002Fenowx.ai","https:\u002F\u002Fgithub.com\u002Fenowdev","Pretending to be a Developer","2026-10-06 02:05:35",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add enowdev\u002Fenowxcli --skill pentest-recon",{"tool":50,"command":51},"bunx","bunx skills add enowdev\u002Fenowxcli --skill pentest-recon",{"tool":53,"command":54},"pnpm","pnpm dlx skills add enowdev\u002Fenowxcli --skill pentest-recon","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fpentest-recon\u002FSKILL.md",true,[58,64,70,74,78,82],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"references\u002Fstyle_guide.md","REFERENCE","参考文档",6922,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Freferences\u002Fstyle_guide.md",{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"scripts\u002Fdraw_2d.py","SCRIPT","脚本",8431,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Fscripts\u002Fdraw_2d.py",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"scripts\u002Fdraw_grid.py",12177,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Fscripts\u002Fdraw_grid.py",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"scripts\u002Fdraw_interactions.py",17357,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Fscripts\u002Fdraw_interactions.py",{"path":79,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":80,"sourceHtmlUrl":81},"scripts\u002Fdraw_scaffold.py",15785,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Fscripts\u002Fdraw_scaffold.py",{"path":83,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Frender_3d.py",23443,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fmolecule-visualization\u002Fscripts\u002Frender_3d.py",[87,103,128,144,171,193],{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":98,"publishedAt":30},"01M6D2HQYSQD9N7MTNDT4A7CBM","demo-skill","Project-scope demo skill for tests.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fworkspace\u002F.agents\u002Fskills\u002Fdemo-skill\u002FSKILL.md",[93],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[99,100,101,102,26],"demo skill","demo","tests","project",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":117,"publishedAt":30},"01M6D2HM0GCPM0TM2HPG9HHR2R","writing","Writing words people read: the specific thing instead of claims, words to drop, sentences, interface copy (buttons, labels, errors, empty states, confirmations), page copy, notifications and emails, alt text and link text, numbers and dates, words that translate well, documentation and voice. Read before writing a page's copy, an interface's text or a document.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fwriting\u002FSKILL.md",[109,112],{"categoryNo":110,"categoryName":111,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[105,118,119,120,121,122,26,123,124,125,126,127],"text","emails","empty","drop","document","page","voice","notifications","documentation","translate",{"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":137,"publishedAt":30},"01M6D2HG07YS49NM196Q0R3AZ8","ui","Designing or restyling an interface: direction, layout, type, colour, icons, components, states, responsive behaviour. Read before building a page, a screen or a set of components.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fui\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000032","设计师",[130,138,139,140,141,123,142,26,143],"icons","components","SET","responsive","layout","before building",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":156,"publishedAt":30},"01M6D2HB59HZHWG1RYZDV4SJ91","ui-themes","Light and dark themes, and colour that holds in both: tokens with a value per theme, and what each kind of content needs to stay visible (icons, SVG drawings and line art, logos, photos, screenshots, charts, code, maps, borders, shadows, focus, form controls), switching without a flash, and checking both. Read before building a second theme or a theme toggle, and before any drawing, logo or chart on a page that has two themes.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fui-themes\u002FSKILL.md",[150,153],{"categoryNo":151,"categoryName":152,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":154,"categoryName":155,"taxonomyType":115,"taxonomyTypeDesc":116},"01JBSEEDCAT000000000000030","开发工程师",[130,157,158,159,160,161,162,163,164,26,143,165,123,166,167,168,138,169,170],"ui themes","switching","photos","tokens","drawing","focus","maps","Art","flash","code","Charts","content","screenshots","logo",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":180,"publishedAt":30},"01M6D2H5R5KRAE524C8QX0T7Q0","ui-structure","Structure before styling: the blueprint written before any interface code (the screen's job, the regions its kind of page needs, their order and why, the layout skeleton in numbers, the components and their states), the anatomy and order of a homepage, a dashboard, a list, a detail page, settings, a form, sign-in, pricing, docs, an article and a checkout, and how to turn the blueprint into code (tokens, layout primitives, components, sections, page). Read first, before building or rebuilding any page or screen.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fui-structure\u002FSKILL.md",[177,178,179],{"categoryNo":110,"categoryName":111,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":154,"categoryName":155,"taxonomyType":115,"taxonomyTypeDesc":116},{"categoryNo":113,"categoryName":114,"taxonomyType":115,"taxonomyTypeDesc":116},[181,130,182,139,183,184,166,185,186,187,142,160,188,189,190,26,143,123,191,192],"structure","ui structure","pricing","dashboard","Blueprint","article","anatomy","styling","primitives","list","why","how",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":206,"publishedAt":30},"01M6D2H0ZZBJG77MBGPZHA6MWD","ui-stack-vue","Building interfaces in Vue 3 and Nuxt: project layout, script setup with typed defineProps, defineEmits and defineModel, attribute fallthrough, slots and scoped slots, template refs, ref, reactive and computed, watch versus watchEffect, composables and VueUse, provide and inject, Pinia, keyed v-for, transitions, Nuxt 4 (app directory, pages, layouts, useFetch and useAsyncData keys, $fetch in handlers, server routes, runtime config, useSeoMeta, NuxtImg, middleware), VeeValidate forms, Reka UI and Nuxt UI, testing, vue-tsc, and the traps. Read when the project uses Vue or Nuxt.","https:\u002F\u002Fgithub.com\u002Fenowdev\u002Fenowxcli\u002Fblob\u002Fmain\u002Fcrates\u002Fenowx-core\u002Fskills\u002Fui-stack-vue\u002FSKILL.md",[199,202,205],{"categoryNo":200,"categoryName":201,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":203,"categoryName":204,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":135,"categoryName":136,"taxonomyType":115,"taxonomyTypeDesc":116},[130,207,23,208,209,210,211,212,142,102,213,214,26,215,216,217,218,219,220,221],"vue","ui stack vue","forms","pages","watch","runtime","transitions","fetch","pinia","nuxt","template","server","config","directory","testing"]