robust/robust.py

112 lines
13 KiB
Python
Raw Permalink Normal View History

2022-11-18 00:43:10 +00:00
#imports
2022-10-10 18:33:39 +00:00
import requests
from duckduckgo_search import DDGS
2022-10-10 18:33:39 +00:00
import tldextract
import numpy as np
import threading
2022-11-17 04:58:45 +00:00
import argparse
2022-10-10 18:33:39 +00:00
import re
2022-11-17 04:58:45 +00:00
2022-11-18 00:43:10 +00:00
#argparse
2022-11-17 04:58:45 +00:00
def parser():
parser = argparse.ArgumentParser(description="robust args")
parser.add_argument("--url")
parser.add_argument("--codes",nargs="+")
parser.add_argument("-nosplit")
2022-11-17 06:29:22 +00:00
parser.add_argument("-cookie",nargs="+")
parser.add_argument("-uagent",nargs="+")
2022-11-17 04:58:45 +00:00
args = parser.parse_args()
runrobust(args)
2022-11-18 00:43:10 +00:00
#main function
2022-11-17 04:58:45 +00:00
def runrobust(args):
found=[]
def bust(href):
2022-11-17 06:57:59 +00:00
headers={}
if args.cookie:
headers["cookie"]=" ".join(args.cookie)
if args.uagent:
headers["user-agent"]=" ".join(args.uagent)
2022-11-17 04:58:45 +00:00
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:
2022-11-17 05:09:12 +00:00
entry=entry.split("?")[0].replace("*","")
entry=entry.split("&")[0]
2022-11-17 04:58:45 +00:00
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:
2022-11-17 06:29:22 +00:00
r=requests.get(args.url+"/"+entry, allow_redirects=False,headers=headers)
2022-11-17 04:58:45 +00:00
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)
2022-11-17 04:58:45 +00:00
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()
2022-11-17 06:57:59 +00:00
2022-11-18 00:43:10 +00:00
#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
2022-11-17 04:58:45 +00:00
parser()