Files
SecLists/Passwords
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
..
2020-11-03 23:57:08 +00:00
2021-08-28 21:29:32 +01:00
2018-03-05 11:03:11 +00:00
2023-12-01 09:56:55 -07:00
2019-05-08 11:04:00 +01:00
2017-08-23 14:55:06 +01:00
2024-04-05 10:42:21 +00:00
2019-05-08 11:04:00 +01:00
2022-11-07 12:32:42 +03:00
2020-05-27 14:26:51 +01:00
2020-05-27 14:26:51 +01:00
2021-12-15 15:11:20 -06:00
2021-08-28 21:29:32 +01:00
2019-10-01 12:22:18 +02:00
2022-11-07 12:18:49 +03:00
2021-12-15 15:10:21 -06:00
2020-05-27 14:26:51 +01:00
2022-08-02 07:11:45 +01:00
2019-07-03 14:04:48 +01:00
2019-08-13 12:42:49 +01:00
2021-12-15 15:04:49 -06:00
2022-11-07 12:34:57 +03:00
2017-07-11 13:18:31 +01:00

The Passwords directory will hold a number of password lists that can be used by multiple tools when attempting to guess credentials for a given targeted service. This will include a number of very popular lists in cooperation with their maintainers, including the RockYou lists maintained by Rob Bowes.


  • Password lists containing the count are located in the "withcount" folder.
  • Lists over 100Mb have been compressed.

scraped-JWT-secrets.txt

This wordlist is from https://github.com/wallarm/jwt-secrets


Some passwords lists are +100MB and can't be stored on the repository. The following are external links to download more: