Skip to content

Commit c2a1caa

Browse files
committed
support jdwp
1 parent 27a35c2 commit c2a1caa

File tree

5 files changed

+71
-2
lines changed

5 files changed

+71
-2
lines changed

common/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import (
55
"net/http"
66
)
77

8-
var version = "0.0.3"
8+
var version = "0.0.4"
99

1010
type InputInfoStruct struct {
1111
Host string

discover/protocol/identify.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,13 @@ func JudgeTcp(result map[string]interface{}, Args map[string]interface{}) bool {
148148
}
149149
}
150150

151+
if protocol == "jdwp" || runAll {
152+
if judge.TcpJdwp(result, Args) {
153+
printSuccess("TCP/JDWP", result)
154+
return true
155+
}
156+
}
157+
151158
status := result["status"].(string)
152159
if status == "open" && runAll {
153160
printFailed("TCP/unknown", result)

discover/protocol/judge/tcp_jdwp.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package judge
2+
3+
import (
4+
"bytes"
5+
"nacs/utils/logger"
6+
"strings"
7+
8+
"nacs/discover/parse"
9+
"nacs/discover/proxy"
10+
)
11+
12+
func TcpJdwp(result map[string]interface{}, Args map[string]interface{}) bool {
13+
timeout := Args["Timeout"].(int)
14+
host := result["host"].(string)
15+
port := result["port"].(int)
16+
17+
conn, err := proxy.ConnProxyTcp(host, port, timeout)
18+
if logger.DebugError(err) {
19+
return false
20+
}
21+
22+
msg := "JDWP-Handshake"
23+
_, err = conn.Write([]byte(msg))
24+
if logger.DebugError(err) {
25+
return false
26+
}
27+
28+
reply := make([]byte, 256)
29+
_, _ = conn.Read(reply)
30+
if conn != nil {
31+
_ = conn.Close()
32+
}
33+
34+
var buffer [256]byte
35+
if bytes.Equal(reply[:], buffer[:]) {
36+
return false
37+
}
38+
if strings.Contains(string(reply), "JDWP-Handshake") == false {
39+
return false
40+
}
41+
result["protocol"] = "jdwp"
42+
result["banner.string"] = parse.ByteToStringParse2(reply[0:16])
43+
result["banner.byte"] = reply
44+
return true
45+
}

go.mod

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,22 @@ require (
4242
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect
4343
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect
4444
github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 // indirect
45+
github.com/andybalholm/brotli v1.0.4 // indirect
4546
github.com/andygrunwald/go-jira v1.15.1 // indirect
4647
github.com/antchfx/htmlquery v1.2.4 // indirect
4748
github.com/antchfx/xpath v1.2.0 // indirect
4849
github.com/antlr/antlr4 v0.0.0-20200503195918-621b933c7a7f // indirect
4950
github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
5051
github.com/aws/aws-sdk-go v1.44.15 // indirect
52+
github.com/buger/jsonparser v1.1.1 // indirect
5153
github.com/caddyserver/certmagic v0.16.1 // indirect
5254
github.com/cnf/structhash v0.0.0-20201127153200-e1b16c1ebc08 // indirect
5355
github.com/corpix/uarand v0.1.1 // indirect
5456
github.com/dimchansky/utfbom v1.1.1 // indirect
5557
github.com/docker/go-units v0.4.0 // indirect
5658
github.com/dsnet/compress v0.0.1 // indirect
5759
github.com/fatih/structs v1.1.0 // indirect
60+
github.com/fofapro/fofa-go v0.0.0-20200317042037-c0caee09013d // indirect
5861
github.com/go-ole/go-ole v1.2.6 // indirect
5962
github.com/go-playground/locales v0.14.0 // indirect
6063
github.com/go-playground/universal-translator v0.18.0 // indirect
@@ -86,7 +89,7 @@ require (
8689
github.com/karlseguin/ccache v2.0.3+incompatible // indirect
8790
github.com/karlseguin/expect v1.0.8 // indirect
8891
github.com/karrick/godirwalk v1.17.0 // indirect
89-
github.com/klauspost/compress v1.15.2 // indirect
92+
github.com/klauspost/compress v1.15.9 // indirect
9093
github.com/klauspost/cpuid/v2 v2.0.11 // indirect
9194
github.com/leodido/go-urn v1.2.1 // indirect
9295
github.com/libdns/libdns v0.2.1 // indirect
@@ -139,6 +142,7 @@ require (
139142
github.com/ulikunitz/xz v0.5.10 // indirect
140143
github.com/ulule/deepcopier v0.0.0-20200430083143-45decc6639b6 // indirect
141144
github.com/valyala/bytebufferpool v1.0.0 // indirect
145+
github.com/valyala/fasthttp v1.38.0 // indirect
142146
github.com/valyala/fasttemplate v1.2.1 // indirect
143147
github.com/weppos/publicsuffix-go v0.15.1-0.20210928183822-5ee35905bd95 // indirect
144148
github.com/xanzy/go-gitlab v0.65.0 // indirect

go.sum

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAu
6363
github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE=
6464
github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129 h1:MzBOUgng9orim59UnfUTLRjMpd09C5uEVQ6RPGeCaVI=
6565
github.com/andres-erbsen/clock v0.0.0-20160526145045-9e14626cd129/go.mod h1:rFgpPQZYZ8vdbc+48xibu8ALc3yeyd64IhHS+PU6Yyg=
66+
github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
67+
github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
6668
github.com/andygrunwald/go-jira v1.15.1 h1:6J9aYKb9sW8bxv3pBLYBrs0wdsFrmGI5IeTgWSKWKc8=
6769
github.com/andygrunwald/go-jira v1.15.1/go.mod h1:GIYN1sHOIsENWUZ7B4pDeT/nxEtrZpE8l0987O67ZR8=
6870
github.com/antchfx/htmlquery v1.2.4 h1:qLteofCMe/KGovBI6SQgmou2QNyedFUW+pE+BpeZ494=
@@ -88,6 +90,8 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB
8890
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
8991
github.com/bluele/gcache v0.0.2 h1:WcbfdXICg7G/DGBh1PFfcirkWOQV+v077yF1pSy3DGw=
9092
github.com/bluele/gcache v0.0.2/go.mod h1:m15KV+ECjptwSPxKhOhQoAFQVtUFjTVkc3H8o0t/fp0=
93+
github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
94+
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
9195
github.com/caddyserver/certmagic v0.16.1 h1:rdSnjcUVJojmL4M0efJ+yHXErrrijS4YYg3FuwRdJkI=
9296
github.com/caddyserver/certmagic v0.16.1/go.mod h1:jKQ5n+ViHAr6DbPwEGLTSM2vDwTO6EvCKBblBRUvvuQ=
9397
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -147,6 +151,8 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
147151
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
148152
github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo=
149153
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
154+
github.com/fofapro/fofa-go v0.0.0-20200317042037-c0caee09013d h1:UiqIc/3lkMuU/N3KPO0idxX5JDWxwxEexbc38IV3+0s=
155+
github.com/fofapro/fofa-go v0.0.0-20200317042037-c0caee09013d/go.mod h1:hcTueqMxqEIm7jD0wK7+rEJVvieYVgXv6Cif8PZsB2U=
150156
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
151157
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
152158
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
@@ -357,8 +363,11 @@ github.com/karrick/godirwalk v1.17.0/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1q
357363
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
358364
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
359365
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
366+
github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
360367
github.com/klauspost/compress v1.15.2 h1:3WH+AG7s2+T8o3nrM/8u2rdqUEcQhmga7smjrT41nAw=
361368
github.com/klauspost/compress v1.15.2/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
369+
github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY=
370+
github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
362371
github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
363372
github.com/klauspost/cpuid/v2 v2.0.11 h1:i2lw1Pm7Yi/4O6XCSyJWqEHI2MDw2FzUK6o/D21xn2A=
364373
github.com/klauspost/cpuid/v2 v2.0.11/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
@@ -622,8 +631,11 @@ github.com/ulule/deepcopier v0.0.0-20200430083143-45decc6639b6 h1:TtyC78WMafNW8Q
622631
github.com/ulule/deepcopier v0.0.0-20200430083143-45decc6639b6/go.mod h1:h8272+G2omSmi30fBXiZDMkmHuOgonplfKIKjQWzlfs=
623632
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
624633
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
634+
github.com/valyala/fasthttp v1.38.0 h1:yTjSSNjuDi2PPvXY2836bIwLmiTS2T4T9p1coQshpco=
635+
github.com/valyala/fasthttp v1.38.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxndDB4i4C0I=
625636
github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4=
626637
github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
638+
github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc=
627639
github.com/veandco/go-sdl2 v0.4.0/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg=
628640
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
629641
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
@@ -712,6 +724,7 @@ golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWP
712724
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
713725
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
714726
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
727+
golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
715728
golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898 h1:SLP7Q4Di66FONjDJbCYrCRrh97focO6sLogHO7/g8F0=
716729
golang.org/x/crypto v0.0.0-20220518034528-6f7dac969898/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
717730
golang.org/x/exp v0.0.0-20181106170214-d68db9428509/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=

0 commit comments

Comments
 (0)