You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Although the modules are consistently named *_persistence*, the categorization is inconsistent - sometimes as post/<platform>/manage/, but usually within the exploit/<platform>/local/ directory.
Almost all of these modules establish persistence by creating a new session at an unknown time in the future. These are not exploits - they are post-exploitation modules more akin to management post modules.
Persistence modules were previously classified as local exploit modules as traditionally any module which could result in a new session was considered to be an "exploit" module; however, this old practice has been repeatedly undermined and the definition is no longer useful. For example:
these modules are not classified as exploits, but they effectively operate the same as file format exploits (like exploit/<platform>/file/ modules) and return a session
Management post modules return a session
modules/post/multi/manage/shell_to_meterpreter.rb returns a session
Is it useful to separate persistence modules into a separate category/subdirectory?
Basic example
Move persistence modules to modules/post/<platform>/persistence/ ?
Move persistence modules to modules/exploits/<platform>/persistence/ ?
Move persistence modules to modules/persistence/<platform>/? (with a new Msf::Persistence class?)
Motivation
Although there is no real harm in leaving persistence modules in the local exploit category, the typical use case for persistence modules is sufficiently different to exploit modules that a separate category may be desirable to eliminate ambiguity.
Once segregated, exploit/<platform>/local exploits will be local exploits only:
Persistence modules can be more easily found should the operator wish to maintain persistence on a host.
Privesc modules can be more easily found should the operator wish to elevate privileges on a host.
Persistence modules will not be selected and tested using the Local Exploit Suggester module, which is intended for local exploitation (ie, privilege escalation).
Additionally, as most exploit modules within Framework return a session immediately, where as persistence modules return zero or more sessions at an unknown time in the future, segregation may be beneficial to facilitate intuitive handler workflows. For example, persistence modules could be configured with default module options to launch backgrounded long-running session handlers.
The text was updated successfully, but these errors were encountered:
Summary
We have a lot of modules to establish persistence (and will likely gain more: #16791 #19359).
Although the modules are consistently named
*_persistence*
, the categorization is inconsistent - sometimes aspost/<platform>/manage/
, but usually within theexploit/<platform>/local/
directory.Almost all of these modules establish persistence by creating a new session at an unknown time in the future. These are not exploits - they are post-exploitation modules more akin to management post modules.
Persistence modules were previously classified as local
exploit
modules as traditionally any module which could result in a newsession
was considered to be an "exploit" module; however, this old practice has been repeatedly undermined and the definition is no longer useful. For example:exploit/<platform>/file/
modules) and return a sessionmodules/post/multi/manage/shell_to_meterpreter.rb
returns a sessionmodules/post/windows/manage/persistence_exe.rb
returns a session (There is an open issue to convert this module to an exploit module Migrate post/windows/manage /persistence_exe to an Exploit #18053)Is it useful to separate persistence modules into a separate category/subdirectory?
Basic example
modules/post/<platform>/persistence/
?modules/exploits/<platform>/persistence/
?modules/persistence/<platform>/
? (with a newMsf::Persistence
class?)Motivation
Although there is no real harm in leaving persistence modules in the
local
exploit category, the typical use case for persistence modules is sufficiently different to exploit modules that a separate category may be desirable to eliminate ambiguity.Once segregated,
exploit/<platform>/local
exploits will be local exploits only:Additionally, as most exploit modules within Framework return a session immediately, where as persistence modules return zero or more sessions at an unknown time in the future, segregation may be beneficial to facilitate intuitive handler workflows. For example, persistence modules could be configured with default module options to launch backgrounded long-running session handlers.
The text was updated successfully, but these errors were encountered: