
Bruteforcer Veloce Modulare per Interfacce Web
Bruteforcer veloce e modulare per interfacce web
python3 -m pip install -r requirements.txt
$ python3 web-brutator.py -h
__ __ ___. __________ __ __
/ \ / \ ____\_ |__ \______ \_______ __ ___/ |______ _/ |_ ___________
\ \/\/ // __ \| __ \ ______ | | _/\_ __ \ | \ __\__ \ __\ / _ \_ _ _\
\ /\ ___/| \_\ \ /_____/ | | \ | | \/ | /| | / __ \| | ( <_> ) | \/
\__/\ / \___ >___ / |______ / |__| |____/ |__| (____ /__| \____/|__|
\/ \/ \/ \/ \/
Versione 0.2
usage: web-brutator.py [-h] [--url URL] [--target TYPE] [-u USERNAME]
[-U USERLIST] [-p PASSWORD] [-P PASSLIST]
[-C COMBOLIST] [-t THREADS] [-s] [-v] [-e MAX_ERRORS]
[--timeout TIMEOUT] [-l]
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esce
--url URL URL di destinazione
--target TYPE Tipo di destinazione
-u, --username USERNAME Singolo nome utente
-U, --userlist USERLIST Lista di nomi utente
-p, --password PASSWORD Singola password
-P, --passlist PASSLIST Lista di password
-C, --combolist COMBOLIST Lista di combinazioni username:password
-t, --threads THREADS Numero di thread [1-50] (predefinito: 10)
-s, --stoponsuccess Ferma al primo successo
-v, --verbose Stampa ogni credenziale testata
-e, --max-errors MAX_ERRORS Numero di errori consecutivi accettati (predefinito: 10)
--timeout TIMEOUT Limite di tempo per la risposta (predefinito: 20s)
-l, --list-modules Mostra l'elenco dei moduli
Esempio:
python3 web-brutator.py --target jenkins --url https://mytarget.com -U ./usernames.txt -P ./passwords.txt -s -t 40
Nota: Alcuni prodotti implementano il blocco dell'account dopo un certo numero di tentativi di autenticazione falliti, per impostazione predefinita (ad es. Weblogic, Tomcat...).
web-brutator avvisa l'utente all'inizio dell'attacco di bruteforce se questo è il caso. Tienilo in considerazione prima di avviare il bruteforce su tali target.
web-brutator può rilevare automaticamente i moduli di autenticazione web standard ed eseguire il bruteforce automaticamente.
Questa funzionalità è disponibile tramite il modulo standardform, è ancora sperimentale e può portare a falsi positivi/negativi
poiché si basa su diverse euristiche.
Non supportato:
Esempio:
python3 web-brutator.py --target standardform --url https://mytarget.com -U ./usernames.txt -P ./passwords.txt -s -t 40 -v
Questa demo è contro un'interfaccia phpMyAdmin
Aggiungere un nuovo modulo di bruteforce per autenticazione è piuttosto semplice:
lib/core/modules/lib/core/modules/ per alcuni esempi. Nota che le richieste HTTP dovrebbero essere effettuate tramite i metodi statici forniti da
Requester class: Requester.get(), Requester.post(), Requester.http_auth().#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from lib.core.Exceptions import AuthException, RequestException
from lib.core.Logger import logger
from lib.core.Requester import AuthMode, Requester
class Mymodule:
def __init__(self, url, verbose=False):
self.url = url
# Altre variabili self possono andare qui
def check(self):
"""
Questo metodo viene utilizzato per rilevare la presenza dell'interfaccia di autenticazione target.
:return: Booleano che indica se l'interfaccia di autenticazione è stata rilevata
"""
# Implementare il codice qui
def try_auth(self, username, password):
"""
Questo metodo viene utilizzato per eseguire un singolo tentativo di autenticazione.
:param str username: Nome utente da verificare
:param str password: Password da verificare
:return: Booleano che indica lo stato dell'autenticazione
:raise AuthException:
"""
# Implementare il codice qui
-l) dalla riga di comando.