Go安全工具开发

约 1 分钟读完

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 编写的。

← Go安全生态与社区资源 Go命令行工具开发 →