workerapi

package
v0.0.0-...-7ef1397 Latest Latest
Warning

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

Go to latest
Published: Mar 6, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IPNumberPerSubTask     = 10
	DomainNumberPerSubTask = 20
)

Variables

Functions

func BatchScan

func BatchScan(taskId, mainTaskId, configJSON string) (result string, err error)

BatchScan 批量扫描任务 先对少量端口进行扫描(存活探测),提取扫描结果IP的C段作为,再进行详细扫描 与portscan参数和过程相同;存活探测需扫描的port与资产详细扫描的port,用 “|” 进行分隔

func CheckTaskStatus

func CheckTaskStatus(taskId string) (ok bool, result string, err error)

CheckTaskStatus 检查任务状态:是否不存在或取消

func DomainScan

func DomainScan(taskId, mainTaskId, configJSON string) (result string, err error)

DomainScan 域名任务

func FailedTask

func FailedTask(msg string) string

FailedTask 任务执行失败的状态的结果

func Fingerprint

func Fingerprint(taskId, mainTaskId, configJSON string) (result string, err error)

Fingerprint 指纹识别任务,将所有指纹识别任务整合后,可由worker将端口扫描与域名收集后的结果进行二次拆分为多个任务,提高指纹识别效率

func Fofa

func Fofa(taskId, mainTaskId, configJSON string) (result string, err error)

Fofa Fofa任务

func Hunter

func Hunter(taskId, mainTaskId, configJSON string) (result string, err error)

Hunter Hunter

func ICPQuery

func ICPQuery(taskId, mainTaskId, configJSON string) (result string, err error)

ICPQuery ICP备案查询任务

func IPLocation

func IPLocation(taskId, mainTaskId, configJSON string) (result string, err error)

IPLocation IP归属任务

func MakeSubTaskTarget

func MakeSubTaskTarget(portScanResult *portscan.Result, domainScanResult *domainscan.Result) (ipTarget []map[string][]int, domainTarget []map[string]struct{})

MakeSubTaskTarget 根据端口及域名扫描结果,根据设置的拆分规模,生成指纹识别等子任务

func NewFingerprintTask

func NewFingerprintTask(taskId string, mainTaskId string, portScanResult *portscan.Result, domainScanResult *domainscan.Result, config FingerprintTaskConfig) (result string, err error)

NewFingerprintTask 根据端口及域名扫描结果,根据设置的拆分规模,生成指纹识别子任务

func ParseConfig

func ParseConfig(configJSON string, config interface{}) (err error)

ParseConfig 解析任务执行的参数

func PocScan

func PocScan(taskId, mainTaskId, configJSON string) (result string, err error)

PocScan 漏洞验证任务

func PortScan

func PortScan(taskId, mainTaskId, configJSON string) (result string, err error)

PortScan 端口扫描任务

func Quake

func Quake(taskId, mainTaskId, configJSON string) (result string, err error)

Quake Quake任务

func RevokedTask

func RevokedTask(msg string) string

RevokedTask 任务取消的状态和消息

func StartWorker

func StartWorker(topicName string, concurrency int) error

StartWorker 启动worker

func SucceedTask

func SucceedTask(msg string) string

SucceedTask 任务执行成功的状态的结果

func TaskTest

func TaskTest(taskId, r string) (string, error)

TaskTest 测试任务

func UpdateTaskStatus

func UpdateTaskStatus(taskId string, state string, worker string, result string) bool

UpdateTaskStatus 更新任务状态

func WhoisQuery

func WhoisQuery(taskId, mainTaskId, configJSON string) (result string, err error)

WhoisQuery Whois查询任务

func XDomainscan

func XDomainscan(taskId, mainTaskId, configJSON string) (result string, err error)

XDomainscan 域名任务

func XFingerPrint

func XFingerPrint(taskId, mainTaskId, configJSON string) (result string, err error)

XFingerPrint 指纹识别任务

func XGoby

func XGoby(taskId, mainTaskId, configJSON string) (result string, err error)

XGoby goby扫描任务(调用goby二进制程序)

func XNuclei

func XNuclei(taskId, mainTaskId, configJSON string) (result string, err error)

XNuclei Nuclei扫描任务(调用Nuclei二进制程序)

func XOnlineAPI

func XOnlineAPI(taskId, mainTaskId, configJSON string) (result string, err error)

XOnlineAPI Fofa任务

func XOrganization

func XOrganization(taskId, mainTaskId, configJSON string) (result string, err error)

XOrganization 根据组织ID获取资产,并进行IP和域名的任务

func XPortScan

func XPortScan(taskId, mainTaskId, configJSON string) (result string, err error)

XPortScan 端口扫描任务

func XXray

func XXray(taskId, mainTaskId, configJSON string) (result string, err error)

XXray Xray扫描任务(调用xray二进制程序)

Types

type FingerprintTaskConfig

type FingerprintTaskConfig struct {
	IsHttpx          bool
	IsFingerprintHub bool
	IsIconHash       bool
	IsScreenshot     bool
	IsFingerprintx   bool
	IPTargetMap      map[string][]int
	DomainTargetMap  map[string]struct{}
	WorkspaceId      int
	IsProxy          bool
}

type XScan

type XScan struct {
	Config       XScanConfig
	ResultIP     *portscan.Result
	ResultDomain *domainscan.Result
	ResultVul    []pocscan.Result
	// contains filtered or unexported fields
}

func NewXScan

func NewXScan(config XScanConfig) *XScan

func (*XScan) Domainscan

func (x *XScan) Domainscan(taskId string, mainTaskId string) (result string, err error)

Domainscan 执行域名任务

func (*XScan) FingerPrint

func (x *XScan) FingerPrint(taskId string, mainTaskId string) (result string, err error)

FingerPrint 执行指纹识别任务

func (*XScan) GobyScan

func (x *XScan) GobyScan(taskId string, mainTaskId string) (result string, err error)

GobyScan 调用执行goby扫描任务

func (*XScan) NewDomainScan

func (x *XScan) NewDomainScan(taskId, mainTaskId string, domainMap []map[string]struct{}, isSubDomainFinder, isSubDomainBrute bool) (result string, err error)

NewDomainScan 根据域名列表,生成域名任务

func (*XScan) NewFingerprintScan

func (x *XScan) NewFingerprintScan(taskId, mainTaskId string) (result string, err error)

NewFingerprintScan 生成指纹识别任务

func (*XScan) NewGobyScan

func (x *XScan) NewGobyScan(taskId, mainTaskId string) (result string, err error)

NewGobyScan 生成Goby任务

func (*XScan) NewICPQuery

func (x *XScan) NewICPQuery(taskId, mainTaskId string, target string) (result string, err error)

NewICPQuery 生成ICP查询任务

func (*XScan) NewNucleiScan

func (x *XScan) NewNucleiScan(taskId, mainTaskId string) (result string, err error)

NewNucleiScan 生成Nuclei任务

func (*XScan) NewPortScan

func (x *XScan) NewPortScan(taskId, mainTaskId string, ipPortMap []map[string][]int, ipPortMapString []map[string]string) (result string, err error)

NewPortScan 根据IP/port列表,生成端口扫描任务

func (*XScan) NewWhoisQuery

func (x *XScan) NewWhoisQuery(taskId, mainTaskId string, target string) (result string, err error)

NewWhoisQuery 生成whois查询任务

func (*XScan) NewXrayScan

func (x *XScan) NewXrayScan(taskId, mainTaskId string) (result string, err error)

NewXrayScan 生成xraypoc任务

func (*XScan) NucleiScan

func (x *XScan) NucleiScan(taskId string, mainTaskId string) (result string, err error)

NucleiScan 调用执行Nuclei扫描任务

func (*XScan) OnlineAPISearch

func (x *XScan) OnlineAPISearch(taskId string, mainTaskId string) (result string, err error)

OnlineAPISearch 执行fofa搜索任务

func (*XScan) Portscan

func (x *XScan) Portscan(taskId string, mainTaskId string) (result string, err error)

Portscan 执行端口扫描,通过协程并发执行

func (*XScan) XrayScan

func (x *XScan) XrayScan(taskId string, mainTaskId string) (result string, err error)

XrayScan 调用执行xray扫描任务

type XScanConfig

type XScanConfig struct {
	OrgId       *int `json:"orgid,omitempty"`
	WorkspaceId int  `json:"workspaceId"`
	// orgscan
	IsOrgIP     bool   `json:"orgip,omitempty"`     //XOrganizaiton:IP资产
	IsOrgDomain bool   `json:"orgdomain,omitempty"` //XOrganizaiton:domain资产
	OrgIPPort   string `json:"orgport,omitempty"`   // Org扫描时,是否指定IP的端口
	// onlineapi
	OnlineAPIStartTime   string `json:"onlineapiStartTime,omitempty"`
	OnlineAPITarget      string `json:"onlineapiTarget,omitempty"`
	OnlineAPIKeyword     string `json:"onlineapiKeyword,omitempty"`
	OnlineAPISearchLimit int    `json:"onlineapiSearchLimit,omitempty"`
	// xonlineapi 任务需要区分是哪一个api
	IsFofa   bool `json:"fofa,omitempty"`
	IsHunter bool `json:"hunter,omitempty"`
	IsQuake  bool `json:"quake,omitempty"`
	// portscan
	IPPort       map[string][]int  `json:"ipport,omitempty"`       //IP:PORT列表
	IPPortString map[string]string `json:"ipportstring,omitempty"` //格式为ip列表,port可以为多种形式,如"80,443,8000-9000"、"--top-port 100"
	// domainscan : xdomainscan任务需要区分是哪一个子域名获取方式
	Domain             map[string]struct{} `json:"domain,omitempty"`
	IsSubDomainFinder  bool                `json:"subfinder,omitempty"`
	IsSubDomainBrute   bool                `json:"subdomainBrute,omitempty"`
	IsSubDomainCrawler bool                `json:"subdomainCrawler,omitempty"`
	// fingerprint
	IsFingerprint bool `json:"fingerprint,omitempty"`
	// xraypoc
	IsXrayPoc   bool   `json:"xraypoc,omitempty"`
	XrayPocFile string `json:"xraypocfile,omitempty"`
	// nucleipoc
	IsNucleiPoc   bool   `json:"nucleipoc,omitempty"`
	NucleiPocFile string `json:"nucleipocfile,omitempty"`
	// gobypoc
	IsGobyPoc bool `json:"gobypoc,omitempty"`
	//
	IsProxy bool `json:"proxy,omitempty"`
}

Jump to

Keyboard shortcuts

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