mirror of
https://github.com/danielmiessler/SecLists.git
synced 2025-06-08 05:57:52 +00:00

feat(passwords): Added router default users and passwords Source: https://portforward.com/ ``` import os from bs4 import BeautifulSoup invalidValues = ["none", "N/A", "blank", "user created", "password changes when reset", "none; created during initial setup", "PrintedOnRouterLabel", "provided by ISP"] invalidKeywords = ["none", "leave blank", "n/a", "blank", "found by", "found on", "printed on", "configured during", "create", "last", "located", "on ", "sticker on", "refer to"] def extract_credentials(file_path): with open(file_path, 'r') as file: content = file.read() soup = BeautifulSoup(content, 'html.parser') table = soup.find('table') if table: model = table.find('th').text.strip().lower().replace('model', '').strip().replace(' ', '-').replace('/', '-') usernames = set() passwords = set() for row in table.find_all('tr')[1:]: cols = row.find_all('td') username = cols[1].text.strip() password = cols[2].text.strip() if username not in invalidValues: addUsername = True tempusername = username.lower() for keyword in invalidKeywords: if tempusername.startswith(keyword): addUsername=False break if addUsername: usernames.add(username) if password not in invalidValues: addPassword = True temppassword = password.lower() for keyword in invalidKeywords: if temppassword.startswith(keyword): addPassword=False break if addPassword: passwords.add(password) return model, sorted(usernames), sorted(passwords) else: return None, None, None def save_credentials(model, usernames, passwords, output_dir): if model and usernames and passwords: user_file_path = os.path.join(output_dir, f'{model}_default-users.txt') pass_file_path = os.path.join(output_dir, f'{model}_default-passwords.txt') with open(user_file_path, 'w') as user_file: user_file.write('\n'.join(usernames)) with open(pass_file_path, 'w') as pass_file: pass_file.write('\n'.join(passwords)) def process_files(input_dir, output_dir): for file_name in os.listdir(input_dir): print(f'Processing file {file_name}') file_path = os.path.join(input_dir, file_name) model, usernames, passwords = extract_credentials(file_path) save_credentials(model, usernames, passwords, output_dir) # Input directory containing the text files input_dir = "C:\\Users\\User\\Desktop\\out\\portforward.com" # Output directory where the output files will be saved output_dir = "C:\\Users\\User\\Github\\SecLists\\Passwords\\Default-Credentials\\Routers" process_files(input_dir, output_dir) ```