mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-07-13 21:02:44 +08:00
perf: 统一错误输出
This commit is contained in:
parent
497bc2e86b
commit
33cb33b1ad
@ -78,7 +78,7 @@ func WriteFile(result string, filename string) {
|
|||||||
// 打开文件
|
// 打开文件
|
||||||
fl, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
|
fl, err := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] 打开文件失败 %s: %v\n", filename, err)
|
fmt.Printf("[-] 打开文件失败 %s: %v\n", filename, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer fl.Close()
|
defer fl.Close()
|
||||||
@ -109,7 +109,7 @@ func WriteFile(result string, filename string) {
|
|||||||
// 序列化JSON
|
// 序列化JSON
|
||||||
jsonData, err := json.Marshal(jsonText)
|
jsonData, err := json.Marshal(jsonText)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] JSON序列化失败: %v\n", err)
|
fmt.Printf("[-] JSON序列化失败: %v\n", err)
|
||||||
jsonText = JsonText{
|
jsonText = JsonText{
|
||||||
Type: "msg",
|
Type: "msg",
|
||||||
Text: result,
|
Text: result,
|
||||||
@ -123,7 +123,7 @@ func WriteFile(result string, filename string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] 写入文件失败 %s: %v\n", filename, err)
|
fmt.Printf("[-] 写入文件失败 %s: %v\n", filename, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ func ParsePass(Info *HostInfo) error {
|
|||||||
HashValues = append(HashValues, line)
|
HashValues = append(HashValues, line)
|
||||||
validCount++
|
validCount++
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("[!] 无效的哈希值(长度!=32): %s\n", line)
|
fmt.Printf("[-] 无效的哈希值(长度!=32): %s\n", line)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fmt.Printf("[*] 已加载有效哈希值: %d 个\n", validCount)
|
fmt.Printf("[*] 已加载有效哈希值: %d 个\n", validCount)
|
||||||
@ -171,7 +171,7 @@ func Readfile(filename string) ([]string, error) {
|
|||||||
// 打开文件
|
// 打开文件
|
||||||
file, err := os.Open(filename)
|
file, err := os.Open(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] 打开文件 %s 失败: %v\n", filename, err)
|
fmt.Printf("[-] 打开文件 %s 失败: %v\n", filename, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
@ -192,7 +192,7 @@ func Readfile(filename string) ([]string, error) {
|
|||||||
|
|
||||||
// 检查扫描过程中是否有错误
|
// 检查扫描过程中是否有错误
|
||||||
if err := scanner.Err(); err != nil {
|
if err := scanner.Err(); err != nil {
|
||||||
fmt.Printf("[!] 读取文件 %s 时出错: %v\n", filename, err)
|
fmt.Printf("[- 读取文件 %s 时出错: %v\n", filename, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -204,7 +204,7 @@ func Readfile(filename string) ([]string, error) {
|
|||||||
func ParseInput(Info *HostInfo) error {
|
func ParseInput(Info *HostInfo) error {
|
||||||
// 检查必要的目标参数
|
// 检查必要的目标参数
|
||||||
if Info.Host == "" && HostsFile == "" && TargetURL == "" && URLsFile == "" {
|
if Info.Host == "" && HostsFile == "" && TargetURL == "" && URLsFile == "" {
|
||||||
fmt.Println("[!] 未指定扫描目标")
|
fmt.Println("[-] 未指定扫描目标")
|
||||||
flag.Usage()
|
flag.Usage()
|
||||||
return fmt.Errorf("必须指定扫描目标")
|
return fmt.Errorf("必须指定扫描目标")
|
||||||
}
|
}
|
||||||
@ -307,7 +307,7 @@ func ParseInput(Info *HostInfo) error {
|
|||||||
for _, hash := range HashValues {
|
for _, hash := range HashValues {
|
||||||
hashByte, err := hex.DecodeString(hash)
|
hashByte, err := hex.DecodeString(hash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] Hash解码失败: %s\n", hash)
|
fmt.Printf("[-] Hash解码失败: %s\n", hash)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
HashBytes = append(HashBytes, hashByte)
|
HashBytes = append(HashBytes, hashByte)
|
||||||
|
@ -42,7 +42,7 @@ func ParseIP(host string, filename string, nohosts ...string) (hosts []string, e
|
|||||||
if filename != "" {
|
if filename != "" {
|
||||||
fileHosts, err := Readipfile(filename)
|
fileHosts, err := Readipfile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] 读取主机文件失败: %v\n", err)
|
fmt.Printf("[-] 读取主机文件失败: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
hosts = append(hosts, fileHosts...)
|
hosts = append(hosts, fileHosts...)
|
||||||
fmt.Printf("[*] 已从文件加载额外主机: %d 个\n", len(fileHosts))
|
fmt.Printf("[*] 已从文件加载额外主机: %d 个\n", len(fileHosts))
|
||||||
@ -135,7 +135,7 @@ func parseIP(ip string) []string {
|
|||||||
default:
|
default:
|
||||||
testIP := net.ParseIP(ip)
|
testIP := net.ParseIP(ip)
|
||||||
if testIP == nil {
|
if testIP == nil {
|
||||||
fmt.Printf("[!] 无效的IP地址格式: %s\n", ip)
|
fmt.Printf("[-] 无效的IP地址格式: %s\n", ip)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return []string{ip}
|
return []string{ip}
|
||||||
@ -147,7 +147,7 @@ func parseIP2(host string) []string {
|
|||||||
// 解析CIDR
|
// 解析CIDR
|
||||||
_, ipNet, err := net.ParseCIDR(host)
|
_, ipNet, err := net.ParseCIDR(host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] CIDR格式解析失败: %s, %v\n", host, err)
|
fmt.Printf("[-] CIDR格式解析失败: %s, %v\n", host, err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ func parseIP1(ip string) []string {
|
|||||||
if len(ipRange[1]) < 4 {
|
if len(ipRange[1]) < 4 {
|
||||||
endNum, err := strconv.Atoi(ipRange[1])
|
endNum, err := strconv.Atoi(ipRange[1])
|
||||||
if testIP == nil || endNum > 255 || err != nil {
|
if testIP == nil || endNum > 255 || err != nil {
|
||||||
fmt.Printf("[!] IP范围格式错误: %s\n", ip)
|
fmt.Printf("[-] IP范围格式错误: %s\n", ip)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -180,7 +180,7 @@ func parseIP1(ip string) []string {
|
|||||||
prefixIP := strings.Join(splitIP[0:3], ".")
|
prefixIP := strings.Join(splitIP[0:3], ".")
|
||||||
|
|
||||||
if startNum > endNum || err1 != nil || err2 != nil {
|
if startNum > endNum || err1 != nil || err2 != nil {
|
||||||
fmt.Printf("[!] IP范围无效: %d-%d\n", startNum, endNum)
|
fmt.Printf("[-] IP范围无效: %d-%d\n", startNum, endNum)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ func parseIP1(ip string) []string {
|
|||||||
splitIP2 := strings.Split(ipRange[1], ".")
|
splitIP2 := strings.Split(ipRange[1], ".")
|
||||||
|
|
||||||
if len(splitIP1) != 4 || len(splitIP2) != 4 {
|
if len(splitIP1) != 4 || len(splitIP2) != 4 {
|
||||||
fmt.Printf("[!] IP格式错误: %s\n", ip)
|
fmt.Printf("[-] IP格式错误: %s\n", ip)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ func parseIP1(ip string) []string {
|
|||||||
ip1, err1 := strconv.Atoi(splitIP1[i])
|
ip1, err1 := strconv.Atoi(splitIP1[i])
|
||||||
ip2, err2 := strconv.Atoi(splitIP2[i])
|
ip2, err2 := strconv.Atoi(splitIP2[i])
|
||||||
if ip1 > ip2 || err1 != nil || err2 != nil {
|
if ip1 > ip2 || err1 != nil || err2 != nil {
|
||||||
fmt.Printf("[!] IP范围无效: %s-%s\n", ipRange[0], ipRange[1])
|
fmt.Printf("[-] IP范围无效: %s-%s\n", ipRange[0], ipRange[1])
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
start[i], end[i] = ip1, ip2
|
start[i], end[i] = ip1, ip2
|
||||||
@ -261,7 +261,7 @@ func Readipfile(filename string) ([]string, error) {
|
|||||||
// 打开文件
|
// 打开文件
|
||||||
file, err := os.Open(filename)
|
file, err := os.Open(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] 打开文件失败 %s: %v\n", filename, err)
|
fmt.Printf("[-] 打开文件失败 %s: %v\n", filename, err)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
@ -283,7 +283,7 @@ func Readipfile(filename string) ([]string, error) {
|
|||||||
port := strings.Split(text[1], " ")[0]
|
port := strings.Split(text[1], " ")[0]
|
||||||
num, err := strconv.Atoi(port)
|
num, err := strconv.Atoi(port)
|
||||||
if err != nil || num < 1 || num > 65535 {
|
if err != nil || num < 1 || num > 65535 {
|
||||||
fmt.Printf("[!] 忽略无效端口: %s\n", line)
|
fmt.Printf("[-] 忽略无效端口: %s\n", line)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,7 +303,7 @@ func Readipfile(filename string) ([]string, error) {
|
|||||||
|
|
||||||
// 检查扫描过程中是否有错误
|
// 检查扫描过程中是否有错误
|
||||||
if err := scanner.Err(); err != nil {
|
if err := scanner.Err(); err != nil {
|
||||||
fmt.Printf("[!] 读取文件时出错: %v\n", err)
|
fmt.Printf("[-] 读取文件时出错: %v\n", err)
|
||||||
return content, err
|
return content, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -335,7 +335,7 @@ func parseIP8(ip string) []string {
|
|||||||
testIP := net.ParseIP(realIP)
|
testIP := net.ParseIP(realIP)
|
||||||
|
|
||||||
if testIP == nil {
|
if testIP == nil {
|
||||||
fmt.Printf("[!] 无效的IP地址格式: %s\n", realIP)
|
fmt.Printf("[-] 无效的IP地址格式: %s\n", realIP)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,7 +187,7 @@ func AddScan(plugin string, info Common.HostInfo, ch *chan struct{}, wg *sync.Wa
|
|||||||
func ScanFunc(name *string, info *Common.HostInfo) {
|
func ScanFunc(name *string, info *Common.HostInfo) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
fmt.Printf("[!] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
fmt.Printf("[-] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ func ScanFunc(name *string, info *Common.HostInfo) {
|
|||||||
|
|
||||||
// 直接调用扫描函数
|
// 直接调用扫描函数
|
||||||
if err := plugin.ScanFunc(info); err != nil {
|
if err := plugin.ScanFunc(info); err != nil {
|
||||||
fmt.Printf("[!] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
fmt.Printf("[-] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,14 +71,14 @@ func FcgiScan(info *Common.HostInfo) error {
|
|||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] FastCGI连接失败 %v:%v - %v\n", info.Host, info.Ports, err)
|
fmt.Printf("[-] FastCGI连接失败 %v:%v - %v\n", info.Host, info.Ports, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 发送FastCGI请求
|
// 发送FastCGI请求
|
||||||
stdout, stderr, err := fcgi.Request(env, reqParams)
|
stdout, stderr, err := fcgi.Request(env, reqParams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("[!] FastCGI请求失败 %v:%v - %v\n", info.Host, info.Ports, err)
|
fmt.Printf("[-] FastCGI请求失败 %v:%v - %v\n", info.Host, info.Ports, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ type Brutelist struct {
|
|||||||
func RdpScan(info *Common.HostInfo) (tmperr error) {
|
func RdpScan(info *Common.HostInfo) (tmperr error) {
|
||||||
defer func() {
|
defer func() {
|
||||||
if err := recover(); err != nil {
|
if err := recover(); err != nil {
|
||||||
fmt.Printf("[!] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
fmt.Printf("[-] 扫描错误 %v:%v - %v\n", info.Host, info.Ports, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
if Common.DisableBrute {
|
if Common.DisableBrute {
|
||||||
|
@ -105,6 +105,6 @@ func doWithTimeOut(info *Common.HostInfo, user string, pass string) (flag bool,
|
|||||||
case <-signal:
|
case <-signal:
|
||||||
return flag, err
|
return flag, err
|
||||||
case <-time.After(time.Duration(Common.Timeout) * time.Second):
|
case <-time.After(time.Duration(Common.Timeout) * time.Second):
|
||||||
return false, errors.New("[!] SMB连接超时")
|
return false, errors.New("[-] SMB连接超时")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user