import sys import argparse import grbrute import brhute_threaded # http://www.pointerpointer.com/gridPositions.json class Pp_url: def __init__(self, image, x, y, max_x=100, max_y=100): self.host = "www.pointerpointer.com" self.base_url = "/images" self.image = image self.x = x self.y = y self.max_x = max_x self.max_y = max_y print ">>> Looking for image %d <<<" % image print ">>>> starting x=%d y=%d <<<<" % (x, y) def __iter__(self): return self def next(self): url = "%s/N%04d_%d_%d.jpg" % (self.base_url, self.image, self.x, self.y) self.y += 1 if self.y > self.max_y: self.x += 1 self.y = 0 if self.x > self.max_x: raise StopIteration return (self.host, url) def cb_response_grbrute(res): global found if not found: print "[-] %s : %d" % (res.url, res.status_code) if res.status_code != 404: found = res.url return False return True def cb_response_brhute(res): global found if not found: print "res: %s" % res #if res.status_code != 404: # found = res.url # return False #return True parser = argparse.ArgumentParser(description='pphidden_async', epilog="Example: %s 73 0 0" % sys.argv[0]) parser.add_argument('image', action="store", type=int, help="Image number") parser.add_argument('start_x', action="store", type=int, help="Start at coordinate X=") parser.add_argument('start_y', action="store", type=int, help="Start at coordinate Y=") parser.add_argument('-b', action="store", dest="backend", default="gbrute", help="Backend, can be gbrute (default) or brhute (work in progress)") parser.add_argument('-v', action="store_true", dest="verbose", default=False, help="verbose") args = parser.parse_args() found = None if args.backend == "gbrute": url_iter = Pp_url(args.image, args.start_x, args.start_y) grbrute.Grbrute(url_iter, cb_response_grbrute, verbose=args.verbose) elif args.backend == "brhute": url_iter = Pp_url(args.image, args.start_x, args.start_y) #brhute_threaded.Brhute_ip(url_iter, "207.171.163.203", # Amazon # cb_response=cb_response_brhute, verbose=args.verbose) #brhute.Brhute_ip(url_iter, "173.194.34.14", # Google # cb_response=cb_response_brhute, verbose=args.verbose) brhute_threaded.Brhute_ip(url_iter, "www.pointerpointer.com", # Amazon cb_response=cb_response_brhute, verbose=args.verbose) else: print "Error: Unknown backend specified" sys.exit(1) if found is False: print "[*] not found" sys.exit(1) print "[*] found: %s" % found