Go安全工具开发
Go安全工具开发
端口扫描器
func main() {
target := flag.String("t", "", "target host")
flag.Parse()
var wg sync.WaitGroup
for port := 1; port <= 65535; port++ {
wg.Add(1)
go func(p int) {
defer wg.Done()
addr := fmt.Sprintf("%s:%d", *target, p)
conn, err := net.DialTimeout("tcp", addr, time.Second)
if err == nil {
conn.Close()
fmt.Printf("[+] Port %d open\n", p)
}
}(port)
}
wg.Wait()
}目录爆破器
// 读取字典文件
words, _ := os.ReadFile("wordlist.txt")
for _, word := range strings.Split(string(words), "\n") {
url := fmt.Sprintf("http://target/%s", word)
resp, err := http.Get(url)
if err == nil && resp.StatusCode != 404 {
fmt.Printf("[+] %s -> %d\n", url, resp.StatusCode)
}
}子域名枚举
结合 DNS 查询和 HTTP 探测,实现子域名发现功能。
总结
Go 的并发特性使其非常适合开发扫描类工具。Nuclei、Subfinder 等知名安全工具都是 Go 编写的。