示例#1
0
文件: VHostFinder.py 项目: dre/appsec
def setItOff(host="", port="", domain="", tld=""):
    name = multiprocessing.current_process().name
    setitpid = os.getpid()
    print name + " Started with pid %d" % setitpid

    vhf = VHostFinder(host)
    vhf.setPort(port)
    vhf.setDomain(domain)
    vhf.setTld(tld)
    vhf.setElements()
    bnds = vhost_finder_vars.getDepthBounds()
    vhf.setDepth(bnds[0],bnds[1])
    vhf.setTotalThreads(vhost_finder_vars.getVHostNumThreads())
    vhf.setBaseLine()
    vhf.probeVhosts()

    print "\n" + name + " Finished"
    finish = time.time()
    funcs.sec_to_time(sec=(finish - start))

    # kill tor sockets we spun up
    if anonimize:
        for dir,_,_ in os.walk(sc.getDataDir()):
            pidHandle = glob.glob(os.path.join(dir,'tor*.pid'))
            if pidHandle:
                funcs.killPid(ppid=int(open(pidHandle[0]).readline()))
        print
    # kill DDoS threads
    slow_ddos_tor.killThreads()
    print
示例#2
0
文件: VHostFinder.py 项目: dre/appsec
 def setBaseLine(self):
     ''' get a baseline for a bad request '''
     try:
         print "\nSetting baseline ...",
         """
             numbers are valid characters in a domain,
             assuming no one would set the below domain
             as a given vhost of a server (even though that
             would be interesting) ...
             therefore we assume this will produce a 
             "vhost does not exist on this server" response
             TODO: form a large random number to replace the static one below
         """
         http_data = funcs.constructRequest(verb="GET", target="314159265358979323846264338327950288." + self.domain + "." + self.tld, resource="/")
         c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         c.connect((self.ipAddress, self.port))
         c.send(http_data)
         data = c.recv(1024*5)
         c.close()
         if debug:
             print http_data
             print data
         
         self.baseline = funcs.stripheader(data,self.includeinbaseline)
         print self.baseline
     except:
         print "\nError connecting, cleaning up\n\n"
         # kill tor sockets we spun up
         if anonimize:
             '''
             for p in sc.getTorPids():
                 funcs.killPid(ppid=p)
             '''
             for dir,_,_ in os.walk(sc.getDataDir()):
                 pidHandle = glob.glob(os.path.join(dir,'tor*.pid'))
                 if pidHandle:
                     funcs.killPid(ppid=int(open(pidHandle[0]).readline()))
             print
         slow_ddos_tor.killThreads()
         print
         sys.exit(0)