Security, Programming, Pentesting
by {"login"=>"averagesecurityguy", "email"=>"stephen@averagesecurityguy.info", "display_name"=>"averagesecurityguy", "first_name"=>"", "last_name"=>""}
I was recently in a situation where I needed to determine possible usernames through brute force but could not find a good list to use. The lists I found were related to typical Linux or Windows usernames used by the OS or one of its services. These lists did not contain the type of usernames you would normally see at a company, like first initial and last name (jsmith) or last name and first initial (smithj). Since I couldn't find a list like this I built one.
First, I downloaded the top 1000 last names from the 2000 US census. Then, I downloaded the most popular male and female first names from the 1990 US census. I could not find first name information for the 2000 census. Another source of popular first names is the Social Security office where you can search for the most popular baby names for a particular year.
Next, I truncated the female list to the top 1000 names. I did not truncate the male list because it had about 1200 names. I then wrote a script to find the frequency of the first letter of each first name. I used Excel to combine the male and female frequencies and determine the most frequent first letter for both sets of names.
First Letter Frequency Analysis
First Initial | Female Frequency | Male Frequency | Combined Frequency |
---|---|---|---|
M | 105 | 88 | 193 |
J | 80 | 100 | 180 |
C | 84 | 87 | 171 |
A | 82 | 87 | 169 |
L | 96 | 71 | 167 |
D | 48 | 97 | 145 |
R | 49 | 94 | 143 |
E | 59 | 74 | 133 |
S | 66 | 64 | 130 |
B | 47 | 71 | 118 |
T | 44 | 53 | 97 |
K | 52 | 36 | 88 |
G | 30 | 50 | 80 |
H | 22 | 46 | 68 |
F | 22 | 36 | 58 |
N | 26 | 29 | 55 |
W | 10 | 44 | 54 |
P | 24 | 22 | 46 |
V | 19 | 17 | 36 |
I | 17 | 18 | 35 |
O | 10 | 20 | 30 |
Y | 5 | 2 | 7 |
Z | 1 | 6 | 7 |
Q | 1 | 5 | 6 |
U | 1 | 1 | 2 |
X | 0 | 1 | 1 |
Total | 1000 | 1219 | 2219 |
Finally, I wrote a script to combine each of the top 1000 surnames with each of the top 10 first initials in both last name + first initial and first initial + last name format. I also created lists with the surname truncated at 6, 7 and 8 characters. Finally, I created lists in the format of first_name.last_name and last_name.first_name.
The list of surnames, lists of first names, and the script to build the username files can be downloaded here. Let me know if you have any questions or need help with the scripts.
tags: usernames - word list