mirror of
https://github.com/bettercap/bettercap
synced 2025-08-20 21:43:18 -07:00
new: added dns CHAOS banner grabber to syn.scan
This commit is contained in:
parent
8cb330562b
commit
385c8e3926
304 changed files with 40089 additions and 1 deletions
|
@ -29,6 +29,8 @@ func (mod *SynScanner) bannerGrabber(arg async.Job) {
|
|||
fn := tcpGrabber
|
||||
if port == 80 || port == 443 || sport[0] == '8' {
|
||||
fn = httpGrabber
|
||||
} else if port == 53 || port == 5353 {
|
||||
fn = dnsGrabber
|
||||
}
|
||||
|
||||
mod.Debug("grabbing banner for %s:%d", ip, port)
|
||||
|
|
34
modules/syn_scan/dns_grabber.go
Normal file
34
modules/syn_scan/dns_grabber.go
Normal file
|
@ -0,0 +1,34 @@
|
|||
package syn_scan
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"regexp"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
var chaosParser = regexp.MustCompile(`.*"([^"]+)".*`)
|
||||
|
||||
func grabChaos(addr string, q string) string {
|
||||
c := new(dns.Client)
|
||||
m := new(dns.Msg)
|
||||
m.Question = make([]dns.Question, 1)
|
||||
m.Question[0] = dns.Question{q, dns.TypeTXT, dns.ClassCHAOS}
|
||||
if in, _, _ := c.Exchange(m, addr); in != nil && len(in.Answer) > 0 {
|
||||
s := in.Answer[0].String()
|
||||
if match := chaosParser.FindStringSubmatch(s); len(match) > 0 {
|
||||
return match[1]
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func dnsGrabber(mod *SynScanner, ip string, port int) string {
|
||||
addr := fmt.Sprintf("%s:%d", ip, port)
|
||||
if v := grabChaos(addr, "version.bind."); v != "" {
|
||||
return v
|
||||
} else if v := grabChaos(addr, "hostname.bind."); v != "" {
|
||||
return v
|
||||
}
|
||||
return ""
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue