pub struct LiveModuleCatalog { /* private fields */ }Expand description
A module catalog built from a live Metasploit RPC listing
(module.exploits, module.auxiliary, module.post).
Unlike the static offline catalogs, the source of truth here is the
connected instance: a module is only ever suggested if it actually exists
on that instance, so names that do not exist (e.g. a hypothetical
auxiliary/scanner/http/nginx_version) can never be recommended.
Banner/title matching is derived from the module names themselves — the significant tokens of each module’s leaf name are matched against the banner text — so no module names are hardcoded here.
Implementations§
Source§impl LiveModuleCatalog
impl LiveModuleCatalog
pub fn from_modules(modules: Vec<MSFModule>) -> Self
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
pub fn contains(&self, full_name: &str) -> bool
pub fn all(&self) -> &[MSFModule]
Suggest modules for a service banner. Confidence is high because the match is against the banner observed for a live service.
Sourcepub fn suggest_for_title(
&self,
title: &str,
details: &str,
) -> Vec<ModuleSuggestion>
pub fn suggest_for_title( &self, title: &str, details: &str, ) -> Vec<ModuleSuggestion>
Suggest modules for a finding title/details pair. Confidence is medium because the match is against free text rather than a live banner.
Sourcepub fn modules_for_cve(&self, cve: &str) -> Vec<MSFModule>
pub fn modules_for_cve(&self, cve: &str) -> Vec<MSFModule>
Modules known for a CVE.
The listing responses carry names only (no references), so the offline
catalog is used as the candidate source and every candidate is filtered
through the live names. Modules whose name embeds the CVE (e.g.
exploit/windows/rdp/cve_2019_0708_bluekeep) are surfaced directly
from the listing even when they are absent from the offline catalog.