refactored module parsing to make intuitive sense
This commit is contained in:
parent
b7f50acf5d
commit
5c36a4d11d
@ -12,8 +12,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
_, modType, fl, err := zgrab2.ParseCommandLine(os.Args[1:])
|
_, modType, fl, err := zgrab2.ParseCommandLine(os.Args[1:]) // Blanked arg is positional arguments
|
||||||
if err != nil { //blanked arg is positional arguments
|
if err != nil {
|
||||||
// Outputting help is returned as an error. Exit successfuly on help output.
|
// Outputting help is returned as an error. Exit successfuly on help output.
|
||||||
flagsErr, ok := err.(*flags.Error)
|
flagsErr, ok := err.(*flags.Error)
|
||||||
if ok && flagsErr.Type == flags.ErrHelp {
|
if ok && flagsErr.Type == flags.ErrHelp {
|
||||||
@ -27,14 +27,26 @@ func main() {
|
|||||||
if modType == "multiple" {
|
if modType == "multiple" {
|
||||||
iniParser := zgrab2.NewIniParser()
|
iniParser := zgrab2.NewIniParser()
|
||||||
m, _ := fl.(*zgrab2.MultipleCommand)
|
m, _ := fl.(*zgrab2.MultipleCommand)
|
||||||
|
var modTypes []string
|
||||||
|
var flagsReturned []interface{}
|
||||||
if m.ConfigFileName == "-" {
|
if m.ConfigFileName == "-" {
|
||||||
err = iniParser.Parse(os.Stdin)
|
modTypes, flagsReturned, err = iniParser.Parse(os.Stdin)
|
||||||
} else {
|
} else {
|
||||||
err = iniParser.ParseFile(m.ConfigFileName)
|
modTypes, flagsReturned, err = iniParser.ParseFile(m.ConfigFileName)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("could not parse multiple: %s", err)
|
log.Fatalf("could not parse multiple: %s", err)
|
||||||
}
|
}
|
||||||
|
if len(modTypes) != len(flagsReturned) {
|
||||||
|
log.Fatalf("error parsing flags")
|
||||||
|
}
|
||||||
|
for i, flag := range flagsReturned {
|
||||||
|
f, _ := flag.(zgrab2.ScanFlags)
|
||||||
|
mod := *zgrab2.GetModule(modTypes[i])
|
||||||
|
s := mod.NewScanner()
|
||||||
|
s.Init(f)
|
||||||
|
zgrab2.RegisterScan(s.GetName(), s)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
f, _ := fl.(zgrab2.ScanFlags)
|
f, _ := fl.(zgrab2.ScanFlags)
|
||||||
mod := *zgrab2.GetModule(modType)
|
mod := *zgrab2.GetModule(modType)
|
||||||
@ -42,7 +54,6 @@ func main() {
|
|||||||
s.Init(f)
|
s.Init(f)
|
||||||
zgrab2.RegisterScan(modType, s)
|
zgrab2.RegisterScan(modType, s)
|
||||||
}
|
}
|
||||||
zgrab2.PrintScanners()
|
|
||||||
m := zgrab2.MakeMonitor()
|
m := zgrab2.MakeMonitor()
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
log.Infof("started grab at %s", start.Format(time.RFC3339))
|
log.Infof("started grab at %s", start.Format(time.RFC3339))
|
||||||
|
@ -66,7 +66,7 @@ func init() {
|
|||||||
func RegisterScan(name string, s Scanner) {
|
func RegisterScan(name string, s Scanner) {
|
||||||
//add to list and map
|
//add to list and map
|
||||||
if scanners[name] != nil {
|
if scanners[name] != nil {
|
||||||
log.Fatal("name already used")
|
log.Fatalf("name: %s already used", name)
|
||||||
}
|
}
|
||||||
orderedScanners = append(orderedScanners, name)
|
orderedScanners = append(orderedScanners, name)
|
||||||
scanners[name] = &s
|
scanners[name] = &s
|
||||||
|
@ -85,7 +85,7 @@ func (s *HTTPScanner) InitPerSender(senderID int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *HTTPScanner) GetName() string {
|
func (s *HTTPScanner) GetName() string {
|
||||||
return ""
|
return s.config.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *HTTPScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {
|
func (s *HTTPScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {
|
||||||
|
@ -55,7 +55,7 @@ func (s *SSHScanner) InitPerSender(senderID int) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *SSHScanner) GetName() string {
|
func (s *SSHScanner) GetName() string {
|
||||||
return ""
|
return s.config.Name
|
||||||
}
|
}
|
||||||
func (s *SSHScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {
|
func (s *SSHScanner) Scan(t zgrab2.ScanTarget, port uint) (interface{}, error) {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
@ -56,7 +56,7 @@ func (s *TLSScanner) Init(flags zgrab2.ScanFlags) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *TLSScanner) GetName() string {
|
func (s *TLSScanner) GetName() string {
|
||||||
return ""
|
return s.config.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TLSScanner) InitPerSender(senderID int) error {
|
func (s *TLSScanner) InitPerSender(senderID int) error {
|
||||||
|
Loading…
Reference in New Issue
Block a user