robust/robust.py

112 lines
13 KiB
Python

#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()