后门开发
Created At :
Views 👀 :
正向后门
后门程序通过Socket的bind函数监听一个特定的端口,攻击者连接后可以得到一个shell
传统socket编程流程如下
使用socket()创建一个socket,使用bind绑定socket,使用listen监听一个端口,使用accept接受客户端连接,使用send与receiver与客户端通信
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
| package main
import ( "fmt" "net" )
func handleClient(conn net.Conn) { defer conn.Close()
buffer := make([]byte, 1024) n, err := conn.Read(buffer) if err != nil { fmt.Println("Error reading data:", err) return }
data := buffer[:n] fmt.Println("Received data:", string(data))
response := "Hello from the server!" _, err = conn.Write([]byte(response)) if err != nil { fmt.Println("Error writing data:", err) return } }
func main() { listener, err := net.Listen("tcp", ":8080") if err != nil { fmt.Println("Error listening:", err) return } defer listener.Close()
fmt.Println("Server is listening on port 8080...")
for { conn, err := listener.Accept() if err != nil { fmt.Println("Error accepting connection:", err) continue }
fmt.Println("New client connected:", conn.RemoteAddr())
go handleClient(conn) } }
|
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com