
Script en Go que analiza una lista de contraseñas basándose en su entropía y contraseñas débiles de un diccionario. Útil para pruebas de penetración y campañas de phishing.
Script en Go que analiza una lista de contraseñas.
Puedes descargar el binario directamente desde los lanzamientos. Si prefieres compilarlo manualmente, considera los siguientes pasos.
git clone https://github.com/am0nt31r0/Password-Analysis.git
cd Password-Analysis
go build -ldflags "-w -s" -o pwdAnalysis
└─$ tree go
go/
├── bin
│ ├── pwdAnalysis
├── src
| ├── github.com
│ └── Xe
│ └── x
│ └── entropy
│ ├── doc.go
│ ├── shannon.go
│ └── shannon_test.go
| ├── Password Analysis
| ├── pw_analysis.go
El script requiere dos archivos txt para ejecutarse correctamente. El primero contiene las contraseñas a analizar - una contraseña por línea - y el segundo debe ser un diccionario de contraseñas débiles, como rockyou.txt.
La puntuación de entropía utilizada para clasificar las contraseñas es la misma que usa KeePassXC: https://keepassxc.org/blog/2020-08-15-keepassxc-password-healthcheck/
Descarga el código fuente de entropía en tu directorio src:
└─$ tree src
src
├── github.com
│ └── Xe
│ └── x
│ └── entropy
│ ├── doc.go
│ ├── shannon.go
│ └── shannon_test.go
pwdAnalysis pwds.txt rockyou.txt
[+] Password Analysis Software
Starting password analysis of: pwds.txt
Using rockyou.txt as dictionary of comparison.
PASSWORD LENGTH ENTROPY STRENGTH
12345 a 7 21 Poor
user123 7 21 Bad - Dictionary
passwordstrong 14 56 Weak
thisIsit? 9 27 Poor
saQWE1 6 18 Poor
sa#X#2 34 9 27 Poor
QWE123!"# $sds1 15 60 Weak
123456789 9 36 Bad - Dictionary
QWE123!"# $sds1zxczxc4"3r1 a 28 140 Excelent
C3kGUJeV98c234_34 17 68 Strong
Statistics:
- Total passwords analysed: 10.
- Number of excelent passwords: 1.
- Number of strong passwords: 1.
- Number of weak passwords: 2.
- Number of poor passwords: 4.
- Number of bad passwords: 0.
- Number of bad passwords contained in the dictionary: 2.
- The smaller password has the size of 6 characters.
- The biggest password has the size of 28 characters.
- The average size is 12.