Linux id-dci-web1412.main-hosting.eu 5.14.0-611.20.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 14 06:35:04 EST 2026 x86_64
LiteSpeed
: 2a02:4780:6:1512:0:19fc:adf1:2 | : 216.73.216.85
Cant Read [ /etc/named.conf ]
8.1.34
u435990001
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
opt /
go /
pkg /
mod /
golang.org /
x /
crypto@v0.18.0 /
ssh /
[ HOME SHELL ]
Name
Size
Permission
Action
agent
[ DIR ]
dr-xr-xr-x
internal
[ DIR ]
dr-xr-xr-x
knownhosts
[ DIR ]
dr-xr-xr-x
terminal
[ DIR ]
dr-xr-xr-x
test
[ DIR ]
dr-xr-xr-x
testdata
[ DIR ]
dr-xr-xr-x
benchmark_test.go
2.33
KB
-r--r--r--
buffer.go
2.13
KB
-r--r--r--
buffer_test.go
2.17
KB
-r--r--r--
certs.go
17.5
KB
-r--r--r--
certs_test.go
13.67
KB
-r--r--r--
channel.go
16.12
KB
-r--r--r--
cipher.go
21.25
KB
-r--r--r--
cipher_test.go
6.13
KB
-r--r--r--
client.go
8.58
KB
-r--r--r--
client_auth.go
23.27
KB
-r--r--r--
client_auth_test.go
32.46
KB
-r--r--r--
client_test.go
8.62
KB
-r--r--r--
common.go
13.2
KB
-r--r--r--
common_test.go
3.71
KB
-r--r--r--
connection.go
3.33
KB
-r--r--r--
doc.go
1007
B
-r--r--r--
example_test.go
10.79
KB
-r--r--r--
handshake.go
21.73
KB
-r--r--r--
handshake_test.go
26.84
KB
-r--r--r--
kex.go
22.18
KB
-r--r--r--
kex_test.go
2.45
KB
-r--r--r--
keys.go
44.73
KB
-r--r--r--
keys_test.go
19.62
KB
-r--r--r--
mac.go
1.54
KB
-r--r--r--
mempipe_test.go
2.3
KB
-r--r--r--
messages.go
20.28
KB
-r--r--r--
messages_test.go
6.05
KB
-r--r--r--
mux.go
7.88
KB
-r--r--r--
mux_test.go
18.06
KB
-r--r--r--
server.go
25.93
KB
-r--r--r--
server_test.go
3.33
KB
-r--r--r--
session.go
15.08
KB
-r--r--r--
session_test.go
21.29
KB
-r--r--r--
ssh_gss.go
5.44
KB
-r--r--r--
ssh_gss_test.go
3.23
KB
-r--r--r--
streamlocal.go
2.87
KB
-r--r--r--
tcpip.go
12.84
KB
-r--r--r--
tcpip_test.go
1.45
KB
-r--r--r--
testdata_test.go
2.11
KB
-r--r--r--
transport.go
9.76
KB
-r--r--r--
transport_test.go
2.73
KB
-r--r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : client_test.go
// Copyright 2014 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package ssh import ( "bytes" "crypto/rand" "errors" "fmt" "net" "strings" "testing" ) func TestClientVersion(t *testing.T) { for _, tt := range []struct { name string version string multiLine string wantErr bool }{ { name: "default version", version: packageVersion, }, { name: "custom version", version: "SSH-2.0-CustomClientVersionString", }, { name: "good multi line version", version: packageVersion, multiLine: strings.Repeat("ignored\r\n", 20), }, { name: "bad multi line version", version: packageVersion, multiLine: "bad multi line version", wantErr: true, }, { name: "long multi line version", version: packageVersion, multiLine: strings.Repeat("long multi line version\r\n", 50)[:256], wantErr: true, }, } { t.Run(tt.name, func(t *testing.T) { c1, c2, err := netPipe() if err != nil { t.Fatalf("netPipe: %v", err) } defer c1.Close() defer c2.Close() go func() { if tt.multiLine != "" { c1.Write([]byte(tt.multiLine)) } NewClientConn(c1, "", &ClientConfig{ ClientVersion: tt.version, HostKeyCallback: InsecureIgnoreHostKey(), }) c1.Close() }() conf := &ServerConfig{NoClientAuth: true} conf.AddHostKey(testSigners["rsa"]) conn, _, _, err := NewServerConn(c2, conf) if err == nil == tt.wantErr { t.Fatalf("got err %v; wantErr %t", err, tt.wantErr) } if tt.wantErr { // Don't verify the version on an expected error. return } if got := string(conn.ClientVersion()); got != tt.version { t.Fatalf("got %q; want %q", got, tt.version) } }) } } func TestHostKeyCheck(t *testing.T) { for _, tt := range []struct { name string wantError string key PublicKey }{ {"no callback", "must specify HostKeyCallback", nil}, {"correct key", "", testSigners["rsa"].PublicKey()}, {"mismatch", "mismatch", testSigners["ecdsa"].PublicKey()}, } { c1, c2, err := netPipe() if err != nil { t.Fatalf("netPipe: %v", err) } defer c1.Close() defer c2.Close() serverConf := &ServerConfig{ NoClientAuth: true, } serverConf.AddHostKey(testSigners["rsa"]) go NewServerConn(c1, serverConf) clientConf := ClientConfig{ User: "user", } if tt.key != nil { clientConf.HostKeyCallback = FixedHostKey(tt.key) } _, _, _, err = NewClientConn(c2, "", &clientConf) if err != nil { if tt.wantError == "" || !strings.Contains(err.Error(), tt.wantError) { t.Errorf("%s: got error %q, missing %q", tt.name, err.Error(), tt.wantError) } } else if tt.wantError != "" { t.Errorf("%s: succeeded, but want error string %q", tt.name, tt.wantError) } } } func TestVerifyHostKeySignature(t *testing.T) { for _, tt := range []struct { key string signAlgo string verifyAlgo string wantError string }{ {"rsa", KeyAlgoRSA, KeyAlgoRSA, ""}, {"rsa", KeyAlgoRSASHA256, KeyAlgoRSASHA256, ""}, {"rsa", KeyAlgoRSA, KeyAlgoRSASHA512, `ssh: invalid signature algorithm "ssh-rsa", expected "rsa-sha2-512"`}, {"ed25519", KeyAlgoED25519, KeyAlgoED25519, ""}, } { key := testSigners[tt.key].PublicKey() s, ok := testSigners[tt.key].(AlgorithmSigner) if !ok { t.Fatalf("needed an AlgorithmSigner") } sig, err := s.SignWithAlgorithm(rand.Reader, []byte("test"), tt.signAlgo) if err != nil { t.Fatalf("couldn't sign: %q", err) } b := bytes.Buffer{} writeString(&b, []byte(sig.Format)) writeString(&b, sig.Blob) result := kexResult{Signature: b.Bytes(), H: []byte("test")} err = verifyHostKeySignature(key, tt.verifyAlgo, &result) if err != nil { if tt.wantError == "" || !strings.Contains(err.Error(), tt.wantError) { t.Errorf("got error %q, expecting %q", err.Error(), tt.wantError) } } else if tt.wantError != "" { t.Errorf("succeeded, but want error string %q", tt.wantError) } } } func TestBannerCallback(t *testing.T) { c1, c2, err := netPipe() if err != nil { t.Fatalf("netPipe: %v", err) } defer c1.Close() defer c2.Close() serverConf := &ServerConfig{ PasswordCallback: func(conn ConnMetadata, password []byte) (*Permissions, error) { return &Permissions{}, nil }, BannerCallback: func(conn ConnMetadata) string { return "Hello World" }, } serverConf.AddHostKey(testSigners["rsa"]) go NewServerConn(c1, serverConf) var receivedBanner string var bannerCount int clientConf := ClientConfig{ Auth: []AuthMethod{ Password("123"), }, User: "user", HostKeyCallback: InsecureIgnoreHostKey(), BannerCallback: func(message string) error { bannerCount++ receivedBanner = message return nil }, } _, _, _, err = NewClientConn(c2, "", &clientConf) if err != nil { t.Fatal(err) } if bannerCount != 1 { t.Errorf("got %d banners; want 1", bannerCount) } expected := "Hello World" if receivedBanner != expected { t.Fatalf("got %s; want %s", receivedBanner, expected) } } func TestNewClientConn(t *testing.T) { errHostKeyMismatch := errors.New("host key mismatch") for _, tt := range []struct { name string user string simulateHostKeyMismatch HostKeyCallback }{ { name: "good user field for ConnMetadata", user: "testuser", }, { name: "empty user field for ConnMetadata", user: "", }, { name: "host key mismatch", user: "testuser", simulateHostKeyMismatch: func(hostname string, remote net.Addr, key PublicKey) error { return fmt.Errorf("%w: %s", errHostKeyMismatch, bytes.TrimSpace(MarshalAuthorizedKey(key))) }, }, } { t.Run(tt.name, func(t *testing.T) { c1, c2, err := netPipe() if err != nil { t.Fatalf("netPipe: %v", err) } defer c1.Close() defer c2.Close() serverConf := &ServerConfig{ PasswordCallback: func(conn ConnMetadata, password []byte) (*Permissions, error) { return &Permissions{}, nil }, } serverConf.AddHostKey(testSigners["rsa"]) go NewServerConn(c1, serverConf) clientConf := &ClientConfig{ User: tt.user, Auth: []AuthMethod{ Password("testpw"), }, HostKeyCallback: InsecureIgnoreHostKey(), } if tt.simulateHostKeyMismatch != nil { clientConf.HostKeyCallback = tt.simulateHostKeyMismatch } clientConn, _, _, err := NewClientConn(c2, "", clientConf) if err != nil { if tt.simulateHostKeyMismatch != nil && errors.Is(err, errHostKeyMismatch) { return } t.Fatal(err) } if userGot := clientConn.User(); userGot != tt.user { t.Errorf("got user %q; want user %q", userGot, tt.user) } }) } } func TestUnsupportedAlgorithm(t *testing.T) { for _, tt := range []struct { name string config Config wantError string }{ { "unsupported KEX", Config{ KeyExchanges: []string{"unsupported"}, }, "no common algorithm", }, { "unsupported and supported KEXs", Config{ KeyExchanges: []string{"unsupported", kexAlgoCurve25519SHA256}, }, "", }, { "unsupported cipher", Config{ Ciphers: []string{"unsupported"}, }, "no common algorithm", }, { "unsupported and supported ciphers", Config{ Ciphers: []string{"unsupported", chacha20Poly1305ID}, }, "", }, { "unsupported MAC", Config{ MACs: []string{"unsupported"}, // MAC is used for non AAED ciphers. Ciphers: []string{"aes256-ctr"}, }, "no common algorithm", }, { "unsupported and supported MACs", Config{ MACs: []string{"unsupported", "hmac-sha2-256-etm@openssh.com"}, // MAC is used for non AAED ciphers. Ciphers: []string{"aes256-ctr"}, }, "", }, } { t.Run(tt.name, func(t *testing.T) { c1, c2, err := netPipe() if err != nil { t.Fatalf("netPipe: %v", err) } defer c1.Close() defer c2.Close() serverConf := &ServerConfig{ Config: tt.config, PasswordCallback: func(conn ConnMetadata, password []byte) (*Permissions, error) { return &Permissions{}, nil }, } serverConf.AddHostKey(testSigners["rsa"]) go NewServerConn(c1, serverConf) clientConf := &ClientConfig{ User: "testuser", Config: tt.config, Auth: []AuthMethod{ Password("testpw"), }, HostKeyCallback: InsecureIgnoreHostKey(), } _, _, _, err = NewClientConn(c2, "", clientConf) if err != nil { if tt.wantError == "" || !strings.Contains(err.Error(), tt.wantError) { t.Errorf("%s: got error %q, missing %q", tt.name, err.Error(), tt.wantError) } } else if tt.wantError != "" { t.Errorf("%s: succeeded, but want error string %q", tt.name, tt.wantError) } }) } }
Close