├── 2691659951517_.pic.jpg ├── README.md ├── getInfo.go ├── go.mod └── go.sum /2691659951517_.pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ar39/ipInfo/7c5e3e66acbe20539a04745ff3b14ef927aeaf28/2691659951517_.pic.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ipInfo 2 | 通过OXID解析器获取Windows远程主机上网卡地址 3 | 4 | ## 使用命令 5 | ``` 6 | go run getInfo.go scan -i ip 7 | ``` 8 | 9 | ## 运行截图 10 | - ![运行截图](2691659951517_.pic.jpg) 11 | 12 | ## 参考链接 13 | [倾旋](https://payloads.online/archivers/2020-07-16/1/) 14 | -------------------------------------------------------------------------------- /getInfo.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "github.com/urfave/cli/v2" 6 | "log" 7 | "net" 8 | "os" 9 | "strconv" 10 | "strings" 11 | "time" 12 | ) 13 | 14 | func GetInfo(c *cli.Context) { 15 | ip := c.String("ip") 16 | if strings.HasSuffix(ip, "/24") == true { 17 | //扫描C段 18 | for i := 1; i <= 255; i += 1 { 19 | tmp := strings.LastIndex(ip, ".") 20 | ipNet := ip[:tmp] 21 | ipC := ipNet + "." + strconv.Itoa(i) 22 | //fmt.Println(ipC) 23 | err := GetInterFace(ipC) 24 | if err != nil { 25 | fmt.Println(err) 26 | continue 27 | } 28 | } 29 | 30 | } else { 31 | err := GetInterFace(ip) 32 | if err != nil { 33 | log.Fatal(err) 34 | } 35 | } 36 | } 37 | 38 | func GetInterFace(ip string) error { 39 | fmt.Println(ip) 40 | addr := ip + ":" + strconv.Itoa(135) 41 | conn, err := net.DialTimeout("tcp", addr, 2*time.Second) 42 | if err != nil { 43 | fmt.Printf("连接失败") 44 | return err 45 | } 46 | defer conn.Close() 47 | buf := make([]byte, 4096) 48 | payloadStep1 := "\x05\x00\x0b\x03\x10\x00\x00\x00\x48\x00\x00\x00\x01\x00\x00\x00\xb8\x10\xb8\x10\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\xc4\xfe\xfc\x99\x60\x52\x1b\x10\xbb\xcb\x00\xaa\x00\x21\x34\x7a\x00\x00\x00\x00\x04\x5d\x88\x8a\xeb\x1c\xc9\x11\x9f\xe8\x08\x00\x2b\x10\x48\x60\x02\x00\x00\x00" 49 | payloadStep2 := "\x05\x00\x00\x03\x10\x00\x00\x00\x18\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00" 50 | conn.Write([]byte(payloadStep1)) 51 | packV1, err := conn.Read(buf) 52 | conn.Write([]byte(payloadStep2)) 53 | packV1, err = conn.Read(buf) 54 | // fmt.Print(pack_v1) 55 | result := buf[:packV1] 56 | Inter := string(result) 57 | Inter = Inter[42:] 58 | // 数据清洗 59 | flag := strings.Index(Inter, "\x09\x00\xff\xff\x00\x00") 60 | end := Inter[:flag-4] 61 | hostnameOrip := strings.Split(end, "\x00\x00") 62 | // 删除空格 63 | fmt.Println(hostnameOrip) 64 | // fmt.Println(reflect.TypeOf(hostname)) 65 | for _, value := range hostnameOrip { 66 | fmt.Printf("\t[->] %s\n", value) 67 | } 68 | return nil 69 | } 70 | 71 | func main() { 72 | app := &cli.App{ 73 | Commands: []*cli.Command{ 74 | { 75 | Name: "scan", 76 | Aliases: []string{"c"}, 77 | Usage: "complete a task on the list", 78 | Flags: []cli.Flag{ 79 | &cli.StringFlag{ 80 | Name: "ip", 81 | Aliases: []string{"i"}, 82 | Usage: "get a info of interface", 83 | }, 84 | }, 85 | Action: func(c *cli.Context) error { 86 | GetInfo(c) 87 | return nil 88 | }, 89 | }, 90 | }, 91 | } 92 | err := app.Run(os.Args) 93 | if err != nil { 94 | log.Fatal(err) 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module getInfo 2 | 3 | go 1.17 4 | 5 | require github.com/urfave/cli/v2 v2.11.1 6 | 7 | require ( 8 | github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect 9 | github.com/russross/blackfriday/v2 v2.1.0 // indirect 10 | github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect 11 | ) 12 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= 2 | github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= 3 | github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 4 | github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= 5 | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 6 | github.com/urfave/cli/v2 v2.11.1 h1:UKK6SP7fV3eKOefbS87iT9YHefv7iB/53ih6e+GNAsE= 7 | github.com/urfave/cli/v2 v2.11.1/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo= 8 | github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= 9 | github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= 10 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 11 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 12 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 13 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 14 | --------------------------------------------------------------------------------