

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
12345# Module Development Instructions67## Structure Order891. Header comment block102. `class MetasploitModule < Msf::Exploit::Remote` (or `Msf::Auxiliary`, `Msf::Post`)113. `Rank = ExcellentRanking` (exploits only)124. Protocol mixins (`include Msf::Exploit::Remote::HttpClient`, etc.)135. Utility mixins (`include Msf::Exploit::FileDropper`, etc.)146. `prepend Msf::Exploit::Remote::AutoCheck` — ALWAYS LAST157. `def initialize` with `update_info`168. `def check` (when possible)179. `def exploit` or `def run`1819## Required Metadata2021- `'Name'` — Vendor Product Vulnerability Type22- `'Description'` — use `%q{}` for multi-line23- `'Author'` — array with role comments24- `'License'` — `MSF_LICENSE`25- `'References'` — `[['CVE', '...'], ['URL', '...']]`26- `'DisclosureDate'` — required for exploits27- `'Notes'` — required with `Stability`, `SideEffects`, `Reliability`2829## Notes Hash Values3031Required for **exploits, auxiliary, and post** modules (enforced by rubocop). Not required for payloads, encoders, nops, or evasion.3233- **Stability:** `CRASH_SAFE`, `CRASH_SERVICE_RESTARTS`, `CRASH_SERVICE_DOWN`, `CRASH_OS_RESTARTS`, `CRASH_OS_DOWN`34- **SideEffects:** `IOC_IN_LOGS`, `ARTIFACTS_ON_DISK`, `CONFIG_CHANGES`, `ACCOUNT_LOCKOUTS`, `SCREEN_EFFECTS`35- **Reliability:** `REPEATABLE_SESSION`, `FIRST_ATTEMPT_FAIL`, `UNRELIABLE_SESSION`, `EVENT_DEPENDENT`3637Valid values with descriptions: [`lib/msf/core/constants.rb`](../../lib/msf/core/constants.rb). Platform classes: [`lib/msf/core/module/platform.rb`](../../lib/msf/core/module/platform.rb).3839## Payload Selection4041- Command execution only → `ARCH_CMD` payloads42- Only HTTP outbound (curl/wget) → fetch payload43- File write possible → dropper/EXE (`Msf::Exploit::EXE`)44- Multi-step upload → `Msf::Exploit::CmdStager` (but prefer fetch when possible)4546## Do NOT4748- Set `DefaultOptions => { 'PAYLOAD' => '...' }` unless platform-locked49- Use `cmd_exec` with string interpolation — use `create_process(exe, args: [])`50- Use `HttpFingerprint` — implement a proper `check` method instead51- Use `include` for AutoCheck — must be `prepend`52- Return bare `CheckCode::Safe` without a reason string53- Use `JSON.parse(res.body)` — use `res.get_json_document`54- Print `"#{ip}:#{port}"` — use `Rex::Socket.to_authority(ip, port)`5556## Auxiliary Modules5758- Inherit from `Msf::Auxiliary` (not `Msf::Exploit::Remote`)59- Use `def run` (not `def exploit`)60- Use `report_service` / `report_vuln` for findings6162## Post Modules6364- Inherit from `Msf::Post`65- Declare `'SessionTypes' => ['meterpreter', 'shell']`66- Use `create_process` for command execution (not `cmd_exec` with args)67- Use `Msf::OptionalSession` for modules that work with or without sessions68
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| rapid7/metasploit-frameworkAGENTS.md · 39k | AGENTS.md | teststylearchgit+3 | 61/100 | today | |
| rapid7/metasploit-framework.github/copilot-instructions.md · 39k | Copilot instructions | agent-behaviour | 4/100 | today | |
| rapid7/metasploit-framework.github/instructions/documentation.instructions.md · 39k | Copilot instructions | do-notagent-behaviourdocs | 32/100 | today | |
| rapid7/metasploit-framework.github/instructions/library.instructions.md · 39k | Copilot instructions | teststyleagent-behaviourdocs | 60/100 | today | |
| rapid7/metasploit-framework.github/instructions/tests.instructions.md · 39k | Copilot instructions | teststyleagent-behaviour | 67/100 | today |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| pytorch/pytorch.github/copilot-instructions.md · 102k | Copilot instructions | setupbuildteststyle+5 | 100/100 | 14 days ago | |
| dotnet/roslyn.github/instructions/Compiler.instructions.md · 21k | Copilot instructions | buildteststylearch+3 | 99/100 | today | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| ardalis/CleanArchitecture.github/copilot-instructions.md · 18k | Copilot instructions | buildteststylearch+4 | 96/100 | 14 days ago | |
| dotnet/maui.github/instructions/templates.instructions.md · 23k | Copilot instructions | buildteststylearch+1 | 92/100 | 14 days ago | |
| dotnet/maui.github/instructions/integration-tests.instructions.md · 23k | Copilot instructions | setupteststyledo-not | 92/100 | 14 days ago | |
| photoprism/photoprism.github/copilot-instructions.md · 40k | Copilot instructions | buildtestlint-formatstyle+5 | 90/100 | 13 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/rapid7-metasploit-framework-github-instructions-modules-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.