Documentation
¶
Index ¶
- type Config
- func New(extype ExploitType, supportedC2 []c2.Impl, product string, cve string, ...) *Configdeprecated
- func NewLocal(extype ExploitType, supportedC2 []c2.Impl, product string, cve string) *Configdeprecated
- func NewLocalExploit(implemented ImplementedFeatures, extype ExploitType, supportedC2 []c2.Impl, ...) *Config
- func NewRemoteExploit(implemented ImplementedFeatures, extype ExploitType, supportedC2 []c2.Impl, ...) *Config
- func (conf *Config) CreateBoolFlag(name string, value bool, usage string)
- func (conf *Config) CreateBoolVarFlag(param *bool, name string, value bool, usage string)
- func (conf *Config) CreateIntFlag(name string, value int, usage string)
- func (conf *Config) CreateIntVarFlag(param *int, name string, value int, usage string)
- func (conf *Config) CreateStringFlag(name string, value string, usage string)
- func (conf *Config) CreateStringVarFlag(param *string, name string, value string, usage string)
- func (conf *Config) CreateUintFlag(name string, value uint, usage string)
- func (conf *Config) CreateUintVarFlag(param *uint, name string, value uint, usage string)
- func (conf *Config) GetBoolFlag(name string) bool
- func (conf *Config) GetIntFlag(name string) int
- func (conf *Config) GetStringFlag(name string) string
- func (conf *Config) GetUintFlag(name string) uint
- func (conf *Config) InitFlagsStructs()
- func (conf *Config) ResolveC2Payload() c2.Impl
- type ExploitType
- type ImplementedFeatures
- type RhostTriplet
- type SSLSupport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // implemented features describes which three stages the exploit implements Impl ImplementedFeatures // the vendor of the targeted product Vendor string // the targeted products Products []string // A combination of the Vendor and Products strings Product string // the CPE for the targeted product CPE []string // the CVE being tested CVE string // the protocol being targeted Protocol string // the type of exploit being executed ExType ExploitType // the c2 supported by the exploit SupportedC2 []c2.Impl StringFlagsMap map[string]*string IntFlagsMap map[string]*int UintFlagsMap map[string]*uint BoolFlagsMap map[string]*bool // target host, the target address/name the exploit will work on Rhost string // target port, the target port the exploit will work on Rport int // a list of specific targets RhostsNTuple []RhostTriplet // local host for remote exploits Lhost string // local port Lport int // bind port Bport int // indicates if the framework should autodetect ssl/plain DetermineSSL bool // indicates if ssl is used in comms SSL bool // indicates if we run the target verify DoVerify bool // indicates if we run the version check DoVersionCheck bool // indicates if we run the exploit DoExploit bool // the user requested c2 to use C2Type c2.Impl // C2 server timeout C2Timeout int // Indicates if the c2 server will be handled elsewhere ThirdPartyC2Server bool // The database we are working with DBName string // File format template FileTemplateData string // File format exploit output FileFormatFilePath string }
The config struct contains a mix of module specified configurations and user specified configurations. The Config struct is first generated by the exploit implementation and then modified by option parsing.
func NewLocalExploit ¶ added in v1.24.0
func NewLocalExploit(implemented ImplementedFeatures, extype ExploitType, supportedC2 []c2.Impl, vendor string, product []string, cpe []string, cve string, ) *Config
Defines a new remote exploit and associates with CVE/Product/Protocol metadata. Usage example:.
func NewRemoteExploit ¶ added in v1.24.0
func NewRemoteExploit(implemented ImplementedFeatures, extype ExploitType, supportedC2 []c2.Impl, vendor string, product []string, cpe []string, cve string, protocol string, defaultPort int, ) *Config
Defines a new remote exploit and associates with CVE/Product/Protocol metadata. Usage example:
conf := config.NewRemoteExploit( config.ImplementedFeatures{AssetDetection: true, VersionScanning: true, Exploitation: true}, config.CodeExecution, []c2.Impl{c2.SimpleShellServer}, "Atlassian", []string{"Confluence"}, []string{"cpe:2.3:a:atlassian:confluence"}, "CVE-2023-22527", "HTTP", 8090)
func (*Config) CreateBoolFlag ¶ added in v1.29.0
Create a command line flag for the bool var "name" with the default value of "value" and store the result locally.
func (*Config) CreateBoolVarFlag ¶ added in v1.29.0
Create a command line flag for the bool var "name" with the default value of "value" and store the result locally *using an external "param" pointer*.
func (*Config) CreateIntFlag ¶ added in v1.29.0
Create a command line flag for the int var "name" with the default value of "value" and store the result locally.
func (*Config) CreateIntVarFlag ¶ added in v1.29.0
Create a command line flag for the int var "name" with the default value of "value" and store the result locally *using an external "param" pointer*.
func (*Config) CreateStringFlag ¶ added in v1.29.0
Create a command line flag for the string var "name" with the default value of "value" and store the result locally.
func (*Config) CreateStringVarFlag ¶ added in v1.29.0
Create a command line flag for the string var "name" with the default value of "value" and store the result locally *using an external "param" pointer*.
func (*Config) CreateUintFlag ¶ added in v1.29.0
Create a command line flag for the uint var "name" with the default value of "value" and store the result locally.
func (*Config) CreateUintVarFlag ¶ added in v1.29.0
Create a command line flag for the uint var "name" with the default value of "value" and store the result locally *using an external "param" pointer*.
func (*Config) GetBoolFlag ¶ added in v1.29.0
Fetch the configured uint value for "name".
func (*Config) GetIntFlag ¶ added in v1.29.0
Fetch the configured uint value for "name".
func (*Config) GetStringFlag ¶ added in v1.29.0
Fetch the configured string value for "name".
func (*Config) GetUintFlag ¶ added in v1.29.0
Fetch the configured uint value for "name".
func (*Config) InitFlagsStructs ¶ added in v1.29.0
func (conf *Config) InitFlagsStructs()
func (*Config) ResolveC2Payload ¶ added in v1.30.1
Some C2 (ShellTunnel) don't actually care how the payload is generated, but the underlying C2 might be implied depending on how the individual exploit has been developed. It is certainly not a requirement to call this function but it can help simplify the handling of secure shell vs insecure.
type ExploitType ¶
type ExploitType int
const ( CodeExecution ExploitType = 0 InformationDisclosure ExploitType = 1 Webshell ExploitType = 2 FileFormat ExploitType = 3 Local ExploitType = 4 )
func (ExploitType) String ¶ added in v1.25.0
func (eType ExploitType) String() string
Convert ExploitType to String.
type ImplementedFeatures ¶ added in v1.24.0
type RhostTriplet ¶ added in v1.0.14
type RhostTriplet struct { Rhost string Rport int SSL SSLSupport }
type SSLSupport ¶ added in v1.0.14
type SSLSupport int
const ( SSLDisabled SSLSupport = 0 SSLEnabled SSLSupport = 1 SSLAutodiscover SSLSupport = 2 )