BHP Net Tool

#导入需要用到的包
import sys
import getopt
import threading
import socket
import subprocess

#定义全局变量
listen              = False
command             = False
upload              = False
execute             = ‘‘
target              = ‘‘
upload_destination  = ‘‘
port                = 0

def usage():
    print(‘‘‘BHP Net Tool

    usage: bhpnet.py -t target_host -p port
    -l --listen                 - listen on [host]:[port] for incoming connections
    -e --execute                - execute the given file upon receiving a connection
    -c --command                - initialize a command shell
    -u --upload = destination   - upon receiving connection upload a file and write to [destination]

    Examples:
    bhpnet.py -t 192.168.0.1 -p 5555 -l -c
    bhpnet.py -t 192.168.0.1 -p 5555 -l -u=c:\\target.exe
    bhpnet.py -t 192.168.0.1 -p 5555 -l -e=cat /etc/passwd
    echo ‘ABCDEFGHI‘ | ./bhpnet.py -t 192.168.0.1 -p 135
    ‘‘‘)
    sys.exit(0)

def client_sender(buffer):
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

    try:
        #连接到目标主机

        client.connect((target,port))

        if len(buffer):
            client.send(buffer.encode())

        while True:

            #等待数据回传
            recv_len = 1
            response = ‘‘

            while recv_len:
                data = client.recv(4096)
                recv_len = len(data)
                response+=data.decode()

                if recv_len < 4096:
                    break

            print(response)

            #等待输入
            buffer = input(‘‘)
            buffer +=‘\n‘

            #发送出去

            client.send(buffer.encode())

    except Exception as e:
        print(str(e))
        print(‘[*] Exception ! Exiting .‘)
        client.close()

def main():
    global listen
    global command
    global upload
    global execute
    global target
    global upload_destination
    global port

    if not len(sys.argv[1:]):   #如果没有参数则打印帮助信息
        usage()

    try:
        options,args = getopt.getopt(sys.argv[1:],‘hle:t:p:cu:‘,[‘help‘,‘listen‘,‘target‘,‘port‘,‘command‘,‘upload‘])
    except getopt.GetoptError as err:
        print(str(err))
        usage()

    for o,a in options:
        if o in (‘-h‘,‘--help‘):
            usage()
        elif o in (‘-l‘,‘--listen‘):
            listen = True
        elif o in (‘-e‘,‘--execute‘):
            execute = a
        elif o in (‘-c‘,‘--command‘):
            command = True
        elif o in (‘-u‘,‘--upload‘):
            upload_destination = a
        elif o in (‘-t‘,‘--target‘):
            target = a
        elif o in (‘-p‘,‘--port‘):
            port = int(a)
        else :
            assert False,"Unhandled Option"

    if not listen and len(target) and port > 0 :
        buffer = sys.stdin.read()

        client_sender(buffer)

    if listen :
        server_loop()
main()
时间: 2025-01-31 07:43:10

BHP Net Tool的相关文章

python 实现 netcat

import sys import socket import getopt import threading import subprocess listen = False command = False upload = False execute = "" target = "" upload_destination = "" port = 0 def usage():     print "BHP Net Tool"

Black Hat Python之#1:制作简单的nc工具

nc即netcat,是网络界的瑞士军刀.当入侵了一个服务器之后,发现nc工具已经被系统管理员移除之后,可以自己制作一个简单的客户端和服务器端来实现①上传文件②执行命令③开启一个新的命令行shell等几个功能. 1 __author__ = 'seven' 2 import sys 3 import socket 4 import getopt 5 import threading 6 import subprocess 7 8 listen = False 9 command = False 1

在Eclipse mars 4.5.2 中安装spring 插件 spring tool suite

最近在学习spring,用到的IDE 有eclipse,也有用到 IDEA. 目前对spring还不是很了解,跟着网上的视频来,先学会了spring,然后再选IDE. 题归正转,下面说说怎么在Eclipse mars 4.5.2 中安装spring 插件 spring tool suite. 打开eclipse,然后在菜单栏中点击Help,选中Eclipse MarketPlace: 然后搜索STS(也就是spring tool suite的缩写),回车: 点击Install即可 由于是在线安装

安装Spring Tool Suite(STS)

JAVA开发工具中,常用工具就是Eclipse,IntelliJ IDEA. 现在使用spring boot&cloud框架进行开发的时候,虽然可以使用上面两个工具,但都未必就真的量身定制,IntelliJ虽说是神器,但太重,而且是收费的,免费的社区版也是一个阉割版.Eclipse当然ok,但要装一些插件. Spring官方出品的基于Ecplise的为spring boot&cloud量身打造的工具Spring Tool Suite是一款免费的非常合适的开发工具. STS的安装也非常简单,

Spring Boot基础教程1-Spring Tool Suite工具的安装

1.工具下载地址: Eclipse:http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neonr Spring Tool Suite:https://spring.io/tools/sts/all 2.使用版本为: Eclipse:eclipse-jee-neon-R-win32-x86_64.zip Spring Tool Suite:springsource-tool-suite-3.8.0.RE

How to Write Doc Comments for the Javadoc Tool

http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html This document describes the style guide, tag and image conventions we use in documentation comments for Java programs written at Java Software, Oracle. It does not rehash r

使用 EF Power Tool Code Frist 生成 Mysql 实体

原文:使用 EF Power Tool Code Frist 生成 Mysql 实体 1,在要生成的项目上右键   2,   3,   4,   5,  生成后的效果     已知问题: 1,在Mysql数据表中 tinyint(1) ,会被映射成为 C# bool ,这样造成一些数据信息的丢失. 这个问题应该是EF 工具的问题,暂时没有找到解决方案.      手工去修改生成的实体是不经济的,下次再更新时候,又会变成 bool型 .      所以解决的办法就是修改数据库字段型 ,一般情况下,

VMware Horizon View Config Tool 用户使用手册之二 -- 部署Horizon View Configuration Tool

部署Horizon View Configuration Tool 导入VMware Studio和Horizon View Configuration OVA 文件,运行虚拟机,之后对这两个虚拟机进行配置,然后才可以使用vCT. 需要下载的文件包括: VMware_Studio-2.6.0.1-702761_OVF10.ova or VMware_Studio_2.6.0.1 .ova – 1.5GB 你可以下载VMware Studio在VMware网页: 下载链接: https://my.

You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1

今天在Windows Server 2008 下安装SQL SERVER 2008时,碰到如下错误: You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1. 既然碰到了顺便还是记录一下,虽然感觉没啥技术含量也没有难度,有时候有必要养成一个好习惯.记录你碰到的问题.解决问题的方案,你思考的点点滴滴! 打开 Server Manager,在"Features&quo