config

package
v3.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const Version = "3.0.5"

Variables

View Source
var (
	OOBCeyeio   = "ceyeio"
	OOBDnslogcn = "dnslogcn"
	OOBAlphalog = "alphalog"
	OOBXray     = "xray"
)

Functions

func BannerAnimate

func BannerAnimate(u *AfrogUpdate)

func EngineV

func EngineV(u *AfrogUpdate) string

func InitBanner

func InitBanner()

func IsOOBAdapter added in v3.0.2

func IsOOBAdapter(oob string) bool

func PocV

func PocV(u *AfrogUpdate) string

func ShowBanner

func ShowBanner(u *AfrogUpdate)

func ShowUpgradeBanner

func ShowUpgradeBanner(au *AfrogUpdate)

func ShowVersion

func ShowVersion()

func WriteConfiguration

func WriteConfiguration(config *Config, configFile string) error

WriteConfiguration writes the updated afrog configuration to disk

Types

type AfrogUpdate

type AfrogUpdate struct {
	HomeDir             string
	CurrVersion         string
	RemoteVersion       string
	LastestVersion      string
	LastestAfrogVersion string
	IsUpdatePocs        bool
}

func NewAfrogUpdate

func NewAfrogUpdate(updatePoc bool) (*AfrogUpdate, error)

func (*AfrogUpdate) AfrogUpdatePocs

func (u *AfrogUpdate) AfrogUpdatePocs() (string, error)

func (*AfrogUpdate) CheckAfrogUpdate

func (u *AfrogUpdate) CheckAfrogUpdate() (bool, error)

func (*AfrogUpdate) Download

func (u *AfrogUpdate) Download() error

func (*AfrogUpdate) Unzip

func (u *AfrogUpdate) Unzip(src string) error

type Alphalog added in v3.0.2

type Alphalog struct {
	Domain string `yaml:"domain"`
	ApiUrl string `yaml:"api_url"`
}

type Ceye

type Ceye struct {
	ApiKey string `yaml:"api-key"`
	Domain string `yaml:"domain"`
}

type Config

type Config struct {
	ServerAddress string     `yaml:"server"`
	Reverse       Reverse    `yaml:"reverse"`
	Webhook       Webhook    `yaml:"webhook"`
	Cyberspace    Cyberspace `yaml:"cyberspace"`
}

Config is a afrog-config.yaml catalog helper implementation

func NewConfig

func NewConfig(configFile string) (*Config, error)

Create and initialize afrog-config.yaml configuration info

func ReadConfiguration

func ReadConfiguration(configFile string) (*Config, error)

ReadConfiguration reads the afrog configuration file from disk.

func (*Config) GetConfigPath

func (c *Config) GetConfigPath() string

type ConfigHttp

type ConfigHttp struct {
	Proxy               string `yaml:"proxy"`
	DialTimeout         int32  `yaml:"dial_timeout"`
	ReadTimeout         string `yaml:"read_timeout"`
	WriteTimeout        string `yaml:"write_timeout"`
	MaxRedirect         int32  `yaml:"max_redirect"`
	MaxIdle             string `yaml:"max_idle"`
	Concurrency         int    `yaml:"concurrency"`
	MaxConnsPerHost     int    `yaml:"max_conns_per_host"`
	MaxResponseBodySize int    `yaml:"max_responsebody_sizse"`
	UserAgent           string `yaml:"user_agent"`
}

type Cyberspace

type Cyberspace struct {
	ZoomEyes []string `yaml:"zoom_eyes"`
}

type Dingtalk

type Dingtalk struct {
	Tokens    []string `yaml:"tokens"`
	AtMobiles []string `yaml:"at_mobiles"`
	AtAll     bool     `yaml:"at_all"`
	Range     string   `yaml:"range"`
}

type Dnslogcn added in v3.0.2

type Dnslogcn struct {
	Domain string `yaml:"domain"`
}

type Eye

type Eye struct {
	Host   string `yaml:"host"`
	Token  string `yaml:"token"`
	Domain string `yaml:"domain"`
}

type Jndi

type Jndi struct {
	JndiAddress string `yaml:"jndi_address"`
	LdapPort    string `yaml:"ldap_port"`
	ApiPort     string `yaml:"api_port"`
}

type Options

type Options struct {
	// afrog-config.yaml configuration file
	Config *Config

	// Pocs Directory
	PocsDirectory utils.StringSlice

	Targets sliceutil.SafeSlice

	// target URLs/hosts to scan
	Target goflags.StringSlice

	// list of target URLs/hosts to scan (one per line)
	TargetsFile string

	// PoC file or directory to scan
	PocFile string

	// Append PoC file or directory to scan
	AppendPoc goflags.StringSlice

	// show afrog-pocs list
	PocList bool

	// show a afrog-pocs detail
	PocDetail string

	ExcludePocs     goflags.StringSlice
	ExcludePocsFile string

	// file to write output to (optional), support format: html
	Output string

	// file to write output to (optional), support format: json
	Json string

	// file to write output to (optional), support format: json
	JsonAll string

	// search PoC by keyword , eg: -s tomcat
	Search string

	SearchKeywords []string

	// no progress if silent is true
	Silent bool

	// pocs to run based on severity. Possible values: info, low, medium, high, critical
	Severity string

	SeverityKeywords []string

	// update afrog-pocs
	UpdatePocs bool

	// update afrog version
	Update bool

	// Disable update check
	DisableUpdateCheck bool

	MonitorTargets bool

	// POC Execution Duration Tracker
	PocExecutionDurationMonitor bool

	// Single Vulnerability Stopper
	VulnerabilityScannerBreakpoint bool

	// Scan count num(targets * allpocs)
	Count int

	// Current Scan count num
	CurrentCount uint32

	// Thread lock
	OptLock sync.Mutex

	// maximum number of requests to send per second (default 150)
	RateLimit int

	// maximum number of afrog-pocs to be executed in parallel (default 25)
	Concurrency int

	// maximum number of requests to send per second (default 150)
	ReverseRateLimit int

	// maximum number of afrog-pocs to be executed in parallel (default 25)
	ReverseConcurrency int

	// Smart Control Concurrency
	Smart bool

	// number of times to retry a failed request (default 1)
	Retries int

	//
	MaxHostError int

	// time to wait in seconds before timeout (default 10)
	Timeout int

	// http/socks5 proxy to use
	Proxy string

	MaxRespBodySize int

	// afrog process count (target total × pocs total)
	ProcessTotal uint32

	DisableOutputHtml bool

	OJ *output.OutputJson

	Header goflags.StringSlice

	Version bool

	Web bool

	// webhook
	Dingtalk bool

	// resume
	Resume string

	// debug
	Debug bool

	// sort
	// -sort severity (default low, info, medium, high, critical)
	// -sort a-z
	Sort string

	// cyberspace search
	Cyberspace string

	// cyberspace search keywords
	Query string

	// query count
	QueryCount int

	// oobadapter, eg: `-oob ceyeio` or `-oob dnslogcn` or `-oob alphalog`
	OOB       string
	OOBKey    string
	OOBDomain string
	OOBApiUrl string

	// path to the afrog configuration file
	ConfigFile string
}

func NewOptions

func NewOptions() (*Options, error)

func (*Options) CheckPocKeywords

func (o *Options) CheckPocKeywords(id, name string) bool

func (*Options) CheckPocSeverityKeywords

func (o *Options) CheckPocSeverityKeywords(severity string) bool

func (*Options) CreatePocList

func (o *Options) CreatePocList() []poc.Poc

func (*Options) FilterPocSeveritySearch

func (o *Options) FilterPocSeveritySearch(pocId, pocInfoName, severity string) bool

func (*Options) PrintPocList

func (o *Options) PrintPocList() error

func (*Options) ReadPocDetail

func (o *Options) ReadPocDetail()

func (*Options) ReversePoCs

func (o *Options) ReversePoCs(allpocs []poc.Poc) ([]poc.Poc, []poc.Poc)

func (*Options) SetOOBAdapter added in v3.0.2

func (opt *Options) SetOOBAdapter(oob string)

func (*Options) SetSearchKeyword

func (o *Options) SetSearchKeyword() bool

func (*Options) SetSeverityKeyword

func (o *Options) SetSeverityKeyword() bool

func (*Options) SmartControl

func (o *Options) SmartControl()

func (*Options) VerifyOptions

func (opt *Options) VerifyOptions() error

type POCSlices

type POCSlices []poc.Poc

定义包含 POC 结构的切片

func (POCSlices) Len

func (s POCSlices) Len() int

实现 sort.Interface 接口的 Len、Less 和 Swap 方法

func (POCSlices) Less

func (s POCSlices) Less(i, j int) bool

func (POCSlices) Swap

func (s POCSlices) Swap(i, j int)

type Reverse

type Reverse struct {
	Alphalog Alphalog `yaml:"alphalog"`
	Ceye     Ceye     `yaml:"ceye"`
	Dnslogcn Dnslogcn `yaml:"dnslogcn"`
	Eye      Eye      `yaml:"eye"`
	Jndi     Jndi     `yaml:"jndi"`
	Xray     Xray     `yaml:"xray"`
}

type Webhook

type Webhook struct {
	Dingtalk Dingtalk `yaml:"dingtalk"`
}

type Xray added in v3.0.2

type Xray struct {
	XToken string `yaml:"x_token"`
	Domain string `yaml:"domain"`
	ApiUrl string `yaml:"api_url"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL