Documentation
¶
Overview ¶
Config/types.go
Index ¶
- Constants
- Variables
- func Banner()
- func CheckErrs(err error) error
- func CloseOutput() error
- func Flag(Info *HostInfo)
- func GetPluginsForMode(mode string) []string
- func GetScanMode() string
- func GetText(key string, args ...interface{}) string
- func IPRange(c *net.IPNet) string
- func InitLogger()
- func InitOutput() error
- func IsICMPScan() bool
- func IsPortScan() bool
- func IsWebScan() bool
- func LogDebug(msg string)
- func LogError(errMsg string)
- func LogInfo(msg string)
- func LogSuccess(result string)
- func Parse(Info *HostInfo) error
- func ParseIP(host string, filename string, nohosts ...string) (hosts []string, err error)
- func ParseIPs(ip string) (hosts []string)
- func ParseInput(Info *HostInfo) error
- func ParsePass(Info *HostInfo) error
- func ParsePort(ports string) []int
- func ParsePortsFromString(portsStr string) []int
- func ParseScanMode(mode string)
- func ParseUser() error
- func RandInt(min, max int) int
- func Readfile(filename string) ([]string, error)
- func Readipfile(filename string) ([]string, error)
- func RegisterPlugin(name string, plugin ScanPlugin)
- func RemoveDuplicate(old []string) []string
- func SaveResult(result *ScanResult) error
- func SetLanguage()
- func Socks5Dialer(forward *net.Dialer) (proxy.Dialer, error)
- func WrapperTCP(network, address string, forward *net.Dialer) (net.Conn, error)
- func WrapperTcpWithTimeout(network, address string, timeout time.Duration) (net.Conn, error)
- type HostInfo
- type LogEntry
- type OutputManager
- type PocInfo
- type ResultType
- type ScanPlugin
- type ScanResult
- type ScanStatus
Constants ¶
View Source
const ( LogLevelAll = "ALL" // 显示所有级别日志 LogLevelError = "ERROR" // 仅显示错误日志 LogLevelInfo = "INFO" // 仅显示信息日志 LogLevelSuccess = "SUCCESS" // 仅显示成功日志 LogLevelDebug = "DEBUG" // 仅显示调试日志 )
定义系统支持的日志级别常量
View Source
const ( ModeAll = "All" // 全量扫描 ModeBasic = "Basic" // 基础扫描 ModeDatabase = "Database" // 数据库扫描 ModeWeb = "Web" // Web扫描 ModeService = "Service" // 服务扫描 ModeVul = "Vul" // 漏洞扫描 ModePort = "Port" // 端口扫描 ModeICMP = "ICMP" // ICMP探测 ModeLocal = "Local" // 本地信息收集 )
扫描模式常量 - 使用大写开头表示这是一个预设的扫描模式
View Source
const ( LangZH = "zh" // 中文 LangEN = "en" // 英文 LangJA = "ja" // 日文 LangRU = "ru" // 俄文 )
支持的语言类型
Variables ¶
View Source
var ( Outputfile string // 输出文件路径 OutputFormat string // 输出格式 )
View Source
var ( // 目标配置 Ports string ExcludePorts string // 原NoPorts ExcludeHosts string AddPorts string // 原PortAdd // 认证配置 Username string Password string Domain string SshKeyPath string // 原SshKey AddUsers string // 原UserAdd AddPasswords string // 原PassAdd // 扫描配置 ScanMode string // 原Scantype ThreadNum int // 原Threads //UseSynScan bool Timeout int64 = 3 LiveTop int DisablePing bool // 原NoPing UsePing bool // 原Ping Command string SkipFingerprint bool // 文件配置 HostsFile string // 原HostFile UsersFile string // 原Userfile PasswordsFile string // 原Passfile HashFile string // 原Hashfile PortsFile string // 原PortFile // Web配置 TargetURL string // 原URL URLsFile string // 原UrlFile URLs []string // 原Urls WebTimeout int64 = 5 HttpProxy string // 原Proxy Socks5Proxy string LocalMode bool // -local 本地模式 // POC配置 DisablePocScan bool //nopoc PocPath string Pocinfo PocInfo // Redis配置 RedisFile string RedisShell string DisableRedis bool // 原Noredistest // 爆破配置 DisableBrute bool // 原IsBrute BruteThreads int // 原BruteThread MaxRetries int // 最大重试次数 // 其他配置 RemotePath string // 原Path HashValue string // 原Hash HashValues []string // 原Hashs HashBytes [][]byte HostPort []string Shellcode string // 原SC EnableWmi bool // 原IsWmi // 输出配置 DisableSave bool // 禁止保存结果 Silent bool // 静默模式 NoColor bool // 禁用彩色输出 JsonFormat bool // JSON格式输出 LogLevel string // 日志输出级别 ShowProgress bool // 是否显示进度条 Language string // 语言 )
View Source
var ( UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36" Accept = "" /* 135-byte string literal not displayed */ DnsLog bool PocNum int PocFull bool CeyeDomain string ApiKey string Cookie string )
View Source
var ( // Num 表示待处理的总任务数量 Num int64 // End 表示已经完成的任务数量 End int64 )
全局变量定义
View Source
var AllPorts = "1-65535"
View Source
var DbPorts = "1433,1521,3306,5432,5672,6379,7687,9042,9093,9200,11211,27017,61616"
View Source
var DefaultMap = []string{
"GenericLines",
"GetRequest",
"TLSSessionReq",
"SSLSessionReq",
"ms-sql-s",
"JavaRMI",
"LDAPSearchReq",
"LDAPBindReq",
"oracle-tns",
"Socks5",
}
View Source
var MainPorts = "" /* 178-byte string literal not displayed */
View Source
var OutputMutex sync.Mutex
添加一个全局互斥锁来控制输出
View Source
var ParseIPErr = errors.New(GetText("parse_ip_error"))
View Source
var Passwords = []string{"123456", "admin", "admin123", "root", "", "pass123", "pass@123", "password", "Password", "P@ssword123", "123123", "654321", "111111", "123", "1", "admin@123", "Admin@123", "admin123!@#", "{user}", "{user}1", "{user}111", "{user}123", "{user}@123", "{user}_123", "{user}#123", "{user}@111", "{user}@2019", "{user}@123#4", "P@ssw0rd!", "P@ssw0rd", "Passw0rd", "qwe123", "12345678", "test", "test123", "123qwe", "123qwe!@#", "123456789", "123321", "666666", "a123456.", "123456~a", "123456!a", "000000", "1234567890", "8888888", "!QAZ2wsx", "1qaz2wsx", "abc123", "abc123456", "1qaz@WSX", "a11111", "a12345", "Aa1234", "Aa1234.", "Aa12345", "a123456", "a123123", "Aa123123", "Aa123456", "Aa12345.", "sysadmin", "system", "1qaz!QAZ", "2wsx@WSX", "qwe123!@#", "Aa123456!", "A123456s!", "sa123456", "1q2w3e", "Charge123", "Aa123456789", "elastic123"}
View Source
var PluginGroups = map[string][]string{ ModeAll: { "webtitle", "webpoc", "mysql", "mssql", "redis", "mongodb", "postgres", "oracle", "memcached", "elasticsearch", "rabbitmq", "kafka", "activemq", "cassandra", "neo4j", "ftp", "ssh", "telnet", "smb", "rdp", "vnc", "netbios", "ldap", "smtp", "imap", "pop3", "snmp", "modbus", "rsync", "ms17010", "smbghost", "smb2", "findnet", }, ModeBasic: { "webtitle", "ftp", "ssh", "smb", "findnet", }, ModeDatabase: { "mysql", "mssql", "redis", "mongodb", "postgres", "oracle", "memcached", "elasticsearch", "rabbitmq", "kafka", "activemq", "cassandra", "neo4j", }, ModeWeb: { "webtitle", "webpoc", }, ModeService: { "ftp", "ssh", "telnet", "smb", "rdp", "vnc", "netbios", "ldap", "smtp", "imap", "pop3", "modbus", "rsync", }, ModeVul: { "ms17010", "smbghost", "smb2", }, ModeLocal: { "localinfo", "minidump", "dcinfo", }, }
插件分类映射表 - 所有插件名使用小写
View Source
var PluginManager = make(map[string]ScanPlugin)
PluginManager 管理插件注册
View Source
var PortMap = map[int][]string{}/* 798 elements not displayed */
View Source
var ProgressBar *progressbar.ProgressBar
添加一个全局的进度条变量
View Source
var ServicePorts = "" /* 189-byte string literal not displayed */
View Source
var Userdict = map[string][]string{
"ftp": {"ftp", "admin", "www", "web", "root", "db", "wwwroot", "data"},
"mysql": {"root", "mysql"},
"mssql": {"sa", "sql"},
"smb": {"administrator", "admin", "guest"},
"rdp": {"administrator", "admin", "guest"},
"postgresql": {"postgres", "admin"},
"ssh": {"root", "admin"},
"mongodb": {"root", "admin"},
"oracle": {"sys", "system", "admin", "test", "web", "orcl"},
"telnet": {"root", "admin", "test"},
"elastic": {"elastic", "admin", "kibana"},
"rabbitmq": {"guest", "admin", "administrator", "rabbit", "rabbitmq", "root"},
"kafka": {"admin", "kafka", "root", "test"},
"activemq": {"admin", "root", "activemq", "system", "user"},
"ldap": {"admin", "administrator", "root", "cn=admin", "cn=administrator", "cn=manager"},
"smtp": {"admin", "root", "postmaster", "mail", "smtp", "administrator"},
"imap": {"admin", "mail", "postmaster", "root", "user", "test"},
"pop3": {"admin", "root", "mail", "user", "test", "postmaster"},
"zabbix": {"Admin", "admin", "guest", "user"},
"rsync": {"rsync", "root", "admin", "backup"},
"cassandra": {"cassandra", "admin", "root", "system"},
"neo4j": {"neo4j", "admin", "root", "test"},
}
View Source
var WebPorts = "" /* 1044-byte string literal not displayed */
Functions ¶
func GetPluginsForMode ¶
GetPluginsForMode 获取指定模式下的插件列表
func GetScanMode ¶
func GetScanMode() string
func IsICMPScan ¶
func IsICMPScan() bool
func ParsePortsFromString ¶
func SetLanguage ¶
func SetLanguage()
func Socks5Dialer ¶
Socks5Dialer 创建Socks5代理拨号器
func WrapperTCP ¶
WrapperTCP 根据配置创建TCP连接
Types ¶
type LogEntry ¶
type LogEntry struct { Level string // 日志级别: ERROR/INFO/SUCCESS/DEBUG Time time.Time // 日志时间 Content string // 日志内容 }
LogEntry 定义单条日志的结构
type OutputManager ¶
type OutputManager struct {
// contains filtered or unexported fields
}
OutputManager 输出管理器结构体
var ResultOutput *OutputManager
全局输出管理器
type ResultType ¶
type ResultType string
ResultType 定义结果类型
const ( HOST ResultType = "HOST" // 主机存活 PORT ResultType = "PORT" // 端口开放 SERVICE ResultType = "SERVICE" // 服务识别 VULN ResultType = "VULN" // 漏洞发现 )
type ScanPlugin ¶
type ScanPlugin struct { Name string // 插件名称 Ports []int // 关联的端口列表,空切片表示特殊扫描类型 ScanFunc func(*HostInfo) error // 扫描函数 }
ScanPlugin 定义扫描插件的结构
type ScanResult ¶
type ScanResult struct { Time time.Time `json:"time"` // 发现时间 Type ResultType `json:"type"` // 结果类型 Target string `json:"target"` // 目标(IP/域名/URL) Status string `json:"status"` // 状态描述 Details map[string]interface{} `json:"details"` // 详细信息 }
ScanResult 扫描结果结构
type ScanStatus ¶
type ScanStatus struct {
// contains filtered or unexported fields
}
ScanStatus 用于记录和管理扫描状态的结构体
Click to show internal directories.
Click to hide internal directories.