Skip to content

Commit e5893a5

Browse files
committed
AlphaNet(Version1.0.4)
Signed-off-by: AlphabugX <[email protected]>
1 parent e4c5516 commit e5893a5

File tree

5 files changed

+92
-15
lines changed

5 files changed

+92
-15
lines changed

AScanPort_service.jpg

150 KB
Loading

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Usage of AScanPort:
3333

3434
### 扫描结果
3535
```
36-
./AScanPort_linux_amd64 -h f5.ink -check 2 -s
36+
./AScanPort_linux_amd64 -h f5.ink -time 1 -t 10000 -check 2
3737
```
3838
![image](AScanPort.jpg)
3939

data/save.go

+20-5
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ import (
88
)
99

1010
var (
11-
Result = make(chan string, 99999999)
12-
Silent = false
11+
Result = make(chan string, 99999999)
12+
Silent = false
13+
Service = false
1314
)
1415

1516
func Save(filename string, format string) {
@@ -20,16 +21,30 @@ func Save(filename string, format string) {
2021
data_format := ""
2122
switch format {
2223
case "json":
23-
data_format = "{\"%s\":\"%s\"}\n"
24+
if Service {
25+
data_format = "{\"%s\":\"%s\",\"service\":\"%s\"}\n"
26+
} else {
27+
data_format = "{\"%s\":\"%s\"}\n"
28+
}
29+
2430
case "text":
25-
data_format = "%s:%s\n"
31+
if Service {
32+
data_format = "%s:%s:%s\n"
33+
} else {
34+
data_format = "%s:%s\n"
35+
}
2636
}
2737
defer file.Close()
2838
write := bufio.NewWriter(file)
2939
for {
3040
tmp_string := <-Result
3141
tmp := strings.Split(tmp_string, ":")
32-
writeline := fmt.Sprintf(data_format, tmp[0], tmp[1])
42+
writeline := ""
43+
if Service {
44+
writeline = fmt.Sprintf(data_format, tmp[0], tmp[1], tmp[2])
45+
} else {
46+
writeline = fmt.Sprintf(data_format, tmp[0], tmp[1])
47+
}
3348
write.WriteString(writeline)
3449
write.Flush()
3550
}

main.go

+13-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515

1616
var (
1717
Silent bool
18+
Service bool
1819
Outfile = flag.String("out", "", "result.txt")
1920
Target = flag.String("h", "127.0.0.1", "Target:f5.ink|114.67.111.74|114.67.111.74/28|114.67.111.74-80|114.67.111.74-114.67.111.80|114.67.111.*")
2021
TargetFile = flag.String("hf", "", "Target:ip.txt")
@@ -28,17 +29,27 @@ var (
2829

2930
func init() {
3031
flag.BoolVar(&Silent, "s", false, "silent mode")
32+
flag.BoolVar(&Service, "v", false, "service probes")
3133
}
3234

3335
func main() {
34-
36+
//network.MaxThread = 10000
37+
//network.Timeout = 1
38+
//network.MaxCheck = 2
39+
//*Target = "f5.ink"
40+
////*Target = "192.168.128.141"
41+
//data.Silent = Silent
42+
//config.Init()
43+
//AScanPort()
3544
flag.Parse()
3645
if len(os.Args) <= 1 {
3746
flag.Usage()
3847
} else {
3948
network.MaxThread = *Thread
4049
network.Timeout = *Timeout
4150
network.MaxCheck = *MaxCheck
51+
network.Service = Service
52+
data.Service = Service
4253
data.Silent = Silent
4354
config.Init()
4455
AScanPort()
@@ -48,7 +59,7 @@ func AScanPort() {
4859
go scan_logs()
4960
var start time.Time
5061
if !data.Silent {
51-
fmt.Print("AScanPort (Version:1.0.4)\n")
62+
fmt.Print("AScanPort (Version:1.0.5)\n")
5263
start = time.Now()
5364
}
5465
var Target_range interface{}

network/scan.go

+58-7
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"log"
77
"net"
88
"strconv"
9+
"strings"
910
"sync"
1011
"time"
1112
)
@@ -21,22 +22,40 @@ var (
2122
Pool sync.WaitGroup
2223
PoolHost sync.WaitGroup
2324
Port_count = 0
25+
client net.Conn
26+
Service = false
2427
)
2528

2629
func ScanPort(ip string, port string) {
2730
defer Pool.Done()
31+
//log.Println(ip,port)
32+
var err error
2833
//client, err := neta.Dial("tcp", ip+":"+port)
2934
for check := 0; check < MaxCheck; check++ {
30-
_, err := neta.Dial("tcp", ip+":"+port)
35+
client, err = neta.Dial("tcp", ip+":"+port)
3136
if err == nil {
32-
Port_count += 1
33-
data.Result <- ip + ":" + port
34-
if !data.Silent {
35-
log.Printf("{\"%s\":\"%s\"}\n", ip, port)
37+
if Service {
38+
if Service_return := Service_probes(client); Service_return != nil {
39+
Port_count += 1
40+
data.Result <- ip + ":" + port + ":" + Service_return.(string)
41+
if !data.Silent {
42+
log.Printf("{\"%s\":\"%s\",\"service\":\"%s\"}\n", ip, port, Service_return)
43+
} else {
44+
fmt.Println(ip + ":" + port + ":" + Service_return.(string))
45+
}
46+
break
47+
}
3648
} else {
37-
fmt.Println(ip + ":" + port)
49+
Port_count += 1
50+
data.Result <- ip + ":" + port
51+
if !data.Silent {
52+
log.Printf("{\"%s\":\"%s\"}\n", ip, port)
53+
} else {
54+
fmt.Println(ip + ":" + port)
55+
}
56+
break
3857
}
39-
break
58+
4059
}
4160
}
4261
<-ScanPortPoolMax
@@ -52,6 +71,9 @@ func HOSTScan(IP string) {
5271
}
5372
func Go(Target string) {
5473
IPLIST := IPLIST(Target)
74+
if len(IPLIST) == 1 {
75+
MaxHostThread = 1
76+
}
5577
for _, ip := range IPLIST {
5678
ScanHostPoolMax <- true
5779
PoolHost.Add(1)
@@ -61,3 +83,32 @@ func Go(Target string) {
6183
Pool.Wait()
6284

6385
}
86+
func Service_probes(client net.Conn) interface{} {
87+
client.SetReadDeadline(time.Now().Add(time.Duration(Timeout+2) * time.Second))
88+
defer client.Close()
89+
_, err := client.Write([]byte("HEAD / HTTP/1.1\n\n"))
90+
if err != nil {
91+
return nil
92+
}
93+
buf := make([]byte, 1024)
94+
n, err := client.Read(buf[:])
95+
if err != nil {
96+
return nil
97+
}
98+
//log.Println(client.RemoteAddr().String())
99+
service_data := string(buf[:n])
100+
service_data = strings.ToLower(service_data)
101+
switch {
102+
case strings.Contains(service_data, "http"):
103+
return "http"
104+
case strings.Contains(service_data, "ssh"):
105+
return "ssh"
106+
case strings.Contains(service_data[15:], "mariadb") || strings.Contains(service_data[15:], "mysql") || strings.Contains(service_data[15:], "native_password"):
107+
return "mysql"
108+
case strings.Contains(service_data, "ftp"):
109+
return "ftp"
110+
default:
111+
return "unknown"
112+
}
113+
114+
}

0 commit comments

Comments
 (0)