SecLists/Passwords/Default-Credentials
g0tmi1k e9337bebcf
Merge pull request #999 from ItsIgnacioPortal/RouterCredentials
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)
```
2024-04-05 15:26:08 +01:00
..
Routers chore: Wording 2024-04-05 04:03:05 -03:00
Oracle EBS passwordlist.txt Revert "Merge pull request #4 from danielmiessler/master" 2020-08-11 14:25:56 +02:00
Oracle EBS userlist.txt Revert "Merge pull request #4 from danielmiessler/master" 2020-08-11 14:25:56 +02:00
avaya_defaultpasslist.txt Updated Citrix and Avaya default passwords 2021-07-22 00:21:57 +02:00
cryptominers.txt Updated cryptominers 2021-07-16 22:01:51 +02:00
db2-betterdefaultpasslist.txt standardisze line endings 2020-05-27 14:10:50 +01:00
default-passwords.csv update default-passwords.csv 2022-08-22 19:55:03 +04:00
default-passwords.txt Update default-passwords.txt 2023-11-26 00:38:26 +03:00
ftp-betterdefaultpasslist.txt strip trailing whitespace 2020-05-27 14:26:51 +01:00
mssql-betterdefaultpasslist.txt standardisze line endings 2020-05-27 14:10:50 +01:00
mysql-betterdefaultpasslist.txt standardisze line endings 2020-05-27 14:10:50 +01:00
oracle-betterdefaultpasslist.txt strip trailing whitespace 2020-05-27 14:26:51 +01:00
postgres-betterdefaultpasslist.txt standardisze line endings 2020-05-27 14:10:50 +01:00
scada-pass.csv Fix #259 - Recover from bad merge 2019-01-07 15:40:56 +00:00
ssh-betterdefaultpasslist.txt Update ssh-betterdefaultpasslist.txt 2021-01-06 17:05:59 +01:00
telnet-betterdefaultpasslist.txt Update telnet-betterdefaultpasslist.txt 2020-07-11 17:51:50 +02:00
telnet-phenoelit.txt New Default Password List 2019-08-23 15:57:08 +02:00
tomcat-betterdefaultpasslist.txt Remove duplicated entries 2022-01-29 05:47:02 +00:00
tomcat-betterdefaultpasslist_base64encoded.txt dos2unix 2021-08-28 21:29:32 +01:00
vnc-betterdefaultpasslist.txt standardisze line endings 2020-05-27 14:10:50 +01:00
windows-betterdefaultpasslist.txt strip trailing whitespace 2020-05-27 14:26:51 +01:00