Custom Wordlists
Aunque wordlists predefinidas como rockyou
o SecLists
ofrecen un repositorio extenso de posibles contraseñas y nombres de usuario, operan en un espectro amplio, lanzando una red general en la esperanza de encontrar la combinación correcta. Si bien esto es efectivo en algunos escenarios, este enfoque puede ser ineficiente y consumir mucho tiempo, especialmente cuando se apunta a individuos u organizaciones específicas con patrones únicos de contraseñas o nombres de usuario.
Imagina un escenario donde un pentester intenta comprometer la cuenta de "Thomas Edison" en su lugar de trabajo. Una lista de nombres de usuario genérica como xato-net-10-million-usernames-dup.txt
probablemente no arroje resultados significativos. Dado el potencial de convenciones de nombres de usuario específicas de la empresa, la probabilidad de que su nombre de usuario esté incluido en un dataset tan masivo es mínima. Estos podrían variar desde un formato simple de nombre/apellido hasta combinaciones más intrincadas como apellido/primeras tres letras del nombre.
En estos casos, las wordlists personalizadas son clave. Estas listas cuidadosamente elaboradas, adaptadas al objetivo específico y su entorno, incrementan dramáticamente la eficiencia y tasa de éxito de los ataques de fuerza bruta. Aprovechan información recopilada de diversas fuentes, como perfiles en redes sociales, directorios de la empresa o incluso datos filtrados, para crear un conjunto enfocado y altamente relevante de posibles contraseñas y nombres de usuario. Este enfoque preciso minimiza el esfuerzo desperdiciado y maximiza las posibilidades de comprometer la cuenta objetivo.
Username Anarchy
Incluso al tratar con un nombre aparentemente sencillo como "Jane Smith," la generación manual de nombres de usuario puede convertirse rápidamente en una tarea compleja. Mientras que combinaciones obvias como jane
, smith
, janesmith
, j.smith
o jane.s
pueden parecer suficientes, apenas rozan la superficie del potencial panorama de nombres de usuario.
La creatividad humana no tiene límites, y los nombres de usuario a menudo se convierten en un lienzo para la expresión personal. Jane podría incorporar su segundo nombre, año de nacimiento o un hobby, generando variaciones como janemarie
, smithj87
o jane_the_gardener
. El atractivo de leetspeak
, donde las letras se reemplazan con números o símbolos, podría derivar en nombres como j4n3
, 5m1th
o j@n3_5m1th
. Su pasión por un libro, película o banda podría inspirar nombres como winteriscoming
, potterheadjane
o smith_beatles_fan
.
Aquí es donde brilla Username Anarchy
. Considera iniciales, sustituciones comunes y más, ampliando el alcance en la búsqueda del nombre de usuario del objetivo:
./username-anarchy -l
Plugin name Example
--------------------------------------------------------------------------------
first anna
firstlast annakey
first.last anna.key
firstlast[8] annakey
first[4]last[4] annakey
firstl annak
f.last a.key
flast akey
lfirst kanna
l.first k.anna
lastf keya
last key
last.f key.a
last.first key.anna
FLast AKey
first1 anna0,anna1,anna2
fl ak
fmlast abkey
firstmiddlelast annaboomkey
fml abk
FL AK
FirstLast AnnaKey
First.Last Anna.Key
Last Key
Instalación y uso de Username Anarchy
Primero, instala ruby y luego descarga el script desde el repositorio:
sudo apt install ruby -y
git clone https://github.com/urbanadventurer/username-anarchy.git
cd username-anarchy
A continuación, ejecútalo con los nombres del objetivo. Esto generará posibles combinaciones de nombres de usuario.
./username-anarchy Jane Smith > jane_smith_usernames.txt
Al inspeccionar jane_smith_usernames.txt
, encontrarás una amplia variedad de nombres de usuario que incluyen:
- Combinaciones básicas:
janesmith
,smithjane
,jane.smith
,j.smith
, etc. - Iniciales:
js
,j.s.
,s.j.
, etc.
Esta lista, adaptada al nombre del objetivo, es valiosa en un ataque de fuerza bruta.
CUPP
Con los nombres de usuario cubiertos, el siguiente obstáculo en un ataque de fuerza bruta es la contraseña. Aquí entra CUPP
(Common User Passwords Profiler), una herramienta diseñada para crear wordlists altamente personalizadas que aprovechan la inteligencia recolectada sobre el objetivo.
Perfilando contraseñas con CUPP
La eficacia de CUPP depende de la calidad y profundidad de la información que proporciones. Puedes obtener inteligencia valiosa de las siguientes fuentes:
- Redes Sociales: Detalles personales como cumpleaños, nombres de mascotas, citas favoritas, destinos de viaje, relaciones, y más.
- Sitios web de la empresa: Información sobre el cargo, biografía profesional, y posibles intereses laborales.
- Registros públicos: Dependiendo de las leyes locales, podrían revelar direcciones, familiares o incluso historial de propiedades.
- Artículos y blogs: Apariciones en medios que puedan brindar información sobre logros, intereses o afiliaciones.
Por ejemplo, supongamos que recopilaste el siguiente perfil sobre Jane Smith:
Campo | Detalle |
---|---|
Nombre | Jane Smith |
Apodo | Janey |
Fecha de nacimiento | 11 de diciembre de 1990 |
Estado civil | En una relación con Jim |
Nombre de pareja | Jim (Apodo: Jimbo) |
Fecha de nacimiento de la pareja | 12 de diciembre de 1990 |
Mascota | Spot |
Empresa | AHI |
Intereses | Hackers, Pizza, Golf, Horses |
Colores favoritos | Azul |
Con estos datos, CUPP generará una wordlist personalizada con contraseñas como:
- Variaciones de nombres:
jane
,Jane
,janey
- Fechas:
jane1990
,smith1990
- Mutaciones:
j4n3
,5m1th
- Combinaciones:
Jane1990!
,smith1990@
Instalación y uso de CUPP
Si estás usando Pwnbox, CUPP probablemente ya está instalado. De lo contrario, instálalo con:
sudo apt install cupp -y
Ejecútalo en modo interactivo para crear una wordlist personalizada:
cupp -i
Completa la información solicitada y CUPP generará una lista como jane.txt
.
Filtrar contraseñas según políticas
Si la política de contraseñas de la empresa requiere:
- Longitud mínima de 6 caracteres.
- Al menos una letra mayúscula, una minúscula, un número y dos caracteres especiales (
!@#$%^&*
).
Puedes filtrar la wordlist generada usando grep
:
grep -E '^.{6,}$' jane.txt | grep -E '[A-Z]' | grep -E '[a-z]' | grep -E '[0-9]' | grep -E '([!@#$%^&*].*){2,}' > jane-filtered.txt
Esto reducirá la lista original de ~46,000 contraseñas a ~7,900 que cumplan con la política.
Usando Hydra con las listas generadas
Finalmente, usa las listas generadas para realizar fuerza bruta con Hydra:
hydra -L jane_smith_usernames.txt -P jane-filtered.txt IP -s PORT -f http-post-form "/:username=^USER^&password=^PASS^:Invalid credentials"
Una vez completado el ataque, usa las credenciales descubiertas para acceder al sistema objetivo y recuperar la flag.