
Script altamente configurabile per attacchi dizionario/spray contro applicazioni web online.
Il progetto Klyda è stato creato per aiutare in attacchi rapidi basati su credenziali contro applicazioni web online.
Klyda supporta l'uso da semplici password spray a grandi attacchi di dizionario multithread.
Klyda è un nuovo progetto e sono alla ricerca di qualsiasi contributo. Ogni aiuto è molto apprezzato.
Klyda offre un uso semplice e facile da ricordare; tuttavia, offre ancora configurabilità per le tue esigenze:
1) Clona il repo Git sulla tua macchina, git clone https://github.com/Xeonrx/Klyda
2) Entra nella directory Klyda, cd Klyda
3) Installa i moduli necessari tramite Pip, pip install requests beautifulsoup4 colorama numpy
4) Mostra il prompt di aiuto di Klyda per l'utilizzo, python3 klyda.py -h
Klyda è stato progettato principalmente per Linux, ma dovrebbe funzionare su qualsiasi macchina in grado di eseguire Python.
Ciò di cui Klyda ha bisogno per funzionare sono solo quattro semplici dipendenze: URL da attaccare, nome utente, password e formdata.
Puoi inserire l'URL tramite il tag --url. Dovrebbe assomigliare a qualcosa del genere, --url http://127.0.0.1
Ricorda di non lanciare mai un attacco su una pagina web per la quale non hai il permesso appropriato.
I nomi utente sono il bersaglio principale di questi attacchi di dizionario. Potrebbe essere un'intera gamma di nomi utente, alcuni nello specifico, o forse solo uno. È una tua decisione quando usi lo script. Puoi specificare i nomi utente in diversi modi...
1) Specificarli manualmente, -u Admin User123 Ospite
2) Fornire un file da usare, o alcuni da combinare, -U utenti.txt extra.txt
3) Fornire sia un file che un inserimento manuale, -U utenti.txt -u Johnson924
Le password sono la parte difficile di questi attacchi. Non le conosci, ecco perché esistono attacchi di dizionario e brute force. Come per i nomi utente, puoi fornire da una sola password fino a quante ne vuoi. Puoi specificare le password in diversi modi...
1) Specificarle manualmente, -p password 1234 letmein
2) Fornire un file da usare, o alcuni da combinare, -P passwords.txt extra.txt
3) Fornire sia un file che un inserimento manuale, -P passwords.txt -p redklyda24
FormData è il modo in cui formi la richiesta, in modo che il sito web di destinazione possa prenderla in carico ed elaborare le informazioni fornite. Di solito è necessario specificare un: valore del nome utente, un valore della password e talvolta un valore extra. Puoi vedere il FormData utilizzato dal tuo target esaminando la scheda di rete degli strumenti di sviluppo del tuo browser. Per Klyda, usi il tag -d.
Devi usare dei segnaposto affinché Klyda sappia dove inserire il nome utente e la password quando inoltra le sue richieste. Potrebbe assomigliare a qualcosa del genere...
-d username:xuser password:xpass Login:Login
xuser è il segnaposto per inserire i nomi utente, e xpass è il segnaposto per inserire le password. Assicurati di conoscerli, altrimenti Klyda non funzionerà.
Formatta il FormData come (chiave):(valore)
Affinché Klyda sappia se ha avuto successo o meno, devi fornirgli dati da analizzare. Klyda utilizza le blacklist fornite dai tentativi di login falliti per distinguere tra una richiesta fallita e una completa. Puoi blacklistare tre diversi tipi di dati...
1) Stringhe, --bstr "Login fallito"
2) Codici di stato, --bcde 404
3) Lunghezza del contenuto, --blen 11
Puoi specificare tutti i dati necessari per ciascuna blacklist. Se nessuno dei dati forniti viene trovato nella risposta, Klyda assegna un "colpo", dicendo che è stato un tentativo di login riuscito. Altrimenti, se i dati nelle blacklist vengono trovati, Klyda lo segna come tentativo di login non riuscito. Poiché fornisci tu i dati da valutare a Klyda, i falsi positivi sono assenti.
Se non fornisci alcun dato da blacklistare, ogni richiesta verrà segnata come un colpo da parte di Klyda!
Per impostazione predefinita, Klyda utilizza un solo thread per l'esecuzione; ma puoi specificarne di più usando il tag -t. Questo può essere utile per accelerare il tuo lavoro.
Tuttavia, gli attacchi alle credenziali possono essere molto rumorosi su una rete; quindi, vengono facilmente rilevati. Un account preso di mira potrebbe semplicemente ricevere un blocco a causa di troppi tentativi di login. Questo crea un attacco DoS, ma ti impedisce di ottenere le credenziali dell'utente, che è l'obiettivo di Klyda.
Quindi, per rendere questi attacchi un po' meno rumorosi, puoi utilizzare il tag --rate. Questo ti permette di limitare i tuoi thread a un certo numero di richieste al minuto.
Verrà formattato così: --rate (numero di richieste) (minuti)
Ad esempio, --rate 5 1 invierà solo 5 richieste ogni minuto. Ricorda, questo è per ogni thread. Se avessi 2 thread, verrebbero inviate 10 richieste al minuto.
Prova Klyda sulla Damn Vulnerable Web App (DVWA) o su Mutillidae.
python3 klyda.py --url http://127.0.0.1/dvwa/login.php -u user guest admin -p 1234 password admin -d username:xuser password:xpass Login:Login --bstr "Login failed"
python3 klyda.py --url http://127.0.0.1/mutillidae/index.php?page=login.php -u root -P passwords.txt -d username:xuser password:xpass login-php-submit-button:Login --bstr "Authentication Error"
Come accennato in precedenza, Klyda è ancora un lavoro in corso. Per il futuro, ho intenzione di aggiungere più funzionalità e riformattare il codice per un aspetto più pulito.
La mia priorità assoluta è aggiungere la funzionalità proxy, e ci sto lavorando attualmente.