first commit
This commit is contained in:
parent
883dd76931
commit
2e22667181
17 changed files with 889 additions and 5 deletions
43
tools/brute-login/README.md
Normal file
43
tools/brute-login/README.md
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
# brute-login
|
||||
|
||||
Teste la résistance de l'authentification preprod par énumération de
|
||||
mots de passe sur un utilisateur connu.
|
||||
|
||||
## Principe
|
||||
|
||||
Pour chaque mot de passe d'une wordlist, émet un `POST` sur
|
||||
`LOGIN_PATH` et compare le code HTTP renvoyé à `LOGIN_SUCCESS_CODE`.
|
||||
S'arrête à la première réussite. Le but est de **mesurer** la
|
||||
robustesse (wordlist courte = compromise rapide → authentification
|
||||
fragile ; rate-limit / lockout / 2FA = résistance), pas de produire
|
||||
un déni de service.
|
||||
|
||||
## Préparation
|
||||
|
||||
1. `cp targets.example.env targets.env` et renseignez
|
||||
`TARGET_SCOPE_ACK="yes"`, `TARGET_BASE_URL`, `LOGIN_PATH`,
|
||||
`LOGIN_USERNAME`, `LOGIN_WORDLIST`.
|
||||
2. Placez votre wordlist dans `wordlists/passwords.txt` (ignoré par
|
||||
git) ou pointez `LOGIN_WORDLIST` vers un chemin absolu.
|
||||
|
||||
## Lancement
|
||||
|
||||
```bash
|
||||
./brute-login.sh
|
||||
```
|
||||
|
||||
## Sortie
|
||||
|
||||
- stdout : progression + verdict (réussite/échec).
|
||||
- `output/brute-login.log` : une ligne par tentative
|
||||
(`horodatage \t code \t mot-de-passe`).
|
||||
|
||||
## Interprétation
|
||||
|
||||
- **Réussite rapide** sur une wordlist triviale → politique de mots
|
||||
de passe trop faible. Corriger : longueur minimale, complexité,
|
||||
audit contre une liste de mots de passe courants.
|
||||
- **429 / lockout** → rate-limiting actif (bon). Notez le seuil.
|
||||
- **Même code d'échec partout** → impossible de distinguer réussite
|
||||
d'échec par le code seul ; envisagez un indiceur de succès plus
|
||||
fin (taille du corps, présence d'un jeton) en adaptant le script.
|
||||
Loading…
Add table
Add a link
Reference in a new issue