def forgotPassword(): disegno() print("| FORGOT PASSWORD |") print("+-----------------------------------------------+") while True: username = input("Username: "******"Email: ") controllo = 0 if "." in email and "@" in email: reader = csv.reader(open("userDB.csv"), delimiter='|') lines = list(reader) for i in range(len(lines)): if lines[i][1] == username and lines[i][3] == email: controllo = 1 # Criteri della password policy = PasswordPolicy.from_names( length=8, # min length: 8 uppercase=1, # need min. 1 uppercase letters numbers=1, # need min. 1 digits special=1, # need min. 1 special characters nonletters= 1, # need min. 1 non-letter characters (digits, specials, anything) ) while True: password1 = getpass.getpass( "Password must contain:\n- 8 Character\n- Number\n- Uppercase character\n- Special character\nPassword: "******"Confirm password: "******"Invalid email!") else: print("Invalid code!") else: print("Password doesn't match!") print("") if controllo == 1: print("Password was change successful!\n") x = input("Press any key to go to login menu ") login() else: print("Invalid credential...\n") else: print("Invalid email!\n")
def loginRegisterMenu(): disegno() print("| HELLO USER |") print("+-----------------------------------------------+") print("1) Login\n2) Register\n") x = scelta(1, 2) if x == 1: login() else: register()
def nmapMenu(): disegno() print("| NMAP MENU |") print("+-----------------------------------------------+") print("1) Net scan\n2) OS scan") x = scelta(1, 2) if x == 1: nmap() else: os()
def settings(): # Impostazioni dell account (API/shortcut) disegno() print("| SETTINGS |") print("+-----------------------------------------------+") data["firstTime"] = "0" updateCSV() print("1) Change password\n2) Back to menu\n") x = scelta(1, 2) if x == 1: changePassword() else: mainMenu()
def checkInternetConnection(): disegno() print("| CHECK INTERNET CONNECTION |") print("+-----------------------------------------------+") import urllib.request try: urllib.request.urlopen('http://google.com') conn = True except: conn = False if conn: print('You are connected to the internet\n') else: print('You are NOT connected to the internet\n')
def changePassword(): disegno() print("| CHANGE PASSWORD |") print("+-----------------------------------------------+") while True: password = getpass.getpass("Password: "******"userDB.csv"), delimiter='|') lines = list(reader) for i in range(len(lines)): if lines[i][1] == data["username"] and lines[i][2] == passwordHash: controllo = 1 # Criteri della password policy = PasswordPolicy.from_names( length=8, # min length: 8 uppercase=1, # need min. 1 uppercase letters numbers=1, # need min. 1 digits special=1, # need min. 1 special characters nonletters= 1, # need min. 1 non-letter characters (digits, specials, anything) ) while True: password1 = getpass.getpass( "Password must contain:\n- 8 Character\n- Number\n- Uppercase character\n- Special character\nPassword: "******"Confirm password: "******"Password doesn't match!") print("") if controllo == 1: print("Password was change successful!\n") exit() else: print("Invalid credential...\n")
def login(): disegno() print("| LOGIN MENU |") print("+-----------------------------------------------+") print("1) Login\n2) Forgot password\n") x = scelta(1, 2) if x == 1: disegno() print("| LOGIN |") print("+-----------------------------------------------+") error = 0 while True: username = input("Username: "******"Password: "******"username"] == username and row[ "password"] == passwordHash: data["id"] = row["id"] data["username"] = row["username"] data["password"] = row["password"] data["email"] = row["email"] data["block"] = row["block"] data["firstTime"] = row["firstTime"] if data["firstTime"] == "1": settings() exit() else: mainMenu() exit() print("Invalid credential...\n") error += 1 if error == 3: print("Sorry we must block you!") exit() else: forgotPassword()
def speedTest(): disegno() print("| SPEED TEST |") print("+-----------------------------------------------+") import speedtest print("Inizio speed test in corso...\n") print("Ricerca miglior server...") s = speedtest.Speedtest() s.get_servers() s.get_best_server() print("Server migliore trovato\n\nTest Download...") s.download() print("Test Upload...\n") s.upload() res = s.results.dict() print("+-----------------------------------------------+") print("| Risultati |") print("+-----------------------------------------------+") print(" Download [{:.2f}] Kb/s".format(res["download"] / 1024)) print(" Upload [{:.2f}] Kb/s".format(res["upload"] / 1024)) print(" Ping [{:.0f}]".format(res["ping"])) print("+-----------------------------------------------+")
def netcut(): disegno() print("| NETCUT |") print("+-----------------------------------------------+")
def whoisDomainTool(): disegno() print("| WHOIS DOMAIN TOOL |") print("+-----------------------------------------------+")
def os(): disegno() print("| NMAP OS |") print("+-----------------------------------------------+") import nmap3 import json ip = input("Insert specific IP or \"<IP>/24\" for entire network: ") while True: scelta = input("Port to scan: ") try: scelta = int(scelta) except ValueError: print("Number please") continue if type(scelta) == int: break else: print("Select a valid option") port = str(scelta) print("\n") nmap = nmap3.Nmap() results = nmap.nmap_os_detection(ip) # Creo file json [report] con i dati di results report = json.dumps(results, sort_keys=True, indent=4) # Trasformo da json in a dizionario data = json.loads(report) stampa = False testo = "" testo1 = "" testo2 = "" testo3 = "" # Stampo il dizionario for i, info in data.items(): testo1 += "Scanned IP [{}]\n".format(i) for categoria, dizionario in info.items(): if categoria == "hostname": if len(dizionario) != 0: for dettaglio, valoreDettaglio in dizionario[0].items(): testo1 += "{} : {}\n".format(dettaglio, valoreDettaglio) else: testo1 += "name : Not identified\ntype : Not identified\n" elif categoria == "ports": testo3 += "\nPORT PROTOCOL SERVICE STATUS\n" for dettaglio in dizionario: for porta, valorePorta in dettaglio.items(): if valorePorta == port: testo3 += "{:<13s}".format(valorePorta) stampa = True if stampa == True and porta == "protocol": testo3 += "{:<13s}".format(valorePorta) if stampa == True and porta == "service": testo3 += "{:<15s}".format(valorePorta["name"]) if stampa == True and porta == "state": testo3 += "{:<13s}".format(valorePorta) stampa = False testo3 += "\n\n" elif categoria == "osmatch": testo2 = "Operative System: " for dettaglio in dizionario: for os, valoreOS in dettaglio.items(): if os == "name": testo2 += valoreOS + " " stampa = True if stampa == False: testo2 += "Not identified" stampa = False testo += testo1 + testo2 + testo3 testo3 = "" testo2 = "" testo1 = "" # Rinomino il file x = "OS_" x += ip.replace("/24", "_EN") x += "_port_" + str(port) wfile = open("./Nmap/OS/" + x + ".txt", "w") wfile.write(testo) wfile.close() print(testo)
def abuseIPDB(): disegno() print("| ABUSE IP DB |") print("+-----------------------------------------------+")
def ipVoid(): disegno() print("| PROXY |") print("+-----------------------------------------------+")
def MACspoofing(): disegno() print("| MAC SPOOFING |") print("+-----------------------------------------------+")
def whoisMAC(): disegno() print("| WHOIS MAC |") print("+-----------------------------------------------+")
def hybridAnalisys(): disegno() print("| HYBRID ANALYSIS |") print("+-----------------------------------------------+")
def downDector(): disegno() print("| DOWN DETECTOR |") print("+-----------------------------------------------+")
def proxy(): disegno() print("| PROXY |") print("+-----------------------------------------------+")
def DNS(): disegno() print("| DNS |") print("+-----------------------------------------------+")
def mxToolbox(): disegno() print("| MX TOOLBOX |") print("+-----------------------------------------------+")
def howStrongIsMyPassword(): disegno() print("| HOW STRONG IS MY PASSWORD |") print("+-----------------------------------------------+")
def vpn(): disegno() print("| VPN |") print("+-----------------------------------------------+")
def jumperDNS(): disegno() print("| JUMPERDNS |") print("+-----------------------------------------------+")
def hashChecker(): disegno() print("| HASH CHECKER |") print("+-----------------------------------------------+")
def emailChecker(): disegno() print("| EMAIL CHECKER |") print("+-----------------------------------------------+")
def register(): disegno() print("| REGISTER |") print("+-----------------------------------------------+") # Scorro database dei nomi per vedere se il nome è gia registrato # Primary key [id] # Foreign key [username] # ---Soluzione intelligente per database grandi------------------------------- # Controllo se l username non è presente userDB = [] id = 0 with open('userDB.csv', newline='\n') as csvfile: reader = csv.DictReader(csvfile, delimiter='|') for row in reader: # Carico l'intero database colonna username in una lista userDB.append(row["username"]) id += 1 while True: username: str = input("Username: "******"Username already used!\n") else: break # ---Soluzione intelligente per database piccoli-------------------------------- # Funzional ma non troppo in quanto se nella password cifrata si presenta # lo username il programma dirà che il nome gia esiste # username = input('Enter username >') # if username in open('names.csv', 'r').read(): # print('Username already exists') # ----------------------------------------------------------------------------- # Criteri della password policy = PasswordPolicy.from_names( length=8, # min length: 8 uppercase=1, # need min. 1 uppercase letters numbers=1, # need min. 1 digits special=1, # need min. 1 special characters nonletters= 1, # need min. 1 non-letter characters (digits, specials, anything) ) while True: password1 = getpass.getpass( "Password must contain:\n- 8 Character\n- Number\n- Uppercase character\n- Special character\nPassword: "******"Confirm password: "******"Email: ") if "." in email and "@" in email: esito = sendMail(email, 0) if esito == 0: wfile = open("userDB.csv", "a") wfile.write( str(id) + "|" + username + "|" + passwordHash + "|" + email + "|0|1\n") wfile.close() login() elif esito == 1: print("Invalid email!\n") else: print("Invalid code!\n") else: print("Invalid email!\n") else: print("Password doesn't match!\n") else: print("")
def virusTotal(): disegno() print("| VIRUSTOTAL |") print("+-----------------------------------------------+")
def hostname(): disegno() print("| HOSTNAME |") print("+-----------------------------------------------+")