mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-07-14 21:32:35 +08:00
ip/8时,只探测部分机器
This commit is contained in:
parent
d1bcc60bcb
commit
b80ea1316f
@ -128,6 +128,20 @@ func ParseInput(Info *HostInfo) {
|
|||||||
Info.Ports += "," + PortAdd
|
Info.Ports += "," + PortAdd
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if UserAdd != "" {
|
||||||
|
user := strings.Split(UserAdd, ",")
|
||||||
|
for a, _ := range Userdict {
|
||||||
|
Userdict[a] = append(Userdict[a], user...)
|
||||||
|
Userdict[a] = RemoveDuplicate(Userdict[a])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if PassAdd != "" {
|
||||||
|
pass := strings.Split(PassAdd, ",")
|
||||||
|
Passwords = append(Passwords, pass...)
|
||||||
|
Passwords = RemoveDuplicate(Passwords)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ParseScantype(Info *HostInfo) {
|
func ParseScantype(Info *HostInfo) {
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
@ -77,6 +78,9 @@ func ParseIPs(ip string) (hosts []string) {
|
|||||||
func parseIP(ip string) []string {
|
func parseIP(ip string) []string {
|
||||||
reg := regexp.MustCompile(`[a-zA-Z]+`)
|
reg := regexp.MustCompile(`[a-zA-Z]+`)
|
||||||
switch {
|
switch {
|
||||||
|
// 扫描/8时,只扫网关和随机IP,避免扫描过多IP
|
||||||
|
case strings.HasSuffix(ip, "/8"):
|
||||||
|
return parseIP8(ip)
|
||||||
//解析 /24 /16 /8 /xxx 等
|
//解析 /24 /16 /8 /xxx 等
|
||||||
case strings.Contains(ip, "/"):
|
case strings.Contains(ip, "/"):
|
||||||
return parseIP2(ip)
|
return parseIP2(ip)
|
||||||
@ -110,7 +114,8 @@ func parseIP2(host string) (hosts []string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析ip段: 192.168.111.1-255,192.168.111.1-192.168.112.255
|
// 解析ip段: 192.168.111.1-255
|
||||||
|
// 192.168.111.1-192.168.112.255
|
||||||
func parseIP1(ip string) []string {
|
func parseIP1(ip string) []string {
|
||||||
IPRange := strings.Split(ip, "-")
|
IPRange := strings.Split(ip, "-")
|
||||||
testIP := net.ParseIP(IPRange[0])
|
testIP := net.ParseIP(IPRange[0])
|
||||||
@ -202,3 +207,37 @@ func RemoveDuplicate(old []string) []string {
|
|||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func parseIP8(ip string) []string {
|
||||||
|
realIP := ip[:len(ip)-2]
|
||||||
|
testIP := net.ParseIP(realIP)
|
||||||
|
|
||||||
|
if testIP == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
IPrange := strings.Split(ip, ".")[0]
|
||||||
|
var AllIP []string
|
||||||
|
for a := 0; a <= 255; a++ {
|
||||||
|
for b := 0; b <= 255; b++ {
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, 1))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, 2))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, 4))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, 5))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, RandInt(6, 55)))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, RandInt(56, 100)))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, RandInt(101, 150)))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, RandInt(151, 200)))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, RandInt(201, 253)))
|
||||||
|
AllIP = append(AllIP, fmt.Sprintf("%s.%d.%d.%d", IPrange, a, b, 254))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return AllIP
|
||||||
|
}
|
||||||
|
|
||||||
|
func RandInt(min, max int) int {
|
||||||
|
if min >= max || min == 0 || max == 0 {
|
||||||
|
return max
|
||||||
|
}
|
||||||
|
return rand.Intn(max-min) + min
|
||||||
|
}
|
||||||
|
@ -22,6 +22,8 @@ func Flag(Info *HostInfo) {
|
|||||||
flag.StringVar(&NoHosts, "hn", "", "the hosts no scan,as: -hn 192.168.1.1/24")
|
flag.StringVar(&NoHosts, "hn", "", "the hosts no scan,as: -hn 192.168.1.1/24")
|
||||||
flag.StringVar(&Info.Ports, "p", DefaultPorts, "Select a port,for example: 22 | 1-65535 | 22,80,3306")
|
flag.StringVar(&Info.Ports, "p", DefaultPorts, "Select a port,for example: 22 | 1-65535 | 22,80,3306")
|
||||||
flag.StringVar(&PortAdd, "pa", "", "add port base DefaultPorts,-pa 3389")
|
flag.StringVar(&PortAdd, "pa", "", "add port base DefaultPorts,-pa 3389")
|
||||||
|
flag.StringVar(&UserAdd, "usera", "", "add port base DefaultUsers,-usera user")
|
||||||
|
flag.StringVar(&PassAdd, "pwda", "", "add port base DefaultPasses,-pwda password")
|
||||||
flag.StringVar(&NoPorts, "pn", "", "the ports no scan,as: -pn 445")
|
flag.StringVar(&NoPorts, "pn", "", "the ports no scan,as: -pn 445")
|
||||||
flag.StringVar(&Info.Command, "c", "", "exec command (ssh)")
|
flag.StringVar(&Info.Command, "c", "", "exec command (ssh)")
|
||||||
flag.StringVar(&Info.SshKey, "sshkey", "", "sshkey file (id_rsa)")
|
flag.StringVar(&Info.SshKey, "sshkey", "", "sshkey file (id_rsa)")
|
||||||
|
Loading…
Reference in New Issue
Block a user