
Скрипт на Go, который анализирует список паролей на основе их энтропии и слабых паролей из словаря. Полезно для тестов на проникновение и фишинговых кампаний.
Скрипт на Go, который анализирует список паролей.
Вы можете скачать бинарник напрямую из релизов. Если предпочитаете компилировать вручную, выполните следующие шаги.
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
Для успешного выполнения скрипту требуется два txt-файла. Первый содержит анализируемые пароли (по одному паролю на строку), а второй должен быть словарём слабых паролей, например rockyou.txt.
Оценка энтропии, используемая для классификации паролей, такая же, как в KeePassXC: https://keepassxc.org/blog/2020-08-15-keepassxc-password-healthcheck/
Загрузите исходный код энтропии в ваш каталог 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.