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.
Auto Trait Implementations§
impl Freeze for LiveModuleCatalog
impl RefUnwindSafe for LiveModuleCatalog
impl Send for LiveModuleCatalog
impl Sync for LiveModuleCatalog
impl Unpin for LiveModuleCatalog
impl UnsafeUnpin for LiveModuleCatalog
impl UnwindSafe for LiveModuleCatalog
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more