-
Notifications
You must be signed in to change notification settings - Fork 136
/
main.go
63 lines (55 loc) · 2.14 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// reverseSSH - a lightweight ssh server with a reverse connection feature
// Copyright (C) 2021 Ferdinor <[email protected]>
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
package main
import (
"github.com/gliderlabs/ssh"
)
// The following variables can be set via ldflags
var (
localPassword = "letmeinbrudipls"
authorizedKey = ""
defaultShell = "/bin/bash"
version = "1.3.0-dev"
LUSER = "reverse"
LHOST = ""
LPORT = "31337"
BPORT = "8888"
NOCLI = ""
)
func main() {
var (
p = setupParameters(NOCLI)
forwardHandler = &ssh.ForwardedTCPHandler{}
server = ssh.Server{
Handler: createSSHSessionHandler(p.shell),
PasswordHandler: createPasswordHandler(localPassword),
PublicKeyHandler: createPublicKeyHandler(authorizedKey),
LocalPortForwardingCallback: createLocalPortForwardingCallback(p.noShell),
ReversePortForwardingCallback: createReversePortForwardingCallback(),
SessionRequestCallback: createSessionRequestCallback(p.noShell),
ChannelHandlers: map[string]ssh.ChannelHandler{
"direct-tcpip": ssh.DirectTCPIPHandler,
"session": ssh.DefaultSessionHandler,
"rs-info": createExtraInfoHandler(),
},
RequestHandlers: map[string]ssh.RequestHandler{
"tcpip-forward": forwardHandler.HandleSSHRequest,
"cancel-tcpip-forward": forwardHandler.HandleSSHRequest,
},
SubsystemHandlers: map[string]ssh.SubsystemHandler{
"sftp": createSFTPHandler(),
},
}
)
run(p, server)
}