Allow to set dialers' timeout and keep-alive duration (#4441)

* Allow to set dialers' timeout and keep-alive duration

* docs

---------

Co-authored-by: mzack <marco.rivoli.nvh@gmail.com>
dev
Jean Rougé 2023-11-29 12:17:10 -08:00 committed by GitHub
parent 1d6890ca2f
commit b420672b38
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 0 deletions

View File

@ -193,6 +193,8 @@ CONFIGURATIONS:
-sml, -show-match-line show match lines for file templates, works with extractors only -sml, -show-match-line show match lines for file templates, works with extractors only
-ztls use ztls library with autofallback to standard one for tls13 [Deprecated] autofallback to ztls is enabled by default -ztls use ztls library with autofallback to standard one for tls13 [Deprecated] autofallback to ztls is enabled by default
-sni string tls sni hostname to use (default: input domain name) -sni string tls sni hostname to use (default: input domain name)
-dt, -dialer-timeout value timeout for network requests.
-dka, -dialer-keep-alive value keep-alive duration for network requests.
-lfa, -allow-local-file-access allows file (payload) access anywhere on the system -lfa, -allow-local-file-access allows file (payload) access anywhere on the system
-lna, -restrict-local-network-access blocks connections to the local / private network -lna, -restrict-local-network-access blocks connections to the local / private network
-i, -interface string network interface to use for network scan -i, -interface string network interface to use for network scan

View File

@ -259,6 +259,8 @@ on extensive configurability, massive extensibility and ease of use.`)
flagSet.BoolVarP(&options.ShowMatchLine, "show-match-line", "sml", false, "show match lines for file templates, works with extractors only"), flagSet.BoolVarP(&options.ShowMatchLine, "show-match-line", "sml", false, "show match lines for file templates, works with extractors only"),
flagSet.BoolVar(&options.ZTLS, "ztls", false, "use ztls library with autofallback to standard one for tls13 [Deprecated] autofallback to ztls is enabled by default"), //nolint:all flagSet.BoolVar(&options.ZTLS, "ztls", false, "use ztls library with autofallback to standard one for tls13 [Deprecated] autofallback to ztls is enabled by default"), //nolint:all
flagSet.StringVar(&options.SNI, "sni", "", "tls sni hostname to use (default: input domain name)"), flagSet.StringVar(&options.SNI, "sni", "", "tls sni hostname to use (default: input domain name)"),
flagSet.DurationVarP(&options.DialerTimeout, "dialer-timeout", "dt", 0, "timeout for network requests."),
flagSet.DurationVarP(&options.DialerKeepAlive, "dialer-keep-alive", "dka", 0, "keep-alive duration for network requests."),
flagSet.BoolVarP(&options.AllowLocalFileAccess, "allow-local-file-access", "lfa", false, "allows file (payload) access anywhere on the system"), flagSet.BoolVarP(&options.AllowLocalFileAccess, "allow-local-file-access", "lfa", false, "allows file (payload) access anywhere on the system"),
flagSet.BoolVarP(&options.RestrictLocalNetworkAccess, "restrict-local-network-access", "lna", false, "blocks connections to the local / private network"), flagSet.BoolVarP(&options.RestrictLocalNetworkAccess, "restrict-local-network-access", "lna", false, "blocks connections to the local / private network"),
flagSet.StringVarP(&options.Interface, "interface", "i", "", "network interface to use for network scan"), flagSet.StringVarP(&options.Interface, "interface", "i", "", "network interface to use for network scan"),

View File

@ -23,6 +23,12 @@ func Init(options *types.Options) error {
} }
lfaAllowed = options.AllowLocalFileAccess lfaAllowed = options.AllowLocalFileAccess
opts := fastdialer.DefaultOptions opts := fastdialer.DefaultOptions
if options.DialerTimeout > 0 {
opts.DialerTimeout = options.DialerTimeout
}
if options.DialerKeepAlive > 0 {
opts.DialerKeepAlive = options.DialerKeepAlive
}
InitHeadless(options.RestrictLocalNetworkAccess, options.AllowLocalFileAccess) InitHeadless(options.RestrictLocalNetworkAccess, options.AllowLocalFileAccess)
switch { switch {
@ -98,6 +104,7 @@ func Init(options *types.Options) error {
} }
opts.WithDialerHistory = true opts.WithDialerHistory = true
opts.SNIName = options.SNI opts.SNIName = options.SNI
// fastdialer now by default fallbacks to ztls when there are tls related errors // fastdialer now by default fallbacks to ztls when there are tls related errors
dialer, err := fastdialer.NewDialer(opts) dialer, err := fastdialer.NewDialer(opts)
if err != nil { if err != nil {

View File

@ -270,6 +270,10 @@ type Options struct {
DisableRedirects bool DisableRedirects bool
// SNI custom hostname // SNI custom hostname
SNI string SNI string
// DialerTimeout sets the timeout for network requests.
DialerTimeout time.Duration
// DialerKeepAlive sets the keep alive duration for network requests.
DialerKeepAlive time.Duration
// Interface to use for network scan // Interface to use for network scan
Interface string Interface string
// SourceIP sets custom source IP address for network requests // SourceIP sets custom source IP address for network requests