Documentation ¶
Index ¶
- Constants
- Variables
- func CheckHTTPC2ConfigErrors(config *clientpb.HTTPC2Config) error
- func GenerateDefaultHTTPC2Config() *clientpb.HTTPC2Config
- func GenerateDefaultHTTPC2Cookies() []*clientpb.HTTPC2Cookie
- func GenerateHTTPC2DefaultPathSegment() []*clientpb.HTTPC2PathSegment
- func GetDatabaseConfigPath() string
- func GetServerConfigPath() string
- func LoadCrackConfig() (*clientpb.CrackConfig, error)
- func SaveCrackConfig(config *clientpb.CrackConfig) error
- type DNSJobConfig
- type DaemonConfig
- type DatabaseConfig
- type HTTPJobConfig
- type JobConfig
- type LogConfig
- type MTLSJobConfig
- type MultiplayerJobConfig
- type ServerConfig
- type WGJobConfig
- type WatchTowerConfig
Constants ¶
const ( // Sqlite - SQLite protocol Sqlite = "sqlite3" // Postgres - Postgresql protocol Postgres = "postgresql" // MySQL - MySQL protocol MySQL = "mysql" )
const ( DefaultChromeBaseVer = 106 DefaultMacOSVer = "10_15_7" )
Variables ¶
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") )
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", } )
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
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 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
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