
Password spraying utilizzando AWS Lambda per la rotazione degli IP
Lancia facilmente un password spray utilizzando AWS Lambda su più regioni, ruotando gli indirizzi IP ad ogni richiesta.
Realizzato da:

utilizzo: credking.py [-h] --plugin PLUGIN [--threads THREADS] --userfile USERFILE --passwordfile PASSWORDFILE --access_key ACCESS_KEY --secret_access_key SECRET_ACCESS_KEY [--useragentfile USERAGENTFILE]
Arguments:
-h, --help mostra questo messaggio di aiuto e esci
--plugin PLUGIN plugin per lo spraying
--threads THREADS numero di thread (default: 1)
--userfile USERFILE file con i nomi utente
--passwordfile PASSWORDFILE file con le password
--access_key ACCESS_KEY chiave di accesso AWS
--secret_access_key SECRET_ACCESS_KEY chiave segreta di accesso AWS
--useragentfile file con gli user agent
Il plugin Gmail non richiede argomenti aggiuntivi.
Il plugin Okta aggiunge un nuovo argomento obbligatorio chiamato oktadomain.
utilizzo: credking.py <argomenti usuali> --oktadomain org.okta.com
Puoi installare ed eseguire automaticamente usando Python 3 con il seguente comando:
$ git clone https://github.com/ustayready/CredKing
$ cd CredKing
~/CredKing$ python3 credking.py
Nota che è richiesto Python 3.
Segnalazioni di bug, richieste di funzionalità e patch sono benvenute.
Puoi creare nuovi plugin eseguendo:
$ cd plugins
$ mkdir newplugin
$ cd newplugin
$ touch __init__.py
$ touch newplugin.py
Successivamente, assicurati di includere la funzione handler lambda nel tuo newplugin.py:
def lambda_handler(event, context):
return your_function(event['username'], event['password'])
CredKing genera un file zip di deployment che le lambda ricevono quando vengono create. Per questo motivo, CredKing richiede che i prerequisiti siano installati direttamente nella cartella del nuovo plugin. Puoi farlo con:
$ pip install <pre-req> -t .
Gli argomenti specifici del plugin possono essere specificati senza modifiche a credking.py, basta passarli come --nomeargomento valore
Se il tuo plugin richiede argomenti specifici, puoi implementare una funzione validate nel file __init__.py della directory del plugin a cui verrà passato un dizionario di tutti gli argomenti opzionali.
Di seguito è riportato un esempio di validazione degli argomenti del plugin utilizzato dal plugin okta nel suo __init__.py.
def validate(args):
if 'oktadomain' in args.keys():
return True,None
else:
error = "Manca l'argomento oktadomain, specificarlo come --oktadomain org.okta.com"
return False,error
La funzione lambda_handler in okta.py accede quindi all'argomento oktadomain come mostrato sotto.
def lambda_handler(event, context):
domain = event['args']['oktadomain']
return okta_authenticate(domain, event['username'], event['password'], event['useragent'])
Questo è tutto, divertiti!