refact: refactored module params management

This commit is contained in:
evilsocket 2018-01-08 01:38:13 +01:00
parent 0cbe0f8782
commit 1b3cc9fbca
4 changed files with 48 additions and 15 deletions

View file

@ -45,12 +45,12 @@ func NewStringParameter(name string, def_value string, validator string, desc st
return NewModuleParameter(name, def_value, STRING, validator, desc) return NewModuleParameter(name, def_value, STRING, validator, desc)
} }
func NewBoolParameter(name string, def_value string, validator string, desc string) *ModuleParam { func NewBoolParameter(name string, def_value string, desc string) *ModuleParam {
return NewModuleParameter(name, def_value, BOOL, validator, desc) return NewModuleParameter(name, def_value, BOOL, "^(true|false)$", desc)
} }
func NewIntParameter(name string, def_value string, validator string, desc string) *ModuleParam { func NewIntParameter(name string, def_value string, desc string) *ModuleParam {
return NewModuleParameter(name, def_value, INT, validator, desc) return NewModuleParameter(name, def_value, INT, "^[\\d]+$", desc)
} }
func (p ModuleParam) Validate(value string) (error, interface{}) { func (p ModuleParam) Validate(value string) (error, interface{}) {

View file

@ -45,10 +45,24 @@ func NewHttpProxy(s *session.Session) *HttpProxy {
script: nil, script: nil,
} }
p.AddParam(session.NewIntParameter("http.port", "80", "", "HTTP port to redirect when the proxy is activated.")) p.AddParam(session.NewIntParameter("http.port",
p.AddParam(session.NewIntParameter("http.proxy.port", "8080", "", "Port to bind the HTTP proxy to.")) "80",
p.AddParam(session.NewStringParameter("http.proxy.address", "<interface address>", `^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$`, "Address to bind the HTTP proxy to.")) "HTTP port to redirect when the proxy is activated."))
p.AddParam(session.NewStringParameter("http.proxy.script", "", "", "Path of a proxy JS script."))
p.AddParam(session.NewIntParameter("http.proxy.port",
"8080",
"Port to bind the HTTP proxy to."))
p.AddParam(session.NewStringParameter("http.proxy.address",
"<interface address>",
`^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$`,
"Address to bind the HTTP proxy to."))
p.AddParam(session.NewStringParameter("http.proxy.script",
"",
"",
"Path of a proxy JS script."))
p.AddHandler(session.NewModuleHandler("http.proxy on", "", p.AddHandler(session.NewModuleHandler("http.proxy on", "",
"Start HTTP proxy.", "Start HTTP proxy.",
func(args []string) error { func(args []string) error {
@ -206,7 +220,7 @@ func (p *HttpProxy) Stop() error {
} }
} }
func (p *HttpProxy) doProxy(req *http.Request) bool { func (p HttpProxy) doProxy(req *http.Request) bool {
blacklist := []string{ blacklist := []string{
"localhost", "localhost",
"127.0.0.1", "127.0.0.1",

View file

@ -18,7 +18,9 @@ func NewProber(s *session.Session) *Prober {
SessionModule: session.NewSessionModule(s), SessionModule: session.NewSessionModule(s),
} }
p.AddParam(session.NewIntParameter("net.probe.throttle", "10", "", "If greater than 0, probe packets will be throttled by this value in milliseconds.")) p.AddParam(session.NewIntParameter("net.probe.throttle",
"10",
"If greater than 0, probe packets will be throttled by this value in milliseconds."))
p.AddHandler(session.NewModuleHandler("net.probe on", "", p.AddHandler(session.NewModuleHandler("net.probe on", "",
"Start network hosts probing in background.", "Start network hosts probing in background.",

View file

@ -121,11 +121,28 @@ func NewSniffer(s *session.Session) *Sniffer {
Stats: nil, Stats: nil,
} }
sniff.AddParam(session.NewBoolParameter("net.sniffer.verbose", "true", "", "Print captured packets to screen.")) sniff.AddParam(session.NewBoolParameter("net.sniffer.verbose",
sniff.AddParam(session.NewBoolParameter("net.sniffer.local", "false", "", "If true it will consider packets from/to this computer, otherwise it will skip them.")) "true",
sniff.AddParam(session.NewStringParameter("net.sniffer.filter", "not arp", "", "BPF filter for the sniffer.")) "Print captured packets to screen."))
sniff.AddParam(session.NewStringParameter("net.sniffer.regexp", "", "", "If filled, only packets matching this regular expression will be considered."))
sniff.AddParam(session.NewStringParameter("net.sniffer.output", "", "", "If set, the sniffer will write captured packets to this file.")) sniff.AddParam(session.NewBoolParameter("net.sniffer.local",
"false",
"If true it will consider packets from/to this computer, otherwise it will skip them."))
sniff.AddParam(session.NewStringParameter("net.sniffer.filter",
"not arp",
"",
"BPF filter for the sniffer."))
sniff.AddParam(session.NewStringParameter("net.sniffer.regexp",
"",
"",
"If filled, only packets matching this regular expression will be considered."))
sniff.AddParam(session.NewStringParameter("net.sniffer.output",
"",
"",
"If set, the sniffer will write captured packets to this file."))
sniff.AddHandler(session.NewModuleHandler("net.sniffer stats", "", sniff.AddHandler(session.NewModuleHandler("net.sniffer stats", "",
"Print sniffer session configuration and statistics.", "Print sniffer session configuration and statistics.",