overview
currently sif has two systems for running scans:
- yaml modules - new modular system in
modules/ directory
- go scans - legacy scans in
internal/scan/
the goal is to eventually convert most go scans to yaml modules for consistency and user extensibility.
scans to convert
these go scans could be converted to yaml modules:
scans to keep as go
these are better suited as go code due to complexity:
shodan.go - api integration with external service
nuclei.go - external tool integration
whois.go - external lookups
ports.go - tcp scanning requires low-level networking
frameworks/ - complex detection logic with version parsing
the go scans that stay should still be registered as modules in the module system so they show up in --list-modules and can be run with --modules flags.
overview
currently sif has two systems for running scans:
modules/directoryinternal/scan/the goal is to eventually convert most go scans to yaml modules for consistency and user extensibility.
scans to convert
these go scans could be converted to yaml modules:
headers.go→modules/http/headers.yamlcms.go→modules/info/cms.yamlgit.go→modules/recon/git.yaml(partially done with git-exposed.yaml)dirlist.go→modules/recon/dirlist.yamldnslist.go→modules/dns/dnslist.yamlcloudstorage.go→modules/recon/cloudstorage.yamlsql.go→ enhance existing sqli moduleslfi.go→ enhance existing lfi modulescans to keep as go
these are better suited as go code due to complexity:
shodan.go- api integration with external servicenuclei.go- external tool integrationwhois.go- external lookupsports.go- tcp scanning requires low-level networkingframeworks/- complex detection logic with version parsingthe go scans that stay should still be registered as modules in the module system so they show up in
--list-modulesand can be run with--modulesflags.