├── LICENSE.txt ├── Modes ├── Gmode.py ├── Proxy.py ├── Scada.py ├── Scada2.py ├── Scada3.py └── Tor.py ├── README.md ├── TorSearchEngines.txt ├── kds.py └── requirements.txt /LICENSE.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 TebbaaX 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Modes/Gmode.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | import requests 26 | import proxybroker 27 | from googlesearch import search 28 | import sys 29 | import sys 30 | from termcolor import colored, cprint 31 | import warnings 32 | import random 33 | from http import cookiejar 34 | class BlockAll(cookiejar.CookiePolicy): 35 | return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False 36 | netscape = True 37 | rfc2965 = hide_cookie2 = False 38 | 39 | def fxn(): 40 | warnings.warn("deprecated", DeprecationWarning) 41 | 42 | with warnings.catch_warnings(): 43 | warnings.simplefilter("ignore") 44 | fxn() 45 | 46 | def clear(): 47 | return os.system('cls' if os.name == 'nt' else 'clear') 48 | 49 | 50 | print ("") 51 | 52 | A = """ 53 | ,_._._._._._._._._|__________________________________________________________ 54 | |G|o|o|g|l|e|_|_|_|_________________________________________________________/ 55 | | 56 | Katana dork scanner (Katana DS V1.5.3) 57 | Google Mode 58 | """ 59 | print ("") 60 | print(A) 61 | TLD = ["com","com.tw","co.in","be","de","co.uk","co.ma","dz","ru","ca"] 62 | s = requests.Session() 63 | s.cookies.set_policy(BlockAll()) 64 | alpha = input (colored('[>] Please set a Dork : ', 'green' )) 65 | query = alpha 66 | tld = random.choice(TLD) 67 | # print("") 68 | # print(colored(tld , 'green')) 69 | 70 | 71 | for gamma in search(query, tld , num=10 , stop=95 , pause=2): 72 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 73 | print(colored ('[+] Done ' ,'green')) 74 | print(colored ('[! >] delete .google-cookie file in Katana DIR ' ,'red')) 75 | -------------------------------------------------------------------------------- /Modes/Proxy.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | from proxybroker import Broker 3 | from termcolor import colored, cprint 4 | import sys 5 | import os 6 | 7 | B = """ 8 | ____ 9 | | _ \ _ __ _____ ___ _ 10 | | |_) | '__/ _ \ \/ / | | | Katana-ds V1.5.3 11 | | __/| | | (_) > <| |_| | Proxy Mode 12 | |_| |_| \___/_/\_\\__, | 13 | |___/ 14 | """ 15 | print(B) 16 | print ("") 17 | print(colored('[+] This will find 25 Different working Proxy server Each time :', 'green')) 18 | print(colored('[+] Starting...', 'green' )) 19 | 20 | async def show(proxies): 21 | while True: 22 | proxy = await proxies.get() 23 | if proxy is None: 24 | break 25 | print('Found proxy: %s' % proxy) 26 | 27 | 28 | proxies = asyncio.Queue() 29 | broker = Broker(proxies) 30 | tasks = asyncio.gather( 31 | broker.find(types=['HTTP', 'HTTPS'], limit=100 ), show(proxies) 32 | ) 33 | 34 | loop = asyncio.get_event_loop() 35 | loop.run_until_complete(tasks) 36 | print(colored('[+] Done', 'green')) 37 | 38 | -------------------------------------------------------------------------------- /Modes/Scada.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | 26 | import sys 27 | import os 28 | import time 29 | from googlesearch import search 30 | import sys 31 | from termcolor import colored, cprint 32 | import random 33 | 34 | def clear(): 35 | 36 | if name == 'nt': 37 | _ = system('cls') 38 | else: 39 | _ = system('clear') 40 | 41 | from http import cookiejar 42 | class BlockAll(cookiejar.CookiePolicy): 43 | return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False 44 | netscape = True 45 | rfc2965 = hide_cookie2 = False 46 | 47 | NPP = """ 48 | 49 | ) ) ) 50 | ( ( ( 51 | ) ) ) 52 | (~~~~~~~~~) 53 | | POWER | Katana-ds V1.5.3 54 | | | Find online PLCs 55 | | _._ 56 | | / `\ 57 | | | N | 58 | | | |~~~~~~~~~~~~~~| 59 | / | ||~~~~~~~~| | 60 | __/_____|___||__|||___|____|__________________________________________ 61 | 62 | Note: That will take some time 63 | 64 | """ 65 | 66 | print (NPP) 67 | 68 | TLD = ["com","com.tw","co.in"] 69 | beta = random.choice(TLD) 70 | betax = random.choice(TLD) 71 | print (" ") 72 | print(colored('[+] Searching... ', 'green')) 73 | B = """ intitle:"Rockwell Automation" "Device Name" "Uptime" """ 74 | query = B 75 | # **** 76 | def spinning_cursor(): 77 | while True: 78 | for cursor in '|/-\\': 79 | yield cursor 80 | 81 | spinner = spinning_cursor() 82 | for _ in range(100): 83 | sys.stdout.write(next(spinner)) 84 | sys.stdout.flush() 85 | time.sleep(0.1) 86 | sys.stdout.write('\b') 87 | #***** 88 | for gamma in search(query, tld=beta,stop=50, num=10,pause=2): 89 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 90 | print(colored('[+] 20% done ', 'green')) 91 | B = """ inurl:dtm.html intitle:1747-L551 """ 92 | query = B 93 | # **** 94 | def spinning_cursor(): 95 | while True: 96 | for cursor in '|/-\\': 97 | yield cursor 98 | 99 | spinner = spinning_cursor() 100 | for _ in range(100): 101 | sys.stdout.write(next(spinner)) 102 | sys.stdout.flush() 103 | time.sleep(0.1) 104 | sys.stdout.write('\b') 105 | #***** 106 | for gamma in search(query, tld=betax, num=10,stop=50,pause=2): 107 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 108 | print(colored('[+] 40% done ', 'green' )) # more scada dorks will be added here 109 | from Modes import Scada2 110 | -------------------------------------------------------------------------------- /Modes/Scada2.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | 26 | import sys 27 | import os 28 | import time 29 | from googlesearch import search 30 | import sys 31 | from termcolor import colored, cprint 32 | import random 33 | from http import cookiejar 34 | class BlockAll(cookiejar.CookiePolicy): 35 | return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False 36 | netscape = True 37 | rfc2965 = hide_cookie2 = False 38 | 39 | TLD = ["be","de","co.uk"] 40 | beta = random.choice(TLD) 41 | betax = random.choice(TLD) 42 | lux = random.choice(TLD) 43 | 44 | B = """ intitle:"Miniweb Start Page" """ 45 | query = B 46 | #***** 47 | #***** 48 | for gamma in search(query, tld=beta,stop=50, num=10,pause=2): 49 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 50 | print(colored('[+] 60% done ', 'green')) ##### 51 | print(colored('[+] Sleeping for 10s...', 'green')) 52 | time.sleep(5) 53 | 54 | luxs = random.choice(TLD) 55 | B = """ inurl:"Portal/Portal.mwsl" """ 56 | query = B 57 | # **** 58 | def spinning_cursor(): 59 | while True: 60 | for cursor in '|/-\\': 61 | yield cursor 62 | 63 | spinner = spinning_cursor() 64 | for _ in range(100): 65 | sys.stdout.write(next(spinner)) 66 | sys.stdout.flush() 67 | time.sleep(0.1) 68 | sys.stdout.write('\b') 69 | #***** 70 | for gamma in search(query, tld=betax, num=10,stop=50,pause=2): 71 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 72 | 73 | print(colored('[+] 80% done ', 'green' )) 74 | from Modes import Scada3 -------------------------------------------------------------------------------- /Modes/Scada3.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | 26 | import sys 27 | import os 28 | import time 29 | from googlesearch import search 30 | import sys 31 | from termcolor import colored, cprint 32 | import random 33 | from http import cookiejar 34 | class BlockAll(cookiejar.CookiePolicy): 35 | return_ok = set_ok = domain_return_ok = path_return_ok = lambda self, *args, **kwargs: False 36 | netscape = True 37 | rfc2965 = hide_cookie2 = False 38 | 39 | TLD = ["com.qa","ru","com.sa"] 40 | 41 | lux = random.choice(TLD) 42 | 43 | Vx = """ inurl:/Portal0000.htm """ 44 | query = Vx 45 | # **** 46 | def spinning_cursor(): 47 | while True: 48 | for cursor in '|/-\\': 49 | yield cursor 50 | 51 | spinner = spinning_cursor() 52 | for _ in range(100): 53 | sys.stdout.write(next(spinner)) 54 | sys.stdout.flush() 55 | time.sleep(0.1) 56 | sys.stdout.write('\b') 57 | #***** 58 | for gamma in search(query, tld=lux, num=10,stop=50,pause=2): 59 | print(colored ('[+] Found > ' ,'yellow') + (gamma) ) 60 | print(colored('[+] 90% done ', 'green' )) 61 | print(colored('[+] 100% done ', 'green' )) 62 | print(colored('[+] done ', 'green' )) 63 | print(colored ('[! >] delete .google-cookie file in Katana DIR ' ,'red')) 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Modes/Tor.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | import sys 26 | import time 27 | import requests 28 | import asyncio 29 | from proxybroker import Broker 30 | from termcolor import colored, cprint 31 | from bs4 import BeautifulSoup , SoupStrainer 32 | from urllib.request import urlparse, urljoin 33 | import re 34 | 35 | T = """ 36 | 37 | _____ 38 | |_ _|__ _ __ 39 | | |/ _ \| '__| Katana-ds V1.5.3 40 | | | (_) | | Tor Mode 41 | |_|\___/|_| Coded by TebbaaX 42 | 43 | """ 44 | print(T) 45 | print(colored('[!] Tor proxy must be on port 9050 ', 'yellow' )) 46 | print(colored('[+] Checking TOR... ', 'green' )) 47 | #search launch** 48 | 49 | session = requests.session() 50 | session.proxies = {'http': 'socks5h://localhost:9050', 51 | 'https': 'socks5h://localhost:9050'} 52 | print(session.get('http://httpbin.org/ip').text) 53 | print(colored('[+] Got session... ', 'green' )) 54 | ###################################################################################################### 55 | print ("") 56 | xquery = input ("Please set your query : ") 57 | 58 | 59 | 60 | ##### 61 | ##### Phobos 62 | ##### 63 | print ("") 64 | print(colored('[+] Searching in "Phobos" http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion... ', 'green' )) 65 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=1" ) 66 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=1" ) 67 | soup = BeautifulSoup(page.text, 'html.parser') 68 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 69 | for tag in tags: 70 | print (tag.get('href')) 71 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=2" ) 72 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=2" ) 73 | soup = BeautifulSoup(page.text, 'html.parser') 74 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 75 | for tag in tags: 76 | print (tag.get('href')) 77 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=3" ) 78 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=3" ) 79 | soup = BeautifulSoup(page.text, 'html.parser') 80 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 81 | for tag in tags: 82 | print (tag.get('href')) 83 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=4" ) 84 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=4" ) 85 | soup = BeautifulSoup(page.text, 'html.parser') 86 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 87 | for tag in tags: 88 | print (tag.get('href')) 89 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=5" ) 90 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=5" ) 91 | soup = BeautifulSoup(page.text, 'html.parser') 92 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 93 | for tag in tags: 94 | print (tag.get('href')) 95 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=6" ) 96 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=6" ) 97 | soup = BeautifulSoup(page.text, 'html.parser') 98 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 99 | for tag in tags: 100 | print (tag.get('href')) 101 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=8" ) 102 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=8" ) 103 | soup = BeautifulSoup(page.text, 'html.parser') 104 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 105 | for tag in tags: 106 | print (tag.get('href')) 107 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=9" ) 108 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=9" ) 109 | soup = BeautifulSoup(page.text, 'html.parser') 110 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 111 | for tag in tags: 112 | print (tag.get('href')) 113 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=10" ) 114 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=10" ) 115 | soup = BeautifulSoup(page.text, 'html.parser') 116 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 117 | for tag in tags: 118 | print (tag.get('href')) 119 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=11" ) 120 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=11" ) 121 | soup = BeautifulSoup(page.text, 'html.parser') 122 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 123 | for tag in tags: 124 | print (tag.get('href')) 125 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=12" ) 126 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=12" ) 127 | soup = BeautifulSoup(page.text, 'html.parser') 128 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 129 | for tag in tags: 130 | print (tag.get('href')) 131 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=13" ) 132 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=13" ) 133 | soup = BeautifulSoup(page.text, 'html.parser') 134 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 135 | for tag in tags: 136 | print (tag.get('href')) 137 | session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query=" + xquery + "&p=14" ) 138 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&p=14" ) 139 | soup = BeautifulSoup(page.text, 'html.parser') 140 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 141 | for tag in tags: 142 | print (tag.get('href')) 143 | print(colored('[+] Done from Phobos', 'yellow' )) 144 | 145 | ##### 146 | ##### TOR66 147 | ##### 148 | print ("") 149 | print(colored('[+] Searching in "TOR66" http://tor77orrbgejplwp.onion... ', 'green' )) 150 | session.get("http://tor66sewebgixwhcqfnp5inzp5x5uohhdy3kvtnyfxc2e5mxiuh34iid.onion/search?q=" + xquery + "&sorttype=rel&page=1" ) 151 | page = session.get("http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion/search?query="+ xquery + "&sorttype=rel&page=1" ) 152 | soup = BeautifulSoup(page.text, 'html.parser') 153 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 154 | for tag in tags: 155 | print (tag.get('href')) 156 | print(colored('[+] Done from TOR66', 'yellow' )) 157 | print ("") 158 | ##### 159 | ##### TOrdex 160 | ##### 161 | print(colored('[+] Searching in "Tordex" http://tordex7iie7z2wcg.onion ', 'green' )) 162 | session.get("http://tordex7iie7z2wcg.onion/search?query=" + xquery + "&page=1" ) 163 | page = session.get("http://tordex7iie7z2wcg.onion/search?query="+ xquery + "&page=1" ) 164 | soup = BeautifulSoup(page.text, 'html.parser') 165 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 166 | for tag in tags: 167 | print (tag.get('href')) 168 | session.get("http://tordex7iie7z2wcg.onion/search?query=" + xquery + "&page=2" ) 169 | page = session.get("http://tordex7iie7z2wcg.onion/search?query="+ xquery + "&page=2" ) 170 | soup = BeautifulSoup(page.text, 'html.parser') 171 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 172 | for tag in tags: 173 | print (tag.get('href')) 174 | session.get("http://tordex7iie7z2wcg.onion/search?query=" + xquery + "&page=3" ) 175 | page = session.get("http://tordex7iie7z2wcg.onion/search?query="+ xquery + "&page=3" ) 176 | soup = BeautifulSoup(page.text, 'html.parser') 177 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 178 | for tag in tags: 179 | print (tag.get('href')) 180 | session.get("http://tordex7iie7z2wcg.onion/search?query=" + xquery + "&page=4" ) 181 | page = session.get("http://tordex7iie7z2wcg.onion/search?query="+ xquery + "&page=4" ) 182 | soup = BeautifulSoup(page.text, 'html.parser') 183 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 184 | for tag in tags: 185 | print (tag.get('href')) 186 | session.get("http://tordex7iie7z2wcg.onion/search?query=" + xquery + "&page=5" ) 187 | page = session.get("http://tordex7iie7z2wcg.onion/search?query="+ xquery + "&page=5" ) 188 | soup = BeautifulSoup(page.text, 'html.parser') 189 | tags = soup.find_all('a', attrs={'href': re.compile("^http://")}) 190 | for tag in tags: 191 | print (tag.get('href')) 192 | print(colored('[+] Done from Tordex', 'yellow' )) 193 | 194 | 195 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Katana-ds (dork scanner) (Stable) 2 | [![Github All Releases](https://img.shields.io/badge/Katana--ds-version%201.5.3-red)]() 3 | [![Github All Releases](https://img.shields.io/badge/support-python%203.7%2F3.8%20%2B-brightgreen)]() 4 | [![Github All Releases](https://img.shields.io/badge/platform-windows%20%7C%20linux-lightgrey)]() 5 | [![Github All Releases](https://img.shields.io/twitter/follow/TebbaaX)]() 6 | 7 | Katana-ds (ds for dork_scanner) is a simple python tool that automates Google Hacking/Dorking and supports Tor. 8 | It becomes a more powerful in combination with [GHDB](https://www.exploit-db.com/google-hacking-database) 9 | 10 | **Note 25/09/2021** : This Repo is New but the script it self is old back when google dorking was something, i wrote this script back in Highschool during the process of learning how to scrap using python and in order to get to use on bs4 and other Python Packages and i learned alot of things along, still there's alot of people who use this script... Thanks for 500 ⭐ 11 | 12 | 13 | ![Alt text](https://github.com/TebbaaX/imgs/blob/master/img1.jpg) 14 | 15 | ## Installation : 16 | 17 | Use the package manager [pip](https://pip.pypa.io/en/stable/) to install requirements 18 | 19 | ```bash 20 | cd Katana 21 | python3 -m pip install -r requirements.txt 22 | python3 kds.py 23 | ``` 24 | 25 | ### Tested on Windows [ConEmu](https://conemu.github.io/) [![Github All Releases](https://conemu.github.io/img/logo.png)]() 26 | 27 | ## Usage : 28 | 29 | ```bash 30 | cd Katana 31 | python3 kds.py -h (for help) 32 | Options : 33 | -g :for google mode 34 | -s :for scada mode 35 | -t :for tor mode 36 | -p :for proxy mode 37 | ``` 38 | 39 | ## What's new in Katana-ds V1.5.3 : 40 | 41 | - No need to set the TLD in google Mode 42 | - No need to set the TLD in Scada Mode 43 | - More Scada Results (after adding More dorks) 44 | - Partially solved the HTTP Errors 45 | - Proxy Mode will display 100 proxy server each time 46 | 47 | ## Google Mode : (supported by python 3.7 and 3.8) 48 | Google mode gives you 1 input to set the "Dork" 49 | 50 | 51 | ## Scada Mode : (supported by python 3.7 and 3.8) 52 | 53 | Scada mode search in google for online Scada devices 54 | 55 | -!> this is just an example actually it shows a lot of results 56 | 57 | 58 | 59 | Example of [Allen-Bradley](https://ab.rockwellautomation.com/lang-selection.html) PLC dashboard found using Scada Mode 60 | 61 | 62 | ## Tor Mode : (supported by python 3.7 and 3.8) 63 | 64 | [![Github All Releases](http://icons.iconarchive.com/icons/blackvariant/button-ui-requests-8/256/Tor-icon.png)]() 65 | 66 | Tor mode gives you 1 input which is the search query but before you should have tor proxy running on port 9050 this time there is no IP blocking the script search in 3 tor search engines Phobos, Tor66 and Tordex (more will be added) 67 | 68 | -!> this is just an example actually it shows a lot of results 69 | 70 | 71 | 72 | ![Alt text](http://icons.iconarchive.com/icons/graphicrating/koloria/32/Warning-2-icon.png) 73 | 74 | ## What if : 75 | 76 | - The script print 'HTTP Error 429 too many requests' : 77 | **change the TLD** 78 | - The script print 'urllib.error.URLError Errno 1104' : 79 | **check if the TLD is true** 80 | - Changing the TLD doesn't work : (2 solutions) 81 | **1-change your ip by disconnecting and reconnecting again or use a good vpn** 82 | **2-Delete the .google-cookie file in Katana Directory** 83 | - Tor mode show 'Failed to establish a new connection' : 84 | **make sure that tor proxy up and running on port 9050** 85 | 86 | ## Proxy Mode : (supported by python 3.7 only) 87 | 88 | Proxy mode find proxy servers and print them it will print 100 Different Proxy server Each time 89 | 90 | 91 | ## Please feel free to open ISSUES or contact me on [twitter](https://twitter.com/TebbaaX) 92 | 93 | ## License 94 | 95 | [MIT](https://github.com/TebbaaX/Katana/blob/master/LICENSE.txt) 96 | -------------------------------------------------------------------------------- /TorSearchEngines.txt: -------------------------------------------------------------------------------- 1 | Tor Net Search Engines : 2 | 3 | 4 | Phobos : http://phobosxilamwcg75xt22id7aywkzol6q6rfl2flipcqoc4e4ahima5id.onion ***/Supported 5 | TorDex : http://tordex7iie7z2wcg.onion ***/Supported 6 | Tor66 : http://tor77orrbgejplwp.onion ***/Supported 7 | NotEvil : http://hss3uro2hsxfogfq.onion ***/ not yet 8 | AHMIA : http://msydqstlz2kzerdg.onion ***/ not yet 9 | TNGSE : http://tgs5dkeqkg5hrjjk.onion ***/ not yet 10 | Onion-Land : http://3bbaaaccczcbdddz.onion ***/ not yet 11 | Haystack : http://haystakvxad7wbk5.onion ***/ not yet 12 | Abiko : http://abikogailmonxlzl.onion ***/ not yet 13 | Searx : http://searx7gwtu5rh6wr.onion ***/ not yet 14 | Sindbad : http://sinbad66644fr5lq.onion ***/ not yet 15 | Caronte : http://carontevaha5x626.onion ***/ not yet 16 | Dark Matter: http://dark23456yyx57ny.onion ***/ not yet 17 | OnionSearch: http://5u56fjmxu63xcmbk.onion ***/ not yet 18 | Gibberfish : http://o2jdk5mdsijm2b7l.onion ***/ not yet 19 | Pickle : http://k65nsnwos76xfwsj.onion ***/ not yet 20 | -------------------------------------------------------------------------------- /kds.py: -------------------------------------------------------------------------------- 1 | """ 2 | MIT License 3 | 4 | Copyright (c) 2020 TebbaaX 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | """ 25 | 26 | 27 | import argparse 28 | from os import system, name 29 | import os 30 | import sys 31 | def clear(): 32 | return os.system('cls' if os.name == 'nt' else 'clear') 33 | 34 | print ("") 35 | A = """ 36 | | 37 | ,_._._._._._._._._T__________________________________________________________ 38 | |G|o|o|g|l|e|_|_|_O_________________________________________________________/ 39 | R V1.5.3 40 | | 41 | 42 | Katana Dork Scanner (Katana-DS) coded by TebbaaX 43 | please use -h to see help 44 | """ 45 | print ("") 46 | print(A) 47 | 48 | parser = argparse.ArgumentParser("katana-ds.py",formatter_class=argparse.RawTextHelpFormatter) 49 | parser.add_argument("-g","--google", help="google mode", action='store_true' ) 50 | parser.add_argument("-s","--scada", help="scada mode ", action='store_true' ) 51 | parser.add_argument("-t","--tor", help="Tor mode ", action='store_true' ) 52 | parser.add_argument("-p","--proxy", help="Proxy mode ", action='store_true' ) 53 | 54 | 55 | args = parser.parse_args() 56 | 57 | if args.google : 58 | clear() 59 | from Modes import Gmode 60 | 61 | if args.scada : 62 | clear () 63 | from Modes import Scada 64 | 65 | if args.tor : 66 | clear () 67 | from Modes import Tor 68 | 69 | if args.proxy : 70 | clear () 71 | from Modes import Proxy 72 | 73 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | proxybroker 3 | google 4 | termcolor 5 | txtorcon 6 | colorama 7 | bs4 8 | StringGenerator 9 | pysocks 10 | --------------------------------------------------------------------------------