configs

package
v1.0.9 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2024 License: GPL-3.0 Imports: 13 Imported by: 0

README

Configs

Small wrapper around the configs directory

Documentation

Index

Constants

View Source
const (
	// Sqlite - SQLite protocol
	Sqlite = "sqlite3"
	// Postgres - Postgresql protocol
	Postgres = "postgresql"
	// MySQL - MySQL protocol
	MySQL = "mysql"
)
View Source
const (
	DefaultChromeBaseVer = 106
	DefaultMacOSVer      = "10_15_7"
)

Variables

View Source
var (
	ErrMissingCookies             = errors.New("server config must specify at least one cookie")
	ErrMissingStagerFileExt       = errors.New("implant config must specify a stager_file_ext")
	ErrTooFewStagerFiles          = errors.New("implant config must specify at least one stager_files value")
	ErrMissingPollFileExt         = errors.New("implant config must specify a poll_file_ext")
	ErrTooFewPollFiles            = errors.New("implant config must specify at least one poll_files value")
	ErrMissingKeyExchangeFileExt  = errors.New("implant config must specify a key_exchange_file_ext")
	ErrTooFewKeyExchangeFiles     = errors.New("implant config must specify at least one key_exchange_files value")
	ErrMissingCloseFileExt        = errors.New("implant config must specify a close_file_ext")
	ErrTooFewCloseFiles           = errors.New("implant config must specify at least one close_files value")
	ErrMissingStartSessionFileExt = errors.New("implant config must specify a start_session_file_ext")
	ErrMissingSessionFileExt      = errors.New("implant config must specify a session_file_ext")
	ErrTooFewSessionFiles         = errors.New("implant config must specify at least one session_files value")
	ErrNonUniqueFileExt           = errors.New("implant config must specify unique file extensions")
	ErrQueryParamNameLen          = errors.New("implant config url query parameter names must be 3 or more characters")
	ErrDuplicateStageExt          = errors.New("stager extension is already used in another C2 profile")
	ErrDuplicateStartSessionExt   = errors.New("start session extension is already used in another C2 profile")
	ErrDuplicateC2ProfileName     = errors.New("C2 Profile name is already in use")
	ErrUserAgentIllegalCharacters = errors.New("user agent cannot contain the ` character")
)
View Source
var (

	// Pro-tip: You can use ChatGPT to generate this stuff for you!
	Cookies = []string{
		"JSESSIONID",
		"rememberMe",
		"authToken",
		"userId",
		"userName",
		"language",
		"theme",
		"locale",
		"currency",
		"lastVisited",
		"loggedIn",
		"userRole",
		"cartId",
		"accessToken",
		"refreshToken",
		"consent",
		"notificationPreference",
		"userSettings",
		"sessionTimeout",
		"error",
		"errorMessage",
		"successMessage",
		"infoMessage",
		"warningMessage",
		"errorMessageKey",
		"successMessageKey",
		"infoMessageKey",
		"warningMessageKey",
		"sessionID",
		"userID",
		"username",
		"authToken",
		"rememberMe",
		"language",
		"theme",
		"locale",
		"currency",
		"lastVisit",
		"loggedIn",
		"userRole",
		"cartID",
		"accessToken",
		"refreshToken",
		"consent",
		"notificationPref",
		"userSettings",
		"sessionTimeout",
		"visitedPages",
		"favoriteItems",
		"searchHistory",
		"basketID",
		"promoCode",
		"campaignID",
		"referrer",
		"source",
		"utmCampaign",
		"utmSource",
		"utmMedium",
		"utmContent",
		"utmTerm",
		"deviceType",
		"OSVersion",
		"browser",
		"screenResolution",
		"timezone",
		"firstVisit",
		"feedbackGiven",
		"surveyID",
		"errorAlerts",
		"successAlerts",
		"infoAlerts",
		"warningAlerts",
		"darkMode",
		"emailSubscription",
		"privacyConsent",
		"PHPSESSID",
		"SID",
		"SSID",
		"APISID",
		"csrf-state",
		"AWSALBCORS",
	}
	PollFiles = []string{}/* 109 elements not displayed */

	PollPaths = []string{
		"js",
		"umd",
		"assets",
		"bundle",
		"bundles",
		"scripts",
		"script",
		"javascripts",
		"javascript",
		"jscript",
		"js",
		"scripts",
		"assets",
		"src",
		"lib",
		"public",
		"static",
		"app",
		"www",
		"dist",
		"frontend",
		"client",
		"server",
		"resources",
		"jsfiles",
		"javascript",
		"jslib",
		"jslibraries",
		"jsdir",
		"jsfolder",
		"jsfilesdir",
		"jsfilesfolder",
		"scriptsdir",
		"assetsjs",
		"srcjs",
		"srcscripts",
		"libjs",
		"libscripts",
		"publicjs",
		"publicscripts",
		"staticjs",
		"staticscripts",
		"appjs",
		"appscripts",
		"distjs",
		"distscripts",
		"frontendjs",
		"frontendscripts",
		"clientjs",
		"clientscripts",
		"serverjs",
		"resourcesjs",
		"jsfilesjs",
		"jsfilesscripts",
		"javascriptjs",
		"jslibscripts",
		"assetsjs",
		"assetsjsscripts",
		"assetsjs",
		"assetsscripts",
		"srcjs",
		"srcjsscripts",
		"srcscripts",
		"srcscripts",
		"libjs",
		"libjsscripts",
	}
	SessionFiles = []string{
		"login",
		"signin",
		"api",
		"samples",
		"rpc",
		"index",
		"admin",
		"register",
		"sign-up",
		"index",
		"config",
		"functions",
		"database",
		"header",
		"footer",
		"login",
		"register",
		"logout",
		"profile",
		"dashboard",
		"home",
		"about",
		"contact",
		"services",
		"utils",
		"common",
		"init",
		"auth",
		"session",
		"error",
		"handler",
		"api",
		"ajax",
		"form",
		"validation",
		"upload",
		"download",
		"report",
		"admin",
		"user",
		"account",
		"settings",
		"utility",
		"script",
		"mailer",
		"cron",
		"cache",
		"template",
		"page",
		"model",
		"view",
		"controller",
		"middleware",
		"router",
		"route",
		"helper",
		"library",
		"plugin",
		"widget",
		"widgetized",
		"search",
		"filter",
		"sort",
		"pagination",
		"backup",
		"restore",
		"upgrade",
		"install",
		"uninstall",
		"upgrade",
		"maintenance",
		"sitemap",
		"rss",
		"atom",
		"xml",
		"json",
		"rss",
		"log",
		"debug",
		"test",
		"mock",
		"stub",
		"mockup",
		"mockdata",
		"temp",
		"tmp",
		"backup",
		"old",
		"new",
		"demo",
		"example",
		"sample",
		"prototype",
		"backup",
		"import",
		"export",
		"sync",
		"async",
		"validate",
		"authenticate",
	}
	SessionPaths = []string{
		"php",
		"api",
		"upload",
		"actions",
		"rest",
		"v1",
		"auth",
		"authenticate",
		"oauth",
		"oauth2",
		"oauth2callback",
		"database",
		"db",
		"namespaces",
		"home",
		"about",
		"contact",
		"services",
		"products",
		"blog",
		"news",
		"events",
		"gallery",
		"portfolio",
		"shop",
		"store",
		"login",
		"register",
		"profile",
		"dashboard",
		"account",
		"settings",
		"faq",
		"help",
		"support",
		"download",
		"upload",
		"subscribe",
		"unsubscribe",
		"search",
		"sitemap",
		"privacy",
		"terms",
		"conditions",
		"policy",
		"cookie",
		"checkout",
		"cart",
		"order",
		"payment",
		"confirmation",
		"feedback",
		"survey",
		"testimonial",
		"newsletter",
		"membership",
		"forum",
		"signin",
		"signup",
		"forum",
		"contact-us",
		"pricing",
		"donate",
		"partners",
		"team",
		"career",
		"join-us",
		"downloads",
		"events",
		"explore",
		"insights",
		"newsroom",
		"press",
		"media",
		"blog",
		"articles",
		"research",
		"library",
		"resources",
		"inspiration",
		"academy",
		"labs",
		"developers",
		"api",
		"integration",
		"status",
		"changelog",
		"roadmap",
		"solutions",
		"clients",
		"testimonials",
		"success-stories",
		"clients",
		"partners",
		"404",
		"500",
		"error",
		"maintenance",
		"upgrade",
	}
	CloseFiles = []string{}/* 103 elements not displayed */

	ClosePaths = []string{
		"static",
		"www",
		"assets",
		"images",
		"icons",
		"image",
		"icon",
		"png",
		"images",
		"photos",
		"pictures",
		"pics",
		"gallery",
		"media",
		"uploads",
		"assets",
		"img",
		"graphics",
		"visuals",
		"media-library",
		"artwork",
		"design",
		"diagrams",
		"icons",
		"logos",
		"banners",
		"thumbnails",
		"avatars",
		"screenshots",
		"headers",
		"footers",
		"backgrounds",
		"buttons",
		"illustrations",
		"diagrams",
		"photoshoots",
		"picoftheday",
		"imagebank",
		"album",
		"memories",
		"memes",
		"snapshots",
		"portraits",
		"posters",
		"renders",
		"cover-photos",
		"wallpapers",
		"photography",
		"visualizations",
		"moodboard",
		"infographics",
		"renders",
		"icons",
		"layers",
		"picgallery",
		"picdump",
		"imagelibrary",
	}
	StagerFiles = []string{
		"NewGen-Files-29c524", "NewGen-Regular.subset.bbc33fb47cf6",
		"NewGen-Bold.subset.c96e4968c68", "NewGen-Regular",
		"NewGen-Medium",
	}
	StagerPaths = []string{
		"static", "assets", "fonts", "locales",
	}
)
View Source
var (
	// ErrInvalidDialect - An invalid dialect was specified
	ErrInvalidDialect = errors.New("invalid SQL Dialect")
)

Functions

func CheckHTTPC2ConfigErrors

func CheckHTTPC2ConfigErrors(config *clientpb.HTTPC2Config) error

CheckHTTPC2ConfigErrors - Get the current HTTP C2 config

func GenerateDefaultHTTPC2Config

func GenerateDefaultHTTPC2Config() *clientpb.HTTPC2Config

func GenerateDefaultHTTPC2Cookies

func GenerateDefaultHTTPC2Cookies() []*clientpb.HTTPC2Cookie

func GenerateHTTPC2DefaultPathSegment

func GenerateHTTPC2DefaultPathSegment() []*clientpb.HTTPC2PathSegment

func GetDatabaseConfigPath

func GetDatabaseConfigPath() string

GetDatabaseConfigPath - File path to config.json

func GetServerConfigPath

func GetServerConfigPath() string

GetServerConfigPath - File path to config.json

func LoadCrackConfig

func LoadCrackConfig() (*clientpb.CrackConfig, error)

LoadCrackConfig - Get config value

func SaveCrackConfig

func SaveCrackConfig(config *clientpb.CrackConfig) error

Save - Save config file to disk

Types

type DNSJobConfig

type DNSJobConfig struct {
	Domains    []string `json:"domains"`
	Canaries   bool     `json:"canaries"`
	Host       string   `json:"host"`
	Port       uint16   `json:"port"`
	JobID      string   `json:"job_id"`
	EnforceOTP bool     `json:"enforce_otp"`
}

DNSJobConfig - Persistent DNS job config

type DaemonConfig

type DaemonConfig struct {
	Host      string `json:"host"`
	Port      int    `json:"port"`
	Tailscale bool   `json:"tailscale"`
}

DaemonConfig - Configure daemon mode

type DatabaseConfig

type DatabaseConfig struct {
	Dialect  string `json:"dialect"`
	Database string `json:"database"`
	Username string `json:"username"`
	Password string `json:"password"`
	Host     string `json:"host"`
	Port     uint16 `json:"port"`

	Params map[string]string `json:"params"`

	MaxIdleConns int `json:"max_idle_conns"`
	MaxOpenConns int `json:"max_open_conns"`

	LogLevel string `json:"log_level"`
}

DatabaseConfig - Server config

func GetDatabaseConfig

func GetDatabaseConfig() *DatabaseConfig

GetDatabaseConfig - Get config value

func (*DatabaseConfig) DSN

func (c *DatabaseConfig) DSN() (string, error)

DSN - Get the db connections string https://github.com/go-sql-driver/mysql#examples

func (*DatabaseConfig) Save

func (c *DatabaseConfig) Save() error

Save - Save config file to disk

type HTTPJobConfig

type HTTPJobConfig struct {
	Domain          string `json:"domain"`
	Host            string `json:"host"`
	Port            uint16 `json:"port"`
	Secure          bool   `json:"secure"`
	Website         string `json:"website"`
	Cert            []byte `json:"cert"`
	Key             []byte `json:"key"`
	ACME            bool   `json:"acme"`
	JobID           string `json:"job_id"`
	EnforceOTP      bool   `json:"enforce_otp"`
	LongPollTimeout int64  `json:"long_poll_timeout"`
	LongPollJitter  int64  `json:"long_poll_jitter"`
	RandomizeJARM   bool   `json:"randomize_jarm"`
}

HTTPJobConfig - Persistent HTTP job config

type JobConfig

type JobConfig struct {
	Multiplayer []*MultiplayerJobConfig `json:"multiplayer"`
	MTLS        []*MTLSJobConfig        `json:"mtls,omitempty"`
	WG          []*WGJobConfig          `json:"wg,omitempty"`
	DNS         []*DNSJobConfig         `json:"dns,omitempty"`
	HTTP        []*HTTPJobConfig        `json:"http,omitempty"`
}

JobConfig - Restart Jobs on Load

type LogConfig

type LogConfig struct {
	Level              int  `json:"level"`
	GRPCUnaryPayloads  bool `json:"grpc_unary_payloads"`
	GRPCStreamPayloads bool `json:"grpc_stream_payloads"`
	TLSKeyLogger       bool `json:"tls_key_logger"`
}

LogConfig - Server logging config

type MTLSJobConfig

type MTLSJobConfig struct {
	Host  string `json:"host"`
	Port  uint16 `json:"port"`
	JobID string `json:"job_id"`
}

MTLSJobConfig - Per-type job configs

type MultiplayerJobConfig

type MultiplayerJobConfig struct {
	Host      string `json:"host"`
	Port      uint16 `json:"port"`
	JobID     string `json:"job_id"`
	Tailscale bool   `json:"tailscale"`
}

type ServerConfig

type ServerConfig struct {
	DaemonMode   bool              `json:"daemon_mode"`
	DaemonConfig *DaemonConfig     `json:"daemon"`
	Logs         *LogConfig        `json:"logs"`
	Watchtower   *WatchTowerConfig `json:"watch_tower"`
	GoProxy      string            `json:"go_proxy"`

	// 'GOOS/GOARCH' -> CC path
	CC  map[string]string `json:"cc"`
	CXX map[string]string `json:"cxx"`
}

ServerConfig - Server config

func GetServerConfig

func GetServerConfig() *ServerConfig

GetServerConfig - Get config value

func (*ServerConfig) Save

func (c *ServerConfig) Save() error

Save - Save config file to disk

type WGJobConfig

type WGJobConfig struct {
	Port    uint16 `json:"port"`
	NPort   uint16 `json:"nport"`
	KeyPort uint16 `json:"key_port"`
	JobID   string `json:"job_id"`
}

WGJobConfig - Per-type job configs

type WatchTowerConfig

type WatchTowerConfig struct {
	VTApiKey          string `json:"vt_api_key"`
	XForceApiKey      string `json:"xforce_api_key"`
	XForceApiPassword string `json:"xforce_api_password"`
}

WatchTowerConfig - Watch Tower job config

Jump to

Keyboard shortcuts

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