Versions in this module Expand all Collapse all v2 v2.0.1 Aug 24, 2026 Changes in this version + var ErrCommandTimeout = errors.New("command timeout") + var ErrConsoleNotFound = errors.New("console not found") + var ErrInvalidOption = errors.New("invalid module option") + var ErrJobNotFound = errors.New("job not found") + var ErrNotAuthenticated = errors.New("not authenticated") + var ErrRPC = errors.New("rpc error") + var ErrSessionNotFound = errors.New("session not found") + var ErrUnexpectedResponse = errors.New("unexpected rpc response") + type AuthManager struct + func NewAuthManager(rpc RPCCaller) *AuthManager + func (m *AuthManager) TokenAdd(ctx context.Context, token string) error + func (m *AuthManager) TokenGenerate(ctx context.Context) (string, error) + func (m *AuthManager) TokenList(ctx context.Context) ([]string, error) + func (m *AuthManager) TokenRemove(ctx context.Context, token string) error + type Client struct + func NewClient(password string, opts ...ClientOption) (*Client, error) + func NewClientWithToken(token string, opts ...ClientOption) (*Client, error) + func (c *Client) Auth() *AuthManager + func (c *Client) Call(ctx context.Context, method MsfRpcMethod, args ...interface{}) (interface{}, error) + func (c *Client) Consoles() *ConsoleManager + func (c *Client) Core() *CoreManager + func (c *Client) DB() *DbManager + func (c *Client) Events(ctx context.Context, opts ...EventOption) *EventMonitor + func (c *Client) IsAuthenticated() bool + func (c *Client) Jobs() *JobManager + func (c *Client) Logout(ctx context.Context) error + func (c *Client) Modules() *ModuleManager + func (c *Client) Plugins() *PluginManager + func (c *Client) Sessions() *SessionManager + func (c *Client) Token() string + type ClientOption func(*Client) + func WithConsolePollInterval(interval time.Duration) ClientOption + func WithHTTPClient(client *http.Client) ClientOption + func WithHost(host string) ClientOption + func WithPort(port int) ClientOption + func WithSSL(ssl bool) ClientOption + func WithSessionPollInterval(interval time.Duration) ClientOption + func WithURI(uri string) ClientOption + func WithUsername(username string) ClientOption + type Console struct + Busy bool + ID string + Prompt string + type ConsoleManager struct + func NewConsoleManager(rpc RPCCaller) *ConsoleManager + func (m *ConsoleManager) Create(ctx context.Context) (*Console, error) + func (m *ConsoleManager) Destroy(ctx context.Context, cid string) error + func (m *ConsoleManager) GetConsole(ctx context.Context, cid string) (*MsfConsole, error) + func (m *ConsoleManager) List(ctx context.Context) ([]*Console, error) + type ConsoleReadResult struct + Busy bool + Data string + Prompt string + type CoreManager struct + func NewCoreManager(rpc RPCCaller) *CoreManager + func (m *CoreManager) AddModulePath(ctx context.Context, path string) error + func (m *CoreManager) KillThread(ctx context.Context, threadID string) error + func (m *CoreManager) ModuleStats(ctx context.Context) (map[string]interface{}, error) + func (m *CoreManager) ReloadModules(ctx context.Context) error + func (m *CoreManager) Save(ctx context.Context) error + func (m *CoreManager) SetGlobal(ctx context.Context, key, value string) error + func (m *CoreManager) Stop(ctx context.Context) error + func (m *CoreManager) ThreadList(ctx context.Context) (map[string]interface{}, error) + func (m *CoreManager) UnsetGlobal(ctx context.Context, key string) error + func (m *CoreManager) Version(ctx context.Context) (*VersionInfo, error) + type Credential struct + Host string + Pass string + Port int + Proto string + Service string + Type string + User string + type DbManager struct + func NewDbManager(rpc RPCCaller) *DbManager + func (m *DbManager) Connect(ctx context.Context, opts map[string]interface{}) error + func (m *DbManager) Creds(ctx context.Context, opts map[string]interface{}) ([]*Credential, error) + func (m *DbManager) CurrentWorkspace(ctx context.Context) (string, error) + func (m *DbManager) Disconnect(ctx context.Context) error + func (m *DbManager) Driver(ctx context.Context) (string, error) + func (m *DbManager) Hosts(ctx context.Context, opts map[string]interface{}) ([]*Host, error) + func (m *DbManager) Loots(ctx context.Context, opts map[string]interface{}) ([]*Loot, error) + func (m *DbManager) Services(ctx context.Context, opts map[string]interface{}) ([]*Service, error) + func (m *DbManager) SetWorkspace(ctx context.Context, name string) error + func (m *DbManager) Status(ctx context.Context) (map[string]interface{}, error) + func (m *DbManager) Vulns(ctx context.Context, opts map[string]interface{}) ([]*Vuln, error) + func (m *DbManager) Workspaces() *WorkspaceManager + type Event struct + ConsoleID string + Data string + Err error + Job *Job + Session *Session + SessionID string + Timestamp time.Time + Type EventType + type EventMonitor struct + func NewEventMonitor(ctx context.Context, rpc RPCCaller, opts ...EventOption) *EventMonitor + func (m *EventMonitor) C() <-chan Event + func (m *EventMonitor) UnwatchConsole(cid string) + func (m *EventMonitor) UnwatchSession(sid string) + func (m *EventMonitor) WatchConsole(cid string) + func (m *EventMonitor) WatchSession(sid string) + type EventOption func(*EventMonitor) + func WithEventBuffer(size int) EventOption + func WithEventJobInterval(interval time.Duration) EventOption + func WithEventOutputInterval(interval time.Duration) EventOption + func WithEventSessionInterval(interval time.Duration) EventOption + type EventType string + const EventConsoleOutput + const EventError + const EventJobStarted + const EventJobStopped + const EventSessionClosed + const EventSessionOpened + const EventSessionOutput + type Host struct + Address string + Arch string + Comments string + Info string + Mac string + Name string + OSFlavor string + OSLang string + OSName string + OSSP string + OSVersion string + Purpose string + Scope string + State string + VirtualHost string + type Job struct + Description string + ID string + Name string + type JobManager struct + func NewJobManager(rpc RPCCaller) *JobManager + func (m *JobManager) Info(ctx context.Context, jobID string) (map[string]interface{}, error) + func (m *JobManager) List(ctx context.Context) (map[string]string, error) + func (m *JobManager) Stop(ctx context.Context, jobID string) error + type Loot struct + Data string + Host string + Info string + Name string + Type string + type MeterpreterSession struct + SID string + func NewMeterpreterSession(rpc RPCCaller, sid string) *MeterpreterSession + func (s *MeterpreterSession) Detach(ctx context.Context) error + func (s *MeterpreterSession) DirectorySeparator(ctx context.Context) (string, error) + func (s *MeterpreterSession) Kill(ctx context.Context) error + func (s *MeterpreterSession) Read(ctx context.Context) (string, error) + func (s *MeterpreterSession) RunScript(ctx context.Context, path string) (string, error) + func (s *MeterpreterSession) RunSingle(ctx context.Context, cmd string) (string, error) + func (s *MeterpreterSession) RunWithOutput(ctx context.Context, cmd string, endStrings []string, timeout time.Duration) (string, error) + func (s *MeterpreterSession) Tabs(ctx context.Context, line string) ([]string, error) + func (s *MeterpreterSession) Write(ctx context.Context, data string) error + type Module struct + Info *MsfModuleInfo + ModuleType ModuleType + Name string + func NewModule(rpc RPCCaller, modType ModuleType, name string) (*Module, error) + func NewModuleWithContext(ctx context.Context, rpc RPCCaller, modType ModuleType, name string) (*Module, error) + func (m *Module) CompatiblePayloads(ctx context.Context) ([]string, error) + func (m *Module) CompatibleSessions(ctx context.Context) ([]string, error) + func (m *Module) Execute(ctx context.Context) (*ModuleExecuteResult, error) + func (m *Module) ExecuteWithPayload(ctx context.Context, payload *Module) (*ModuleExecuteResult, error) + func (m *Module) GetOption(option string) (interface{}, error) + func (m *Module) MissingRequired() []string + func (m *Module) OptionInfo(option string) (*MsfModuleOption, error) + func (m *Module) Options() []string + func (m *Module) RequiredOptions() []string + func (m *Module) RunOptions() map[string]interface{} + func (m *Module) SetOption(option string, value interface{}) error + func (m *Module) Targets() []string + type ModuleExecuteResult struct + JobID int + UUID string + type ModuleManager struct + func NewModuleManager(rpc RPCCaller) *ModuleManager + func (m *ModuleManager) Auxiliary(ctx context.Context) ([]string, error) + func (m *ModuleManager) CompatiblePayloads(ctx context.Context, name string) ([]string, error) + func (m *ModuleManager) CompatibleSessions(ctx context.Context, name string) ([]string, error) + func (m *ModuleManager) Encoders(ctx context.Context) ([]string, error) + func (m *ModuleManager) Evasion(ctx context.Context) ([]string, error) + func (m *ModuleManager) Execute(ctx context.Context, modType ModuleType, name string, ...) (*ModuleExecuteResult, error) + func (m *ModuleManager) Exploits(ctx context.Context) ([]string, error) + func (m *ModuleManager) Info(ctx context.Context, modType ModuleType, name string) (*MsfModuleInfo, error) + func (m *ModuleManager) Nops(ctx context.Context) ([]string, error) + func (m *ModuleManager) Payloads(ctx context.Context) ([]string, error) + func (m *ModuleManager) Post(ctx context.Context) ([]string, error) + func (m *ModuleManager) Use(ctx context.Context, modType ModuleType, name string) (*Module, error) + type ModuleReference struct + Type string + Value string + type ModuleType string + const AuxiliaryModuleType + const EncoderModuleType + const EvasionModuleType + const ExploitModuleType + const NopModuleType + const PayloadModuleType + const PostModuleType + type MsfConsole struct + CID string + func NewMsfConsole(rpc RPCCaller, cid string) *MsfConsole + func (c *MsfConsole) IsBusy(ctx context.Context) (bool, error) + func (c *MsfConsole) Read(ctx context.Context) (*ConsoleReadResult, error) + func (c *MsfConsole) RunCommand(ctx context.Context, command string, timeout time.Duration) (string, error) + func (c *MsfConsole) SessionDetach(ctx context.Context) error + func (c *MsfConsole) SessionKill(ctx context.Context) error + func (c *MsfConsole) Tabs(ctx context.Context, line string) ([]string, error) + func (c *MsfConsole) Write(ctx context.Context, command string) error + type MsfModuleInfo struct + Authors []string + Description string + FilePath string + License string + Name string + Rank string + References []ModuleReference + Targets []string + Version string + type MsfModuleOption struct + Advanced bool + Default interface{} + Desc string + Enums []string + Evasion bool + Required bool + Type string + type MsfRpcMethod string + const AuthLogin + const AuthLogout + const AuthTokenAdd + const AuthTokenGenerate + const AuthTokenList + const AuthTokenRemove + const ConsoleCreate + const ConsoleDestroy + const ConsoleList + const ConsoleRead + const ConsoleSessionDetach + const ConsoleSessionKill + const ConsoleTabs + const ConsoleWrite + const CoreAddModulePath + const CoreModuleStats + const CoreReloadModules + const CoreSave + const CoreSetG + const CoreStop + const CoreThreadKill + const CoreThreadList + const CoreUnsetG + const CoreVersion + const DbAddWorkspace + const DbClients + const DbConnect + const DbCreds + const DbCurrentWorkspace + const DbDelClient + const DbDelHost + const DbDelNote + const DbDelService + const DbDelVuln + const DbDelWorkspace + const DbDisconnect + const DbDriver + const DbEvents + const DbGetClient + const DbGetHost + const DbGetNote + const DbGetRef + const DbGetService + const DbGetVuln + const DbGetWorkspace + const DbHosts + const DbImportData + const DbLoots + const DbNotes + const DbReportClient + const DbReportCred + const DbReportEvent + const DbReportHost + const DbReportLoot + const DbReportNote + const DbReportService + const DbReportVuln + const DbServices + const DbSetWorkspace + const DbStatus + const DbVulns + const DbWorkspaces + const JobInfo + const JobList + const JobStop + const ModuleAuxiliary + const ModuleCompatiblePayloads + const ModuleCompatibleSessions + const ModuleEncode + const ModuleEncodeFormats + const ModuleEncoders + const ModuleEvasion + const ModuleExecute + const ModuleExploits + const ModuleInfo + const ModuleNops + const ModuleOptions + const ModulePayloads + const ModulePost + const PluginLoad + const PluginLoaded + const PluginUnload + const SessionCompatibleModules + const SessionList + const SessionMeterpreterDirectorySeparator + const SessionMeterpreterRead + const SessionMeterpreterRunSingle + const SessionMeterpreterScript + const SessionMeterpreterSessionDetach + const SessionMeterpreterSessionKill + const SessionMeterpreterTabs + const SessionMeterpreterWrite + const SessionRingClear + const SessionRingLast + const SessionRingPut + const SessionRingRead + const SessionShellRead + const SessionShellUpgrade + const SessionShellWrite + const SessionStop + type PluginManager struct + func NewPluginManager(rpc RPCCaller) *PluginManager + func (m *PluginManager) List(ctx context.Context) ([]string, error) + func (m *PluginManager) Load(ctx context.Context, plugin string) error + func (m *PluginManager) Unload(ctx context.Context, plugin string) error + type RPCCaller interface + Call func(ctx context.Context, method MsfRpcMethod, args ...interface{}) (interface{}, error) + type RPCError struct + Class string + Message string + func (e *RPCError) Error() string + func (e *RPCError) Unwrap() error + type Service struct + Host string + Info string + Name string + Port int + Proto string + State string + type Session struct + Desc string + ExploitUUID string + Info string + SessionHost string + SessionPort int + TargetHost string + TunnelLocal string + TunnelPeer string + Type string + UUID string + Username string + ViaExploit string + ViaPayload string + Workspace string + type SessionManager struct + func NewSessionManager(rpc RPCCaller) *SessionManager + func (m *SessionManager) CompatibleModules(ctx context.Context, sid string) ([]string, error) + func (m *SessionManager) Get(ctx context.Context, sid string) (*Session, error) + func (m *SessionManager) List(ctx context.Context) (map[string]*Session, error) + func (m *SessionManager) Stop(ctx context.Context, sid string) error + type ShellSession struct + SID string + func NewShellSession(rpc RPCCaller, sid string) *ShellSession + func (s *ShellSession) Read(ctx context.Context) (string, error) + func (s *ShellSession) RunWithOutput(ctx context.Context, cmd string, endStrings []string, timeout time.Duration) (string, error) + func (s *ShellSession) Upgrade(ctx context.Context, lhost string, lport int) error + func (s *ShellSession) Write(ctx context.Context, data string) error + type VersionInfo struct + APIVersion string + RubyVersion string + Version string + type Vuln struct + Host string + Name string + Port int + Proto string + Refs string + type Workspace struct + Name string + type WorkspaceManager struct + func NewWorkspaceManager(rpc RPCCaller) *WorkspaceManager + func (m *WorkspaceManager) Add(ctx context.Context, name string) error + func (m *WorkspaceManager) Current(ctx context.Context) (*Workspace, error) + func (m *WorkspaceManager) Get(ctx context.Context, name string) (*Workspace, error) + func (m *WorkspaceManager) List(ctx context.Context) ([]string, error) + func (m *WorkspaceManager) Remove(ctx context.Context, name string) error Other modules containing this package github.com/jolovicdev/go-msf