#imports import requests from duckduckgo_search import DDGS import tldextract import numpy as np import threading import argparse import re #argparse def parser(): parser = argparse.ArgumentParser(description="robust args") parser.add_argument("--url") parser.add_argument("--codes",nargs="+") parser.add_argument("-nosplit") parser.add_argument("-cookie",nargs="+") parser.add_argument("-uagent",nargs="+") args = parser.parse_args() runrobust(args) #main function def runrobust(args): found=[] def bust(href): headers={} if args.cookie: headers["cookie"]=" ".join(args.cookie) if args.uagent: headers["user-agent"]=" ".join(args.uagent) try: r=requests.get(href) splitl=r.text.split("\n") splitl=list(set(splitl)) for line in splitl: if "Disallow: " in line: if args.nosplit: lnsplt=line else: lnsplt=line.replace("Disallow: ","").split("/") for entry in lnsplt: entry=entry.split("?")[0].replace("*","") entry=entry.split("&")[0] if not re.match(entry, "\s") and not tldextract.extract(href).domain.split(".")[0] in entry.lower() and len(entry) < 25 and not entry in found and not "#" in entry: r=requests.get(args.url+"/"+entry, allow_redirects=False,headers=headers) if str(r.status_code) in args.codes: print("found: "+entry+" ["+str(r.status_code)+"]") found.append(entry) except: pass def split(a,n): return(np.array_split(a, n)) keywords = "filetype:TXT +inurl:\"robots.txt\"" results = DDGS().text(keywords, max_results=250) results=(href for href in (res["href"] for res in results)) results=[*results] results=split(results,5) for chunk in results: threads=[] for href in chunk: t=threading.Thread(target=bust, args=([href])) threads.append(t) t.start() for t in threads: t.join() #banner print('''\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄▄\033[48;2;224;224;224m \033[38;2;224;224;224;49m▄▄\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄\033[38;2;224;224;224;48;2;217;218;218m▄\033[48;2;224;224;224m \033[38;2;194;194;194;48;2;224;224;224m▄▄▄\033[38;2;194;194;194;48;2;218;218;218m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;218;218;218m▄\033[38;2;194;194;194;48;2;224;224;224m▄▄▄\033[48;2;224;224;224m \033[38;2;224;224;224;48;2;218;219;219m▄\033[38;2;224;224;224;49m▄\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄\033[48;2;224;224;224m \033[38;2;223;223;223;48;2;224;224;224m▄\033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;224;224;224m▄\033[38;2;223;223;223;48;2;224;224;224m▄\033[48;2;224;224;224m \033[38;2;224;224;224;49m▄\033[49m \033[m \033[49m \033[48;2;224;224;224m \033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;224;224;224m \033[49m \033[m \033[49m \033[38;2;204;207;207;49m▄\033[48;2;224;224;224m \033[38;2;196;196;196;48;2;224;224;224m▄\033[48;2;194;194;194m \033[38;2;196;196;196;48;2;224;224;224m▄\033[48;2;224;224;224m \033[38;2;204;207;207;49m▄\033[49m \033[m \033[49m \033[48;2;224;224;224m \033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;224;224;224m \033[49m \033[m \033[49m \033[48;2;224;224;224m \033[38;2;194;194;194;48;2;223;223;223m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;223;223;223m▄\033[48;2;224;224;224m \033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄▄▄\033[48;2;224;224;224m \033[38;2;224;224;224;48;2;194;194;194m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\033[48;2;224;224;224m \033[38;2;224;224;224;49m▄▄▄\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄\033[48;2;224;224;224m \033[38;2;199;199;199;48;2;224;224;224m▄\033[38;2;194;194;194;48;2;224;224;224m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\033[38;2;199;199;199;48;2;224;224;224m▄\033[48;2;224;224;224m \033[38;2;224;224;224;49m▄\033[49m \033[m \033[49m \033[38;2;224;224;224;49m▄\033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;194;194;194m \033[38;2;0;0;0;48;2;186;186;186m▄\033[38;2;0;0;0;48;2;194;194;194m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\033[38;2;0;0;0;48;2;186;186;186m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;224;224;224m▄\033[38;2;224;224;224;49m▄\033[49m \033[m \033[49m \033[38;2;194;194;194;48;2;224;224;224m▄\033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[38;2;194;194;194;48;2;224;224;224m▄\033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[48;2;187;242;249m \033[48;2;0;0;0m \033[48;2;187;242;249m \033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;187;242;249m \033[38;2;187;242;249;48;2;0;0;0m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;187;242;249m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;242;249m▄\033[48;2;0;0;0m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[49;38;2;198;198;198m▀\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;0;0;0m▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄\033[48;2;194;194;194m \033[49;38;2;197;197;197m▀\033[49m \033[m \033[49m \033[49;38;2;194;194;194m▀\033[48;2;194;194;194m \033[49;38;2;194;194;194m▀\033[49m \033[m \033[49m \033[48;2;159;164;165m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[49m \033[m \033[49m \033[48;2;194;194;194m \033[38;2;120;120;120;48;2;194;194;194m▄\033[38;2;0;0;0;48;2;194;194;194m▄▄▄\033[38;2;97;97;97;48;2;194;194;194m▄\033[48;2;194;194;194m \033[49m \033[m \033[49m \033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;193;193;193;48;2;194;194;194m▄\033[38;2;0;0;0;48;2;194;194;194m▄▄▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;159;164;165;48;2;194;194;194m▄\033[49m \033[m \033[49m \033[48;2;159;164;165m \033[38;2;160;165;165;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;192;192;192;48;2;194;194;194m▄\033[38;2;0;0;0;48;2;194;194;194m▄▄\033[48;2;0;0;0m \033[38;2;247;141;207;48;2;0;0;0m▄▄▄\033[48;2;0;0;0m \033[38;2;212;122;178;48;2;0;0;0m▄\033[38;2;247;141;207;48;2;0;0;0m▄▄\033[38;2;20;11;17;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;0;0;0;48;2;187;187;187m▄\033[48;2;194;194;194m \033[38;2;160;165;166;48;2;194;194;194m▄\033[48;2;159;164;165m \033[49m \033[m \033[49m \033[48;2;159;164;165m \033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;164;164;164;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;133;133;133m▄\033[38;2;194;194;194;48;2;0;0;0m▄▄▄▄▄▄▄\033[38;2;145;145;145;48;2;0;0;0m▄\033[48;2;0;0;0m \033[38;2;221;107;172;48;2;180;103;151m▄\033[38;2;221;107;172;48;2;244;137;203m▄\033[48;2;221;107;172m \033[48;2;247;141;207m \033[38;2;221;107;172;48;2;247;141;207m▄\033[48;2;221;107;172m \033[48;2;0;0;0m \033[38;2;24;24;24;48;2;0;0;0m▄\033[48;2;194;194;194m \033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;159;164;165m \033[49m \033[m \033[49m \033[49;38;2;157;162;165m▀\033[48;2;159;164;165m \033[38;2;159;164;165;48;2;193;193;193m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;159;164;165m▄\033[48;2;221;107;172m \033[48;2;247;141;207m \033[38;2;247;141;207;48;2;244;137;203m▄\033[48;2;221;107;172m \033[38;2;194;194;194;48;2;30;30;30m▄\033[48;2;194;194;194m \033[38;2;159;164;165;48;2;193;193;193m▄\033[48;2;159;164;165m \033[49;38;2;159;164;164m▀\033[49m \033[m \033[49m \033[48;2;159;164;165m \033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;194;194;194m \033[48;2;221;107;172m \033[48;2;247;141;207m \033[48;2;221;107;172m \033[48;2;194;194;194m \033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;159;164;165m \033[49m \033[m \033[49m \033[49;38;2;159;164;165m▀\033[48;2;159;164;165m \033[38;2;159;164;165;48;2;161;165;166m▄\033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;194;194;194m \033[48;2;221;107;172m \033[38;2;235;125;191;48;2;247;141;207m▄\033[38;2;221;107;172;48;2;245;139;205m▄\033[48;2;221;107;172m \033[48;2;194;194;194m \033[38;2;159;164;165;48;2;194;194;194m▄\033[38;2;159;164;165;48;2;161;166;167m▄\033[48;2;159;164;165m \033[49;38;2;159;164;165m▀\033[49m \033[m \033[49m \033[49;38;2;159;164;165m▀\033[38;2;159;164;164;48;2;159;164;165m▄\033[48;2;159;164;165m \033[38;2;159;164;165;48;2;194;194;194m▄▄▄\033[38;2;175;178;179;48;2;194;194;194m▄\033[48;2;194;194;194m \033[38;2;194;194;194;48;2;208;149;184m▄\033[38;2;194;63;147;48;2;221;107;172m▄\033[48;2;221;107;172m \033[38;2;193;61;146;48;2;221;107;172m▄\033[38;2;159;164;165;48;2;194;194;194m▄\033[48;2;159;164;165m \033[49;38;2;159;164;165m▀\033[49m \033[m \033[49m \033[49;38;2;159;164;165m▀▀\033[48;2;159;164;165m \033[38;2;159;164;165;48;2;193;61;146m▄\033[38;2;193;61;146;48;2;193;62;146m▄\033[38;2;193;61;146;48;2;221;107;172m▄\033[38;2;193;61;146;48;2;220;106;171m▄\033[38;2;159;164;165;48;2;193;61;146m▄▄\033[48;2;159;164;165m \033[49;38;2;159;164;165m▀▀\033[49m \033[m \033[49m \033[49;38;2;159;164;165m▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀\033[49m \033[m \033[49m \033[m ''') with open("banner.txt","r") as banner: print(banner.read()) #run parser()