aboutsummaryrefslogtreecommitdiffstats
path: root/toys/brhute-py/pphidden_async.py
diff options
context:
space:
mode:
Diffstat (limited to 'toys/brhute-py/pphidden_async.py')
-rw-r--r--toys/brhute-py/pphidden_async.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/toys/brhute-py/pphidden_async.py b/toys/brhute-py/pphidden_async.py
new file mode 100644
index 0000000..463364f
--- /dev/null
+++ b/toys/brhute-py/pphidden_async.py
@@ -0,0 +1,83 @@
+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