MCPcopy Create free account
hub / github.com/evilsocket/shellz / NewTelnet

Function NewTelnet

session/telnet.go:26–55  ·  view source on GitHub ↗
(sh models.Shell, timeouts core.Timeouts)

Source from the content-addressed store, hash-verified

24}
25
26func NewTelnet(sh models.Shell, timeouts core.Timeouts) (error, Session) {
27 var err error
28
29 t := &TelnetSession{
30 host: net.JoinHostPort(sh.Host, strconv.Itoa(sh.Port)),
31 timeouts: timeouts,
32 }
33
34 _, err = async.WithTimeout(timeouts.Connect, func() interface{} {
35 t.client, err = telnet.DialTo(t.host)
36 return err
37 })
38 if err != nil {
39 return err, nil
40 }
41
42 if sh.Identity.Username != "" && sh.Identity.Password != "" {
43 t.doReadUntil(": ")
44 if _, err = t.doWrite([]byte(sh.Identity.Username + "\n")); err != nil {
45 return fmt.Errorf("error while sending telnet username: %s", err), nil
46 }
47
48 t.doReadUntil(": ")
49 if _, err = t.doWrite([]byte(sh.Identity.Password + "\n")); err != nil {
50 return fmt.Errorf("error while sending telnet password: %s", err), nil
51 }
52 }
53
54 return nil, t
55}
56
57func (t *TelnetSession) Type() string {
58 return "telnet"

Callers

nothing calls this directly

Calls 2

doReadUntilMethod · 0.95
doWriteMethod · 0.95

Tested by

no test coverage detected