Hello world

This commit is contained in:
yuhan6665
2023-03-05 21:14:33 -05:00
parent a395bbfb8d
commit 7c00227a46
4 changed files with 77 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
RealiTLScanner
+14
View File
@@ -0,0 +1,14 @@
# Reality - Tls - Scanner
Build
```
go build
```
Usage
Recommend to run this tool locally. It may cause VPS to be flagged if you run scanner in the cloud.
```
./RealiTLScanner -addr www.microsoft.com
./RealiTLScanner -addr 20.81.111.85
``
+3
View File
@@ -0,0 +1,3 @@
module github.com/xtls/RealiTLScanner
go 1.19
+59
View File
@@ -0,0 +1,59 @@
package main
import (
"crypto/tls"
"flag"
"fmt"
"net"
"time"
)
func main() {
addrPtr := flag.String("addr", "127.0.0.1", "Destination to start scan")
portPtr := flag.String("port", "443", "Port to scan")
flag.Parse()
fmt.Println("Reality Tls Scanner running: ", *addrPtr, ":", *portPtr)
s := Scanner {
addr: *addrPtr,
port: *portPtr,
timeout: 10 * time.Second,
numberOfThread: 1,
}
s.Run()
}
type Scanner struct {
addr string
port string
timeout time.Duration
numberOfThread int
}
func (s Scanner) Run() {
conn, err := net.DialTimeout("tcp", s.addr+":"+s.port, s.timeout)
if err != nil {
fmt.Println("Dial failed: ", err)
return
}
line := "" + conn.RemoteAddr().String() + " \t----- "
conn.SetDeadline(time.Now().Add(s.timeout))
c := tls.Client(conn, &tls.Config {
InsecureSkipVerify: true,
NextProtos: []string{"h2", "http/1.1"},
})
err = c.Handshake()
if err != nil {
fmt.Println("", line, "TLS handshake failed: ", err)
return
}
defer c.Close()
state := c.ConnectionState()
fmt.Println("", line, "Found TLS v", TlsDic[state.Version], "\tALPN", state.NegotiatedProtocol, "\t", state.PeerCertificates[0].Subject)
}
var TlsDic = map[uint16]string{
0x0301: "1.0",
0x0302: "1.1",
0x0303: "1.2",
0x0304: "1.3",
}