Skip to content

Commit d39fea0

Browse files
authored
Merge pull request #23 from zhzyker/version-0.4
Version 0.4
2 parents bc30527 + a2a779f commit d39fea0

File tree

11 files changed

+232
-232
lines changed

11 files changed

+232
-232
lines changed

configs/banner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func Banner() {
1313
"/ /_/ / _ / _(__ )_ / / / / / /_/ /__ /_/ /\n" +
1414
"\\__,_/ /_/ /____/ /_/ /_/ /_/\\__,_/ _ .___/\n" +
1515
" /_/"
16-
s := " dismap version: 0.3 release\n" +
16+
s := " dismap version: 0.4 release\n" +
1717
" author: zhzyker && Nemophllist\n" +
1818
" from: https://github.com/zhzyker/dismap\n"
1919
fmt.Println(logger.Purple(b))

configs/config.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package configs
22

3-
4-
5-
var DefaultPorts = []int{21,22,25,53,69,79,80,81,82,83,84,85,86,87,88,89,110,135,137,138,139,143,389,443,445,554,587,631,800,801,808,880,888,1000,1024,1025,1080,1099,1389,1433,1521,2000,2001,2222,2601,3306,3307,3388,3389,3443,5800,5900,6379,7000,7001,7007,7010,7788,8000,8001,8002,8003,8004,8005,8006,8007,8008,8009,8010,8011,8030,8060,8070,8080,8081,8082,8083,8084,8085,8086,8087,8088,8089,8090,8091,8092,8093,8094,8095,8096,8097,8098,8099,8161,8175,8188,8189,8443,8445,8448,8554,8800,8848,8880,8881,8888,8899,8983,8989,9000,9001,9002,9008,9010,9043,9060,9080,9081,9082,9083,9084,9085,9086,9087,9088,9089,9090,9091,9092,9093,9094,9095,9096,9097,9099,9443,9448,9600,9628,9800,9899,9981,9986,9988,9998,9999,11001,13443,15000,20000,33890,45554,49155,49156,50050,61616}
3+
var DefaultPorts = []int{21, 22, 23, 25, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 110, 135, 137, 138, 139, 143, 389, 443, 445, 587, 631, 800, 801, 808, 880, 888, 1000, 1024, 1025, 1080, 1099, 1389, 1433, 1521, 2383, 3306, 3307, 3388, 3389, 3443, 5000, 5357, 5560, 5800, 5900, 6379, 7000, 7001, 7007, 7010, 7788, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8030, 8060, 8070, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8161, 8175, 8188, 8189, 8200, 8443, 8445, 8448, 8554, 8800, 8848, 8880, 8881, 8888, 8899, 8983, 8989, 9000, 9001, 9002, 9008, 9010, 9043, 9060, 9080, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9099, 9443, 9600, 9628, 9800, 9999, 11001, 13443, 49155, 50050, 61616}
64

75
var DefaultHeader = map[string]string{
86
"Accept-Language": "zh,zh-TW;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6",
9-
"User-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36",
10-
"Cookie": "rememberMe=int",
11-
}
7+
"User-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36",
8+
"Cookie": "rememberMe=int",
9+
}

configs/rule.go

Lines changed: 38 additions & 37 deletions
Large diffs are not rendered by default.

internal/operate/flag_network.go

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,41 @@ func FlagNetwork(op *os.File, wg *sync.WaitGroup, lock *sync.Mutex, address stri
3232
intIde := 0
3333
for _, host := range actualHosts {
3434
for _, port := range ports {
35-
wg.Add(1)
35+
wg.Add(3)
3636
intSyncThread++
3737
go func(host string, port int, Args map[string]interface{}) {
38-
res := protocol.Discover(host, port, Args)
39-
if res["status"].(string) == "open" {
38+
resTls := protocol.DiscoverTls(host, port, Args)
39+
if resTls["status"].(string) == "open" {
4040
intAll++
41-
parse.VerboseParse(res)
42-
output.Write(res, op)
43-
if strings.Contains(res["uri"].(string), "://") {
41+
parse.VerboseParse(resTls)
42+
output.Write(resTls, op)
43+
if strings.Contains(resTls["uri"].(string), "://") {
44+
intIde++
45+
}
46+
}
47+
wg.Done()
48+
}(host, port, Args)
49+
50+
go func(host string, port int, Args map[string]interface{}) {
51+
resTcp := protocol.DiscoverTcp(host, port, Args)
52+
if resTcp["status"].(string) == "open" {
53+
intAll++
54+
parse.VerboseParse(resTcp)
55+
output.Write(resTcp, op)
56+
if strings.Contains(resTcp["uri"].(string), "://") {
57+
intIde++
58+
}
59+
}
60+
wg.Done()
61+
}(host, port, Args)
62+
63+
go func(host string, port int, Args map[string]interface{}) {
64+
resUdp := protocol.DiscoverUdp(host, port, Args)
65+
if resUdp["status"].(string) == "open" {
66+
intAll++
67+
parse.VerboseParse(resUdp)
68+
output.Write(resUdp, op)
69+
if strings.Contains(resUdp["uri"].(string), "://") {
4470
intIde++
4571
}
4672
}

internal/operate/flag_url.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,15 @@ func FlagUrl(op *os.File, uri string, Args map[string]interface{}) {
1313
if logger.DebugError(err) {
1414
return
1515
}
16-
if Args["FlagMode"] == Args["FlagType"] {
17-
if scheme == "https" {
18-
Args["FlagType"] = "tls"
19-
Args["FlagMode"] = scheme
20-
} else {
21-
Args["FlagType"] = "tcp"
22-
Args["FlagMode"] = scheme
23-
}
24-
}
25-
res := protocol.Discover(host, port, Args)
26-
if Args["FlagMode"] == Args["FlagType"] {
27-
Args["FlagType"] = ""
28-
Args["FlagMode"] = ""
16+
var res map[string]interface{}
17+
//Args["FlagMode"] = scheme
18+
switch scheme {
19+
case "http":
20+
res = protocol.DiscoverTcp(host, port, Args)
21+
case "https":
22+
res = protocol.DiscoverTls(host, port, Args)
2923
}
24+
//Args["FlagMode"] = ""
3025
parse.VerboseParse(res)
3126
output.Write(res, op)
3227
}

internal/output/output.go

Lines changed: 38 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,64 @@
11
package output
22

33
import (
4+
"encoding/hex"
5+
"encoding/json"
46
"fmt"
7+
"github.com/zhzyker/dismap/internal/flag"
58
"github.com/zhzyker/dismap/pkg/logger"
69
"os"
10+
"time"
711
)
812

9-
func Open(Args map[string]interface{}) *os.File {
10-
o := Args["FlagOutput"].(string)
11-
op, err := os.OpenFile(o, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
12-
if logger.DebugError(err) {
13-
logger.Error(fmt.Sprintf("Failed to open file %s", logger.Red(o)))
13+
func Open(Args map[string]interface{}) *os.File {
14+
if len(Args["FlagOutJson"].(string)) != 0 {
15+
return openFile(Args["FlagOutJson"].(string))
16+
} else {
17+
return openFile(Args["FlagOutput"].(string))
1418
}
15-
return op
1619
}
1720

1821
func Write(result map[string]interface{}, output *os.File) {
1922
if result["status"].(string) == "close" {
2023
return
2124
}
22-
JsonOutput(result, "save")
23-
content := fmt.Sprintf("%s, %s, %s, %s, %s, %s",
24-
logger.GetTime(),
25-
result["type"],
26-
result["protocol"],
27-
logger.Clean(result["identify.string"].(string)),
28-
result["uri"],
29-
result["banner.string"])
30-
var text = []byte(content + "\n")
31-
_, err := output.Write(text)
32-
if logger.DebugError(err) {
33-
logger.Error(fmt.Sprintf("Target %s write failed", logger.Red(result["uri"])))
25+
if len(flag.OutJson) != 0 {
26+
result["banner.byte"] = hex.EncodeToString(result["banner.byte"].([]byte))
27+
result["date"] = time.Now().Unix()
28+
byteR, _ := json.Marshal(result)
29+
writeContent(output, string(byteR))
30+
} else {
31+
content := fmt.Sprintf("%s, %s, %s, %s, %s, %s",
32+
logger.GetTime(),
33+
result["type"],
34+
result["protocol"],
35+
logger.Clean(result["identify.string"].(string)),
36+
result["uri"],
37+
result["banner.string"])
38+
writeContent(output, content)
3439
}
3540
}
3641

3742
func Close(file *os.File) {
38-
JsonOutput(nil, "write")
3943
err := file.Close()
4044
if logger.DebugError(err) {
4145
logger.Error(fmt.Sprintf("Close file %s exception", logger.Red(file.Name())))
4246
} else {
4347
logger.Info("The identification results are saved in " + logger.Yellow(file.Name()))
4448
}
4549
}
50+
51+
func openFile(name string) *os.File {
52+
osFile, err := os.OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
53+
if logger.DebugError(err) {
54+
logger.Error(fmt.Sprintf("Failed to open file %s", logger.Red(name)))
55+
}
56+
return osFile
57+
}
58+
59+
func writeContent(file *os.File, content string) {
60+
_, err := file.Write([]byte(content + "\n"))
61+
if logger.DebugError(err) {
62+
logger.Error(fmt.Sprintf("Write failed: %s", logger.Red(content)))
63+
}
64+
}

internal/output/output_json.go

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)